From 54baabba1ecb89de9c317f156c11f1702d05596b Mon Sep 17 00:00:00 2001 From: Christian Weeks Date: Fri, 27 Jan 2012 16:05:42 -0500 Subject: [PATCH] Basic chests into and out of world again --- .../net/minecraft/src/mod_IronChest.java | 7 +++- .../cpw/mods/ironchest/BlockIronChest.java | 9 ++++- .../cpw/mods/ironchest/IronChestType.java | 35 +++++++++++++----- .../cpw/mods/ironchest/ItemIronChest.java | 4 +- .../mods/ironchest/TileEntityIronChest.java | 2 +- .../resources/ic2/sprites/goldchest.png | Bin 0 -> 4284 bytes 6 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 IronChests2/resources/ic2/sprites/goldchest.png 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 (iqWJPr=eqX^1;+2}*_AyqFK6n~;G-1JCVH(_P`W*Ddl>K^H@amR9dmP=8ymAm18@h_d)tUJ zbl2UnoeQrpDT0 zb_Bpdr+@EfQ5Y%4D`s^(f+d13;%VO1wdv`&TcA zWDf;TFZn_*^@)p8EL>=y56%Fma>wx8brHiw!$spq8+gTCq(5u%D)d-*#b*c5N%dK` z)2Rp0|3krwdqumVD9N(Z?KaXVfTO7$;%czLk#;8i zb{lUDA!CZt?V(g63xV^YE@>Osnb?`l8dUM|2q`emQ(mJajkV|#5y-AGZV`UP_;-NA zRZcd+&OlOdnkk)Gnjt(9F>pKwbnJ*8#`9qR_JQg zs)QPJl|NGRd8GYm5`}%gNxwPbxkYK?t@W-UK5944=1@s~U)tLE;3&lb;l|Oqhxf%h z^G|s@Q`Bp!%ajrFM)J1JmWNL~HKFVIfyAdlW|Ui^m3fDe$xAHzVrydDFBD8VWIY^x zYjX2)?P?8bEo$|5x|Qm8E3q%Sbvx~kqv*7UjYJ$p^wH^KF6+-03QA#d(f?&TN1cE%K&_*X7H=-&Fr6Cr(yJoWom`CFgHj-r`Hh=M>f#-TQ- z80fFYD?Lp3X@PL+*FsdFa!`4zv6&qcYUNXUkM-zNy@wpvh1UIs{D#VfDTMijjZMFq z?iE^^cDxXKp=zRPGCcZW^x5cifnt%m?2O!2(N@t+(Q=#1&Cr{Y_$qw6hhfvk%@_82 z_^vx~H#j_9)^%1gR(6^A zeY;hJmwQTk-g^lPB_9+@#ER|Z?|tlli&(MPoY15$$&vA0#zmSV%%jk)TY}PV(wVk( zGYxGOAvH&+eRhpM8h1<9HP+RxEy*p}-}-Q^r|oUqh7DRdTgV63wnZ`Jv4qUd5Jr<$yWlN*dLJKHfgGfb@jYMB*&MQT&qG zfq}SbSl0Kylh&Q&q%4_$f8|S0kq!##qK()?FE)j1-fm3Tw#*6z+ znb+>x=G8}b3x}EdMmhJskM3=S`0h|!Q*FjY>@3XeI+@!^+b_4G{>5XtHCU69>sbiw zd906SMHfOhxfA@~zbROF(o$VJ(BVGrIqA9mW$9|M16^)S-j_VOJG682EwsxvExW(} z=n|y!MnwsoF?d8r`5U$NE|1E0W235?$mhsk$bU$sy~)K^)C}>?#2$Be*B^!NQv`>u zqf?D{uL;%=Ytt#uDUV~roSrr~TxH`Nt|DZ83{cS1iM4xb({;7hR{R5*zZI;@%9d)E>X_p}d(c4>VUyXm-L~+h$}PWdLEqHQvOk#* zcRuYbtnYC2?br+JZVmT5+U734Hn#Yy`@v7P^XaK#W%b4G!!ZA&!K2^HY>Sb1MNY>? zI_E+}_UgLKyKeo`+SQ&zEGA58I-D)c?k_y@=?N)4oLJC5qKJzbKg;}`PLCi@FGwGW zr;Xn!zOJFHyry~gbo-};f-olQEDIJGk~HjzJ3mUobs{l@QM#p$=6 z9nP18p}wI@uiu5r%R2wEIo|CJSqS0XFJGoN-+0LPNc7z6Z{u&PkCn&SoY~puWTg3r zCvNgr2^aGwpPPZDDF9(t0Kmim@b~-zw*d&20pObp04n(au={7-8q@=Te9KTr8yPzP zyaBUctx;9v#h9CSH>vAao(pb`37;JeOxZI&x28=bx*0-^_ z46y6hbxZ{eCXvZmO6l;>3ay@@^qT?X^d9wzqIt zBpbo4ZwJtxJM54jepdhqCFw<~ z6T@;G74g1|A6&+dB+n-necA%}GGuz@jT?eSYBBx};r1v+^Yp!H=Fn%6OTh38p^=IT@t9W2K$b^D?tZFfL7L>W3Yc zZ6_JEm`i+VDDkdqj&V3%BQz> znRgNZuzeYTrOW*l$BkReG+vlDCVmmu8Hn9f#{DPn#T`E^3QKXclCqEaO z?w3>T&5C{aXC%8T)w?lb{?mPr8G_)9A( zGj3w{xu{Wr+WqHJg^K+p3a(-{N#6T`CV$i1G?0*^Fj}>u__lAKo%i`v1_9C5J}A%B z{b9mVor>g}nm*S%az#IL-%+q!RQ<$z$P&jykEZW^kS?R9$8lZ`8_(6~=dnGr!OrjS z>Qr)o%O^W2#$1g}7Ab#kkbh~v%b%%S?-;4y5#RHX6==&mkSW!k%n;}mEk>HH<2E9Rfy(J->w6jHpQ`1Cj#LR_Pm+iIYa zFpY`Ss?q){*x-?2jiHjLYmn&a7QUuyZRZ_F>!NHU);xgxZ;3IU9ue1y%Xy&=GE)s@ zLEdu`aW{agk+M(5;Y%z&(?y8zx(bCH#SuJPS(E#+$jlKUHuz z+jZSip5|h=&^__ql9YsCW0SUl7M~=;nPtZsM#ss-yxJV1L@1N|lAKydp6g^VOLl#E zz8%}?Dg2`tiOl7i9^5{eu#>)Q>s^|Aj>?{09{E3WQSqg@6>=}ZN@vAqJ5*w zu<{VfvB2ncB@~ejMHEJTWoILup*$5_JG6$W=mNbV*vx(+Z(3@j8C0J#?`7i{MSb(S zgjt|gT&WeA3o+N=ZUEA(@lkAW