diff --git a/src/api b/src/api index e637e30e4..f1c4b87a0 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit e637e30e43dbe4e4b7cf75578151c062fb3c0848 +Subproject commit f1c4b87a08154d8ba32a511f300b6049b9c68953 diff --git a/src/main/java/noppes/npcs/CustomNpcs.java b/src/main/java/noppes/npcs/CustomNpcs.java index 538d3c2b5..23a74edf5 100644 --- a/src/main/java/noppes/npcs/CustomNpcs.java +++ b/src/main/java/noppes/npcs/CustomNpcs.java @@ -22,6 +22,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.MinecraftForge; import nikedemos.markovnames.generators.*; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.config.ConfigMain; import noppes.npcs.config.LoadConfiguration; import noppes.npcs.config.legacy.LegacyConfig; diff --git a/src/main/java/noppes/npcs/ScriptForgeEventHandler.java b/src/main/java/noppes/npcs/ScriptForgeEventHandler.java index 66959942d..163fb25ea 100644 --- a/src/main/java/noppes/npcs/ScriptForgeEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptForgeEventHandler.java @@ -17,7 +17,7 @@ import net.minecraftforge.event.world.ChunkDataEvent; import net.minecraftforge.event.world.ChunkEvent; import net.minecraftforge.event.world.ChunkWatchEvent; import net.minecraftforge.event.world.WorldEvent; -import noppes.npcs.controllers.PixelmonHelper; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.controllers.ScriptController; import noppes.npcs.scripted.event.ForgeEvent; diff --git a/src/main/java/noppes/npcs/ai/selector/NPCAttackSelector.java b/src/main/java/noppes/npcs/ai/selector/NPCAttackSelector.java index 3fbfe3c8c..22f9dc6ac 100644 --- a/src/main/java/noppes/npcs/ai/selector/NPCAttackSelector.java +++ b/src/main/java/noppes/npcs/ai/selector/NPCAttackSelector.java @@ -10,7 +10,7 @@ import noppes.npcs.constants.EnumCompanionJobs; import noppes.npcs.constants.EnumJobType; import noppes.npcs.constants.EnumMovingType; import noppes.npcs.constants.EnumRoleType; -import noppes.npcs.controllers.PixelmonHelper; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.entity.EntityNPCInterface; import noppes.npcs.roles.JobGuard; import noppes.npcs.roles.RoleCompanion; diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java b/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java index c4575bfa2..866b1e84e 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java @@ -16,7 +16,7 @@ import net.minecraft.world.World; import noppes.npcs.client.Client; import noppes.npcs.client.gui.util.*; import noppes.npcs.constants.EnumPacketServer; -import noppes.npcs.controllers.PixelmonHelper; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.entity.*; import java.lang.reflect.Method; diff --git a/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java b/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java index ce98937ee..1734506af 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java @@ -9,7 +9,7 @@ import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.util.ModelRenderPassHelper; -import noppes.npcs.controllers.PixelmonHelper; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; import org.lwjgl.opengl.GL11; diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockBannerRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockBannerRenderer.java index 7d5946da4..ed813dd6a 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockBannerRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockBannerRenderer.java @@ -3,10 +3,16 @@ package noppes.npcs.client.renderer.blocks; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; import noppes.npcs.CustomItems; import noppes.npcs.blocks.BlockBanner; @@ -59,8 +65,6 @@ public class BlockBannerRenderer extends BlockRendererInterface{ } public void doRender(double par2, double par4, double par6, int meta, ItemStack iicon) { - if (iicon.getItemSpriteNumber() == 0 && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(iicon.getItem()).getRenderType())) - return; GL11.glPushMatrix(); bindTexture(TextureMap.locationItemsTexture); GL11.glTranslatef((float)par2 + 0.5f, (float)par4 +1.3f, (float)par6 + 0.5f); @@ -71,11 +75,58 @@ public class BlockBannerRenderer extends BlockRendererInterface{ float f2 = 0.05f; Minecraft mc = Minecraft.getMinecraft(); GL11.glScalef(f2, f2, f2); - renderer.renderItemIntoGUI(this.func_147498_b(), mc.renderEngine, iicon, -8, -8); + renderItemBanner(mc.renderEngine, iicon, -8, -8, false); GL11.glDepthMask(true); GL11.glPopMatrix(); } + public void renderItemBanner(TextureManager txtMng, ItemStack item, int p_77015_4_, int p_77015_5_, boolean renderEffect) + { + Object object = item.getIconIndex(); + int l; + float f; + float f3; + float f4; + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + ResourceLocation resourcelocation = txtMng.getResourceLocation(item.getItemSpriteNumber()); + txtMng.bindTexture(resourcelocation); + + if (object == null) + { + object = ((TextureMap)Minecraft.getMinecraft().getTextureManager().getTexture(resourcelocation)).getAtlasSprite("missingno"); + } + + l = item.getItem().getColorFromItemStack(item, 0); + f3 = (float)(l >> 16 & 255) / 255.0F; + f4 = (float)(l >> 8 & 255) / 255.0F; + f = (float)(l & 255) / 255.0F; + + if (renderer.renderWithColor) + { + GL11.glColor4f(f3, f4, f, 1.0F); + } + + GL11.glDisable(GL11.GL_LIGHTING); //Forge: Make sure that render states are reset, a renderEffect can derp them up. + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + + renderer.renderIcon(p_77015_4_, p_77015_5_, (IIcon)object, 16, 16); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_BLEND); + + if (renderEffect && item.hasEffect(0)) + { + renderer.renderEffect(txtMng, p_77015_4_, p_77015_5_); + } + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + } + @Override public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { diff --git a/src/main/java/noppes/npcs/client/renderer/blocks/BlockSignRenderer.java b/src/main/java/noppes/npcs/client/renderer/blocks/BlockSignRenderer.java index 84274ef1c..c42b21e32 100644 --- a/src/main/java/noppes/npcs/client/renderer/blocks/BlockSignRenderer.java +++ b/src/main/java/noppes/npcs/client/renderer/blocks/BlockSignRenderer.java @@ -3,10 +3,14 @@ package noppes.npcs.client.renderer.blocks; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; import noppes.npcs.CustomItems; import noppes.npcs.blocks.BlockRotated; import noppes.npcs.blocks.tiles.TileSign; @@ -49,8 +53,6 @@ public class BlockSignRenderer extends BlockRendererInterface{ public void doRender(double par2, double par4, double par6, int meta, ItemStack iicon) { - if (iicon.getItemSpriteNumber() == 0 && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(iicon.getItem()).getRenderType())) - return; GL11.glPushMatrix(); bindTexture(TextureMap.locationItemsTexture); GL11.glTranslatef(0, 1.02f, -0.03f); @@ -58,15 +60,62 @@ public class BlockSignRenderer extends BlockRendererInterface{ float f2 = 0.024f; Minecraft mc = Minecraft.getMinecraft(); GL11.glScalef(f2, f2, f2); - renderer.renderItemIntoGUI(this.func_147498_b(), mc.renderEngine, iicon, -8, -8); + renderItemBanner(mc.renderEngine, iicon, -8, -8, false); GL11.glRotatef(180, 0, 1, 0); GL11.glTranslatef(0, 0, -2.9f); - renderer.renderItemIntoGUI(this.func_147498_b(), mc.renderEngine, iicon, -8, -8); + renderItemBanner(mc.renderEngine, iicon, -8, -8, false); GL11.glDepthMask(true); GL11.glPopMatrix(); } + public void renderItemBanner(TextureManager txtMng, ItemStack item, int p_77015_4_, int p_77015_5_, boolean renderEffect) + { + Object object = item.getIconIndex(); + int l; + float f; + float f3; + float f4; + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + ResourceLocation resourcelocation = txtMng.getResourceLocation(item.getItemSpriteNumber()); + txtMng.bindTexture(resourcelocation); + + if (object == null) + { + object = ((TextureMap)Minecraft.getMinecraft().getTextureManager().getTexture(resourcelocation)).getAtlasSprite("missingno"); + } + + l = item.getItem().getColorFromItemStack(item, 0); + f3 = (float)(l >> 16 & 255) / 255.0F; + f4 = (float)(l >> 8 & 255) / 255.0F; + f = (float)(l & 255) / 255.0F; + + if (renderer.renderWithColor) + { + GL11.glColor4f(f3, f4, f, 1.0F); + } + + GL11.glDisable(GL11.GL_LIGHTING); //Forge: Make sure that render states are reset, a renderEffect can derp them up. + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + + renderer.renderIcon(p_77015_4_, p_77015_5_, (IIcon)object, 16, 16); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_BLEND); + + if (renderEffect && item.hasEffect(0)) + { + renderer.renderEffect(txtMng, p_77015_4_, p_77015_5_); + } + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + } + @Override public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { diff --git a/src/main/java/noppes/npcs/controllers/PixelmonHelper.java b/src/main/java/noppes/npcs/compat/PixelmonHelper.java similarity index 99% rename from src/main/java/noppes/npcs/controllers/PixelmonHelper.java rename to src/main/java/noppes/npcs/compat/PixelmonHelper.java index 2037deeee..2a4e996e1 100644 --- a/src/main/java/noppes/npcs/controllers/PixelmonHelper.java +++ b/src/main/java/noppes/npcs/compat/PixelmonHelper.java @@ -1,4 +1,4 @@ -package noppes.npcs.controllers; +package noppes.npcs.compat; import cpw.mods.fml.common.Loader; import net.minecraft.client.Minecraft; diff --git a/src/main/java/noppes/npcs/controllers/data/DialogCategory.java b/src/main/java/noppes/npcs/controllers/data/DialogCategory.java index ef2dbd4c8..3c6267ee8 100644 --- a/src/main/java/noppes/npcs/controllers/data/DialogCategory.java +++ b/src/main/java/noppes/npcs/controllers/data/DialogCategory.java @@ -61,4 +61,9 @@ public class DialogCategory implements IDialogCategory { dialog.category = this; return dialog; } + + @Override + public int getId() { + return this.id; + } } diff --git a/src/main/java/noppes/npcs/controllers/data/QuestCategory.java b/src/main/java/noppes/npcs/controllers/data/QuestCategory.java index 774fef513..05d0806b1 100644 --- a/src/main/java/noppes/npcs/controllers/data/QuestCategory.java +++ b/src/main/java/noppes/npcs/controllers/data/QuestCategory.java @@ -61,4 +61,9 @@ public class QuestCategory implements IQuestCategory { quest.category = this; return quest; } + + @Override + public int getId() { + return this.id; + } } diff --git a/src/main/java/noppes/npcs/entity/data/ModelData.java b/src/main/java/noppes/npcs/entity/data/ModelData.java index 6f1c569b2..bd0f13a3c 100644 --- a/src/main/java/noppes/npcs/entity/data/ModelData.java +++ b/src/main/java/noppes/npcs/entity/data/ModelData.java @@ -3,7 +3,7 @@ package noppes.npcs.entity.data; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.world.World; -import noppes.npcs.controllers.PixelmonHelper; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.entity.EntityNPCInterface; public class ModelData extends ModelDataShared{ diff --git a/src/main/java/noppes/npcs/roles/JobSpawner.java b/src/main/java/noppes/npcs/roles/JobSpawner.java index f88929029..28d3cd5f4 100644 --- a/src/main/java/noppes/npcs/roles/JobSpawner.java +++ b/src/main/java/noppes/npcs/roles/JobSpawner.java @@ -7,7 +7,7 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import noppes.npcs.NoppesUtilServer; -import noppes.npcs.controllers.PixelmonHelper; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.entity.EntityNPCInterface; import org.apache.commons.lang3.RandomStringUtils; diff --git a/src/main/java/noppes/npcs/scripted/NpcAPI.java b/src/main/java/noppes/npcs/scripted/NpcAPI.java index 428ee39dc..f0870dc83 100644 --- a/src/main/java/noppes/npcs/scripted/NpcAPI.java +++ b/src/main/java/noppes/npcs/scripted/NpcAPI.java @@ -45,6 +45,7 @@ import noppes.npcs.api.handler.data.IFramePart; import noppes.npcs.api.handler.data.ISound; import noppes.npcs.api.item.IItemStack; import noppes.npcs.api.overlay.ICustomOverlay; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.config.ConfigScript; import noppes.npcs.constants.EnumAnimationPart; import noppes.npcs.containers.ContainerNpcInterface; diff --git a/src/main/java/noppes/npcs/scripted/ScriptPixelmonPlayerData.java b/src/main/java/noppes/npcs/scripted/ScriptPixelmonPlayerData.java index 7077b1b5d..d454598b4 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptPixelmonPlayerData.java +++ b/src/main/java/noppes/npcs/scripted/ScriptPixelmonPlayerData.java @@ -4,7 +4,7 @@ import net.minecraft.entity.passive.EntityTameable; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import noppes.npcs.api.IPixelmonPlayerData; -import noppes.npcs.controllers.PixelmonHelper; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.scripted.entity.ScriptPixelmon; public class ScriptPixelmonPlayerData implements IPixelmonPlayerData { diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java b/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java index 9aaff5b30..5d5f7a992 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptDBCPlayer.java @@ -372,6 +372,15 @@ public class ScriptDBCPlayer extends ScriptPlayer i return player.getEntityData().getCompoundTag("PlayerPersisted").getInteger("jrmcBdy"); } + public void setHP(int hp){ + setBody(hp); + } + public int getHP() + { + return getBody(); + } + + public void setStamina(int stamina){ player.getEntityData().getCompoundTag("PlayerPersisted").setInteger("jrmcStamina",stamina); } diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptPixelmon.java b/src/main/java/noppes/npcs/scripted/entity/ScriptPixelmon.java index a5b4f4c20..7bc01d080 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptPixelmon.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptPixelmon.java @@ -3,7 +3,7 @@ package noppes.npcs.scripted.entity; import net.minecraft.entity.passive.EntityTameable; import net.minecraft.nbt.NBTTagCompound; import noppes.npcs.api.entity.IPixelmon; -import noppes.npcs.controllers.PixelmonHelper; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.util.ValueUtil; public class ScriptPixelmon extends ScriptAnimal implements IPixelmon { diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java index 8b379bcf3..f3f3b09b4 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java @@ -25,6 +25,7 @@ import noppes.npcs.api.handler.data.IQuest; import noppes.npcs.api.handler.data.ISound; import noppes.npcs.api.item.IItemStack; import noppes.npcs.api.overlay.ICustomOverlay; +import noppes.npcs.compat.PixelmonHelper; import noppes.npcs.config.ConfigScript; import noppes.npcs.constants.EnumPacketClient; import noppes.npcs.constants.EnumQuestRepeat;