String lookup for ItemComponent

This commit is contained in:
Nick 2015-12-28 13:50:32 -08:00
parent 42c7162f3f
commit e6354fb483
3 changed files with 43 additions and 13 deletions

View file

@ -1,7 +1,10 @@
package WayofTime.bloodmagic.item; package WayofTime.bloodmagic.item;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import WayofTime.bloodmagic.registry.ModItems;
import lombok.Getter;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -12,7 +15,17 @@ import WayofTime.bloodmagic.api.Constants;
public class ItemComponent extends Item { public class ItemComponent extends Item {
public static String[] names = {"reagentWater", "reagentLava", "reagentAir", "reagentFastMiner", "reagentVoid", "reagentGrowth", "reagentAffinity", "reagentSight"}; @Getter
private static ArrayList<String> names = new ArrayList<String>();
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() { public ItemComponent() {
super(); super();
@ -20,18 +33,35 @@ public class ItemComponent extends Item {
setUnlocalizedName(Constants.Mod.MODID + ".baseComponent."); setUnlocalizedName(Constants.Mod.MODID + ".baseComponent.");
setHasSubtypes(true); setHasSubtypes(true);
setCreativeTab(BloodMagic.tabBloodMagic); 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 @Override
public String getUnlocalizedName(ItemStack stack) { public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName(stack) + names[stack.getItemDamage()]; return super.getUnlocalizedName(stack) + names.get(stack.getItemDamage());
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void getSubItems(Item id, CreativeTabs creativeTab, List list) { 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)); list.add(new ItemStack(id, 1, i));
} }
public static ItemStack getStack(String name) {
return new ItemStack(ModItems.itemComponent, 1, names.indexOf(name));
}
} }

View file

@ -188,9 +188,8 @@ public class ModItems {
renderHelper.itemRender(sigilPhantomBridge, 0); renderHelper.itemRender(sigilPhantomBridge, 0);
renderHelper.itemRender(sigilPhantomBridge, 1); 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(itemComponent, i);
}
renderHelper.itemRender(livingArmourHelmet); renderHelper.itemRender(livingArmourHelmet);
renderHelper.itemRender(livingArmourChest); renderHelper.itemRender(livingArmourChest);

View file

@ -1,5 +1,6 @@
package WayofTime.bloodmagic.registry; package WayofTime.bloodmagic.registry;
import WayofTime.bloodmagic.item.ItemComponent;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -51,13 +52,13 @@ public class ModRecipes {
public static void addAlchemyArrayRecipes() { public static void addAlchemyArrayRecipes() {
AlchemyArrayRecipeRegistry.registerRecipe(new ItemStack(Items.diamond), new ItemStack(ModItems.slate), new CraftingArrayEffectBinding(new ItemStack(Blocks.diamond_block)), new BindingAlchemyCircleRenderer()); 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(ItemComponent.getStack(ItemComponent.REAGENT_WATER), 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(ItemComponent.getStack(ItemComponent.REAGENT_LAVA), 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(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(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(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(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(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(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(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(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(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(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_SIGHT), new ItemStack(ModItems.slate, 1, 1), new ItemStack(ModItems.sigilSeer), new ResourceLocation("bloodmagic", "textures/models/AlchemyArrays/SightSigil.png"));
} }
} }