package gtPlusPlus.plugin.agrichem.logic; import net.minecraft.nbt.NBTTagCompound; import gtPlusPlus.api.objects.data.AutoMap; public class AlgaeGeneticData { private final int mLifespan; private final int mGeneration; private final boolean mIsDominant; private final boolean mRequiresLight; private final boolean mSaltWater; private final boolean mFreshWater; private final byte mTempTolerance; private final float mFertility; private final float mProductionSpeed; private final AutoMap mSpecialRequirements; public AlgaeGeneticData() { this(true, true, true, true, (byte) 0, 1f, 1f, (byte) 30, 0, new AutoMap()); } public AlgaeGeneticData(boolean isDominant, boolean requiresLight, boolean isSalt, boolean isFresh, byte aTempTolerance, float aFertility, float aSpeed, byte aLifespan, int aGeneration, AutoMap aRequirements) { mIsDominant = isDominant; mRequiresLight = requiresLight; mSaltWater = isSalt; mFreshWater = isFresh; mTempTolerance = aTempTolerance; mFertility = aFertility; mProductionSpeed = aSpeed; mLifespan = aLifespan; mGeneration = aGeneration; mSpecialRequirements = aRequirements; } public AlgaeGeneticData(NBTTagCompound aNBT) { if (aNBT == null || aNBT.hasNoTags()) { mIsDominant = true; mRequiresLight = true; mSaltWater = true; mFreshWater = true; mTempTolerance = 0; mFertility = 1; mProductionSpeed = 1; mLifespan = 30; mGeneration = 0; } else { mIsDominant = aNBT.getBoolean("mIsDominant"); mRequiresLight = aNBT.getBoolean("mRequiresLight"); mSaltWater = aNBT.getBoolean("mSaltWater"); mFreshWater = aNBT.getBoolean("mFreshWater"); mTempTolerance = aNBT.getByte("mTempTolerance"); mFertility = aNBT.getFloat("mFertility"); mProductionSpeed = aNBT.getFloat("mProductionSpeed"); mLifespan = aNBT.getByte("mLifespan"); mGeneration = aNBT.getInteger("mGeneration"); } mSpecialRequirements = new AutoMap(); } /** * In MC Days */ public final int getLifespan() { return this.mLifespan; } public final boolean isDominant() { return this.mIsDominant; } public final boolean RequiresLight() { return this.mRequiresLight; } public final boolean isSaltWater() { return this.mSaltWater; } public final boolean isFreshWater() { return this.mFreshWater; } public final byte getTempTolerance() { return this.mTempTolerance; } public final float getFertility() { return this.mFertility; } public final float getProductionSpeed() { return this.mProductionSpeed; } public final int getGeneration() { return this.mGeneration; } public final AutoMap getSpecialRequirements() { return this.mSpecialRequirements; } public NBTTagCompound writeToNBT() { NBTTagCompound aGenes = new NBTTagCompound(); aGenes.setBoolean("mIsDominant", this.mIsDominant); aGenes.setBoolean("mRequiresLight", this.mRequiresLight); aGenes.setBoolean("mSaltWater", this.mSaltWater); aGenes.setBoolean("mFreshWater", this.mFreshWater); aGenes.setInteger("mLifespan", this.mLifespan); aGenes.setInteger("mGeneration", this.mGeneration); aGenes.setByte("mTempTolerance", this.mTempTolerance); aGenes.setFloat("mFertility", this.mFertility); aGenes.setFloat("mProductionSpeed", this.mProductionSpeed); return aGenes; } }