diff --git a/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java b/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java index 40df9a5..c3c2347 100644 --- a/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java +++ b/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java @@ -19,6 +19,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -227,7 +228,7 @@ public class BlockIronChest extends BlockContainer { entityitem.motionZ = (float) random.nextGaussian() * f3; if (itemstack.hasTagCompound()) { - entityitem.func_92014_d().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); } world.spawnEntityInWorld(entityitem); } @@ -247,4 +248,19 @@ public class BlockIronChest extends BlockContainer { } } } + + @Override + public float getExplosionResistance(Entity par1Entity, World world, int x, int y, int z, double explosionX, double explosionY, double explosionZ) + { + TileEntity te = world.getBlockTileEntity(x, y, z); + if (te instanceof TileEntityIronChest) + { + TileEntityIronChest teic = (TileEntityIronChest) te; + if (teic.getType().isExplosionResistant()) + { + return 10000f; + } + } + return super.getExplosionResistance(par1Entity, world, x, y, z, explosionX, explosionY, explosionZ); + } } diff --git a/IronChests2/common/cpw/mods/ironchest/IronChestType.java b/IronChests2/common/cpw/mods/ironchest/IronChestType.java index e081787..39c094f 100644 --- a/IronChests2/common/cpw/mods/ironchest/IronChestType.java +++ b/IronChests2/common/cpw/mods/ironchest/IronChestType.java @@ -28,6 +28,7 @@ public enum IronChestType { COPPER(45, 9, false, "Copper Chest", "copperchest.png", 3, Arrays.asList("ingotCopper"), TileEntityCopperChest.class, "mmmmCmmmm"), SILVER(72, 9, false, "Silver Chest", "silverchest.png", 4, Arrays.asList("ingotSilver"), TileEntitySilverChest.class, "mmmm3mmmm", "mGmG0GmGm"), CRYSTAL(108, 12, true, "Crystal Chest", "crystalchest.png", 5, Arrays.asList("blockGlass"), TileEntityCrystalChest.class, "GGGGPGGGG"), + OBSIDIAN(108, 12, false, "Obsidian Chest", "obsidianchest.png", 6, Arrays.asList("obsidian"), TileEntityObsidianChest.class, "OOOO4OOOO"), WOOD(0, 0, false, "", "", -1, Arrays.asList("blockPlanks"), null); int size; private int rowLength; @@ -194,4 +195,9 @@ public enum IronChestType { return validateMeta(ordinal()) == ordinal(); } + public boolean isExplosionResistant() + { + return this == OBSIDIAN; + } + } diff --git a/IronChests2/common/cpw/mods/ironchest/TileEntityObsidianChest.java b/IronChests2/common/cpw/mods/ironchest/TileEntityObsidianChest.java new file mode 100644 index 0000000..5f03eb9 --- /dev/null +++ b/IronChests2/common/cpw/mods/ironchest/TileEntityObsidianChest.java @@ -0,0 +1,9 @@ +package cpw.mods.ironchest; + +public class TileEntityObsidianChest extends TileEntityIronChest { + + public TileEntityObsidianChest() + { + super(IronChestType.OBSIDIAN); + } +} diff --git a/IronChests2/common/cpw/mods/ironchest/client/GUIChest.java b/IronChests2/common/cpw/mods/ironchest/client/GUIChest.java index 31b4b4e..1282a8d 100644 --- a/IronChests2/common/cpw/mods/ironchest/client/GUIChest.java +++ b/IronChests2/common/cpw/mods/ironchest/client/GUIChest.java @@ -22,10 +22,13 @@ import cpw.mods.ironchest.TileEntityIronChest; public class GUIChest extends GuiContainer { public enum GUI { - IRON(184, 202, "/cpw/mods/ironchest/sprites/ironcontainer.png", IronChestType.IRON), GOLD(184, 256, "/cpw/mods/ironchest/sprites/goldcontainer.png", - IronChestType.GOLD), DIAMOND(238, 256, "/cpw/mods/ironchest/sprites/diamondcontainer.png", IronChestType.DIAMOND), COPPER(184, 184, - "/cpw/mods/ironchest/sprites/coppercontainer.png", IronChestType.COPPER), SILVER(184, 238, "/cpw/mods/ironchest/sprites/silvercontainer.png", - IronChestType.SILVER), CRYSTAL(238, 256, "/cpw/mods/ironchest/sprites/diamondcontainer.png", IronChestType.CRYSTAL); + IRON(184, 202, "/cpw/mods/ironchest/sprites/ironcontainer.png", IronChestType.IRON), + GOLD(184, 256, "/cpw/mods/ironchest/sprites/goldcontainer.png", IronChestType.GOLD), + DIAMOND(238, 256, "/cpw/mods/ironchest/sprites/diamondcontainer.png", IronChestType.DIAMOND), + COPPER(184, 184, "/cpw/mods/ironchest/sprites/coppercontainer.png", IronChestType.COPPER), + SILVER(184, 238, "/cpw/mods/ironchest/sprites/silvercontainer.png", IronChestType.SILVER), + CRYSTAL(238, 256, "/cpw/mods/ironchest/sprites/diamondcontainer.png", IronChestType.CRYSTAL), + OBSIDIAN(238, 256, "/cpw/mods/ironchest/sprites/diamondcontainer.png", IronChestType.OBSIDIAN); private int xSize; private int ySize; diff --git a/IronChests2/common/cpw/mods/ironchest/client/TileEntityIronChestRenderer.java b/IronChests2/common/cpw/mods/ironchest/client/TileEntityIronChestRenderer.java index 2362649..34cc23a 100644 --- a/IronChests2/common/cpw/mods/ironchest/client/TileEntityIronChestRenderer.java +++ b/IronChests2/common/cpw/mods/ironchest/client/TileEntityIronChestRenderer.java @@ -39,6 +39,7 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; @@ -75,31 +76,22 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer { public byte getMiniBlockCountForItemStack(ItemStack stack) { return SignedBytes.saturatedCast(Math.min(stack.stackSize / 32, 15) + 1); } + @Override public byte getMiniItemCountForItemStack(ItemStack stack) { return SignedBytes.saturatedCast(Math.min(stack.stackSize / 32, 7) + 1); - }; + } + @Override public boolean shouldBob() { return false; - }; + } + @Override public boolean shouldSpreadItems() { return false; - }; + } }; itemRenderer.setRenderManager(RenderManager.instance); } - 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; @@ -176,7 +168,7 @@ public class TileEntityIronChestRenderer extends TileEntitySpecialRenderer { glTranslatef(shiftX, shiftY, shiftZ); glRotatef(timeD, 0.0F, 1.0F, 0.0F); glScalef(blockScale, blockScale, blockScale); - customitem.func_92013_a(item); + customitem.func_92058_a(item); itemRenderer.doRenderItem(customitem, 0, 0, 0, 0, 0); glPopMatrix(); } diff --git a/IronChests2/resources/cpw/mods/ironchest/sprites/block_textures.png b/IronChests2/resources/cpw/mods/ironchest/sprites/block_textures.png index 00f4e83..8b525c1 100644 Binary files a/IronChests2/resources/cpw/mods/ironchest/sprites/block_textures.png and b/IronChests2/resources/cpw/mods/ironchest/sprites/block_textures.png differ diff --git a/IronChests2/resources/cpw/mods/ironchest/sprites/obsidianchest.png b/IronChests2/resources/cpw/mods/ironchest/sprites/obsidianchest.png new file mode 100644 index 0000000..2106d76 Binary files /dev/null and b/IronChests2/resources/cpw/mods/ironchest/sprites/obsidianchest.png differ diff --git a/IronChests2/resources/texturesheet.xcf b/IronChests2/resources/texturesheet.xcf index b25e6a0..a0730b0 100644 Binary files a/IronChests2/resources/texturesheet.xcf and b/IronChests2/resources/texturesheet.xcf differ