From e6354fb483ba5e82b9fc73c2a3785d97bc11a208 Mon Sep 17 00:00:00 2001 From: Nick Date: Mon, 28 Dec 2015 13:50:32 -0800 Subject: [PATCH] String lookup for ItemComponent --- .../bloodmagic/item/ItemComponent.java | 36 +++++++++++++++++-- .../bloodmagic/registry/ModItems.java | 3 +- .../bloodmagic/registry/ModRecipes.java | 17 ++++----- 3 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java b/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java index f3e571b1..f8feb243 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemComponent.java @@ -1,7 +1,10 @@ package WayofTime.bloodmagic.item; +import java.util.ArrayList; import java.util.List; +import WayofTime.bloodmagic.registry.ModItems; +import lombok.Getter; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -12,7 +15,17 @@ import WayofTime.bloodmagic.api.Constants; public class ItemComponent extends Item { - public static String[] names = {"reagentWater", "reagentLava", "reagentAir", "reagentFastMiner", "reagentVoid", "reagentGrowth", "reagentAffinity", "reagentSight"}; + @Getter + private static ArrayList names = new ArrayList(); + + public static final String REAGENT_WATER = "reagentWater"; + public static final String REAGENT_LAVA = "reagentLava"; + public static final String REAGENT_AIR = "reagentAir"; + public static final String REAGENT_FASTMINER = "reagentFastMiner"; + public static final String REAGENT_VOID = "reagentVoid"; + public static final String REAGENT_GROWTH = "reagentGrowth"; + public static final String REAGENT_AFFINITY = "reagentAffinity"; + public static final String REAGENT_SIGHT = "reagentSight"; public ItemComponent() { super(); @@ -20,18 +33,35 @@ public class ItemComponent extends Item { setUnlocalizedName(Constants.Mod.MODID + ".baseComponent."); setHasSubtypes(true); setCreativeTab(BloodMagic.tabBloodMagic); + + buildItemList(); + } + + private void buildItemList() { + names.add(0, REAGENT_WATER); + names.add(1, REAGENT_LAVA); + names.add(2, REAGENT_AIR); + names.add(3, REAGENT_FASTMINER); + names.add(4, REAGENT_VOID); + names.add(5, REAGENT_GROWTH); + names.add(6, REAGENT_AFFINITY); + names.add(7, REAGENT_SIGHT); } @Override public String getUnlocalizedName(ItemStack stack) { - return super.getUnlocalizedName(stack) + names[stack.getItemDamage()]; + return super.getUnlocalizedName(stack) + names.get(stack.getItemDamage()); } @Override @SideOnly(Side.CLIENT) @SuppressWarnings("unchecked") public void getSubItems(Item id, CreativeTabs creativeTab, List list) { - for (int i = 0; i < names.length; i++) + for (int i = 0; i < names.size(); i++) list.add(new ItemStack(id, 1, i)); } + + public static ItemStack getStack(String name) { + return new ItemStack(ModItems.itemComponent, 1, names.indexOf(name)); + } } diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModItems.java b/src/main/java/WayofTime/bloodmagic/registry/ModItems.java index 234356ad..46e1df62 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModItems.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModItems.java @@ -188,9 +188,8 @@ public class ModItems { renderHelper.itemRender(sigilPhantomBridge, 0); renderHelper.itemRender(sigilPhantomBridge, 1); - for(int i = 0 ; i < ItemComponent.names.length ; i++) { + for(int i = 0 ; i < ItemComponent.getNames().size() ; i++) renderHelper.itemRender(itemComponent, i); - } renderHelper.itemRender(livingArmourHelmet); renderHelper.itemRender(livingArmourChest); diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java index 8476cf35..4bcf0def 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModRecipes.java @@ -1,5 +1,6 @@ package WayofTime.bloodmagic.registry; +import WayofTime.bloodmagic.item.ItemComponent; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -51,13 +52,13 @@ public class ModRecipes { public static void addAlchemyArrayRecipes() { AlchemyArrayRecipeRegistry.registerRecipe(new ItemStack(Items.diamond), new ItemStack(ModItems.slate), new CraftingArrayEffectBinding(new ItemStack(Blocks.diamond_block)), new BindingAlchemyCircleRenderer()); - AlchemyArrayRecipeRegistry.registerCraftingRecipe(new ItemStack(ModItems.itemComponent, 1, 0), new ItemStack(ModItems.slate), new ItemStack(ModItems.sigilWater), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/WaterSigil.png")); - AlchemyArrayRecipeRegistry.registerCraftingRecipe(new ItemStack(ModItems.itemComponent, 1, 1), new ItemStack(ModItems.slate), new ItemStack(ModItems.sigilLava), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/LavaSigil.png")); - AlchemyArrayRecipeRegistry.registerCraftingRecipe(new ItemStack(ModItems.itemComponent, 1, 2), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilAir), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/AirSigil.png")); - AlchemyArrayRecipeRegistry.registerCraftingRecipe(new ItemStack(ModItems.itemComponent, 1, 3), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilFastMiner), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/FastMinerSigil.png")); - AlchemyArrayRecipeRegistry.registerCraftingRecipe(new ItemStack(ModItems.itemComponent, 1, 4), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilVoid), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/VoidSigil.png")); - AlchemyArrayRecipeRegistry.registerCraftingRecipe(new ItemStack(ModItems.itemComponent, 1, 5), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilGreenGrove), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/GrowthSigil.png")); - AlchemyArrayRecipeRegistry.registerCraftingRecipe(new ItemStack(ModItems.itemComponent, 1, 6), new ItemStack(ModItems.slate, 1, 2), new ItemStack(ModItems.sigilElementalAffinity), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/ElementalAffinitySigil.png")); - AlchemyArrayRecipeRegistry.registerCraftingRecipe(new ItemStack(ModItems.itemComponent, 1, 7), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilSeer), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/SightSigil.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_WATER), new ItemStack(ModItems.slate), new ItemStack(ModItems.sigilWater), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/WaterSigil.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_LAVA), new ItemStack(ModItems.slate), new ItemStack(ModItems.sigilLava), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/LavaSigil.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_AIR), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilAir), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/AirSigil.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_FASTMINER), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilFastMiner), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/FastMinerSigil.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_VOID), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilVoid), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/VoidSigil.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_GROWTH), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilGreenGrove), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/GrowthSigil.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_AFFINITY), new ItemStack(ModItems.slate, 1, 2), new ItemStack(ModItems.sigilElementalAffinity), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/ElementalAffinitySigil.png")); + AlchemyArrayRecipeRegistry.registerCraftingRecipe(ItemComponent.getStack(ItemComponent.REAGENT_SIGHT), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilSeer), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/SightSigil.png")); } }