diff options
Diffstat (limited to 'src/main/java/gtPlusPlus/plugin/agrichem/item/algae/ItemAlgaeBase.java')
-rw-r--r-- | src/main/java/gtPlusPlus/plugin/agrichem/item/algae/ItemAlgaeBase.java | 410 |
1 files changed, 200 insertions, 210 deletions
diff --git a/src/main/java/gtPlusPlus/plugin/agrichem/item/algae/ItemAlgaeBase.java b/src/main/java/gtPlusPlus/plugin/agrichem/item/algae/ItemAlgaeBase.java index 6b31a42809..89c8447b84 100644 --- a/src/main/java/gtPlusPlus/plugin/agrichem/item/algae/ItemAlgaeBase.java +++ b/src/main/java/gtPlusPlus/plugin/agrichem/item/algae/ItemAlgaeBase.java @@ -1,7 +1,5 @@ package gtPlusPlus.plugin.agrichem.item.algae; -import java.util.List; - import cpw.mods.fml.common.registry.GameRegistry; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.core.lib.CORE; @@ -10,6 +8,7 @@ import gtPlusPlus.plugin.agrichem.AlgaeDefinition; import gtPlusPlus.plugin.agrichem.IAlgalItem; import gtPlusPlus.plugin.agrichem.logic.AlgaeGeneticData; import gtPlusPlus.plugin.agrichem.logic.AlgaeGrowthRequirement; +import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; @@ -24,212 +23,203 @@ import net.minecraft.world.World; public class ItemAlgaeBase extends Item implements IAlgalItem { - protected IIcon base; - protected IIcon overlay; - - public ItemAlgaeBase() { - this.setHasSubtypes(true); - this.setMaxDamage(127); - this.setNoRepair(); - this.setMaxStackSize(32); - this.setUnlocalizedName("BasicAlgaeItem"); - GameRegistry.registerItem(this, this.getUnlocalizedName()); - } - - @Override - public boolean isDamageable() { - return false; - } - - @Override - public boolean shouldRotateAroundWhenRendering() { - return super.shouldRotateAroundWhenRendering(); - } - - @Override - public void onUpdate(ItemStack p_77663_1_, World p_77663_2_, Entity p_77663_3_, int p_77663_4_, boolean p_77663_5_) { - if (!p_77663_1_.hasTagCompound() || p_77663_1_.getTagCompound().hasNoTags()) { - p_77663_1_ = initNBT(p_77663_1_); - } - super.onUpdate(p_77663_1_, p_77663_2_, p_77663_3_, p_77663_4_, p_77663_5_); - } - - @Override - public String getItemStackDisplayName(ItemStack aStack) { - return EnumChatFormatting.UNDERLINE+super.getItemStackDisplayName(aStack); - } - - @Override - public void addInformation(ItemStack aStack, EntityPlayer p_77624_2_, List aList, boolean p_77624_4_) { - int aDam = aStack.getItemDamage(); - try { - aList.add(AlgaeDefinition.getByIndex(aDam).mSimpleName); - if (!aStack.hasTagCompound() || aStack.getTagCompound().hasNoTags()) { - aStack = initNBT(aStack); - } - else { - NBTTagCompound aNBT = aStack.getTagCompound(); - boolean mRequiresLight = aNBT.getBoolean("mRequiresLight"); - boolean mSaltWater = aNBT.getBoolean("mSaltWater"); - boolean mFreshWater = aNBT.getBoolean("mFreshWater"); - byte mTempTolerance = aNBT.getByte("mTempTolerance"); - float mFertility = aNBT.getFloat("mFertility"); - float mProductionSpeed = aNBT.getFloat("mProductionSpeed"); - byte mLifespan = aNBT.getByte("mLifespan"); - int mGeneration = aNBT.getInteger("mGeneration"); - - aList.add("Requires Light: "+mRequiresLight); - aList.add("Salt Water: "+mSaltWater); - aList.add("Fresh Water: "+mFreshWater); - aList.add("Temp Tolerance: "+mTempTolerance); - aList.add("Growth: "+mFertility); - aList.add("Production: "+mProductionSpeed); - aList.add("Lifespan in days: "+mLifespan); - aList.add("Generation: "+mGeneration); - } - } - catch (Throwable t) { - t.printStackTrace(); - } - super.addInformation(aStack, p_77624_2_, aList, p_77624_4_); - } - - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) { - return EnumRarity.uncommon; - } - - @Override - public boolean requiresMultipleRenderPasses() { - return true; - } - - @Override - public void getSubItems(Item aItem, CreativeTabs p_150895_2_, List aList) { - for (int i=0;i<AlgaeDefinition.values().length;i++) { - aList.add(ItemUtils.simpleMetaStack(aItem, i, 1)); - } - } - - @Override - public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_) { - return false; - } - - @Override - public boolean isRepairable() { - return false; - } - - @Override - public boolean isBookEnchantable(ItemStack stack, ItemStack book) { - return false; - } - - @Override - public int getDisplayDamage(ItemStack stack) { - return stack.getItemDamage(); - } - - @Override - public boolean showDurabilityBar(ItemStack stack) { - return false; - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public int getItemEnchantability(ItemStack stack) { - return 0; - } - - @Override - public int getColorFromItemStack(ItemStack aStack, int aMeta) { - return AlgaeDefinition.getByIndex(aStack.getItemDamage()).mColour; - } - - @Override - public IIcon getIconFromDamageForRenderPass(final int damage, final int pass) { - if(pass == 0) { - return this.base; - } - return this.overlay; - } - - @Override - public void registerIcons(final IIconRegister i) { - this.base = i.registerIcon(CORE.MODID + ":" + "bioscience/BasicAlgae"); - this.overlay = i.registerIcon(CORE.MODID + ":" + "bioscience/BasicAlgae" + "_Overlay"); - } - - public static ItemStack initNBT(ItemStack aFreshAlgae) { - NBTTagCompound aNewTag = new NBTTagCompound(); - ItemAlgaeBase aItem; - if (aFreshAlgae.getItem() instanceof ItemAlgaeBase) { - aItem = (ItemAlgaeBase) aFreshAlgae.getItem(); - if (!aFreshAlgae.hasTagCompound()) { - AlgaeGeneticData y = aItem.getSpeciesData(aFreshAlgae); - aNewTag = y.writeToNBT(); - aFreshAlgae.setTagCompound(aNewTag); - } - else { - aNewTag = aFreshAlgae.getTagCompound(); - } - } - return aFreshAlgae; - } - - @Override - public AlgaeDefinition getAlgaeType(ItemStack aStack) { - return AlgaeDefinition.getByIndex(aStack != null ? aStack.getItemDamage() : 3); - } - - @Override - public AlgaeGeneticData getSpeciesData(ItemStack aStack) { - NBTTagCompound aTag; - if (!aStack.hasTagCompound() || aStack.getTagCompound().hasNoTags()) { - aTag = new NBTTagCompound(); - AlgaeGeneticData aGenes; - if (aStack.getItemDamage() < 3 || aStack.getItemDamage() > 5) { - aGenes = new AlgaeGeneticData(); - aTag = aGenes.writeToNBT(); - } - else { - byte aTemp, aLifespan; - float aFert, aSpeed; - - int aDam = aStack.getItemDamage(); - aTemp = (byte) (aDam == 3 ? 0 : aDam == 4 ? 2 : 1); - aLifespan = (byte) (aDam == 3 ? 1 : aDam == 4 ? 3f : 2f); - aFert = (float) (aDam == 3 ? 2f : aDam == 4 ? 1f : 1.75f); - aSpeed = (float) (aDam == 3 ? 1f : aDam == 4 ? 1.5f : 2f); - - aGenes = new AlgaeGeneticData( - true, true, - AlgaeDefinition.getByIndex(aDam).mSaltWater, AlgaeDefinition.getByIndex(aDam).mFreshWater, - aTemp, - aFert, - aSpeed, - aLifespan, - 0, - new AutoMap<AlgaeGrowthRequirement>()); - aTag = aGenes.writeToNBT(); - } - } - else { - aTag = aStack.getTagCompound(); - } - - - - - return new AlgaeGeneticData(aTag); - } - - - - + protected IIcon base; + protected IIcon overlay; + + public ItemAlgaeBase() { + this.setHasSubtypes(true); + this.setMaxDamage(127); + this.setNoRepair(); + this.setMaxStackSize(32); + this.setUnlocalizedName("BasicAlgaeItem"); + GameRegistry.registerItem(this, this.getUnlocalizedName()); + } + + @Override + public boolean isDamageable() { + return false; + } + + @Override + public boolean shouldRotateAroundWhenRendering() { + return super.shouldRotateAroundWhenRendering(); + } + + @Override + public void onUpdate( + ItemStack p_77663_1_, World p_77663_2_, Entity p_77663_3_, int p_77663_4_, boolean p_77663_5_) { + if (!p_77663_1_.hasTagCompound() || p_77663_1_.getTagCompound().hasNoTags()) { + p_77663_1_ = initNBT(p_77663_1_); + } + super.onUpdate(p_77663_1_, p_77663_2_, p_77663_3_, p_77663_4_, p_77663_5_); + } + + @Override + public String getItemStackDisplayName(ItemStack aStack) { + return EnumChatFormatting.UNDERLINE + super.getItemStackDisplayName(aStack); + } + + @Override + public void addInformation(ItemStack aStack, EntityPlayer p_77624_2_, List aList, boolean p_77624_4_) { + int aDam = aStack.getItemDamage(); + try { + aList.add(AlgaeDefinition.getByIndex(aDam).mSimpleName); + if (!aStack.hasTagCompound() || aStack.getTagCompound().hasNoTags()) { + aStack = initNBT(aStack); + } else { + NBTTagCompound aNBT = aStack.getTagCompound(); + boolean mRequiresLight = aNBT.getBoolean("mRequiresLight"); + boolean mSaltWater = aNBT.getBoolean("mSaltWater"); + boolean mFreshWater = aNBT.getBoolean("mFreshWater"); + byte mTempTolerance = aNBT.getByte("mTempTolerance"); + float mFertility = aNBT.getFloat("mFertility"); + float mProductionSpeed = aNBT.getFloat("mProductionSpeed"); + byte mLifespan = aNBT.getByte("mLifespan"); + int mGeneration = aNBT.getInteger("mGeneration"); + + aList.add("Requires Light: " + mRequiresLight); + aList.add("Salt Water: " + mSaltWater); + aList.add("Fresh Water: " + mFreshWater); + aList.add("Temp Tolerance: " + mTempTolerance); + aList.add("Growth: " + mFertility); + aList.add("Production: " + mProductionSpeed); + aList.add("Lifespan in days: " + mLifespan); + aList.add("Generation: " + mGeneration); + } + } catch (Throwable t) { + t.printStackTrace(); + } + super.addInformation(aStack, p_77624_2_, aList, p_77624_4_); + } + + @Override + public EnumRarity getRarity(ItemStack p_77613_1_) { + return EnumRarity.uncommon; + } + + @Override + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + public void getSubItems(Item aItem, CreativeTabs p_150895_2_, List aList) { + for (int i = 0; i < AlgaeDefinition.values().length; i++) { + aList.add(ItemUtils.simpleMetaStack(aItem, i, 1)); + } + } + + @Override + public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_) { + return false; + } + + @Override + public boolean isRepairable() { + return false; + } + + @Override + public boolean isBookEnchantable(ItemStack stack, ItemStack book) { + return false; + } + + @Override + public int getDisplayDamage(ItemStack stack) { + return stack.getItemDamage(); + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return false; + } + + @Override + public int getItemEnchantability() { + return 0; + } + + @Override + public int getItemEnchantability(ItemStack stack) { + return 0; + } + + @Override + public int getColorFromItemStack(ItemStack aStack, int aMeta) { + return AlgaeDefinition.getByIndex(aStack.getItemDamage()).mColour; + } + + @Override + public IIcon getIconFromDamageForRenderPass(final int damage, final int pass) { + if (pass == 0) { + return this.base; + } + return this.overlay; + } + + @Override + public void registerIcons(final IIconRegister i) { + this.base = i.registerIcon(CORE.MODID + ":" + "bioscience/BasicAlgae"); + this.overlay = i.registerIcon(CORE.MODID + ":" + "bioscience/BasicAlgae" + "_Overlay"); + } + + public static ItemStack initNBT(ItemStack aFreshAlgae) { + NBTTagCompound aNewTag = new NBTTagCompound(); + ItemAlgaeBase aItem; + if (aFreshAlgae.getItem() instanceof ItemAlgaeBase) { + aItem = (ItemAlgaeBase) aFreshAlgae.getItem(); + if (!aFreshAlgae.hasTagCompound()) { + AlgaeGeneticData y = aItem.getSpeciesData(aFreshAlgae); + aNewTag = y.writeToNBT(); + aFreshAlgae.setTagCompound(aNewTag); + } else { + aNewTag = aFreshAlgae.getTagCompound(); + } + } + return aFreshAlgae; + } + + @Override + public AlgaeDefinition getAlgaeType(ItemStack aStack) { + return AlgaeDefinition.getByIndex(aStack != null ? aStack.getItemDamage() : 3); + } + + @Override + public AlgaeGeneticData getSpeciesData(ItemStack aStack) { + NBTTagCompound aTag; + if (!aStack.hasTagCompound() || aStack.getTagCompound().hasNoTags()) { + aTag = new NBTTagCompound(); + AlgaeGeneticData aGenes; + if (aStack.getItemDamage() < 3 || aStack.getItemDamage() > 5) { + aGenes = new AlgaeGeneticData(); + aTag = aGenes.writeToNBT(); + } else { + byte aTemp, aLifespan; + float aFert, aSpeed; + + int aDam = aStack.getItemDamage(); + aTemp = (byte) (aDam == 3 ? 0 : aDam == 4 ? 2 : 1); + aLifespan = (byte) (aDam == 3 ? 1 : aDam == 4 ? 3f : 2f); + aFert = (float) (aDam == 3 ? 2f : aDam == 4 ? 1f : 1.75f); + aSpeed = (float) (aDam == 3 ? 1f : aDam == 4 ? 1.5f : 2f); + + aGenes = new AlgaeGeneticData( + true, + true, + AlgaeDefinition.getByIndex(aDam).mSaltWater, + AlgaeDefinition.getByIndex(aDam).mFreshWater, + aTemp, + aFert, + aSpeed, + aLifespan, + 0, + new AutoMap<AlgaeGrowthRequirement>()); + aTag = aGenes.writeToNBT(); + } + } else { + aTag = aStack.getTagCompound(); + } + + return new AlgaeGeneticData(aTag); + } } |