From ab288a587dbc28a26f53ed4256a3b66425a5503a Mon Sep 17 00:00:00 2001 From: pahimar Date: Sat, 1 Feb 2014 21:23:47 -0500 Subject: [PATCH] Added subtypes to Alchemical Bags, played with the texture a bit to visually distinguish the different types better (omg texture artists please help me) --- .../gui/inventory/GuiAlchemicalBag.java | 8 +-- .../pahimar/ee3/item/ItemAlchemicalBag.java | 54 ++++++++--------- .../ee3/item/crafting/RecipesVanilla.java | 5 +- .../ee3/recipe/AludelRecipeInputPair.java | 57 ------------------ .../textures/items/alchemicalBag.closed.png | Bin 0 -> 349 bytes .../ee3/textures/items/alchemicalBag.open.png | Bin 0 -> 360 bytes .../items/alchemicalBag.symbolTier1.png | Bin 0 -> 148 bytes .../items/alchemicalBag.symbolTier2.png | Bin 0 -> 153 bytes .../items/alchemicalBag.symbolTier3.png | Bin 0 -> 181 bytes .../textures/items/alchemicalBagClosed.png | Bin 525 -> 0 bytes .../items/alchemicalBagClosedDrawString.png | Bin 218 -> 0 bytes .../ee3/textures/items/alchemicalBagOpen.png | Bin 532 -> 0 bytes .../items/alchemicalBagOpenDrawString.png | Bin 231 -> 0 bytes .../xcf/items/alchemicalBagClosed.xcf | Bin 1321 -> 2098 bytes 14 files changed, 31 insertions(+), 93 deletions(-) delete mode 100644 src/main/java/com/pahimar/ee3/recipe/AludelRecipeInputPair.java create mode 100644 src/main/resources/assets/ee3/textures/items/alchemicalBag.closed.png create mode 100644 src/main/resources/assets/ee3/textures/items/alchemicalBag.open.png create mode 100644 src/main/resources/assets/ee3/textures/items/alchemicalBag.symbolTier1.png create mode 100644 src/main/resources/assets/ee3/textures/items/alchemicalBag.symbolTier2.png create mode 100644 src/main/resources/assets/ee3/textures/items/alchemicalBag.symbolTier3.png delete mode 100644 src/main/resources/assets/ee3/textures/items/alchemicalBagClosed.png delete mode 100644 src/main/resources/assets/ee3/textures/items/alchemicalBagClosedDrawString.png delete mode 100644 src/main/resources/assets/ee3/textures/items/alchemicalBagOpen.png delete mode 100644 src/main/resources/assets/ee3/textures/items/alchemicalBagOpenDrawString.png diff --git a/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalBag.java b/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalBag.java index a9addf32..17598d7c 100644 --- a/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalBag.java +++ b/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalBag.java @@ -3,6 +3,7 @@ package com.pahimar.ee3.client.gui.inventory; import com.pahimar.ee3.helper.ItemStackNBTHelper; import com.pahimar.ee3.inventory.ContainerAlchemicalBag; import com.pahimar.ee3.lib.Strings; +import com.pahimar.ee3.lib.Textures; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.inventory.GuiContainer; @@ -21,10 +22,8 @@ import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) public class GuiAlchemicalBag extends GuiContainer { - public GuiAlchemicalBag(InventoryPlayer inventoryPlayer) { - super(new ContainerAlchemicalBag(inventoryPlayer)); xSize = 248; ySize = 186; @@ -33,7 +32,6 @@ public class GuiAlchemicalBag extends GuiContainer @Override protected void drawGuiContainerForegroundLayer(int x, int y) { - fontRenderer.drawString(StatCollector.translateToLocal(Strings.CONTAINER_ALCHEMICAL_BAG_NAME), 8, 6, 4210752); fontRenderer.drawString(StatCollector.translateToLocal(Strings.CONTAINER_INVENTORY), 44, ySize - 96 + 2, 4210752); } @@ -41,11 +39,10 @@ public class GuiAlchemicalBag extends GuiContainer @Override protected void drawGuiContainerBackgroundLayer(float opacity, int x, int y) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); // this.mc.getTextureManager().bindTexture(...) - //this.mc.getTextureManager().bindTexture(Textures.GUI_ALCHEMICAL_STORAGE); + this.mc.getTextureManager().bindTexture(Textures.GUI_ALCHEMICAL_STORAGE_SMALL); int xStart = (width - xSize) / 2; int yStart = (height - ySize) / 2; @@ -55,7 +52,6 @@ public class GuiAlchemicalBag extends GuiContainer @Override public void onGuiClosed() { - super.onGuiClosed(); if (mc.thePlayer != null) diff --git a/src/main/java/com/pahimar/ee3/item/ItemAlchemicalBag.java b/src/main/java/com/pahimar/ee3/item/ItemAlchemicalBag.java index 9046c174..62967889 100644 --- a/src/main/java/com/pahimar/ee3/item/ItemAlchemicalBag.java +++ b/src/main/java/com/pahimar/ee3/item/ItemAlchemicalBag.java @@ -9,12 +9,16 @@ import com.pahimar.ee3.lib.Strings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Icon; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import java.util.List; + /** * Equivalent-Exchange-3 *

@@ -24,7 +28,7 @@ import net.minecraft.world.World; */ public class ItemAlchemicalBag extends ItemEE implements IDyeable { - private static final String[] ALCHEMICAL_BAG_ICONS = {"Open", "OpenDrawString", "Closed", "ClosedDrawString"}; + private static final String[] ALCHEMICAL_BAG_ICONS = {"open", "closed", "symbolTier1", "symbolTier2", "symbolTier3"}; @SideOnly(Side.CLIENT) private Icon[] icons; @@ -32,9 +36,21 @@ public class ItemAlchemicalBag extends ItemEE implements IDyeable public ItemAlchemicalBag(int id) { super(id); + this.setHasSubtypes(true); this.setUnlocalizedName(Strings.ALCHEMICAL_BAG_NAME); } + @Override + @SuppressWarnings({"rawtypes", "unchecked"}) + @SideOnly(Side.CLIENT) + public void getSubItems(int id, CreativeTabs creativeTab, List list) + { + for (int meta = 0; meta < 3; ++meta) + { + list.add(new ItemStack(id, 1, meta)); + } + } + @Override @SideOnly(Side.CLIENT) public void registerIcons(IconRegister iconRegister) @@ -43,7 +59,7 @@ public class ItemAlchemicalBag extends ItemEE implements IDyeable for (int i = 0; i < ALCHEMICAL_BAG_ICONS.length; ++i) { - icons[i] = iconRegister.registerIcon(Strings.RESOURCE_PREFIX + Strings.ALCHEMICAL_BAG_NAME + ALCHEMICAL_BAG_ICONS[i]); + icons[i] = iconRegister.registerIcon(Strings.RESOURCE_PREFIX + Strings.ALCHEMICAL_BAG_NAME + "." + ALCHEMICAL_BAG_ICONS[i]); } } @@ -75,10 +91,9 @@ public class ItemAlchemicalBag extends ItemEE implements IDyeable @Override public Icon getIcon(ItemStack itemStack, int renderPass) { - // If the bag is open - if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) + if (renderPass == 0) { - if (renderPass != 1) + if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) { return icons[0]; } @@ -87,17 +102,9 @@ public class ItemAlchemicalBag extends ItemEE implements IDyeable return icons[1]; } } - // Else, the bag is closed else { - if (renderPass != 1) - { - return icons[2]; - } - else - { - return icons[3]; - } + return icons[2 + MathHelper.clamp_int(itemStack.getItemDamage(), 0, 3)]; } } @@ -105,21 +112,14 @@ public class ItemAlchemicalBag extends ItemEE implements IDyeable @SideOnly(Side.CLIENT) public int getColorFromItemStack(ItemStack itemStack, int renderPass) { - if (renderPass == 1) - { - return Integer.parseInt(Colours.PURE_WHITE, 16); - } - else - { - int bagColor = this.getColor(itemStack); + int bagColor = this.getColor(itemStack); - if (bagColor < 0) - { - bagColor = Integer.parseInt(Colours.PURE_WHITE, 16); - } - - return bagColor; + if (bagColor < 0) + { + bagColor = Integer.parseInt(Colours.PURE_WHITE, 16); } + + return bagColor; } @Override diff --git a/src/main/java/com/pahimar/ee3/item/crafting/RecipesVanilla.java b/src/main/java/com/pahimar/ee3/item/crafting/RecipesVanilla.java index fc6e8da6..81cb9d9f 100644 --- a/src/main/java/com/pahimar/ee3/item/crafting/RecipesVanilla.java +++ b/src/main/java/com/pahimar/ee3/item/crafting/RecipesVanilla.java @@ -26,7 +26,6 @@ public class RecipesVanilla GameRegistry.addRecipe(new ItemStack(ModBlocks.chalk), new Object[]{"cc", "cc", 'c', new ItemStack(ModItems.chalk)}); GameRegistry.addRecipe(new ItemStack(ModBlocks.glassBell), new Object[]{"iii", "i i", "i i", 'i', Block.glass}); - GameRegistry.addRecipe(new ItemStack(ModBlocks.aludelBase), new Object[]{"iii", "sis", "iii", 'i', Item.ingotIron, 's', Block.stone}); GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.infusedPlanks, 4, 0), new ItemStack(ModBlocks.infusedWood, 1, 0)); GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.infusedPlanks, 4, 1), new ItemStack(ModBlocks.infusedWood, 1, 1)); @@ -36,7 +35,8 @@ public class RecipesVanilla GameRegistry.addRecipe(new ItemStack(ModBlocks.alchemicalChest.blockID, 1, 1), new Object[]{"ppp", "p p", "ppp", 'p', new ItemStack(ModBlocks.infusedPlanks, 1, 1)}); GameRegistry.addRecipe(new ItemStack(ModBlocks.alchemicalChest.blockID, 1, 2), new Object[]{"ppp", "p p", "ppp", 'p', new ItemStack(ModBlocks.infusedPlanks, 1, 2)}); - CraftingHelper.addShapedOreRecipe(new ItemStack(ModBlocks.calcinator), new Object[]{"iii", "sis", "s s", 'i', Item.ingotIron, 's', "stone"}); + CraftingHelper.addShapedOreRecipe(new ItemStack(ModBlocks.calcinator), new Object[]{"i i", "sis", "s s", 'i', Item.ingotIron, 's', "stone"}); + CraftingHelper.addShapedOreRecipe(new ItemStack(ModBlocks.aludelBase), new Object[]{"iii", "sis", "iii", 'i', Item.ingotIron, 's', "stone"}); CraftingHelper.addShapedOreRecipe(new ItemStack(ModBlocks.researchStation), new Object[]{"ipi", " s ", "sss", 'p', "plankWood", 'i', Item.ingotIron, 's', "stone"}); } @@ -47,7 +47,6 @@ public class RecipesVanilla GameRegistry.addShapelessRecipe(new ItemStack(ModItems.alchemicalFuel, 9, 2), new ItemStack(ModBlocks.alchemicalFuel, 1, 2)); GameRegistry.addRecipe(new ItemStack(ModItems.inertStone), new Object[]{"sis", "igi", "sis", 's', Block.stone, 'i', Item.ingotIron, 'g', Item.ingotGold}); - GameRegistry.addRecipe(new ItemStack(ModItems.miniumStone), new Object[]{"sss", "sis", "sss", 's', ModItems.miniumShard, 'i', ModItems.inertStone}); // TODO Proper recipes for the different bag sizes // TODO Also, decide if we want different sizes, and appropriate recipes diff --git a/src/main/java/com/pahimar/ee3/recipe/AludelRecipeInputPair.java b/src/main/java/com/pahimar/ee3/recipe/AludelRecipeInputPair.java deleted file mode 100644 index 1d966c61..00000000 --- a/src/main/java/com/pahimar/ee3/recipe/AludelRecipeInputPair.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.pahimar.ee3.recipe; - -import com.pahimar.ee3.helper.ItemHelper; -import com.pahimar.ee3.helper.LogHelper; -import com.pahimar.ee3.item.ItemAlchemicalDust; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -public class AludelRecipeInputPair -{ - public final ItemStack inputStack; - public final ItemStack dustStack; - - public AludelRecipeInputPair(ItemStack inputStack, ItemStack dustStack) - { - this.inputStack = inputStack.copy(); - this.dustStack = dustStack.copy(); - } - - @Override - public boolean equals(Object object) - { - if (object instanceof AludelRecipeInputPair) - { - AludelRecipeInputPair recipeInputPair = (AludelRecipeInputPair) object; - - LogHelper.debug(String.format("input - this.itemId: %s, object.inputStack.itemId: %s", this.inputStack.itemID, recipeInputPair.inputStack.itemID)); - LogHelper.debug(String.format("input - this.meta: %s, object.inputStack.meta: %s", this.inputStack.getItemDamage(), recipeInputPair.inputStack.getItemDamage())); - LogHelper.debug(String.format("input - this.stackSize: %s, object.inputStack.stackSize: %s", this.inputStack.stackSize, recipeInputPair.inputStack.stackSize)); - - LogHelper.debug(String.format("dust - this.itemId: %s, object.inputStack.itemId: %s", this.dustStack.itemID, recipeInputPair.dustStack.itemID)); - LogHelper.debug(String.format("dust - this.meta: %s, object.inputStack.meta: %s", this.dustStack.getItemDamage(), recipeInputPair.dustStack.getItemDamage())); - LogHelper.debug(String.format("dust - this.stackSize: %s, object.inputStack.stackSize: %s", this.dustStack.stackSize, recipeInputPair.dustStack.stackSize)); - - if (this.inputStack.itemID == recipeInputPair.inputStack.itemID && (this.inputStack.getItemDamage() == recipeInputPair.inputStack.getItemDamage() || this.inputStack.getItemDamage() == OreDictionary.WILDCARD_VALUE || recipeInputPair.inputStack.getItemDamage() == OreDictionary.WILDCARD_VALUE) && this.inputStack.stackSize <= recipeInputPair.inputStack.stackSize) - { - if (this.dustStack.itemID == recipeInputPair.dustStack.itemID && this.dustStack.getItemDamage() == recipeInputPair.dustStack.getItemDamage() && this.dustStack.stackSize <= recipeInputPair.dustStack.stackSize) - { - return true; - } - } - } - - return false; - } - - public boolean isValid() - { - return inputStack != null && dustStack != null && dustStack.getItem() instanceof ItemAlchemicalDust; - } - - @Override - public String toString() - { - return String.format("Input stack: %s, Dust stack: %s", ItemHelper.toString(this.inputStack), ItemHelper.toString(this.dustStack)); - } -} diff --git a/src/main/resources/assets/ee3/textures/items/alchemicalBag.closed.png b/src/main/resources/assets/ee3/textures/items/alchemicalBag.closed.png new file mode 100644 index 0000000000000000000000000000000000000000..db0831f808da6b0a45b7c3217d3e543e1d3215e1 GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPq6BDDnbkUWEfk2^Go-U3d7N@sPHWX@6;BnordBIIn zhU?fZ?u!4$1#HsC4s8sOJ}P;Ki|y`?-Dm$9&EM0)Vq{=+Y))wCLLG00hOK5*vDZ^y z-t6&S^IGbhB}0RN(yz-ViILN|RjOCXDL8RhJm0YHb+i$;hvLc|Pmc3_vT?t?&9F>{ z{nx(Z``*{TJ0MYP=F7ZP zm71mq?eFMF=&{t7t+_1xC*8q{S?s~y;}(56rkbf=4&6Mi%g_+?ipgX0`{;^l_NZ)u pkLI86B}=rOpRd`l!{WP8yw9etV@o*hxB-35;OXk;vd$@?2>@w&g);yE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ee3/textures/items/alchemicalBag.open.png b/src/main/resources/assets/ee3/textures/items/alchemicalBag.open.png new file mode 100644 index 0000000000000000000000000000000000000000..54183490151587bb6ecf2125088022e5cd786537 GIT binary patch literal 360 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPq6BDDna@4iR^FX1mo-U3d7N>iIcCTwy5Rfr5&sZ$d z)->bBt!; z117#le;zM9QaNwC#cA$dLwOs8Q2o9O-))ynx$#|=A>g`c-{X$zna_W^9hx_*c#6jh zFRi6={?p@JHARz4RtgKY2vjgDb?sK#b435sb(WWWT`Y<$YhFi%2s<6Q6Z-oz7lXpm zJ%UTl{uKT9(?OGU(Wewe7M;^U-wsNfKhtAr(7#gEB{EHT%^_d_FnGH9xvX^>bP0l+XkKvPvz8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ee3/textures/items/alchemicalBag.symbolTier2.png b/src/main/resources/assets/ee3/textures/items/alchemicalBag.symbolTier2.png new file mode 100644 index 0000000000000000000000000000000000000000..22da191d66b6f6e95336d95d2aaaa279dda3bf50 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPq6BDC?;u|)h`#>QzPZ!4!i_^&o60C=1bMEc=`TyD3 s+5dx&D*W2b5c&AP?t}-)jmsDqZa!62ypx*09H@iA)78&qol`;+0BHa&-2eap literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ee3/textures/items/alchemicalBag.symbolTier3.png b/src/main/resources/assets/ee3/textures/items/alchemicalBag.symbolTier3.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2f86f292e8e20ae37df0d39698312f9ec8c76b GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPq6BDC?Ud>K^KcJA4r;B5V#p&b(3D(0529GA)*i-qr zUgGxk>(eKy1Wz|q6KVTI&u(MH2BV2K1w75b7X@qn_NV5dNA}4}jt3eAbW;1}$?m_tf3SkcbdcB@MolY6`FF3n;H2VYG-((m~;NL6!x#OdW z?RMMGX0rfTmc`TUF@GQ6U>}YS;qrP+tD52YW!tdZM~GeU#=!S0+}~vQ@pBA7tD520 zZ$vE0u;p@T&aLVe1}L8QI6c9S0mif_k<06GC_fwy>GpR_uvjbrn9t{YC1L=c=j|+h zCerD2a2!X3UZGyE`<~}fE|)(wv(adfPNxkV`b>eOzh19*cCOWGg71zuED)0sC)tIA P00000NkvXXu0mjf9Twjr diff --git a/src/main/resources/assets/ee3/textures/items/alchemicalBagClosedDrawString.png b/src/main/resources/assets/ee3/textures/items/alchemicalBagClosedDrawString.png deleted file mode 100644 index b1e508a0473691b532981b5ba8e4bb02770bdcec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#GUy~NYkmHjR=i;%Dq<81qVK%sC?7sn8b z)5!@EtXJ3@zw!LnG+Ux2cX>kPRi6K=A4&dm-@W*h;UlAzIMc)b&$>%U?68oKc%mvH zaZAj|And5|pZ)(B7N-4myz{G2s_XnzmFjM-ho)RB7#P+amkRtYrQ`s#g2B_(&t;uc GLK6V)K1D15 diff --git a/src/main/resources/assets/ee3/textures/items/alchemicalBagOpen.png b/src/main/resources/assets/ee3/textures/items/alchemicalBagOpen.png deleted file mode 100644 index 3576d11914b52d4c5a8c2ffa12d93b541cb69244..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP))f7%9_ul{C zyE}mdj^o77xo)>BWP627G@H$G8>`i-)JWM}B*HKZa|TJxah%vN3~bvLsljM8icQnR zFbt;CsccfhFr?9F&}y|3DzinLI%G&%J<8?T-Vpc8H4>}_p#aj$&b%_FCM}3Jg&c4d^~-c zTmZPP8|%8Bj{keI%b&k+@L`^czw|0>y@T037;oVHp^If%LXmYUA6&7mX-qCEY`uk> zJ2?3?=j(Zec5j|elU}3m`y>HwV*l(GfE`r@;30ad`M#gcAi-+20${mZ<_wRz^Bh+I z2!cQwn#=@XJRZ~ObVTkQ1VKQv*-XO(()R!`91ba$%c(f?7dFUvy!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BWyX%*Zfnjs#GUy~NYkmHjR=i;%EzfUA8AP$8XF$h(RDG9`{XIRegubd$a7vn!r3J754AZ#`Q39|t)&}fGL zKsBnAO2Hc$pkC(tD<0jOdu2_Sww!%~J{AeWRggb?C@-18r(3q5?n~gjpCEm|{@Hm~u83 IvL0jt04!Y#@c;k-