diff --git a/IronChests2/client/net/minecraft/src/mod_IronChest.java b/IronChests2/client/net/minecraft/src/mod_IronChest.java index 8fee928..f597fa5 100644 --- a/IronChests2/client/net/minecraft/src/mod_IronChest.java +++ b/IronChests2/client/net/minecraft/src/mod_IronChest.java @@ -5,6 +5,7 @@ import java.io.File; import cpw.mods.ironchest.BlockIronChest; import cpw.mods.ironchest.IronChestType; import cpw.mods.ironchest.ItemIronChest; +import cpw.mods.ironchest.client.TileEntityIronChestRenderer; import net.minecraft.client.Minecraft; import net.minecraft.src.forge.Configuration; import net.minecraft.src.forge.MinecraftForgeClient; @@ -41,9 +42,11 @@ public class mod_IronChest extends BaseModMp { } ModLoader.RegisterBlock(ironChestBlock, ItemIronChest.class); - IronChestType.registerTileEntities(); + IronChestType.registerTranslations(); + IronChestType.registerTileEntities(TileEntityIronChestRenderer.class); IronChestType.registerRecipes(ironChestBlock); - + + System.out.printf("Item : %s\n", Item.itemsList[ironChestBlock.blockID]); MinecraftForgeClient.preloadTexture("ic2/sprites/ironchest_block_tex.png"); } diff --git a/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java b/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java index 6440bb7..1ad6422 100644 --- a/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java +++ b/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java @@ -1,5 +1,7 @@ package cpw.mods.ironchest; +import java.util.Random; + import net.minecraft.src.BlockContainer; import net.minecraft.src.EntityLiving; import net.minecraft.src.IBlockAccess; @@ -13,6 +15,7 @@ public class BlockIronChest extends BlockContainer implements ITextureProvider { public BlockIronChest(int id) { super(id, Material.iron); + setBlockName("IronChest"); setHardness(3.0F); } @@ -53,7 +56,7 @@ public class BlockIronChest extends BlockContainer implements ITextureProvider { case 0: case 1: return typ.getTextureRow()*16+1; - case 2: + case 3: return typ.getTextureRow()*16+2; default: return typ.getTextureRow()*16; @@ -89,4 +92,8 @@ public class BlockIronChest extends BlockContainer implements ITextureProvider { world.markBlockNeedsUpdate(i, j, k); } } + @Override + protected int damageDropped(int i) { + return i; + } } diff --git a/IronChests2/common/cpw/mods/ironchest/IronChestType.java b/IronChests2/common/cpw/mods/ironchest/IronChestType.java index 2dcbc6f..699477a 100644 --- a/IronChests2/common/cpw/mods/ironchest/IronChestType.java +++ b/IronChests2/common/cpw/mods/ironchest/IronChestType.java @@ -7,11 +7,12 @@ import net.minecraft.src.Item; import net.minecraft.src.ItemStack; import net.minecraft.src.ModLoader; import net.minecraft.src.TileEntity; +import net.minecraft.src.TileEntitySpecialRenderer; import net.minecraft.src.mod_IronChest; public enum IronChestType { - IRON(54, "IronChest", "ironchest.png", 0, Item.ingotIron, TileEntityIronChest.class, "mmmmPmmmm"), - GOLD(81, "GoldChest", "goldchest.png", 1, Item.ingotGold, TileEntityGoldChest.class, "mmmmPmmmm"); + IRON(54, "Iron Chest", "ironchest.png", 0, Item.ingotIron, TileEntityIronChest.class, "mmmmPmmmm"), + GOLD(81, "Gold Chest", "goldchest.png", 1, Item.ingotGold, TileEntityGoldChest.class, "mmmmPmmmm"); // DIAMOND(108,"DiamondChest","diamondchest.png",2); int size; String friendlyName; @@ -24,7 +25,7 @@ public enum IronChestType { IronChestType(int size, String friendlyName, String modelTexture, int textureRow, Item mat, Class clazz, String... recipes) { this.size = size; this.friendlyName = friendlyName; - this.modelTexture = modelTexture; + this.modelTexture = "ic2/sprites/"+modelTexture; this.textureRow = textureRow; this.clazz = clazz; this.mat = mat; @@ -64,24 +65,40 @@ public enum IronChestType { return null; } - public static void registerTileEntities() { + public static void registerTileEntities(Class renderer) { for (IronChestType typ : values()) { - System.out.printf("Registering %s\n",typ.friendlyName); - ModLoader.RegisterTileEntity(typ.clazz, typ.friendlyName); + try { + if (renderer!=null) { + ModLoader.RegisterTileEntity(typ.clazz, typ.name(),renderer.newInstance()); + } else { + ModLoader.RegisterTileEntity(typ.clazz, typ.name()); + } + } catch (InstantiationException e) { + // unpossible + e.printStackTrace(); + } catch (IllegalAccessException e) { + // unpossible + e.printStackTrace(); + } } } + public static void registerTranslations() { + for (IronChestType typ : values()) { + ModLoader.AddLocalization(typ.name()+".name", typ.friendlyName); + } + } public static void registerRecipes(BlockIronChest blockResult) { ItemStack previous=new ItemStack(Block.chest); for (IronChestType typ : values()) { for (String recipe : typ.recipes) { - addRecipe(new ItemStack(blockResult, typ.ordinal()), recipe, 'm', typ.mat, 'P', previous, 'G', Block.glass, 'C', Block.chest); + String[] recipeSplit=new String[] { recipe.substring(0,3),recipe.substring(3,6), recipe.substring(6,9) }; + addRecipe(new ItemStack(blockResult, 1, typ.ordinal()), recipeSplit, 'm', typ.mat, 'P', previous, 'G', Block.glass, 'C', Block.chest); } - previous=new ItemStack(blockResult,typ.ordinal()); + previous=new ItemStack(blockResult,1,typ.ordinal()); } } private static void addRecipe(ItemStack is, Object... parts) { - System.out.printf("Recipe : %s\n",Arrays.asList(parts)); ModLoader.AddRecipe(is, parts); } } \ No newline at end of file diff --git a/IronChests2/common/cpw/mods/ironchest/ItemIronChest.java b/IronChests2/common/cpw/mods/ironchest/ItemIronChest.java index 5e3059d..7848cfb 100644 --- a/IronChests2/common/cpw/mods/ironchest/ItemIronChest.java +++ b/IronChests2/common/cpw/mods/ironchest/ItemIronChest.java @@ -13,7 +13,7 @@ public class ItemIronChest extends ItemBlock { @Override public int getMetadata(int i) { - if (i<=IronChestType.values().length) { + if (i