diff --git a/ee3_common/ee3/common/core/handlers/ConfigurationHandler.java b/ee3_common/ee3/common/core/handlers/ConfigurationHandler.java index 294d66cc..1ce26b67 100644 --- a/ee3_common/ee3/common/core/handlers/ConfigurationHandler.java +++ b/ee3_common/ee3/common/core/handlers/ConfigurationHandler.java @@ -83,6 +83,9 @@ public class ConfigurationHandler { ItemIds.ALCHEMY_DUST = configuration .getItem(Strings.ALCHEMY_DUST_NAME, ItemIds.ALCHEMY_DUST_DEFAULT) .getInt(ItemIds.ALCHEMY_DUST_DEFAULT); + ItemIds.ALCHEMY_BAG = configuration + .getItem(Strings.ALCHEMY_BAG_NAME, ItemIds.ALCHEMY_BAG_DEFAULT) + .getInt(ItemIds.ALCHEMY_BAG_DEFAULT); /* KeyBinding Configs */ configuration.addCustomCategoryComment(CATEGORY_KEYBIND, ""); diff --git a/ee3_common/ee3/common/item/ItemAlchemyBag.java b/ee3_common/ee3/common/item/ItemAlchemyBag.java new file mode 100644 index 00000000..3a1a52aa --- /dev/null +++ b/ee3_common/ee3/common/item/ItemAlchemyBag.java @@ -0,0 +1,130 @@ +package ee3.common.item; + +import java.util.List; + +import net.minecraft.src.CreativeTabs; +import net.minecraft.src.ItemStack; +import net.minecraft.src.MathHelper; +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.common.Side; +import cpw.mods.fml.common.asm.SideOnly; +import ee3.common.EquivalentExchange3; +import ee3.common.lib.Colours; +import ee3.common.lib.Strings; + +public class ItemAlchemyBag extends ItemEE { + + public static final String[] alchemyBagNames = new String[] { "white", "orange", "magenta", "light_blue", "yellow", "lime", "pink", "gray", "light_gray", "cyan", "purple", "blue", "brown", "green", "red", "black" }; + + public ItemAlchemyBag(int id) { + + super(id); + this.setHasSubtypes(true); + this.setIconCoord(6, 0); + this.setItemName(Strings.ALCHEMY_BAG_NAME); + this.setCreativeTab(EquivalentExchange3.tabsEE3); + } + + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + + return true; + } + + @SideOnly(Side.CLIENT) + public int getIconFromDamageForRenderPass(int meta, int renderPass) { + + if (renderPass == 0) { + return this.getIconFromDamage(meta); + } + else { + return this.getIconFromDamage(meta) + 1; + } + } + + @SideOnly(Side.CLIENT) + public int getIconFromDamage(int meta) { + + if (FMLClientHandler.instance().getClient().currentScreen != null) { + return (this.iconIndex + 2); + } + + return this.iconIndex; + } + + @SideOnly(Side.CLIENT) + public String getItemNameIS(ItemStack stack) { + + int meta = MathHelper.clamp_int(stack.getItemDamage(), 0, 15); + return super.getItemName() + "." + alchemyBagNames[meta]; + } + + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack itemStack, int renderPass) { + + int returnValue = Integer.parseInt(Colours.PURE_WHITE, 16); + + if (renderPass == 0) { + switch (itemStack.getItemDamage()) { + case 0: + returnValue = Integer.parseInt(Colours.BAG_WHITE, 16); + break; + case 1: + returnValue = Integer.parseInt(Colours.BAG_ORANGE, 16); + break; + case 2: + returnValue = Integer.parseInt(Colours.BAG_MAGENTA, 16); + break; + case 3: + returnValue = Integer.parseInt(Colours.BAG_LIGHT_BLUE, 16); + break; + case 4: + returnValue = Integer.parseInt(Colours.BAG_YELLOW, 16); + break; + case 5: + returnValue = Integer.parseInt(Colours.BAG_LIME, 16); + break; + case 6: + returnValue = Integer.parseInt(Colours.BAG_PINK, 16); + break; + case 7: + returnValue = Integer.parseInt(Colours.BAG_GRAY, 16); + break; + case 8: + returnValue = Integer.parseInt(Colours.BAG_LIGHT_GRAY, 16); + break; + case 9: + returnValue = Integer.parseInt(Colours.BAG_CYAN, 16); + break; + case 10: + returnValue = Integer.parseInt(Colours.BAG_PURPLE, 16); + break; + case 11: + returnValue = Integer.parseInt(Colours.BAG_BLUE, 16); + break; + case 12: + returnValue = Integer.parseInt(Colours.BAG_BROWN, 16); + break; + case 13: + returnValue = Integer.parseInt(Colours.BAG_GREEN, 16); + break; + case 14: + returnValue = Integer.parseInt(Colours.BAG_RED, 16); + break; + case 15: + returnValue = Integer.parseInt(Colours.BAG_BLACK, 16); + break; + } + } + return returnValue; + } + + @SideOnly(Side.CLIENT) + public void getSubItems(int id, CreativeTabs creativeTab, List list) { + + for (int meta = 0; meta < 16; ++meta) { + list.add(new ItemStack(id, 1, meta)); + } + } + +} diff --git a/ee3_common/ee3/common/item/ItemAlchemyDust.java b/ee3_common/ee3/common/item/ItemAlchemyDust.java index 8df1479b..d7de84be 100644 --- a/ee3_common/ee3/common/item/ItemAlchemyDust.java +++ b/ee3_common/ee3/common/item/ItemAlchemyDust.java @@ -32,8 +32,7 @@ public class ItemAlchemyDust extends ItemEE { super(id); this.setHasSubtypes(true); - this.setMaxDamage(0); - this.setIconCoord(0, 3); + this.setIconCoord(10, 0); this.setItemName(Strings.ALCHEMY_DUST_NAME); this.setCreativeTab(EquivalentExchange3.tabsEE3); maxStackSize = 64; @@ -42,10 +41,11 @@ public class ItemAlchemyDust extends ItemEE { @SideOnly(Side.CLIENT) public int getIconFromDamage(int meta) { - int i = MathHelper.clamp_int(meta, 0, 11); + int i = MathHelper.clamp_int(meta, 0, 5); return (this.iconIndex + i); } + @SideOnly(Side.CLIENT) public String getItemNameIS(ItemStack stack) { int meta = MathHelper.clamp_int(stack.getItemDamage(), 0, 5); diff --git a/ee3_common/ee3/common/item/ModItems.java b/ee3_common/ee3/common/item/ModItems.java index aa91c16c..60105f0d 100644 --- a/ee3_common/ee3/common/item/ModItems.java +++ b/ee3_common/ee3/common/item/ModItems.java @@ -27,6 +27,7 @@ public class ModItems { public static Item miniumStone; public static Item philStone; public static Item alchemyDust; + public static Item alchemyBag; public static void init() { /* Initialize each mod item individually */ @@ -35,6 +36,7 @@ public class ModItems { miniumStone = new ItemMiniumStone(ItemIds.MINIUM_STONE); philStone = new ItemPhilosopherStone(ItemIds.PHILOSOPHER_STONE); alchemyDust = new ItemAlchemyDust(ItemIds.ALCHEMY_DUST); + alchemyBag = new ItemAlchemyBag(ItemIds.ALCHEMY_BAG); miniumStone.setContainerItem(miniumStone); philStone.setContainerItem(philStone); diff --git a/ee3_common/ee3/common/lib/Colours.java b/ee3_common/ee3/common/lib/Colours.java index a65fe95f..760104a3 100644 --- a/ee3_common/ee3/common/lib/Colours.java +++ b/ee3_common/ee3/common/lib/Colours.java @@ -10,12 +10,30 @@ package ee3.common.lib; * */ public class Colours { - + + public static final String PURE_WHITE = "ffffff"; public static final String PURE_RED = "ff0000"; /* Text colour related constants */ public static final String TEXT_COLOUR_PREFIX_YELLOW = "\u00a7e"; - public static final String TEXT_COLOUR_PREFIX_WHITE = "\u00a7f"; + /* Bag colour related constants */ + public static final String BAG_WHITE = "ffffff"; + public static final String BAG_ORANGE = "db7d3e"; + public static final String BAG_MAGENTA = "b350bc"; + public static final String BAG_LIGHT_BLUE = "6b8ac9"; + public static final String BAG_YELLOW = "b1a627"; + public static final String BAG_LIME = "41ae38"; + public static final String BAG_PINK = "d08499"; + public static final String BAG_GRAY = "868d8d"; + public static final String BAG_LIGHT_GRAY = "c8c8be"; + public static final String BAG_CYAN = "2e6e89"; + public static final String BAG_PURPLE = "7e3db5"; + public static final String BAG_BLUE = "2e388d"; + public static final String BAG_BROWN = "4f321f"; + public static final String BAG_GREEN = "35461b"; + public static final String BAG_RED = "963430"; + public static final String BAG_BLACK = "404040"; + } diff --git a/ee3_common/ee3/common/lib/ItemIds.java b/ee3_common/ee3/common/lib/ItemIds.java index aa098633..e4be319b 100644 --- a/ee3_common/ee3/common/lib/ItemIds.java +++ b/ee3_common/ee3/common/lib/ItemIds.java @@ -17,6 +17,7 @@ public class ItemIds { public static int MINIUM_STONE_DEFAULT = 27002; public static int PHILOSOPHER_STONE_DEFAULT = 27003; public static int ALCHEMY_DUST_DEFAULT = 27004; + public static int ALCHEMY_BAG_DEFAULT = 27005; /* Current item ids */ public static int MINIUM_SHARD; @@ -24,5 +25,6 @@ public class ItemIds { public static int MINIUM_STONE; public static int PHILOSOPHER_STONE; public static int ALCHEMY_DUST; + public static int ALCHEMY_BAG; } diff --git a/ee3_common/ee3/common/lib/Strings.java b/ee3_common/ee3/common/lib/Strings.java index dbca0c37..bcc8ec3c 100644 --- a/ee3_common/ee3/common/lib/Strings.java +++ b/ee3_common/ee3/common/lib/Strings.java @@ -29,6 +29,7 @@ public class Strings { public static final String MINIUM_STONE_NAME = "miniumStone"; public static final String PHILOSOPHER_STONE_NAME = "philStone"; public static final String ALCHEMY_DUST_NAME = "alchemyDust"; + public static final String ALCHEMY_BAG_NAME = "alchemyBag"; /* TileEntity name constants */ public static final String TE_CALCINATOR_NAME = "tileCalcinator"; diff --git a/resources/ee3/art/sprites/ee3_items.png b/resources/ee3/art/sprites/ee3_items.png index 0294c74a..bbb839e0 100644 Binary files a/resources/ee3/art/sprites/ee3_items.png and b/resources/ee3/art/sprites/ee3_items.png differ diff --git a/resources/ee3/art/sprites/xcf/ee3_items.xcf b/resources/ee3/art/sprites/xcf/ee3_items.xcf index 85bb2748..047419fa 100644 Binary files a/resources/ee3/art/sprites/xcf/ee3_items.xcf and b/resources/ee3/art/sprites/xcf/ee3_items.xcf differ diff --git a/resources/ee3/lang/en_US.xml b/resources/ee3/lang/en_US.xml index 66e55db6..0f91b2bf 100644 --- a/resources/ee3/lang/en_US.xml +++ b/resources/ee3/lang/en_US.xml @@ -16,6 +16,22 @@ Azure Dust Amaranthine Dust Iridescent Dust + White Alchemical Bag + Orange Alchemical Bag + Magenta Alchemical Bag + Light Blue Alchemical Bag + Yellow Alchemical Bag + Lime Alchemical Bag + Pink Alchemical Bag + Gray Alchemical Bag + Light Gray Alchemical Bag + Cyan Alchemical Bag + Purple Alchemical Bag + Blue Alchemical Bag + Brown Alchemical Bag + Green Alchemical Bag + Red Alchemical Bag + Black Alchemical Bag Red Water (Still) Red Water (Flowing) Calcinator