From 958f8466d4f0ecec6b5a3bf92a243038db1d4bd0 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 12 Aug 2012 00:38:28 -0400 Subject: [PATCH] More changes for 1.3 --- IronChests2/.project | 12 +++++++++ .../client/IronChestRenderHelper.java | 16 ++++++++++- .../client/TileEntityIronChestRenderer.java | 27 ++++++++++++++----- .../common/cpw/mods/ironchest/IronChest.java | 2 +- .../cpw/mods/ironchest/ItemChestChanger.java | 3 +++ .../mods/ironchest/TileEntityIronChest.java | 8 ++++-- 6 files changed, 58 insertions(+), 10 deletions(-) diff --git a/IronChests2/.project b/IronChests2/.project index 39d9b6c..d59bcf7 100644 --- a/IronChests2/.project +++ b/IronChests2/.project @@ -14,4 +14,16 @@ org.eclipse.jdt.core.javanature + + + common/ironchestversion.properties + 1 + PROJECT_LOC/ironchestversion.properties + + + common/mcmod.info + 1 + PROJECT_LOC/mcmod.info + + diff --git a/IronChests2/client/cpw/mods/ironchest/client/IronChestRenderHelper.java b/IronChests2/client/cpw/mods/ironchest/client/IronChestRenderHelper.java index fcadba1..596be83 100644 --- a/IronChests2/client/cpw/mods/ironchest/client/IronChestRenderHelper.java +++ b/IronChests2/client/cpw/mods/ironchest/client/IronChestRenderHelper.java @@ -10,16 +10,30 @@ ******************************************************************************/ package cpw.mods.ironchest.client; +import java.util.Map; + +import com.google.common.collect.Maps; + import cpw.mods.ironchest.IronChest; +import cpw.mods.ironchest.IronChestType; +import cpw.mods.ironchest.TileEntityIronChest; import net.minecraft.src.Block; import net.minecraft.src.ChestItemRenderHelper; import net.minecraft.src.TileEntityRenderer; public class IronChestRenderHelper extends ChestItemRenderHelper { + private Map itemRenders = Maps.newHashMap(); + + public IronChestRenderHelper() { + for (IronChestType typ : IronChestType.values()) + { + itemRenders.put(typ.ordinal(), (TileEntityIronChest) IronChest.ironChestBlock.createTileEntity(null, typ.ordinal())); + } + } @Override public void renderChest(Block block, int i, float f) { if (block==IronChest.ironChestBlock) { - TileEntityRenderer.instance.renderTileEntityAt(block.createTileEntity(null,i), 0.0D, 0.0D, 0.0D, 0.0F); + TileEntityRenderer.instance.renderTileEntityAt(itemRenders.get(i), 0.0D, 0.0D, 0.0D, 0.0F); } else { super.renderChest(block, i, f); } diff --git a/IronChests2/client/cpw/mods/ironchest/client/TileEntityIronChestRenderer.java b/IronChests2/client/cpw/mods/ironchest/client/TileEntityIronChestRenderer.java index fcec8e9..eee28c3 100644 --- a/IronChests2/client/cpw/mods/ironchest/client/TileEntityIronChestRenderer.java +++ b/IronChests2/client/cpw/mods/ironchest/client/TileEntityIronChestRenderer.java @@ -28,6 +28,8 @@ import java.util.Random; import java.util.Map; import java.util.HashMap; +import org.lwjgl.opengl.GL11; + import net.minecraft.src.Block; import net.minecraft.src.EntityItem; import net.minecraft.src.Item; @@ -40,6 +42,7 @@ import net.minecraft.src.TileEntitySpecialRenderer; import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; +import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.ironchest.IronChestType; import cpw.mods.ironchest.MappableItemStackWrapper; import cpw.mods.ironchest.TileEntityIronChest; @@ -70,6 +73,18 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer { renderBlocks = new RenderBlocks(); } + private void overrideTexture(Object obj) + { + if (obj instanceof Item) + { + GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(((Item)obj).getTextureFile())); + } + else if (obj instanceof Block) + { + GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(((Block)obj).getTextureFile())); + } + } + public void render(TileEntityIronChest tile, double x, double y, double z, float partialTick) { if (tile == null) { return; @@ -154,7 +169,7 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer { glPushMatrix(); glTranslatef(shiftX, shiftY, shiftZ); glScalef(localScale, localScale, localScale); -/* for (int miniBlocks = 0; miniBlocks < (item.stackSize / 32) + 1; miniBlocks++) { + for (int miniBlocks = 0; miniBlocks < (item.stackSize / 32) + 1; miniBlocks++) { glPushMatrix(); glRotatef(timeD, 0.0F, 1.0F, 0.0F); if (miniBlocks > 0) { @@ -174,20 +189,20 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer { if (customRenderer != null) { customitem.item = item; bindTextureByName("/terrain.png"); - ForgeHooksClient.overrideTexture(item.getItem()); + overrideTexture(item.getItem()); customRenderer.renderItem(IItemRenderer.ItemRenderType.ENTITY, item, renderBlocks, customitem); } else if (item.itemID < Block.blocksList.length && Block.blocksList[item.itemID] != null && RenderBlocks.renderItemIn3d(Block.blocksList[item.itemID].getRenderType())) { bindTextureByName("/terrain.png"); - ForgeHooksClient.overrideTexture(Block.blocksList[item.itemID]); + overrideTexture(Block.blocksList[item.itemID]); renderBlocks.renderBlockAsItem(Block.blocksList[item.itemID], item.getItemDamage(), 1.0F); } else { int i = item.getIconIndex(); if (item.itemID >= Block.blocksList.length || Block.blocksList[item.itemID] == null) { bindTextureByName("/gui/items.png"); - ForgeHooksClient.overrideTexture(Item.itemsList[item.itemID]); + overrideTexture(Item.itemsList[item.itemID]); } else { bindTextureByName("/terrain.png"); - ForgeHooksClient.overrideTexture(Block.blocksList[item.itemID]); + overrideTexture(Block.blocksList[item.itemID]); } Tessellator tessellator = Tessellator.instance; float f5 = (float) ((i % 16) * 16 + 0) / 256F; @@ -224,7 +239,7 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer { } glPopMatrix(); } -*/ glPopMatrix(); + glPopMatrix(); } glDisable(32826 /* GL_RESCALE_NORMAL_EXT */); glEnable(2896 /* GL_LIGHTING */); diff --git a/IronChests2/common/cpw/mods/ironchest/IronChest.java b/IronChests2/common/cpw/mods/ironchest/IronChest.java index 4c8fb48..153e150 100644 --- a/IronChests2/common/cpw/mods/ironchest/IronChest.java +++ b/IronChests2/common/cpw/mods/ironchest/IronChest.java @@ -61,7 +61,7 @@ public class IronChest { @Init public void load(FMLInitializationEvent evt) { - GameRegistry.registerBlock(ironChestBlock); + GameRegistry.registerBlock(ironChestBlock, ItemIronChest.class); for (IronChestType typ : IronChestType.values()) { GameRegistry.registerTileEntity(typ.clazz, typ.name()); LanguageRegistry.instance().addStringLocalization(typ.name() + ".name", "en_US", typ.friendlyName); diff --git a/IronChests2/common/cpw/mods/ironchest/ItemChestChanger.java b/IronChests2/common/cpw/mods/ironchest/ItemChestChanger.java index 7f386fc..2cd4d9b 100644 --- a/IronChests2/common/cpw/mods/ironchest/ItemChestChanger.java +++ b/IronChests2/common/cpw/mods/ironchest/ItemChestChanger.java @@ -32,6 +32,8 @@ public class ItemChestChanger extends Item { @Override public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int X, int Y, int Z, int side) { + if (world.isRemote) + return false; TileEntity te=world.getBlockTileEntity(X,Y,Z); TileEntityIronChest newchest; if (te!=null && te instanceof TileEntityIronChest) { @@ -76,6 +78,7 @@ public class ItemChestChanger extends Item { world.setBlockMetadataWithNotify(X, Y, Z, newchest.getType().ordinal()); world.notifyBlocksOfNeighborChange(X, Y, Z, world.getBlockId(X, Y, Z)); world.markBlockNeedsUpdate(X, Y, Z); + world.markBlocksDirty(X, Y, Z, X, Y, Z); stack.stackSize=0; return true; } diff --git a/IronChests2/common/cpw/mods/ironchest/TileEntityIronChest.java b/IronChests2/common/cpw/mods/ironchest/TileEntityIronChest.java index 2817c21..940e813 100644 --- a/IronChests2/common/cpw/mods/ironchest/TileEntityIronChest.java +++ b/IronChests2/common/cpw/mods/ironchest/TileEntityIronChest.java @@ -13,6 +13,8 @@ package cpw.mods.ironchest; import java.util.Arrays; import java.util.Comparator; +import org.lwjgl.input.Mouse; + import net.minecraft.src.EntityPlayer; import net.minecraft.src.IInventory; import net.minecraft.src.ItemStack; @@ -79,7 +81,7 @@ public class TileEntityIronChest extends TileEntity implements IInventory { } protected void sortTopStacks() { - if (!type.isTransparent() || IronChest.proxy.isRemote()) { + if (!type.isTransparent() || (worldObj != null && worldObj.isRemote)) { return; } ItemStack[] tempCopy = new ItemStack[getSizeInventory()]; @@ -303,6 +305,7 @@ public class TileEntityIronChest extends TileEntity implements IInventory { } public TileEntityIronChest applyUpgradeItem(ItemChestChanger itemChestChanger) { + Mouse.setGrabbed(false); if (numUsingPlayers > 0) { return null; } @@ -333,7 +336,8 @@ public class TileEntityIronChest extends TileEntity implements IInventory { return this; } - public Packet getDescriptionPacket() { + @Override + public Packet getAuxillaryInfoPacket() { return PacketHandler.getPacket(this); }