diff --git a/api/forestry b/api/forestry index dd8ed397f..024ccf2c4 160000 --- a/api/forestry +++ b/api/forestry @@ -1 +1 @@ -Subproject commit dd8ed397f13879cf0f93d6642bfda5220f00b8ad +Subproject commit 024ccf2c406ba0e5a23f0a36451d1d5e036ac43a diff --git a/lang b/lang index 96fa7cb73..edacbda68 160000 --- a/lang +++ b/lang @@ -1 +1 @@ -Subproject commit 96fa7cb738ff8529c32e0c28c1d82290ba590615 +Subproject commit edacbda68ad721f16c949a8dd1ca1d1ce74efe84 diff --git a/src/main/java/forestry/apiculture/BeekeepingLogic.java b/src/main/java/forestry/apiculture/BeekeepingLogic.java index 899757d92..db0b0f494 100755 --- a/src/main/java/forestry/apiculture/BeekeepingLogic.java +++ b/src/main/java/forestry/apiculture/BeekeepingLogic.java @@ -16,7 +16,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IApiaristTracker; import forestry.api.apiculture.IBee; @@ -218,7 +217,7 @@ public class BeekeepingLogic implements IBeekeepingLogic { housingErrorState = EnumErrorCode.NOQUEEN; hasQueen = false; } else { - IBee queen = BeeManager.beeRoot.getMember(housing.getQueen()); + IBee queen = PluginApiculture.beeInterface.getMember(housing.getQueen()); // Kill dying queens if (!queen.isAlive()) { killQueen(queen); @@ -284,8 +283,8 @@ public class BeekeepingLogic implements IBeekeepingLogic { } // Replace - IBee princess = BeeManager.beeRoot.getMember(housing.getQueen()); - IBee drone = BeeManager.beeRoot.getMember(housing.getDrone()); + IBee princess = PluginApiculture.beeInterface.getMember(housing.getQueen()); + IBee drone = PluginApiculture.beeInterface.getMember(housing.getDrone()); princess.mate(drone); NBTTagCompound nbttagcompound = new NBTTagCompound(); @@ -297,7 +296,7 @@ public class BeekeepingLogic implements IBeekeepingLogic { housing.onQueenChange(housing.getQueen()); // Register the new queen with the breeding tracker - BeeManager.beeRoot.getBreedingTracker(housing.getWorld(), housing.getOwnerName()).registerQueen(princess); + PluginApiculture.beeInterface.getBreedingTracker(housing.getWorld(), housing.getOwnerName()).registerQueen(princess); // Remove drone housing.getDrone().stackSize--; @@ -350,7 +349,7 @@ public class BeekeepingLogic implements IBeekeepingLogic { private void spawnOffspring(IBee queen) { Stack offspring = new Stack(); - IApiaristTracker breedingTracker = BeeManager.beeRoot.getBreedingTracker(housing.getWorld(), housing.getOwnerName()); + IApiaristTracker breedingTracker = PluginApiculture.beeInterface.getBreedingTracker(housing.getWorld(), housing.getOwnerName()); housing.onQueenDeath(getQueen()); @@ -361,7 +360,7 @@ public class BeekeepingLogic implements IBeekeepingLogic { count--; IBee heiress = queen.spawnPrincess(housing); if (heiress != null) { - ItemStack princess = BeeManager.beeRoot.getMemberStack(heiress, EnumBeeType.PRINCESS.ordinal()); + ItemStack princess = PluginApiculture.beeInterface.getMemberStack(heiress, EnumBeeType.PRINCESS.ordinal()); breedingTracker.registerPrincess(heiress); offspring.push(princess); } @@ -370,7 +369,7 @@ public class BeekeepingLogic implements IBeekeepingLogic { // Drones IBee[] larvae = queen.spawnDrones(housing); for (IBee larva : larvae) { - ItemStack drone = BeeManager.beeRoot.getMemberStack(larva, EnumBeeType.DRONE.ordinal()); + ItemStack drone = PluginApiculture.beeInterface.getMemberStack(larva, EnumBeeType.DRONE.ordinal()); breedingTracker.registerDrone(larva); offspring.push(drone); } diff --git a/src/main/java/forestry/apiculture/GuiHandlerApiculture.java b/src/main/java/forestry/apiculture/GuiHandlerApiculture.java index 8931c23f9..de5ae3aec 100755 --- a/src/main/java/forestry/apiculture/GuiHandlerApiculture.java +++ b/src/main/java/forestry/apiculture/GuiHandlerApiculture.java @@ -14,7 +14,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -import forestry.api.apiculture.BeeManager; import forestry.apiculture.gadgets.TileAlvearyHygroregulator; import forestry.apiculture.gadgets.TileAlvearyPlain; import forestry.apiculture.gadgets.TileAlvearySieve; @@ -43,6 +42,7 @@ import forestry.apiculture.items.ItemImprinter.ImprinterInventory; import forestry.core.GuiHandlerBase; import forestry.core.gui.ContainerAlyzer; import forestry.core.network.GuiId; +import forestry.plugins.PluginApiculture; public class GuiHandlerApiculture extends GuiHandlerBase { @@ -176,6 +176,6 @@ public class GuiHandlerApiculture extends GuiHandlerBase { } private void synchApiaristTracker(World world, EntityPlayer player) { - BeeManager.beeRoot.getBreedingTracker(world, player.getGameProfile()).synchToPlayer(player); + PluginApiculture.beeInterface.getBreedingTracker(world, player.getGameProfile()).synchToPlayer(player); } } diff --git a/src/main/java/forestry/apiculture/SaveEventHandlerApiculture.java b/src/main/java/forestry/apiculture/SaveEventHandlerApiculture.java index 480fbf128..ba6de2e27 100755 --- a/src/main/java/forestry/apiculture/SaveEventHandlerApiculture.java +++ b/src/main/java/forestry/apiculture/SaveEventHandlerApiculture.java @@ -12,14 +12,14 @@ package forestry.apiculture; import net.minecraft.world.World; -import forestry.api.apiculture.BeeManager; import forestry.core.interfaces.ISaveEventHandler; +import forestry.plugins.PluginApiculture; public class SaveEventHandlerApiculture implements ISaveEventHandler { @Override public void onWorldLoad(World world) { - BeeManager.beeRoot.resetBeekeepingMode(); + PluginApiculture.beeInterface.resetBeekeepingMode(); } @Override diff --git a/src/main/java/forestry/apiculture/commands/BeeModeHelper.java b/src/main/java/forestry/apiculture/commands/BeeModeHelper.java index 11cc43f5f..18dc7de63 100644 --- a/src/main/java/forestry/apiculture/commands/BeeModeHelper.java +++ b/src/main/java/forestry/apiculture/commands/BeeModeHelper.java @@ -15,15 +15,15 @@ import java.util.List; import net.minecraft.world.World; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IBeekeepingMode; import forestry.core.commands.ICommandModeHelper; +import forestry.plugins.PluginApiculture; public class BeeModeHelper implements ICommandModeHelper { @Override public String[] getModeNames() { - ArrayList beekeepingModes = BeeManager.beeRoot.getBeekeepingModes(); + ArrayList beekeepingModes = PluginApiculture.beeInterface.getBeekeepingModes(); int modeStringCount = beekeepingModes.size(); List modeStrings = new ArrayList(modeStringCount); for (IBeekeepingMode mode : beekeepingModes) { @@ -35,7 +35,7 @@ public class BeeModeHelper implements ICommandModeHelper { @Override public String getModeNameMatching(String desired) { - IBeekeepingMode mode = BeeManager.beeRoot.getBeekeepingMode(desired); + IBeekeepingMode mode = PluginApiculture.beeInterface.getBeekeepingMode(desired); if (mode == null) { return null; } @@ -44,17 +44,17 @@ public class BeeModeHelper implements ICommandModeHelper { @Override public String getModeName(World world) { - return BeeManager.beeRoot.getBeekeepingMode(world).getName(); + return PluginApiculture.beeInterface.getBeekeepingMode(world).getName(); } @Override public void setMode(World world, String modeName) { - BeeManager.beeRoot.setBeekeepingMode(world, modeName); + PluginApiculture.beeInterface.setBeekeepingMode(world, modeName); } @Override public Iterable getDescription(String modeName) { - IBeekeepingMode mode = BeeManager.beeRoot.getBeekeepingMode(modeName); + IBeekeepingMode mode = PluginApiculture.beeInterface.getBeekeepingMode(modeName); return mode.getDescription(); } diff --git a/src/main/java/forestry/apiculture/commands/BeeStatsSaveHelper.java b/src/main/java/forestry/apiculture/commands/BeeStatsSaveHelper.java index fe21a3c99..11ac1c484 100644 --- a/src/main/java/forestry/apiculture/commands/BeeStatsSaveHelper.java +++ b/src/main/java/forestry/apiculture/commands/BeeStatsSaveHelper.java @@ -18,7 +18,6 @@ import net.minecraft.world.World; import com.mojang.authlib.GameProfile; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IApiaristTracker; import forestry.api.genetics.AlleleManager; @@ -27,6 +26,7 @@ import forestry.api.genetics.IAlleleSpecies; import forestry.api.genetics.IBreedingTracker; import forestry.core.commands.IStatsSaveHelper; import forestry.core.utils.StringUtil; +import forestry.plugins.PluginApiculture; public class BeeStatsSaveHelper implements IStatsSaveHelper { @@ -69,7 +69,7 @@ public class BeeStatsSaveHelper implements IStatsSaveHelper { @Override public IBreedingTracker getBreedingTracker(World world, GameProfile gameProfile) { - return BeeManager.beeRoot.getBreedingTracker(world, gameProfile); + return PluginApiculture.beeInterface.getBreedingTracker(world, gameProfile); } } diff --git a/src/main/java/forestry/apiculture/commands/CommandBeeGive.java b/src/main/java/forestry/apiculture/commands/CommandBeeGive.java index 44be24660..3cb26ad06 100644 --- a/src/main/java/forestry/apiculture/commands/CommandBeeGive.java +++ b/src/main/java/forestry/apiculture/commands/CommandBeeGive.java @@ -18,7 +18,6 @@ import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IBee; @@ -29,6 +28,7 @@ import forestry.core.commands.CommandHelpers; import forestry.core.commands.SpeciesNotFoundException; import forestry.core.commands.SubCommand; import forestry.core.commands.TemplateNotFoundException; +import forestry.plugins.PluginApiculture; public class CommandBeeGive extends SubCommand { @@ -87,13 +87,13 @@ public class CommandBeeGive extends SubCommand { return; } - IBee bee = BeeManager.beeRoot.getBee(player.worldObj, beeGenome); + IBee bee = PluginApiculture.beeInterface.getBee(player.worldObj, beeGenome); if (beeType == EnumBeeType.QUEEN) { bee.mate(bee); } - ItemStack beeStack = BeeManager.beeRoot.getMemberStack(bee, beeType.ordinal()); + ItemStack beeStack = PluginApiculture.beeInterface.getMemberStack(bee, beeType.ordinal()); player.dropPlayerItemWithRandomChoice(beeStack, true); CommandHelpers.sendLocalizedChatMessage(sender, "for.chat.command.forestry.bee.give.given", player.getCommandSenderName(), bee.getGenome().getPrimary().getName(), beeType.getName()); @@ -127,13 +127,13 @@ public class CommandBeeGive extends SubCommand { throw new SpeciesNotFoundException(speciesName); } - IAllele[] template = BeeManager.beeRoot.getTemplate(species.getUID()); + IAllele[] template = PluginApiculture.beeInterface.getTemplate(species.getUID()); if (template == null) { throw new TemplateNotFoundException(species); } - return BeeManager.beeRoot.templateAsGenome(template); + return PluginApiculture.beeInterface.templateAsGenome(template); } @Override diff --git a/src/main/java/forestry/apiculture/entities/EntityBee.java b/src/main/java/forestry/apiculture/entities/EntityBee.java index 852264f74..751906d5e 100755 --- a/src/main/java/forestry/apiculture/entities/EntityBee.java +++ b/src/main/java/forestry/apiculture/entities/EntityBee.java @@ -18,12 +18,12 @@ import net.minecraft.world.World; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IBee; import forestry.core.config.Defaults; import forestry.core.utils.ForestryResource; +import forestry.plugins.PluginApiculture; public class EntityBee extends EntityCreature implements IAnimals { @@ -48,7 +48,7 @@ public class EntityBee extends EntityCreature implements IAnimals { if (bee != null) { contained = bee; } else { - contained = BeeManager.beeRoot.templateAsIndividual(BeeManager.beeRoot.getDefaultTemplate()); + contained = PluginApiculture.beeInterface.templateAsIndividual(PluginApiculture.beeInterface.getDefaultTemplate()); } //isImmuneToFire = contained.getGenome().getFireResist(); diff --git a/src/main/java/forestry/apiculture/gadgets/TileAlvearyPlain.java b/src/main/java/forestry/apiculture/gadgets/TileAlvearyPlain.java index ac5c44b8f..3c6061a23 100755 --- a/src/main/java/forestry/apiculture/gadgets/TileAlvearyPlain.java +++ b/src/main/java/forestry/apiculture/gadgets/TileAlvearyPlain.java @@ -24,7 +24,6 @@ import net.minecraft.world.biome.BiomeGenBase; import com.mojang.authlib.GameProfile; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IBee; import forestry.api.apiculture.IBeeGenome; import forestry.api.apiculture.IBeeHousing; @@ -52,6 +51,7 @@ import forestry.core.network.PacketIds; import forestry.core.network.PacketInventoryStack; import forestry.core.proxy.Proxies; import forestry.core.utils.Utils; +import forestry.plugins.PluginApiculture; public class TileAlvearyPlain extends TileAlveary implements ISidedInventory, IBeeHousing, IClimatised, IHintSource { @@ -190,9 +190,9 @@ public class TileAlvearyPlain extends TileAlveary implements ISidedInventory, IB // / Multiplayer FX ItemStack queenStack = inventory.getStackInSlot(SLOT_QUEEN); - if (BeeManager.beeRoot.isMated(queenStack)) { + if (PluginApiculture.beeInterface.isMated(queenStack)) { if (getErrorState() == EnumErrorCode.OK && updateOnInterval(2)) { - IBee displayQueen = BeeManager.beeRoot.getMember(queenStack); + IBee displayQueen = PluginApiculture.beeInterface.getMember(queenStack); displayQueen.doFX(beekeepingLogic.getEffectData(), this); } } @@ -227,9 +227,9 @@ public class TileAlvearyPlain extends TileAlveary implements ISidedInventory, IB return 0; } - if (BeeManager.beeRoot.isMated(inventory.getStackInSlot(SLOT_QUEEN))) { - return BeeManager.beeRoot.getMember(inventory.getStackInSlot(SLOT_QUEEN)).getHealth(); - } else if (!BeeManager.beeRoot.isDrone(inventory.getStackInSlot(SLOT_QUEEN))) { + if (PluginApiculture.beeInterface.isMated(inventory.getStackInSlot(SLOT_QUEEN))) { + return PluginApiculture.beeInterface.getMember(inventory.getStackInSlot(SLOT_QUEEN)).getHealth(); + } else if (!PluginApiculture.beeInterface.isDrone(inventory.getStackInSlot(SLOT_QUEEN))) { return displayHealth; } else { return 0; @@ -242,9 +242,9 @@ public class TileAlvearyPlain extends TileAlveary implements ISidedInventory, IB return 0; } - if (BeeManager.beeRoot.isMated(inventory.getStackInSlot(SLOT_QUEEN))) { - return BeeManager.beeRoot.getMember(inventory.getStackInSlot(SLOT_QUEEN)).getMaxHealth(); - } else if (!BeeManager.beeRoot.isDrone(inventory.getStackInSlot(SLOT_QUEEN))) { + if (PluginApiculture.beeInterface.isMated(inventory.getStackInSlot(SLOT_QUEEN))) { + return PluginApiculture.beeInterface.getMember(inventory.getStackInSlot(SLOT_QUEEN)).getMaxHealth(); + } else if (!PluginApiculture.beeInterface.isDrone(inventory.getStackInSlot(SLOT_QUEEN))) { return displayHealthMax; } else { return 0; @@ -266,9 +266,9 @@ public class TileAlvearyPlain extends TileAlveary implements ISidedInventory, IB @Override public boolean canSlotAccept(int slotIndex, ItemStack itemStack) { if (slotIndex == SLOT_QUEEN) { - return BeeManager.beeRoot.isMember(itemStack) && !BeeManager.beeRoot.isDrone(itemStack); + return PluginApiculture.beeInterface.isMember(itemStack) && !PluginApiculture.beeInterface.isDrone(itemStack); } else if (slotIndex == SLOT_DRONE) { - return BeeManager.beeRoot.isDrone(itemStack); + return PluginApiculture.beeInterface.isDrone(itemStack); } return false; } @@ -284,7 +284,7 @@ public class TileAlvearyPlain extends TileAlveary implements ISidedInventory, IB public void makeMaster() { super.makeMaster(); if (beekeepingLogic == null) { - this.beekeepingLogic = BeeManager.beeRoot.createBeekeepingLogic(this); + this.beekeepingLogic = PluginApiculture.beeInterface.createBeekeepingLogic(this); } } diff --git a/src/main/java/forestry/apiculture/gadgets/TileAlvearySwarmer.java b/src/main/java/forestry/apiculture/gadgets/TileAlvearySwarmer.java index a7e4fd323..c2d87e007 100755 --- a/src/main/java/forestry/apiculture/gadgets/TileAlvearySwarmer.java +++ b/src/main/java/forestry/apiculture/gadgets/TileAlvearySwarmer.java @@ -34,6 +34,7 @@ import forestry.core.inventory.wrappers.InventoryIterator; import forestry.core.network.GuiId; import forestry.core.network.PacketPayload; import forestry.core.utils.StackUtils; +import forestry.plugins.PluginApiculture; public class TileAlvearySwarmer extends TileAlveary implements ISidedInventory { @@ -92,9 +93,9 @@ public class TileAlvearySwarmer extends TileAlveary implements ISidedInventory { } // Queue swarm spawn - IBee princess = BeeManager.beeRoot.getMember(princessStack); + IBee princess = PluginApiculture.beeInterface.getMember(princessStack); princess.setIsNatural(false); - pendingSpawns.push(BeeManager.beeRoot.getMemberStack(princess, EnumBeeType.PRINCESS.ordinal())); + pendingSpawns.push(PluginApiculture.beeInterface.getMemberStack(princess, EnumBeeType.PRINCESS.ordinal())); } private ItemStack getPrincessStack() { @@ -109,7 +110,7 @@ public class TileAlvearySwarmer extends TileAlveary implements ISidedInventory { IBeeHousing housing = (IBeeHousing) master; ItemStack princessStack = housing.getQueen(); - if (princessStack == null || !BeeManager.beeRoot.isMated(princessStack)) { + if (princessStack == null || !PluginApiculture.beeInterface.isMated(princessStack)) { return null; } diff --git a/src/main/java/forestry/apiculture/gadgets/TileApiaristChest.java b/src/main/java/forestry/apiculture/gadgets/TileApiaristChest.java index 758ab3482..dac2ebf5a 100755 --- a/src/main/java/forestry/apiculture/gadgets/TileApiaristChest.java +++ b/src/main/java/forestry/apiculture/gadgets/TileApiaristChest.java @@ -10,14 +10,15 @@ ******************************************************************************/ package forestry.apiculture.gadgets; -import forestry.api.apiculture.BeeManager; +import forestry.api.genetics.AlleleManager; +import forestry.apiculture.genetics.BeeHelper; import forestry.core.gadgets.TileNaturalistChest; import forestry.core.network.GuiId; public class TileApiaristChest extends TileNaturalistChest { public TileApiaristChest() { - super(BeeManager.beeRoot, GuiId.ApiaristChestGUI.ordinal()); + super(AlleleManager.alleleRegistry.getSpeciesRoot(BeeHelper.UID), GuiId.ApiaristChestGUI.ordinal()); } } diff --git a/src/main/java/forestry/apiculture/gadgets/TileApiary.java b/src/main/java/forestry/apiculture/gadgets/TileApiary.java index 28fe61c05..fa3a8aede 100755 --- a/src/main/java/forestry/apiculture/gadgets/TileApiary.java +++ b/src/main/java/forestry/apiculture/gadgets/TileApiary.java @@ -20,7 +20,6 @@ import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.common.Optional; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IBeeGenome; import forestry.api.apiculture.IHiveFrame; import forestry.api.core.ForestryAPI; @@ -28,6 +27,7 @@ import forestry.apiculture.trigger.ApicultureTriggers; import forestry.core.gadgets.TileBase; import forestry.core.inventory.IInventoryAdapter; import forestry.core.network.GuiId; +import forestry.plugins.PluginApiculture; import buildcraft.api.statements.ITriggerExternal; @@ -136,7 +136,7 @@ public class TileApiary extends TileBeehouse { @Override public void wearOutEquipment(int amount) { IInventoryAdapter inventory = getInternalInventory(); - int wear = Math.round(amount * BeeManager.beeRoot.getBeekeepingMode(worldObj).getWearModifier()); + int wear = Math.round(amount * PluginApiculture.beeInterface.getBeekeepingMode(worldObj).getWearModifier()); for (int i = SLOT_FRAMES_1; i < SLOT_FRAMES_1 + SLOT_FRAMES_COUNT; i++) { if (inventory.getStackInSlot(i) == null) { @@ -149,7 +149,7 @@ public class TileApiary extends TileBeehouse { inventory.setInventorySlotContents( i, ((IHiveFrame) inventory.getStackInSlot(i).getItem()).frameUsed(this, inventory.getStackInSlot(i), - BeeManager.beeRoot.getMember(inventory.getStackInSlot(SLOT_QUEEN)), wear)); + PluginApiculture.beeInterface.getMember(inventory.getStackInSlot(SLOT_QUEEN)), wear)); } } diff --git a/src/main/java/forestry/apiculture/gadgets/TileBeehouse.java b/src/main/java/forestry/apiculture/gadgets/TileBeehouse.java index 6646c0651..678e66ece 100755 --- a/src/main/java/forestry/apiculture/gadgets/TileBeehouse.java +++ b/src/main/java/forestry/apiculture/gadgets/TileBeehouse.java @@ -20,7 +20,6 @@ import net.minecraft.world.biome.BiomeGenBase; import com.mojang.authlib.GameProfile; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IBee; import forestry.api.apiculture.IBeeGenome; import forestry.api.apiculture.IBeeHousing; @@ -46,6 +45,7 @@ import forestry.core.network.PacketTileUpdate; import forestry.core.proxy.Proxies; import forestry.core.utils.GuiUtil; import forestry.core.utils.Utils; +import forestry.plugins.PluginApiculture; public class TileBeehouse extends TileBase implements IBeeHousing, IClimatised { @@ -57,11 +57,11 @@ public class TileBeehouse extends TileBase implements IBeeHousing, IClimatised { @Override public boolean canSlotAccept(int slotIndex, ItemStack itemStack) { if (slotIndex == SLOT_QUEEN) { - return BeeManager.beeRoot.isMember(itemStack) && !BeeManager.beeRoot.isDrone(itemStack); + return PluginApiculture.beeInterface.isMember(itemStack) && !PluginApiculture.beeInterface.isDrone(itemStack); } else if (GuiUtil.isIndexInRange(slotIndex, SLOT_FRAMES_1, SLOT_FRAMES_COUNT)) { return itemStack.getItem() instanceof IHiveFrame; } else if (slotIndex == SLOT_DRONE) { - return BeeManager.beeRoot.isDrone(itemStack); + return PluginApiculture.beeInterface.isDrone(itemStack); } return false; } @@ -86,7 +86,7 @@ public class TileBeehouse extends TileBase implements IBeeHousing, IClimatised { public TileBeehouse() { setHints(Config.hints.get("apiary")); - logic = BeeManager.beeRoot.createBeekeepingLogic(this); + logic = PluginApiculture.beeInterface.createBeekeepingLogic(this); setInternalInventory(new BeehouseInventoryAdapter(this, 12, "Items").disableAutomation()); } @@ -158,9 +158,9 @@ public class TileBeehouse extends TileBase implements IBeeHousing, IClimatised { public void updateClientSide() { // / Multiplayer FX - if (BeeManager.beeRoot.isMated(getInternalInventory().getStackInSlot(SLOT_QUEEN))) { + if (PluginApiculture.beeInterface.isMated(getInternalInventory().getStackInSlot(SLOT_QUEEN))) { if (getErrorState() == EnumErrorCode.OK && updateOnInterval(2)) { - IBee displayQueen = BeeManager.beeRoot.getMember(getInternalInventory().getStackInSlot(SLOT_QUEEN)); + IBee displayQueen = PluginApiculture.beeInterface.getMember(getInternalInventory().getStackInSlot(SLOT_QUEEN)); displayQueen.doFX(logic.getEffectData(), this); } } @@ -213,7 +213,7 @@ public class TileBeehouse extends TileBase implements IBeeHousing, IClimatised { } if (ForestryItem.beeQueenGE.isItemEqual(inventory.getStackInSlot(SLOT_QUEEN))) { - return BeeManager.beeRoot.getMember(inventory.getStackInSlot(SLOT_QUEEN)).getHealth(); + return PluginApiculture.beeInterface.getMember(inventory.getStackInSlot(SLOT_QUEEN)).getHealth(); } else if (ForestryItem.beePrincessGE.isItemEqual(inventory.getStackInSlot(SLOT_QUEEN))) { return displayHealth; } else { @@ -228,7 +228,7 @@ public class TileBeehouse extends TileBase implements IBeeHousing, IClimatised { } if (ForestryItem.beeQueenGE.isItemEqual(inventory.getStackInSlot(SLOT_QUEEN))) { - return BeeManager.beeRoot.getMember(inventory.getStackInSlot(SLOT_QUEEN)).getMaxHealth(); + return PluginApiculture.beeInterface.getMember(inventory.getStackInSlot(SLOT_QUEEN)).getMaxHealth(); } else if (ForestryItem.beePrincessGE.isItemEqual(inventory.getStackInSlot(SLOT_QUEEN))) { return displayHealthMax; } else { diff --git a/src/main/java/forestry/apiculture/genetics/AlleleBeeSpecies.java b/src/main/java/forestry/apiculture/genetics/AlleleBeeSpecies.java index 66e9ef607..8147adb7e 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleBeeSpecies.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleBeeSpecies.java @@ -14,7 +14,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Locale; -import java.util.Map; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.ItemStack; @@ -26,52 +25,61 @@ import com.mojang.authlib.GameProfile; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.EnumBeeType; -import forestry.api.apiculture.IAlleleBeeSpeciesCustom; +import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IBeeGenome; import forestry.api.apiculture.IBeeHousing; -import forestry.api.apiculture.IBeeIconProvider; import forestry.api.apiculture.IBeeRoot; -import forestry.api.apiculture.IJubilanceProvider; import forestry.api.core.IIconProvider; import forestry.api.genetics.IAllele; import forestry.api.genetics.IClassification; import forestry.api.genetics.IIndividual; import forestry.api.genetics.IMutation; -import forestry.core.genetics.alleles.AlleleSpecies; +import forestry.core.config.Defaults; +import forestry.core.genetics.AlleleSpecies; import forestry.core.render.TextureManager; import forestry.core.utils.StackUtils; +import forestry.plugins.PluginApiculture; -public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpeciesCustom { +public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies, IIconProvider { - private final Map products = new HashMap(); - private final Map specialty = new HashMap(); + public IJubilanceProvider jubilanceProvider; + private final HashMap products = new HashMap(); + private final HashMap specialty = new HashMap(); + + private String texture; private final int primaryColour; private final int secondaryColour; - private IBeeIconProvider beeIconProvider; - private IJubilanceProvider jubilanceProvider; + private static final String iconType = "default"; - public AlleleBeeSpecies(String uid, String authority, String unlocalizedDescription, boolean dominant, String name, IClassification branch, String binomial, int primaryColor, int secondaryColor) { - super(uid, authority, unlocalizedDescription, dominant, name, branch, binomial, false); + public AlleleBeeSpecies(String uid, boolean dominant, String name, IClassification branch, String binomial, int primaryColor, int secondaryColor) { + this(uid, dominant, name, branch, binomial, primaryColor, secondaryColor, new JubilanceDefault()); + } + + public AlleleBeeSpecies(String uid, boolean dominant, String name, IClassification branch, String binomial, int primaryColor, int secondaryColor, + IJubilanceProvider jubilanceProvider) { + super(uid, dominant, name, branch, binomial, false); this.primaryColour = primaryColor; this.secondaryColour = secondaryColor; - - setCustomBeeIconProvider(DefaultBeeIconProvider.getInstance()); - setJubilanceProvider(JubilanceDefault.getInstance()); + this.jubilanceProvider = jubilanceProvider; + texture = Defaults.TEXTURE_PATH_ENTITIES + "/bees/honeyBee.png"; } @Override public IBeeRoot getRoot() { - return BeeManager.beeRoot; + return PluginApiculture.beeInterface; } - @Override - public IAlleleBeeSpeciesCustom addProduct(ItemStack product, int chance) { + public AlleleBeeSpecies setEntityTexture(String texture) { + this.texture = Defaults.TEXTURE_PATH_ENTITIES + "/bees/" + texture + ".png"; + return this; + } + + public AlleleBeeSpecies addProduct(ItemStack product, int chance) { if (product == null || product.getItem() == null) { throw new IllegalArgumentException("Tried to add null product"); } @@ -79,27 +87,16 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies return this; } - @Override - public IAlleleBeeSpeciesCustom addSpecialty(ItemStack specialty, int chance) { - if (specialty == null || specialty.getItem() == null) { - throw new IllegalArgumentException("Tried to add null specialty"); - } + public AlleleBeeSpecies addSpecialty(ItemStack specialty, int chance) { this.specialty.put(specialty, chance); return this; } - @Override - public IAlleleBeeSpeciesCustom setJubilanceProvider(IJubilanceProvider provider) { + public AlleleBeeSpecies setJubilanceProvider(IJubilanceProvider provider) { this.jubilanceProvider = provider; return this; } - @Override - public IAlleleBeeSpeciesCustom setCustomBeeIconProvider(IBeeIconProvider beeIconProvider) { - this.beeIconProvider = beeIconProvider; - return this; - } - /* RESEARCH */ @Override public int getComplexity() { @@ -173,12 +170,12 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies } @Override - public Map getProducts() { + public HashMap getProducts() { return products; } @Override - public Map getSpecialty() { + public HashMap getSpecialty() { return specialty; } @@ -188,14 +185,8 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies } @Override - @SideOnly(Side.CLIENT) - public IIconProvider getIconProvider() { - return new BeeIconProviderWrapper(beeIconProvider); - } - - @Override - public IIcon getIcon(EnumBeeType type, int renderPass) { - return beeIconProvider.getIcon(type, renderPass); + public String getEntityTexture() { + return texture; } @Override @@ -209,70 +200,45 @@ public class AlleleBeeSpecies extends AlleleSpecies implements IAlleleBeeSpecies return 0xffffff; } + @SideOnly(Side.CLIENT) + private static IIcon[][] icons; + + @SideOnly(Side.CLIENT) @Override - public String getEntityTexture() { + public void registerIcons(IIconRegister register) { + icons = new IIcon[EnumBeeType.values().length][3]; + + IIcon body1 = TextureManager.getInstance().registerTex(register, "bees/" + iconType + "/body1"); + + for (int i = 0; i < EnumBeeType.values().length; i++) { + if (EnumBeeType.values()[i] == EnumBeeType.NONE) { + continue; + } + + icons[i][0] = TextureManager.getInstance().registerTex(register, "bees/" + iconType + "/" + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".outline"); + icons[i][1] = (EnumBeeType.values()[i] != EnumBeeType.LARVAE) ? body1 + : TextureManager.getInstance().registerTex(register, "bees/" + iconType + "/" + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".body"); + icons[i][2] = TextureManager.getInstance().registerTex(register, "bees/" + iconType + "/" + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".body2"); + } + + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(EnumBeeType type, int renderPass) { + return icons[type.ordinal()][renderPass]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIconProvider getIconProvider() { + return this; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(short texUID) { return null; } - private static class DefaultBeeIconProvider implements IBeeIconProvider { - - private static final String iconType = "default"; - private static DefaultBeeIconProvider instance; - - public static DefaultBeeIconProvider getInstance() { - if (instance == null) { - instance = new DefaultBeeIconProvider(); - } - return instance; - } - - private DefaultBeeIconProvider() { - - } - - @SideOnly(Side.CLIENT) - private static final IIcon[][] icons = new IIcon[EnumBeeType.values().length][3]; - - @SideOnly(Side.CLIENT) - @Override - public void registerIcons(IIconRegister register) { - IIcon body1 = TextureManager.getInstance().registerTex(register, "bees/" + iconType + "/body1"); - - for (int i = 0; i < EnumBeeType.values().length; i++) { - if (EnumBeeType.values()[i] == EnumBeeType.NONE) { - continue; - } - - icons[i][0] = TextureManager.getInstance().registerTex(register, "bees/" + iconType + '/' + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".outline"); - icons[i][1] = (EnumBeeType.values()[i] != EnumBeeType.LARVAE) ? body1 - : TextureManager.getInstance().registerTex(register, "bees/" + iconType + '/' + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".body"); - icons[i][2] = TextureManager.getInstance().registerTex(register, "bees/" + iconType + '/' + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".body2"); - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(EnumBeeType type, int renderPass) { - return icons[type.ordinal()][renderPass]; - } - } - - private static class BeeIconProviderWrapper implements IIconProvider { - - private final IBeeIconProvider beeIconProvider; - - public BeeIconProviderWrapper(IBeeIconProvider beeIconProvider) { - this.beeIconProvider = beeIconProvider; - } - - @Override - public IIcon getIcon(short texUID) { - return null; - } - - @Override - public void registerIcons(IIconRegister register) { - beeIconProvider.registerIcons(register); - } - } } diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectAggressive.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectAggressive.java index 61b8924e1..ed17f93d2 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectAggressive.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectAggressive.java @@ -27,8 +27,8 @@ public class AlleleEffectAggressive extends AlleleEffectThrottled { public static final DamageSource damageSourceBeeAggressive = new DamageSourceForestry("bee.aggressive"); - public AlleleEffectAggressive() { - super("aggressive", true, 40, false, false); + public AlleleEffectAggressive(String uid) { + super(uid, "aggressive", true, 40, false, false); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectCreeper.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectCreeper.java index 7b85dfb41..603cccd96 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectCreeper.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectCreeper.java @@ -29,8 +29,8 @@ public class AlleleEffectCreeper extends AlleleEffectThrottled { private final byte indexExplosionTimer = 1; private final byte indexExplosionForce = 2; - public AlleleEffectCreeper() { - super("creeper", true, 20, false, true); + public AlleleEffectCreeper(String uid) { + super(uid, "creeper", true, 20, false, true); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectExploration.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectExploration.java index e9f3e0030..71d9d84c5 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectExploration.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectExploration.java @@ -21,8 +21,8 @@ import forestry.api.genetics.IEffectData; public class AlleleEffectExploration extends AlleleEffectThrottled { - public AlleleEffectExploration() { - super("exploration", false, 80, true, false); + public AlleleEffectExploration(String uid) { + super(uid, "exploration", false, 80, true, false); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectFertile.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectFertile.java index 97180b748..47d83236c 100644 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectFertile.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectFertile.java @@ -13,8 +13,8 @@ public class AlleleEffectFertile extends AlleleEffectThrottled { public static final int MAX_BLOCK_FIND_TRIES = 5; - public AlleleEffectFertile() { - super("fertile", false, 6, true, false); + public AlleleEffectFertile(String uid) { + super(uid, "fertile", false, 6, true, false); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectFungification.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectFungification.java index 31a109e37..26b2776f5 100644 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectFungification.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectFungification.java @@ -21,8 +21,8 @@ public class AlleleEffectFungification extends AlleleEffectThrottled { public static final int MAX_BLOCK_FIND_TRIES = 10; public static final int ENTITY_THROTTLE = 6; - public AlleleEffectFungification() { - super("mycophilic", true, 10, false, false); + public AlleleEffectFungification(String uid) { + super(uid, "mycophilic", true, 10, false, false); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectGlacial.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectGlacial.java index be4d91384..f65dc6207 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectGlacial.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectGlacial.java @@ -24,8 +24,8 @@ import forestry.core.vect.Vect; public class AlleleEffectGlacial extends AlleleEffectThrottled { - public AlleleEffectGlacial() { - super("glacial", false, 200, true, false); + public AlleleEffectGlacial(String uid) { + super(uid, "glacial", false, 200, true, false); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectHeroic.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectHeroic.java index ff6b824d0..d48d670d2 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectHeroic.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectHeroic.java @@ -22,8 +22,8 @@ import forestry.api.genetics.IEffectData; public class AlleleEffectHeroic extends AlleleEffectThrottled { - public AlleleEffectHeroic() { - super("heroic", false, 40, true, false); + public AlleleEffectHeroic(String uid) { + super(uid, "heroic", false, 40, true, false); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectIgnition.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectIgnition.java index 4720a542e..6e55a364d 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectIgnition.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectIgnition.java @@ -28,8 +28,8 @@ public class AlleleEffectIgnition extends AlleleEffectThrottled { private static final int ignitionChance = 50; private static final int fireDuration = 500; - public AlleleEffectIgnition() { - super("ignition", false, 20, false, true); + public AlleleEffectIgnition(String uid) { + super(uid, "ignition", false, 20, false, true); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectMiasmic.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectMiasmic.java index 0874591a2..1d117c1a5 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectMiasmic.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectMiasmic.java @@ -28,8 +28,8 @@ public class AlleleEffectMiasmic extends AlleleEffectThrottled { private static final int infectionChance = 50; - public AlleleEffectMiasmic() { - super("miasmic", false, 50, false, false); + public AlleleEffectMiasmic(String uid) { + super(uid, "misasmic", false, 50, false, false); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectMisanthrope.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectMisanthrope.java index 3cd20bdfd..fc80d714e 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectMisanthrope.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectMisanthrope.java @@ -26,8 +26,8 @@ public class AlleleEffectMisanthrope extends AlleleEffectThrottled { public static final DamageSource damageSourceBeeEnd = new DamageSourceForestry("bee.end"); - public AlleleEffectMisanthrope() { - super("misanthrope", true, 20, false, false); + public AlleleEffectMisanthrope(String uid) { + super(uid, "misanthrope", true, 20, false, false); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectNone.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectNone.java index 57d61d013..b88f7db59 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectNone.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectNone.java @@ -14,13 +14,13 @@ import forestry.api.apiculture.IAlleleBeeEffect; import forestry.api.apiculture.IBeeGenome; import forestry.api.apiculture.IBeeHousing; import forestry.api.genetics.IEffectData; -import forestry.core.genetics.alleles.AlleleForestry; +import forestry.core.genetics.Allele; import forestry.plugins.PluginApiculture; -public class AlleleEffectNone extends AlleleForestry implements IAlleleBeeEffect { +public class AlleleEffectNone extends Allele implements IAlleleBeeEffect { - public AlleleEffectNone(String name) { - super("effect", name, true); + public AlleleEffectNone(String uid) { + super(uid, true); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectPotion.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectPotion.java index 6fd2480f7..df9a5f07f 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectPotion.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectPotion.java @@ -31,8 +31,8 @@ public class AlleleEffectPotion extends AlleleEffectThrottled { private final boolean isBadEffect; private final int duration; - public AlleleEffectPotion(String name, boolean isDominant, Potion potion, int duration, boolean requiresWorking) { - super(name, isDominant, 200, requiresWorking, false); + public AlleleEffectPotion(String uid, String name, boolean isDominant, Potion potion, int duration, boolean requiresWorking) { + super(uid, name, isDominant, 200, requiresWorking, false); this.potion = potion; this.isBadEffect = isBadEffect(potion); this.duration = duration; diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectRadioactive.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectRadioactive.java index 36f6f6fa0..ece1ed459 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectRadioactive.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectRadioactive.java @@ -34,8 +34,8 @@ public class AlleleEffectRadioactive extends AlleleEffectThrottled { public static final DamageSource damageSourceBeeRadioactive = new DamageSourceForestry("bee.radioactive"); - public AlleleEffectRadioactive() { - super("radioactive", true, 40, false, true); + public AlleleEffectRadioactive(String uid) { + super(uid, "radioactive", true, 40, false, true); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectRepulsion.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectRepulsion.java index 2eda66f0c..ce6d780b4 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectRepulsion.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectRepulsion.java @@ -22,8 +22,8 @@ import forestry.api.genetics.IEffectData; public class AlleleEffectRepulsion extends AlleleEffectThrottled { - public AlleleEffectRepulsion() { - super("repulsion", false, 100, true, true); + public AlleleEffectRepulsion(String uid) { + super(uid, "repulsion", false, 100, true, true); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectResurrection.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectResurrection.java index e38999f2f..a8b794464 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectResurrection.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectResurrection.java @@ -72,8 +72,8 @@ public class AlleleEffectResurrection extends AlleleEffectThrottled { private final List resurrectables; - public AlleleEffectResurrection(String name, List resurrectables) { - super(name, true, 40, true, true); + public AlleleEffectResurrection(String uid, String name, List resurrectables) { + super(uid, name, true, 40, true, true); this.resurrectables = resurrectables; } diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectSnowing.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectSnowing.java index 3a4d5712f..ca10f050e 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectSnowing.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectSnowing.java @@ -25,8 +25,8 @@ import forestry.core.vect.Vect; public class AlleleEffectSnowing extends AlleleEffectThrottled { - public AlleleEffectSnowing() { - super("snowing", false, 20, true, true); + public AlleleEffectSnowing(String uid) { + super(uid, "snowing", false, 20, true, true); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/AlleleEffectThrottled.java b/src/main/java/forestry/apiculture/genetics/AlleleEffectThrottled.java index 512e02915..54f699f75 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleEffectThrottled.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleEffectThrottled.java @@ -17,19 +17,19 @@ import forestry.api.apiculture.IBeeGenome; import forestry.api.apiculture.IBeeHousing; import forestry.api.genetics.IEffectData; import forestry.core.EnumErrorCode; +import forestry.core.genetics.Allele; import forestry.core.genetics.EffectData; -import forestry.core.genetics.alleles.AlleleForestry; import forestry.core.vect.Vect; import forestry.plugins.PluginApiculture; -public abstract class AlleleEffectThrottled extends AlleleForestry implements IAlleleBeeEffect { +public abstract class AlleleEffectThrottled extends Allele implements IAlleleBeeEffect { private boolean isCombinable = false; private final int throttle; private boolean requiresWorkingQueen = false; - public AlleleEffectThrottled(String name, boolean isDominant, int throttle, boolean requiresWorking, boolean isCombinable) { - super("effect", name, isDominant); + public AlleleEffectThrottled(String uid, String name, boolean isDominant, int throttle, boolean requiresWorking, boolean isCombinable) { + super(uid, isDominant); this.name = "apiculture.effect." + name; this.throttle = throttle; this.isCombinable = isCombinable; diff --git a/src/main/java/forestry/apiculture/genetics/AlleleFlowers.java b/src/main/java/forestry/apiculture/genetics/AlleleFlowers.java index 84cec0e89..6b8bb5bbb 100755 --- a/src/main/java/forestry/apiculture/genetics/AlleleFlowers.java +++ b/src/main/java/forestry/apiculture/genetics/AlleleFlowers.java @@ -12,14 +12,18 @@ package forestry.apiculture.genetics; import forestry.api.genetics.IAlleleFlowers; import forestry.api.genetics.IFlowerProvider; -import forestry.core.genetics.alleles.AlleleForestry; +import forestry.core.genetics.Allele; -public class AlleleFlowers extends AlleleForestry implements IAlleleFlowers { +public class AlleleFlowers extends Allele implements IAlleleFlowers { private final IFlowerProvider provider; - public AlleleFlowers(String category, String name, IFlowerProvider provider, boolean isDominant) { - super(category, name, isDominant); + public AlleleFlowers(String uid, IFlowerProvider provider) { + this(uid, provider, false); + } + + public AlleleFlowers(String uid, IFlowerProvider provider, boolean isDominant) { + super(uid, isDominant); this.provider = provider; } diff --git a/src/main/java/forestry/apiculture/genetics/ApiaristTracker.java b/src/main/java/forestry/apiculture/genetics/ApiaristTracker.java index ebd03e822..9f0acdedb 100755 --- a/src/main/java/forestry/apiculture/genetics/ApiaristTracker.java +++ b/src/main/java/forestry/apiculture/genetics/ApiaristTracker.java @@ -15,12 +15,12 @@ import net.minecraft.nbt.NBTTagCompound; import com.mojang.authlib.GameProfile; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.IApiaristTracker; import forestry.api.genetics.IBreedingTracker; import forestry.api.genetics.IIndividual; import forestry.core.genetics.BreedingTracker; +import forestry.plugins.PluginApiculture; public class ApiaristTracker extends BreedingTracker implements IApiaristTracker { @@ -67,7 +67,7 @@ public class ApiaristTracker extends BreedingTracker implements IApiaristTracker if (!individual.isPureBred(EnumBeeChromosome.SPECIES)) { return; } - if (BeeManager.beeRoot.getCombinations(individual.getGenome().getPrimary()).size() > 0) { + if (PluginApiculture.beeInterface.getCombinations(individual.getGenome().getPrimary()).size() > 0) { return; } @@ -109,7 +109,7 @@ public class ApiaristTracker extends BreedingTracker implements IApiaristTracker @Override protected IBreedingTracker getBreedingTracker(EntityPlayer player) { - return BeeManager.beeRoot.getBreedingTracker(player.worldObj, player.getGameProfile()); + return PluginApiculture.beeInterface.getBreedingTracker(player.worldObj, player.getGameProfile()); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/Bee.java b/src/main/java/forestry/apiculture/genetics/Bee.java index 171b3cf23..9fd6ff820 100755 --- a/src/main/java/forestry/apiculture/genetics/Bee.java +++ b/src/main/java/forestry/apiculture/genetics/Bee.java @@ -24,7 +24,6 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.IAlleleBeeEffect; import forestry.api.apiculture.IAlleleBeeSpecies; @@ -43,6 +42,7 @@ import forestry.api.genetics.IAlleleTolerance; import forestry.api.genetics.IChromosome; import forestry.api.genetics.IEffectData; import forestry.api.genetics.IFlowerProvider; +import forestry.api.genetics.IGenome; import forestry.api.genetics.IIndividual; import forestry.api.genetics.IPollinatable; import forestry.arboriculture.genetics.FakePollinatable; @@ -57,6 +57,7 @@ import forestry.core.utils.GeneticsUtil; import forestry.core.utils.StringUtil; import forestry.core.vect.MutableVect; import forestry.core.vect.Vect; +import forestry.plugins.PluginApiculture; public class Bee extends IndividualLiving implements IBee { @@ -407,7 +408,7 @@ public class Bee extends IndividualLiving implements IBee { @Override public void age(World world, float housingLifespanModifier) { - IBeekeepingMode mode = BeeManager.beeRoot.getBeekeepingMode(world); + IBeekeepingMode mode = PluginApiculture.beeInterface.getBeekeepingMode(world); float finalModifier = housingLifespanModifier * mode.getLifespanModifier(genome, mate, housingLifespanModifier); super.age(world, finalModifier); @@ -460,7 +461,7 @@ public class Bee extends IndividualLiving implements IBee { Proxies.log.warning("Failed to produce in an apiary because the beehousing was null."); return null; } - IBeekeepingMode mode = BeeManager.beeRoot.getBeekeepingMode(housing.getWorld()); + IBeekeepingMode mode = PluginApiculture.beeInterface.getBeekeepingMode(housing.getWorld()); if (mode == null) { Proxies.log.warning("Failed to produce in an apiary because the beekeeping mode was null."); return null; @@ -518,7 +519,7 @@ public class Bee extends IndividualLiving implements IBee { } // Fatigued queens do not produce princesses. - if (BeeManager.beeRoot.getBeekeepingMode(housing.getWorld()).isFatigued(this, housing)) { + if (PluginApiculture.beeInterface.getBeekeepingMode(housing.getWorld()).isFatigued(this, housing)) { return null; } @@ -537,7 +538,7 @@ public class Bee extends IndividualLiving implements IBee { ArrayList bees = new ArrayList(); - int toCreate = BeeManager.beeRoot.getBeekeepingMode(world).getFinalFertility(this, world, housing.getXCoord(), housing.getYCoord(), + int toCreate = PluginApiculture.beeInterface.getBeekeepingMode(world).getFinalFertility(this, world, housing.getXCoord(), housing.getYCoord(), housing.getZCoord()); if (toCreate <= 0) { @@ -584,42 +585,42 @@ public class Bee extends IndividualLiving implements IBee { } } - IBeekeepingMode mode = BeeManager.beeRoot.getBeekeepingMode(world); + IBeekeepingMode mode = PluginApiculture.beeInterface.getBeekeepingMode(world); return new Bee(new BeeGenome(chromosomes), mode.isNaturalOffspring(this), generation); } - private static IChromosome[] mutateSpecies(IBeeHousing housing, IBeeGenome genomeOne, IBeeGenome genomeTwo) { + private IChromosome[] mutateSpecies(IBeeHousing housing, IGenome genomeOne, IGenome genomeTwo) { World world = housing.getWorld(); IChromosome[] parent1 = genomeOne.getChromosomes(); IChromosome[] parent2 = genomeTwo.getChromosomes(); - IBeeGenome genome0; - IBeeGenome genome1; - IAlleleBeeSpecies allele0; - IAlleleBeeSpecies allele1; + IGenome genome0; + IGenome genome1; + IAllele allele0; + IAllele allele1; if (world.rand.nextBoolean()) { - allele0 = (IAlleleBeeSpecies) parent1[EnumBeeChromosome.SPECIES.ordinal()].getPrimaryAllele(); - allele1 = (IAlleleBeeSpecies) parent2[EnumBeeChromosome.SPECIES.ordinal()].getSecondaryAllele(); + allele0 = parent1[EnumBeeChromosome.SPECIES.ordinal()].getPrimaryAllele(); + allele1 = parent2[EnumBeeChromosome.SPECIES.ordinal()].getSecondaryAllele(); genome0 = genomeOne; genome1 = genomeTwo; } else { - allele0 = (IAlleleBeeSpecies) parent2[EnumBeeChromosome.SPECIES.ordinal()].getPrimaryAllele(); - allele1 = (IAlleleBeeSpecies) parent1[EnumBeeChromosome.SPECIES.ordinal()].getSecondaryAllele(); + allele0 = parent2[EnumBeeChromosome.SPECIES.ordinal()].getPrimaryAllele(); + allele1 = parent1[EnumBeeChromosome.SPECIES.ordinal()].getSecondaryAllele(); genome0 = genomeTwo; genome1 = genomeOne; } - for (IBeeMutation mutation : BeeManager.beeRoot.getMutations(true)) { + for (IBeeMutation mutation : PluginApiculture.beeInterface.getMutations(true)) { float chance = mutation.getChance(housing, allele0, allele1, genome0, genome1); if (chance > world.rand.nextFloat() * 100) { - IApiaristTracker breedingTracker = BeeManager.beeRoot.getBreedingTracker(world, housing.getOwnerName()); + IApiaristTracker breedingTracker = PluginApiculture.beeInterface.getBreedingTracker(world, housing.getOwnerName()); breedingTracker.registerMutation(mutation); - return BeeManager.beeRoot.templateAsChromosomes(mutation.getTemplate()); + return PluginApiculture.beeInterface.templateAsChromosomes(mutation.getTemplate()); } } diff --git a/src/main/java/forestry/apiculture/genetics/BeeBranchDefinition.java b/src/main/java/forestry/apiculture/genetics/BeeBranchDefinition.java index b3da39b4b..abee32eb4 100644 --- a/src/main/java/forestry/apiculture/genetics/BeeBranchDefinition.java +++ b/src/main/java/forestry/apiculture/genetics/BeeBranchDefinition.java @@ -2,12 +2,9 @@ package forestry.apiculture.genetics; import java.util.Arrays; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.genetics.IAllele; -import forestry.api.genetics.IClassification; -import forestry.core.genetics.alleles.Allele; -import forestry.core.genetics.alleles.EnumAllele; +import forestry.core.genetics.Allele; public enum BeeBranchDefinition { HONEY("Apis"), @@ -17,104 +14,104 @@ public enum BeeBranchDefinition { INFERNAL("Diapis") { @Override protected void setBranchProperties(IAllele[] alleles) { - Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_2); - Allele.helper.set(alleles, EnumBeeChromosome.NOCTURNAL, true); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.NETHER); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.AVERAGE); + alleles[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceDown2; + alleles[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.boolTrue; + alleles[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowersNether; + alleles[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.floweringAverage; } }, AUSTERE("Modapis") { @Override protected void setBranchProperties(IAllele[] alleles) { - Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_1); - Allele.helper.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.DOWN_1); - Allele.helper.set(alleles, EnumBeeChromosome.NOCTURNAL, true); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.CACTI); + alleles[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceBoth1; + alleles[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceDown1; + alleles[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.boolTrue; + alleles[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowersCacti; } }, TROPICAL("Caldapis") { @Override protected void setBranchProperties(IAllele[] alleles) { - Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_1); - Allele.helper.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.UP_1); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.JUNGLE); - Allele.helper.set(alleles, EnumBeeChromosome.EFFECT, Allele.effectMiasmic); + alleles[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceUp1; + alleles[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceUp1; + alleles[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowersJungle; + alleles[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectMiasmic; } }, END("Finapis") { @Override protected void setBranchProperties(IAllele[] alleles) { - Allele.helper.set(alleles, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.LOW); - Allele.helper.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER); - Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_1); - Allele.helper.set(alleles, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGE); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.END); - Allele.helper.set(alleles, EnumBeeChromosome.NOCTURNAL, true); - Allele.helper.set(alleles, EnumBeeChromosome.EFFECT, Allele.effectMisanthrope); + alleles[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.fertilityLow; + alleles[EnumBeeChromosome.SPEED.ordinal()] = Allele.speedSlower; + alleles[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.lifespanLonger; + alleles[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceUp1; + alleles[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.territoryLarge; + alleles[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowersEnd; + alleles[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.boolTrue; + alleles[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectMisanthrope; } }, FROZEN("Coagapis") { @Override protected void setBranchProperties(IAllele[] alleles) { - Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_1); - Allele.helper.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_1); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.SNOW); - Allele.helper.set(alleles, EnumBeeChromosome.EFFECT, Allele.effectGlacial); + alleles[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceUp1; + alleles[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceBoth1; + alleles[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowersSnow; + alleles[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectGlacial; } }, VENGEFUL("Punapis") { @Override protected void setBranchProperties(IAllele[] alleles) { - Allele.helper.set(alleles, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGEST); - Allele.helper.set(alleles, EnumBeeChromosome.EFFECT, Allele.effectRadioactive); + alleles[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.territoryLargest; + alleles[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectRadioactive; } }, FESTIVE("Festapis") { @Override protected void setBranchProperties(IAllele[] alleles) { - Allele.helper.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_2); - Allele.helper.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_1); - Allele.helper.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL); + alleles[EnumBeeChromosome.SPEED.ordinal()] = Allele.speedSlower; + alleles[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceBoth2; + alleles[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceBoth1; + alleles[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.lifespanNormal; } }, AGRARIAN("Rustapis") { @Override protected void setBranchProperties(IAllele[] alleles) { - Allele.helper.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTER); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.WHEAT); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTER); + alleles[EnumBeeChromosome.SPEED.ordinal()] = Allele.speedSlower; + alleles[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.lifespanShorter; + alleles[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowersWheat; + alleles[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.floweringFaster; } }, BOGGY("Paludapis") { @Override protected void setBranchProperties(IAllele[] alleles) { - Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.MUSHROOMS); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWER); - Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_1); + alleles[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowersMushrooms; + alleles[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.floweringSlower; + alleles[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceBoth1; } }, MONASTIC("Monapis") { @Override protected void setBranchProperties(IAllele[] alleles) { - Allele.helper.set(alleles, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(alleles, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG); - Allele.helper.set(alleles, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.LOW); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTER); - Allele.helper.set(alleles, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_1); - Allele.helper.set(alleles, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_1); - Allele.helper.set(alleles, EnumBeeChromosome.CAVE_DWELLING, true); - Allele.helper.set(alleles, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.WHEAT); + alleles[EnumBeeChromosome.SPEED.ordinal()] = Allele.speedSlower; + alleles[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.lifespanLong; + alleles[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.fertilityLow; + alleles[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.floweringFaster; + alleles[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceBoth1; + alleles[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceBoth1; + alleles[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = Allele.boolTrue; + alleles[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowersWheat; } } ; - private final IClassification branch; + private final BranchBees branch; BeeBranchDefinition(String scientific) { - branch = BeeManager.beeFactory.createBranch(this.name().toLowerCase(), scientific); + branch = new BranchBees(this.name().toLowerCase(), scientific); } protected void setBranchProperties(IAllele[] template) { @@ -127,7 +124,7 @@ public enum BeeBranchDefinition { return template; } - public final IClassification getBranch() { + public final BranchBees getBranch() { return branch; } @@ -137,18 +134,18 @@ public enum BeeBranchDefinition { if (defaultTemplate == null) { defaultTemplate = new IAllele[EnumBeeChromosome.values().length]; - Allele.helper.set(defaultTemplate, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTER); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.NORMAL); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.NONE); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.NOCTURNAL, false); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.NONE); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.TOLERANT_FLYER, false); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.CAVE_DWELLING, false); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.VANILLA); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWEST); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.AVERAGE); - Allele.helper.set(defaultTemplate, EnumBeeChromosome.EFFECT, Allele.effectNone); + defaultTemplate[EnumBeeChromosome.SPEED.ordinal()] = Allele.speedSlowest; + defaultTemplate[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.lifespanShorter; + defaultTemplate[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.fertilityNormal; + defaultTemplate[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceNone; + defaultTemplate[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.boolFalse; + defaultTemplate[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceNone; + defaultTemplate[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.boolFalse; + defaultTemplate[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = Allele.boolFalse; + defaultTemplate[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowersVanilla; + defaultTemplate[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.floweringSlowest; + defaultTemplate[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.territoryDefault; + defaultTemplate[EnumBeeChromosome.EFFECT.ordinal()] = Allele.effectNone; } return Arrays.copyOf(defaultTemplate, defaultTemplate.length); } diff --git a/src/main/java/forestry/apiculture/genetics/BeeDefinition.java b/src/main/java/forestry/apiculture/genetics/BeeDefinition.java index c2733b951..987c01d78 100644 --- a/src/main/java/forestry/apiculture/genetics/BeeDefinition.java +++ b/src/main/java/forestry/apiculture/genetics/BeeDefinition.java @@ -12,33 +12,30 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.common.BiomeDictionary; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.EnumBeeType; -import forestry.api.apiculture.IAlleleBeeSpecies; -import forestry.api.apiculture.IAlleleBeeSpeciesCustom; import forestry.api.apiculture.IBee; import forestry.api.apiculture.IBeeGenome; -import forestry.api.apiculture.IBeeMutationCustom; import forestry.api.core.EnumHumidity; import forestry.api.core.EnumTemperature; +import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IAllele; import forestry.core.config.ForestryItem; -import forestry.core.genetics.alleles.Allele; -import forestry.core.genetics.alleles.EnumAllele; +import forestry.core.genetics.Allele; +import forestry.plugins.PluginApiculture; public enum BeeDefinition implements IBeeDefinition { /* HONEY BRANCH */ FOREST(BeeBranchDefinition.HONEY, "nigrocincta", true, new Color(0x19d0ec), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 0), 30); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.HIGH); + protected void setAlleles() { + setAllele(EnumBeeChromosome.FLOWERING, Allele.floweringSlower); + setAllele(EnumBeeChromosome.FERTILITY, Allele.fertilityHigh); } @Override @@ -48,13 +45,13 @@ public enum BeeDefinition implements IBeeDefinition { }, MEADOWS(BeeBranchDefinition.HONEY, "florea", true, new Color(0xef131e), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 0), 30); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOWER); + protected void setAlleles() { + setAllele(EnumBeeChromosome.FLOWERING, Allele.floweringSlower); } @Override @@ -64,13 +61,13 @@ public enum BeeDefinition implements IBeeDefinition { }, COMMON(BeeBranchDefinition.HONEY, "cerana", true, new Color(0xb2b2b2), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 0), 35); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); } @Override @@ -86,14 +83,14 @@ public enum BeeDefinition implements IBeeDefinition { }, CULTIVATED(BeeBranchDefinition.HONEY, "mellifera", true, new Color(0x5734ec), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 0), 40); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.FAST); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTEST); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedFast); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanShortest); } @Override @@ -107,15 +104,15 @@ public enum BeeDefinition implements IBeeDefinition { /* NOBLE BRANCH */ NOBLE(BeeBranchDefinition.NOBLE, "nobilis", false, new Color(0xec9a19), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 5), 20); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT); - Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOW); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanShort); + setAllele(EnumBeeChromosome.FLOWERING, Allele.floweringSlow); } @Override @@ -125,15 +122,15 @@ public enum BeeDefinition implements IBeeDefinition { }, MAJESTIC(BeeBranchDefinition.NOBLE, "regalis", true, new Color(0x7f0000), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 5), 30); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTENED); - Allele.helper.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.MAXIMUM); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedNorm); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanShortened); + setAllele(EnumBeeChromosome.FERTILITY, Allele.fertilityMaximum); } @Override @@ -143,17 +140,17 @@ public enum BeeDefinition implements IBeeDefinition { }, IMPERIAL(BeeBranchDefinition.NOBLE, "imperatorius", false, new Color(0xa3e02f), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 5), 20) .addProduct(ForestryItem.royalJelly.getItemStack(), 15) .setHasEffect(); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectBeatific); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanNormal); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectBeatific); } @Override @@ -165,15 +162,15 @@ public enum BeeDefinition implements IBeeDefinition { /* INDUSTRIOUS BRANCH */ DILIGENT(BeeBranchDefinition.INDUSTRIOUS, "sedulus", false, new Color(0xc219ec), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 3), 20); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT); - Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.SLOW); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanShort); + setAllele(EnumBeeChromosome.FLOWERING, Allele.floweringSlow); } @Override @@ -183,14 +180,14 @@ public enum BeeDefinition implements IBeeDefinition { }, UNWEARY(BeeBranchDefinition.INDUSTRIOUS, "assiduus", true, new Color(0x19ec5a), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 3), 30); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTENED); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedNorm); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanShortened); } @Override @@ -200,17 +197,17 @@ public enum BeeDefinition implements IBeeDefinition { }, INDUSTRIOUS(BeeBranchDefinition.INDUSTRIOUS, "industria", false, new Color(0xffffff), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 3), 20) .addProduct(ForestryItem.pollenCluster.getItemStack(), 15) .setHasEffect(); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL); - Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FAST); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanNormal); + setAllele(EnumBeeChromosome.FLOWERING, Allele.floweringFast); } @Override @@ -222,17 +219,17 @@ public enum BeeDefinition implements IBeeDefinition { /* HEROIC BRANCH */ STEADFAST(BeeBranchDefinition.HEROIC, "legio", false, new Color(0x4d2b15), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 1), 20) .setHasEffect(); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL); - Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true); - Allele.helper.set(template, EnumBeeChromosome.CAVE_DWELLING, true); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanNormal); + setAllele(EnumBeeChromosome.NOCTURNAL, Allele.boolTrue); + setAllele(EnumBeeChromosome.CAVE_DWELLING, Allele.boolTrue); } @Override @@ -242,17 +239,17 @@ public enum BeeDefinition implements IBeeDefinition { }, VALIANT(BeeBranchDefinition.HEROIC, "centurio", true, new Color(0x626bdd), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 1), 30) .addSpecialty(new ItemStack(Items.sugar), 15); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG); - Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true); - Allele.helper.set(template, EnumBeeChromosome.CAVE_DWELLING, true); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlow); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLong); + setAllele(EnumBeeChromosome.NOCTURNAL, Allele.boolTrue); + setAllele(EnumBeeChromosome.CAVE_DWELLING, Allele.boolTrue); } @Override @@ -262,41 +259,43 @@ public enum BeeDefinition implements IBeeDefinition { }, HEROIC(BeeBranchDefinition.HEROIC, "kraphti", false, new Color(0xb3d5e4), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 1), 40) .setHasEffect(); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG); - Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true); - Allele.helper.set(template, EnumBeeChromosome.CAVE_DWELLING, true); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectHeroic); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlow); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLong); + setAllele(EnumBeeChromosome.NOCTURNAL, Allele.boolTrue); + setAllele(EnumBeeChromosome.CAVE_DWELLING, Allele.boolTrue); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectHeroic); } @Override protected void registerMutations() { registerMutation(STEADFAST, VALIANT, 6) - .restrictBiomeType(BiomeDictionary.Type.FOREST); + .restrictBiomeType(BiomeDictionary.Type.FOREST) + .enableStrictBiomeCheck(); } }, /* INFERNAL BRANCH */ SINISTER(BeeBranchDefinition.INFERNAL, "caecus", false, new Color(0xb3d5e4), new Color(0x9a2323)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 2), 45) + .setEntityTexture("sinisterBee") .setTemperature(EnumTemperature.HELLISH) .setHumidity(EnumHumidity.ARID); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectAggressive); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanNormal); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectAggressive); } @Override @@ -309,18 +308,19 @@ public enum BeeDefinition implements IBeeDefinition { }, FIENDISH(BeeBranchDefinition.INFERNAL, "diabolus", true, new Color(0xd7bee5), new Color(0x9a2323)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 2), 55) .addProduct(ForestryItem.ash.getItemStack(), 15) + .setEntityTexture("sinisterBee") .setTemperature(EnumTemperature.HELLISH) .setHumidity(EnumHumidity.ARID); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectAggressive); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedNorm); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLong); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectAggressive); } @Override @@ -333,19 +333,20 @@ public enum BeeDefinition implements IBeeDefinition { }, DEMONIC(BeeBranchDefinition.INFERNAL, "draco", false, new Color(0xf4e400), new Color(0x9a2323)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 2), 45) .addProduct(new ItemStack(Items.glowstone_dust), 15) + .setEntityTexture("sinisterBee") .setHasEffect() .setTemperature(EnumTemperature.HELLISH) .setHumidity(EnumHumidity.ARID); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectIgnition); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLonger); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectIgnition); } @Override @@ -358,16 +359,16 @@ public enum BeeDefinition implements IBeeDefinition { /* AUSTERE BRANCH */ MODEST(BeeBranchDefinition.AUSTERE, "modicus", false, new Color(0xc5be86), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 7), 20) .setTemperature(EnumTemperature.HOT) .setHumidity(EnumHumidity.ARID); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanShort); } @Override @@ -377,31 +378,29 @@ public enum BeeDefinition implements IBeeDefinition { }, FRUGAL(BeeBranchDefinition.AUSTERE, "permodestus", true, new Color(0xe8dcb1), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 7), 30) .setTemperature(EnumTemperature.HOT) .setHumidity(EnumHumidity.ARID); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedNorm); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLong); } @Override protected void registerMutations() { registerMutation(MODEST, SINISTER, 16) - .restrictTemperature(EnumTemperature.HOT, EnumTemperature.HELLISH) - .restrictHumidity(EnumHumidity.ARID); + .setTemperatureRainfall(1.9f, 2.0f, 0.0f, 0.1f); registerMutation(MODEST, FIENDISH, 10) - .restrictTemperature(EnumTemperature.HOT, EnumTemperature.HELLISH) - .restrictHumidity(EnumHumidity.ARID); + .setTemperatureRainfall(1.9f, 2.0f, 0.0f, 0.1f); } }, AUSTERE(BeeBranchDefinition.AUSTERE, "correpere", false, new Color(0xfffac2), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 7), 20) .addSpecialty(ForestryItem.beeComb.getItemStack(1, 10), 50) .setHasEffect() @@ -410,34 +409,34 @@ public enum BeeDefinition implements IBeeDefinition { } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER); - Allele.helper.set(template, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_2); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectCreeper); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlowest); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLonger); + setAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE, Allele.toleranceDown2); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectCreeper); } @Override protected void registerMutations() { registerMutation(MODEST, FRUGAL, 8) - .restrictTemperature(EnumTemperature.HOT, EnumTemperature.HELLISH) - .restrictHumidity(EnumHumidity.ARID); + .setTemperatureRainfall(1.9f, 2.0f, 0.0f, 0.1f); } }, /* TROPICAL BRANCH */ TROPICAL(BeeBranchDefinition.TROPICAL, "mendelia", false, new Color(0x378020), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 6), 20) + .setEntityTexture("tropicalBee") .setTemperature(EnumTemperature.WARM) .setHumidity(EnumHumidity.DAMP); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanShort); } @Override @@ -447,16 +446,17 @@ public enum BeeDefinition implements IBeeDefinition { }, EXOTIC(BeeBranchDefinition.TROPICAL, "darwini", true, new Color(0x304903), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 6), 30) + .setEntityTexture("tropicalBee") .setTemperature(EnumTemperature.WARM) .setHumidity(EnumHumidity.DAMP); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONG); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedNorm); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLong); } @Override @@ -466,19 +466,20 @@ public enum BeeDefinition implements IBeeDefinition { }, EDENIC(BeeBranchDefinition.TROPICAL, "humboldti", false, new Color(0x393d0d), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 6), 20) + .setEntityTexture("tropicalBee") .setHasEffect() .setTemperature(EnumTemperature.WARM) .setHumidity(EnumHumidity.DAMP); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER); - Allele.helper.set(template, EnumBeeChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_2); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectExploration); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlowest); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLonger); + setAllele(EnumBeeChromosome.TEMPERATURE_TOLERANCE, Allele.toleranceBoth2); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectExploration); } @Override @@ -490,13 +491,14 @@ public enum BeeDefinition implements IBeeDefinition { /* END BRANCH */ ENDED(BeeBranchDefinition.END, "notchi", false, new Color(0xe079fa), new Color(0xd9de9e)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 8), 30) + .setEntityTexture("endBee") .setTemperature(EnumTemperature.COLD); } @Override - protected void setAlleles(IAllele[] template) { + protected void setAlleles() { } @@ -508,14 +510,15 @@ public enum BeeDefinition implements IBeeDefinition { SPECTRAL(BeeBranchDefinition.END, "idolum", true, new Color(0xa98bed), new Color(0xd9de9e)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 8), 50) + .setEntityTexture("endBee") .setTemperature(EnumTemperature.COLD); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectReanimation); + protected void setAlleles() { + setAllele(EnumBeeChromosome.EFFECT, Allele.effectReanimation); } @Override @@ -526,17 +529,18 @@ public enum BeeDefinition implements IBeeDefinition { PHANTASMAL(BeeBranchDefinition.END, "lemur", false, new Color(0xcc00fa), new Color(0xd9de9e)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 8), 40) + .setEntityTexture("endBee") .setHasEffect() .setTemperature(EnumTemperature.COLD); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGEST); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectResurrection); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlowest); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLongest); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectResurrection); } @Override @@ -548,16 +552,17 @@ public enum BeeDefinition implements IBeeDefinition { /* FROZEN BRANCH */ WINTRY(BeeBranchDefinition.FROZEN, "brumalis", false, new Color(0xa0ffc8), new Color(0xdaf5f3)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 4), 30) + .setEntityTexture("icyBee") .setTemperature(EnumTemperature.ICY); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT); - Allele.helper.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.MAXIMUM); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanShort); + setAllele(EnumBeeChromosome.FERTILITY, Allele.fertilityMaximum); } @Override @@ -567,58 +572,60 @@ public enum BeeDefinition implements IBeeDefinition { }, ICY(BeeBranchDefinition.FROZEN, "coagulis", true, new Color(0xa0ffff), new Color(0xdaf5f3)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 4), 20) .addProduct(ForestryItem.craftingMaterial.getItemStack(1, 5), 20) + .setEntityTexture("icyBee") .setTemperature(EnumTemperature.ICY); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlow); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanShort); } @Override protected void registerMutations() { registerMutation(INDUSTRIOUS, WINTRY, 12) - .restrictTemperature(EnumTemperature.ICY, EnumTemperature.COLD); + .setTemperature(0f, 0.15f); } }, GLACIAL(BeeBranchDefinition.FROZEN, "glacialis", false, new Color(0xefffff), new Color(0xdaf5f3)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 4), 20) .addProduct(ForestryItem.craftingMaterial.getItemStack(1, 5), 40) + .setEntityTexture("icyBee") .setTemperature(EnumTemperature.ICY) .setHasEffect(); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanShort); } @Override protected void registerMutations() { registerMutation(ICY, WINTRY, 8) - .restrictTemperature(EnumTemperature.ICY, EnumTemperature.COLD); + .setTemperature(0f, 0.15f); } }, /* VENGEFUL BRANCH */ VINDICTIVE(BeeBranchDefinition.VENGEFUL, "ultio", false, new Color(0xeafff3), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 9), 25) .setIsNotCounted(); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlower); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanNormal); } @Override @@ -628,15 +635,15 @@ public enum BeeDefinition implements IBeeDefinition { }, VENGEFUL(BeeBranchDefinition.VENGEFUL, "punire", false, new Color(0xc2de00), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 9), 40) .setIsNotCounted(); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.NORMAL); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGER); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedNorm); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLonger); } @Override @@ -647,16 +654,16 @@ public enum BeeDefinition implements IBeeDefinition { }, AVENGING(BeeBranchDefinition.VENGEFUL, "hostimentum", false, new Color(0xddff00), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 9), 40) .setHasEffect() .setIsNotCounted(); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOWEST); - Allele.helper.set(template, EnumBeeChromosome.LIFESPAN, EnumAllele.Lifespan.LONGEST); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlowest); + setAllele(EnumBeeChromosome.LIFESPAN, Allele.lifespanLongest); } @Override @@ -669,7 +676,7 @@ public enum BeeDefinition implements IBeeDefinition { // Easter LEPORINE(BeeBranchDefinition.FESTIVE, "lepus", false, new Color(0xfeff8f), new Color(0x3cd757)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 6), 30) .addProduct(new ItemStack(Items.egg), 10) .setHasEffect() @@ -677,21 +684,19 @@ public enum BeeDefinition implements IBeeDefinition { } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectFestiveEaster); + protected void setAlleles() { + setAllele(EnumBeeChromosome.EFFECT, Allele.effectFestiveEaster); } @Override protected void registerMutations() { - registerMutation(MEADOWS, FOREST, 10) - .restrictDateRange(3, 29, 4, 15) - .setIsSecret(); + registerMutationTimeLimited(MEADOWS, FOREST, 10, 3, 29, 4, 15).setIsSecret(); } }, // Christmas MERRY(BeeBranchDefinition.FESTIVE, "feliciter", false, new Color(0xffffff), new Color(0xd40000)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 4), 30) .addProduct(ForestryItem.craftingMaterial.getItemStack(1, 5), 20) .setTemperature(EnumTemperature.ICY) @@ -700,22 +705,20 @@ public enum BeeDefinition implements IBeeDefinition { } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectSnowing); + protected void setAlleles() { + setAllele(EnumBeeChromosome.NOCTURNAL, Allele.boolTrue); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectSnowing); } @Override protected void registerMutations() { - registerMutation(WINTRY, FOREST, 10) - .restrictDateRange(12, 21, 12, 27) - .setIsSecret(); + registerMutationTimeLimited(WINTRY, FOREST, 10, 12, 21, 12, 27).setIsSecret(); } }, // New Year TIPSY(BeeBranchDefinition.FESTIVE, "ebrius", false, new Color(0xffffff), new Color(0xc219ec)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 4), 30) .addProduct(ForestryItem.craftingMaterial.getItemStack(1, 5), 20) .setTemperature(EnumTemperature.ICY) @@ -724,23 +727,21 @@ public enum BeeDefinition implements IBeeDefinition { } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectDrunkard); + protected void setAlleles() { + setAllele(EnumBeeChromosome.NOCTURNAL, Allele.boolTrue); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectDrunkard); } @Override protected void registerMutations() { - registerMutation(WINTRY, MEADOWS, 10) - .restrictDateRange(12, 27, 1, 2) - .setIsSecret(); + registerMutationTimeLimited(WINTRY, MEADOWS, 10, 12, 27, 1, 2).setIsSecret(); } }, // (missing) Solstice // Halloween TRICKY(BeeBranchDefinition.FESTIVE, "libita", false, new Color(0x49413B), new Color(0xFF6A00)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 0), 40) .addProduct(new ItemStack(Items.cookie), 15) .addSpecialty(new ItemStack(Items.skull, 1, 0), 2) @@ -752,17 +753,15 @@ public enum BeeDefinition implements IBeeDefinition { } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true); - Allele.helper.set(template, EnumBeeChromosome.TOLERANT_FLYER, true); - Allele.helper.set(template, EnumBeeChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.GOURD); + protected void setAlleles() { + setAllele(EnumBeeChromosome.NOCTURNAL, Allele.boolTrue); + setAllele(EnumBeeChromosome.TOLERANT_FLYER, Allele.boolTrue); + setAllele(EnumBeeChromosome.FLOWER_PROVIDER, Allele.flowersGourd); } @Override protected void registerMutations() { - registerMutation(SINISTER, COMMON, 10) - .restrictDateRange(10, 15, 11, 3) - .setIsSecret(); + registerMutationTimeLimited(SINISTER, COMMON, 10, 10, 15, 11, 3).setIsSecret(); } }, // (missing) Thanksgiving @@ -770,71 +769,74 @@ public enum BeeDefinition implements IBeeDefinition { /* AGRARIAN BRANCH */ RURAL(BeeBranchDefinition.AGRARIAN, "rustico", false, new Color(0xfeff8f), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 14), 20); } @Override - protected void setAlleles(IAllele[] template) { + protected void setAlleles() { } @Override protected void registerMutations() { registerMutation(MEADOWS, DILIGENT, 12) - .restrictBiomeType(BiomeDictionary.Type.PLAINS); + .restrictBiomeType(BiomeDictionary.Type.PLAINS) + .enableStrictBiomeCheck(); } }, FARMERLY(BeeBranchDefinition.AGRARIAN, "arator", true, new Color(0xD39728), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 14), 27); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW); - Allele.helper.set(template, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGE); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlow); + setAllele(EnumBeeChromosome.TERRITORY, Allele.territoryLarge); } @Override protected void registerMutations() { registerMutation(RURAL, UNWEARY, 10) - .restrictBiomeType(BiomeDictionary.Type.PLAINS); + .restrictBiomeType(BiomeDictionary.Type.PLAINS) + .enableStrictBiomeCheck(); } }, AGRARIAN(BeeBranchDefinition.AGRARIAN, "arator", true, new Color(0xFFCA75), new Color(0xFFE047)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 14), 35) .setHasEffect(); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.SPEED, EnumAllele.Speed.SLOW); - Allele.helper.set(template, EnumBeeChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.BOTH_2); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectFertile); - Allele.helper.set(template, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGE); + protected void setAlleles() { + setAllele(EnumBeeChromosome.SPEED, Allele.speedSlow); + setAllele(EnumBeeChromosome.HUMIDITY_TOLERANCE, Allele.toleranceBoth2); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectFertile); + setAllele(EnumBeeChromosome.TERRITORY, Allele.territoryLarge); } @Override protected void registerMutations() { registerMutation(FARMERLY, INDUSTRIOUS, 6) - .restrictBiomeType(BiomeDictionary.Type.PLAINS); + .restrictBiomeType(BiomeDictionary.Type.PLAINS) + .enableStrictBiomeCheck(); } }, /* BOGGY BRANCH */ MARSHY(BeeBranchDefinition.BOGGY, "adorasti", true, new Color(0x546626), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 15), 30) .setHumidity(EnumHumidity.DAMP); } @Override - protected void setAlleles(IAllele[] template) { + protected void setAlleles() { } @@ -845,60 +847,58 @@ public enum BeeDefinition implements IBeeDefinition { }, MIRY(BeeBranchDefinition.BOGGY, "humidium", true, new Color(0x92AF42), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 15), 36) .setHumidity(EnumHumidity.DAMP); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.FERTILITY, EnumAllele.Fertility.MAXIMUM); - Allele.helper.set(template, EnumBeeChromosome.TOLERANT_FLYER, true); - Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true); + protected void setAlleles() { + setAllele(EnumBeeChromosome.FERTILITY, Allele.fertilityMaximum); + setAllele(EnumBeeChromosome.TOLERANT_FLYER, Allele.boolTrue); + setAllele(EnumBeeChromosome.NOCTURNAL, Allele.boolTrue); } @Override protected void registerMutations() { registerMutation(MARSHY, NOBLE, 15) - .restrictTemperature(EnumTemperature.WARM) - .restrictHumidity(EnumHumidity.DAMP); + .setTemperatureRainfall(0.75f, 0.94f, 0.75f, 2.0f); } }, BOGGY(BeeBranchDefinition.BOGGY, "paluster", true, new Color(0x698948), new Color(0xffdc16)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 15), 39) .addSpecialty(ForestryItem.peat.getItemStack(), 8) .setHumidity(EnumHumidity.DAMP); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.TOLERANT_FLYER, true); - Allele.helper.set(template, EnumBeeChromosome.NOCTURNAL, true); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectMycophilic); - Allele.helper.set(template, EnumBeeChromosome.TERRITORY, EnumAllele.Territory.LARGER); + protected void setAlleles() { + setAllele(EnumBeeChromosome.TOLERANT_FLYER, Allele.boolTrue); + setAllele(EnumBeeChromosome.NOCTURNAL, Allele.boolTrue); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectMycophilic); + setAllele(EnumBeeChromosome.TERRITORY, Allele.territoryLarger); } @Override protected void registerMutations() { registerMutation(MARSHY, MIRY, 9) - .restrictTemperature(EnumTemperature.WARM) - .restrictHumidity(EnumHumidity.DAMP); + .setTemperatureRainfall(0.75f, 0.94f, 0.75f, 2.0f); } }, /* MONASTIC BRANCH */ MONASTIC(BeeBranchDefinition.MONASTIC, "monachus", false, new Color(0x42371c), new Color(0xfff7b6)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addProduct(ForestryItem.beeComb.getItemStack(1, 14), 30) .addSpecialty(ForestryItem.beeComb.getItemStack(1, 16), 10) .setJubilanceProvider(new JubilanceProviderHermit()); } @Override - protected void setAlleles(IAllele[] template) { + protected void setAlleles() { } @@ -909,14 +909,14 @@ public enum BeeDefinition implements IBeeDefinition { }, SECLUDED(BeeBranchDefinition.MONASTIC, "contractus", true, new Color(0x7b6634), new Color(0xfff7b6)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addSpecialty(ForestryItem.beeComb.getItemStack(1, 16), 20) .setJubilanceProvider(new JubilanceProviderHermit()); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTEST); + protected void setAlleles() { + setAllele(EnumBeeChromosome.FLOWERING, Allele.floweringFastest); } @Override @@ -926,16 +926,16 @@ public enum BeeDefinition implements IBeeDefinition { }, HERMITIC(BeeBranchDefinition.MONASTIC, "anachoreta", false, new Color(0xffd46c), new Color(0xfff7b6)) { @Override - protected void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies) { + protected void setSpeciesProperties(AlleleBeeSpecies beeSpecies) { beeSpecies.addSpecialty(ForestryItem.beeComb.getItemStack(1, 16), 20) .setJubilanceProvider(new JubilanceProviderHermit()) .setHasEffect(); } @Override - protected void setAlleles(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.FLOWERING, EnumAllele.Flowering.FASTEST); - Allele.helper.set(template, EnumBeeChromosome.EFFECT, Allele.effectRepulsion); + protected void setAlleles() { + setAllele(EnumBeeChromosome.FLOWERING, Allele.floweringFastest); + setAllele(EnumBeeChromosome.EFFECT, Allele.effectRepulsion); } @Override @@ -947,26 +947,22 @@ public enum BeeDefinition implements IBeeDefinition { public static final EnumSet overworldHiveBees = EnumSet.of(FOREST, MARSHY, MEADOWS, MODEST, TROPICAL, WINTRY); private final BeeBranchDefinition branch; - private final IAlleleBeeSpeciesCustom species; - + private final AlleleBeeSpecies species; private IAllele[] template; private IBeeGenome genome; BeeDefinition(BeeBranchDefinition branch, String binomial, boolean dominant, Color primary, Color secondary) { String lowercaseName = this.toString().toLowerCase(Locale.ENGLISH); - String species = "species" + WordUtils.capitalize(lowercaseName); - - String uid = "forestry." + species; - String description = "for.description." + species; + String uid = "species" + WordUtils.capitalize(lowercaseName); String name = "bees.species." + lowercaseName; + this.species = new AlleleBeeSpecies(uid, dominant, name, branch.getBranch(), binomial, primary.getRGB(), secondary.getRGB()); this.branch = branch; - this.species = BeeManager.beeFactory.createSpecies(uid, dominant, "Sengir", name, description, branch.getBranch(), binomial, primary.getRGB(), secondary.getRGB()); } - protected abstract void setSpeciesProperties(IAlleleBeeSpeciesCustom beeSpecies); + protected abstract void setSpeciesProperties(AlleleBeeSpecies beeSpecies); - protected abstract void setAlleles(IAllele[] template); + protected abstract void setAlleles(); protected abstract void registerMutations(); @@ -986,16 +982,32 @@ public enum BeeDefinition implements IBeeDefinition { setSpeciesProperties(species); template = branch.getTemplate(); - Allele.helper.set(template, EnumBeeChromosome.SPECIES, species); - setAlleles(template); + setAllele(EnumBeeChromosome.SPECIES, species); + setAlleles(); - genome = BeeManager.beeRoot.templateAsGenome(template); + genome = PluginApiculture.beeInterface.templateAsGenome(template); - BeeManager.beeRoot.registerTemplate(template); + AlleleManager.alleleRegistry.registerAllele(species); + PluginApiculture.beeInterface.registerTemplate(template); } - protected final IBeeMutationCustom registerMutation(BeeDefinition parent1, BeeDefinition parent2, int chance) { - return BeeManager.beeMutationFactory.createMutation(parent1.species, parent2.species, getTemplate(), chance); + protected final BeeMutation registerMutation(BeeDefinition parent1, BeeDefinition parent2, int chance) { + BeeMutation beeMutation = new BeeMutation(parent1, parent2, this, chance); + PluginApiculture.beeInterface.registerMutation(beeMutation); + return beeMutation; + } + + protected final BeeMutation registerMutationTimeLimited(BeeDefinition parent1, BeeDefinition parent2, int chance, int startMonth, int startDay, int endMonth, int endDay) { + MutationTimeLimited.DayMonth start = new MutationTimeLimited.DayMonth(startDay, startMonth); + MutationTimeLimited.DayMonth end = new MutationTimeLimited.DayMonth(endDay, endMonth); + + MutationTimeLimited beeMutation = new MutationTimeLimited(parent1, parent2, this, chance, start, end); + PluginApiculture.beeInterface.registerMutation(beeMutation); + return beeMutation; + } + + protected final void setAllele(EnumBeeChromosome chromosome, IAllele allele) { + template[chromosome.ordinal()] = allele; } @Override @@ -1016,7 +1028,7 @@ public enum BeeDefinition implements IBeeDefinition { @Override public final ItemStack getMemberStack(EnumBeeType beeType) { IBee bee = getIndividual(); - return BeeManager.beeRoot.getMemberStack(bee, beeType.ordinal()); + return PluginApiculture.beeInterface.getMemberStack(bee, beeType.ordinal()); } public final IBeeDefinition getRainResist() { diff --git a/src/main/java/forestry/apiculture/genetics/BeeFactory.java b/src/main/java/forestry/apiculture/genetics/BeeFactory.java deleted file mode 100644 index dd080d279..000000000 --- a/src/main/java/forestry/apiculture/genetics/BeeFactory.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.apiculture.genetics; - -import forestry.api.apiculture.IAlleleBeeSpeciesCustom; -import forestry.api.apiculture.IBeeFactory; -import forestry.api.genetics.AlleleManager; -import forestry.api.genetics.IClassification; - -public class BeeFactory implements IBeeFactory { - @Override - public IAlleleBeeSpeciesCustom createSpecies(String uid, boolean dominant, String authority, String unlocalizedName, String unlocalizedDescription, IClassification branch, String binomial, int primaryColor, int secondaryColor) { - IAlleleBeeSpeciesCustom species = new AlleleBeeSpecies(uid, authority, unlocalizedDescription, dominant, unlocalizedName, branch, binomial, primaryColor, secondaryColor); - AlleleManager.alleleRegistry.registerAllele(species); - return species; - } - - @Override - public IClassification createBranch(String uid, String scientific) { - return new BranchBees(uid, scientific); - } -} diff --git a/src/main/java/forestry/apiculture/genetics/BeeGenome.java b/src/main/java/forestry/apiculture/genetics/BeeGenome.java index b0ab98f36..eba11027e 100755 --- a/src/main/java/forestry/apiculture/genetics/BeeGenome.java +++ b/src/main/java/forestry/apiculture/genetics/BeeGenome.java @@ -13,7 +13,6 @@ package forestry.apiculture.genetics; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.IAlleleBeeEffect; import forestry.api.apiculture.IAlleleBeeSpecies; @@ -25,11 +24,12 @@ import forestry.api.genetics.IAlleleInteger; import forestry.api.genetics.IChromosome; import forestry.api.genetics.IFlowerProvider; import forestry.api.genetics.ISpeciesRoot; +import forestry.core.genetics.AlleleArea; +import forestry.core.genetics.AlleleBoolean; +import forestry.core.genetics.AlleleTolerance; import forestry.core.genetics.Genome; -import forestry.core.genetics.alleles.AlleleArea; -import forestry.core.genetics.alleles.AlleleBoolean; -import forestry.core.genetics.alleles.AlleleTolerance; import forestry.core.vect.Vect; +import forestry.plugins.PluginApiculture; public class BeeGenome extends Genome implements IBeeGenome { /** @@ -72,7 +72,7 @@ public class BeeGenome extends Genome implements IBeeGenome { // NBT RETRIEVAL public static IAlleleBeeSpecies getSpecies(ItemStack itemStack) { - return (IAlleleBeeSpecies) getActiveAllele(itemStack, EnumBeeChromosome.SPECIES, BeeManager.beeRoot); + return (IAlleleBeeSpecies) getActiveAllele(itemStack, EnumBeeChromosome.SPECIES, PluginApiculture.beeInterface); } // / INFORMATION RETRIEVAL @@ -149,6 +149,6 @@ public class BeeGenome extends Genome implements IBeeGenome { @Override public ISpeciesRoot getSpeciesRoot() { - return BeeManager.beeRoot; + return PluginApiculture.beeInterface; } } diff --git a/src/main/java/forestry/apiculture/genetics/BeeHelper.java b/src/main/java/forestry/apiculture/genetics/BeeHelper.java index 3db802983..16b7a34c4 100755 --- a/src/main/java/forestry/apiculture/genetics/BeeHelper.java +++ b/src/main/java/forestry/apiculture/genetics/BeeHelper.java @@ -25,7 +25,6 @@ import com.mojang.authlib.GameProfile; import cpw.mods.fml.common.FMLCommonHandler; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IAlleleBeeSpecies; @@ -216,7 +215,7 @@ public class BeeHelper extends SpeciesRoot implements IBeeRoot { @Override public void registerTemplate(String identifier, IAllele[] template) { - beeTemplates.add(new Bee(BeeManager.beeRoot.templateAsGenome(template))); + beeTemplates.add(new Bee(PluginApiculture.beeInterface.templateAsGenome(template))); speciesTemplates.put(identifier, template); } diff --git a/src/main/java/forestry/apiculture/genetics/BeeMutation.java b/src/main/java/forestry/apiculture/genetics/BeeMutation.java index aef32f24c..303d4917d 100755 --- a/src/main/java/forestry/apiculture/genetics/BeeMutation.java +++ b/src/main/java/forestry/apiculture/genetics/BeeMutation.java @@ -10,49 +10,110 @@ ******************************************************************************/ package forestry.apiculture.genetics; -import net.minecraft.world.World; +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; + +import net.minecraftforge.common.BiomeDictionary; -import forestry.api.apiculture.BeeManager; -import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IBeeGenome; import forestry.api.apiculture.IBeeHousing; -import forestry.api.apiculture.IBeeMutationCustom; +import forestry.api.apiculture.IBeeMutation; import forestry.api.apiculture.IBeeRoot; import forestry.api.genetics.IAllele; import forestry.api.genetics.IGenome; import forestry.core.genetics.Mutation; +import forestry.plugins.PluginApiculture; -public class BeeMutation extends Mutation implements IBeeMutationCustom { +public class BeeMutation extends Mutation implements IBeeMutation { + boolean requiresDay = false; + boolean requiresNight = false; - public BeeMutation(IAlleleBeeSpecies bee0, IAlleleBeeSpecies bee1, IAllele[] result, int chance) { - super(bee0, bee1, result, chance); + private final List restrictBiomeTypes = new ArrayList(); + private boolean strictBiomeCheck = false; + + public BeeMutation(BeeDefinition bee0, BeeDefinition bee1, BeeDefinition result, int chance) { + super(bee0.getGenome().getPrimary(), bee1.getGenome().getPrimary(), result.getTemplate(), chance); } @Override public IBeeRoot getRoot() { - return BeeManager.beeRoot; + return PluginApiculture.beeInterface; + } + + public BeeMutation enableStrictBiomeCheck() { + strictBiomeCheck = true; + return this; + } + + public BeeMutation restrictBiomeType(BiomeDictionary.Type type) { + restrictBiomeTypes.add(type); + specialConditions.add(String.format("Is restricted to %s-like environments.", type.toString())); + return this; + } + + public BeeMutation requireDay() { + requiresDay = true; + requiresNight = false; + specialConditions.add("Can only occur during the day."); + return this; + } + + public BeeMutation requireNight() { + requiresDay = false; + requiresNight = true; + specialConditions.add("Can only occur during the night."); + return this; } @Override public float getChance(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - return getChance(housing, (IAlleleBeeSpecies) allele0, (IAlleleBeeSpecies) allele1, (IBeeGenome) genome0, (IBeeGenome) genome1); - } - - @Override - public float getChance(IBeeHousing housing, IAlleleBeeSpecies allele0, IAlleleBeeSpecies allele1, IBeeGenome genome0, IBeeGenome genome1) { World world = housing.getWorld(); - int x = housing.getXCoord(); - int y = housing.getYCoord(); - int z = housing.getZCoord(); - - float processedChance = super.getChance(world, x, y, z, allele0, allele1, genome0, genome1); - if (processedChance <= 0) { + if (requiresDay && !world.isDaytime()) { return 0; } - processedChance *= housing.getMutationModifier(genome0, genome1, 1f); - processedChance *= BeeManager.beeRoot.getBeekeepingMode(world).getMutationModifier(genome0, genome1, 1f); + if (requiresNight && world.isDaytime()) { + return 0; + } + + // Skip if we are restricted by biomes and this one does not match. + if (restrictBiomeTypes.size() > 0) { + boolean noneMatched = true; + + BiomeGenBase biome = housing.getBiome(); + if (strictBiomeCheck) { + BiomeDictionary.Type[] types = BiomeDictionary.getTypesForBiome(biome); + if (types.length == 1 && restrictBiomeTypes.contains(types[0])) { + noneMatched = false; + } + } else { + for (BiomeDictionary.Type type : restrictBiomeTypes) { + if (BiomeDictionary.isBiomeOfType(biome, type)) { + noneMatched = false; + break; + } + } + } + + if (noneMatched) { + return 0; + } + } + + BiomeGenBase biome = world.getWorldChunkManager().getBiomeGenAt(housing.getXCoord(), housing.getZCoord()); + if (biome.temperature < minTemperature || biome.temperature > maxTemperature) { + return 0; + } + if (biome.rainfall < minRainfall || biome.rainfall > maxRainfall) { + return 0; + } + + float processedChance = chance * housing.getMutationModifier((IBeeGenome) genome0, (IBeeGenome) genome1, 1f) + * PluginApiculture.beeInterface.getBeekeepingMode(world).getMutationModifier((IBeeGenome) genome0, (IBeeGenome) genome1, 1f); if (processedChance <= 0) { return 0; } diff --git a/src/main/java/forestry/apiculture/genetics/BeeMutationFactory.java b/src/main/java/forestry/apiculture/genetics/BeeMutationFactory.java deleted file mode 100644 index 2013e75d2..000000000 --- a/src/main/java/forestry/apiculture/genetics/BeeMutationFactory.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.apiculture.genetics; - -import forestry.api.apiculture.BeeManager; -import forestry.api.apiculture.IAlleleBeeSpecies; -import forestry.api.apiculture.IBeeMutationCustom; -import forestry.api.apiculture.IBeeMutationFactory; -import forestry.api.genetics.IAllele; - -public class BeeMutationFactory implements IBeeMutationFactory { - - @Override - public IBeeMutationCustom createMutation(IAlleleBeeSpecies parentBee0, IAlleleBeeSpecies parentBee1, IAllele[] result, int chance) { - IBeeMutationCustom mutation = new BeeMutation(parentBee0, parentBee1, result, chance); - BeeManager.beeRoot.registerMutation(mutation); - return mutation; - } -} diff --git a/src/main/java/forestry/apiculture/genetics/BeeVariation.java b/src/main/java/forestry/apiculture/genetics/BeeVariation.java index 3e6353944..f6c0bcc4b 100644 --- a/src/main/java/forestry/apiculture/genetics/BeeVariation.java +++ b/src/main/java/forestry/apiculture/genetics/BeeVariation.java @@ -2,13 +2,13 @@ package forestry.apiculture.genetics; import net.minecraft.item.ItemStack; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IBee; import forestry.api.apiculture.IBeeGenome; import forestry.api.genetics.IAllele; -import forestry.core.genetics.alleles.Allele; +import forestry.core.genetics.Allele; +import forestry.plugins.PluginApiculture; public abstract class BeeVariation implements IBeeDefinition { @@ -18,7 +18,7 @@ public abstract class BeeVariation implements IBeeDefinition { public BeeVariation(IBeeDefinition bee) { template = bee.getTemplate(); initializeTemplate(template); - genome = BeeManager.beeRoot.templateAsGenome(template); + genome = PluginApiculture.beeInterface.templateAsGenome(template); } protected abstract void initializeTemplate(IAllele[] template); @@ -41,7 +41,7 @@ public abstract class BeeVariation implements IBeeDefinition { @Override public final ItemStack getMemberStack(EnumBeeType beeType) { IBee bee = getIndividual(); - return BeeManager.beeRoot.getMemberStack(bee, beeType.ordinal()); + return PluginApiculture.beeInterface.getMemberStack(bee, beeType.ordinal()); } public static class RainResist extends BeeVariation { @@ -51,7 +51,7 @@ public abstract class BeeVariation implements IBeeDefinition { @Override protected void initializeTemplate(IAllele[] template) { - Allele.helper.set(template, EnumBeeChromosome.TOLERANT_FLYER, true); + template[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.boolTrue; } } } diff --git a/src/main/java/forestry/apiculture/genetics/HiveDrop.java b/src/main/java/forestry/apiculture/genetics/HiveDrop.java index 088a07465..84bc7da4f 100755 --- a/src/main/java/forestry/apiculture/genetics/HiveDrop.java +++ b/src/main/java/forestry/apiculture/genetics/HiveDrop.java @@ -17,10 +17,10 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IBee; import forestry.api.apiculture.IHiveDrop; +import forestry.plugins.PluginApiculture; public class HiveDrop implements IHiveDrop { @@ -48,7 +48,7 @@ public class HiveDrop implements IHiveDrop { bee.setIsNatural(false); } - return BeeManager.beeRoot.getMemberStack(bee, EnumBeeType.PRINCESS.ordinal()); + return PluginApiculture.beeInterface.getMemberStack(bee, EnumBeeType.PRINCESS.ordinal()); } @Override diff --git a/src/main/java/forestry/apiculture/genetics/IJubilanceProvider.java b/src/main/java/forestry/apiculture/genetics/IJubilanceProvider.java new file mode 100755 index 000000000..47b8dc5dc --- /dev/null +++ b/src/main/java/forestry/apiculture/genetics/IJubilanceProvider.java @@ -0,0 +1,19 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package forestry.apiculture.genetics; + +import forestry.api.apiculture.IAlleleBeeSpecies; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; + +public interface IJubilanceProvider { + boolean isJubilant(IAlleleBeeSpecies species, IBeeGenome genome, IBeeHousing housing); +} diff --git a/src/main/java/forestry/apiculture/genetics/JubilanceDefault.java b/src/main/java/forestry/apiculture/genetics/JubilanceDefault.java index 1d7f44b03..82e4a2b71 100755 --- a/src/main/java/forestry/apiculture/genetics/JubilanceDefault.java +++ b/src/main/java/forestry/apiculture/genetics/JubilanceDefault.java @@ -16,26 +16,12 @@ import net.minecraft.world.biome.BiomeGenBase; import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IBeeGenome; import forestry.api.apiculture.IBeeHousing; -import forestry.api.apiculture.IJubilanceProvider; import forestry.api.core.EnumHumidity; import forestry.api.core.EnumTemperature; import forestry.core.vect.Vect; public class JubilanceDefault implements IJubilanceProvider { - private static JubilanceDefault instance; - - public static JubilanceDefault getInstance() { - if (instance == null) { - instance = new JubilanceDefault(); - } - return instance; - } - - protected JubilanceDefault() { - - } - @Override public boolean isJubilant(IAlleleBeeSpecies species, IBeeGenome genome, IBeeHousing housing) { BiomeGenBase biome = housing.getBiome(); diff --git a/src/main/java/forestry/apiculture/genetics/JubilanceFactory.java b/src/main/java/forestry/apiculture/genetics/JubilanceNone.java old mode 100644 new mode 100755 similarity index 58% rename from src/main/java/forestry/apiculture/genetics/JubilanceFactory.java rename to src/main/java/forestry/apiculture/genetics/JubilanceNone.java index a795548f3..f758b463c --- a/src/main/java/forestry/apiculture/genetics/JubilanceFactory.java +++ b/src/main/java/forestry/apiculture/genetics/JubilanceNone.java @@ -1,28 +1,24 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.apiculture.genetics; - -import net.minecraft.block.Block; - -import forestry.api.apiculture.IJubilanceFactory; -import forestry.api.apiculture.IJubilanceProvider; - -public class JubilanceFactory implements IJubilanceFactory { - @Override - public IJubilanceProvider getDefault() { - return JubilanceDefault.getInstance(); - } - - @Override - public IJubilanceProvider getRequiresResource(Block block, int meta) { - return new JubilanceRequiresResource(block, meta); - } -} +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package forestry.apiculture.genetics; + +import forestry.api.apiculture.IAlleleBeeSpecies; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; + +public class JubilanceNone implements IJubilanceProvider { + + @Override + public boolean isJubilant(IAlleleBeeSpecies species, IBeeGenome genome, IBeeHousing housing) { + return false; + } + +} diff --git a/src/main/java/forestry/apiculture/genetics/JubilanceRequiresResource.java b/src/main/java/forestry/apiculture/genetics/JubilanceReqRes.java old mode 100644 new mode 100755 similarity index 85% rename from src/main/java/forestry/apiculture/genetics/JubilanceRequiresResource.java rename to src/main/java/forestry/apiculture/genetics/JubilanceReqRes.java index fe9363ab4..9ad5cc0bf --- a/src/main/java/forestry/apiculture/genetics/JubilanceRequiresResource.java +++ b/src/main/java/forestry/apiculture/genetics/JubilanceReqRes.java @@ -17,19 +17,23 @@ import net.minecraft.world.World; import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IBeeGenome; import forestry.api.apiculture.IBeeHousing; -import forestry.api.apiculture.IJubilanceProvider; import forestry.core.utils.StackUtils; -public class JubilanceRequiresResource implements IJubilanceProvider { +public class JubilanceReqRes implements IJubilanceProvider { private final ItemStack blockRequired; - public JubilanceRequiresResource(Block block, int meta) { - this.blockRequired = new ItemStack(block, meta); + public JubilanceReqRes(ItemStack blockRequired) { + this.blockRequired = blockRequired; } @Override public boolean isJubilant(IAlleleBeeSpecies species, IBeeGenome genome, IBeeHousing housing) { + + if (blockRequired == null) { + return true; + } + World world = housing.getWorld(); Block block = world.getBlock(housing.getXCoord(), housing.getYCoord() - 1, housing.getZCoord()); diff --git a/src/main/java/forestry/apiculture/genetics/MutationEMC.java b/src/main/java/forestry/apiculture/genetics/MutationEMC.java new file mode 100755 index 000000000..f001199e6 --- /dev/null +++ b/src/main/java/forestry/apiculture/genetics/MutationEMC.java @@ -0,0 +1,101 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package forestry.apiculture.genetics; + +import java.lang.reflect.Field; + +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +import forestry.api.apiculture.IBeeHousing; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IGenome; +import forestry.core.proxy.Proxies; +import forestry.core.vect.Vect; + +public class MutationEMC extends MutationReqRes { + + private final int emcRequired; + private final Class condenserClass; + private final Field emcField; + + public MutationEMC(BeeDefinition bee0, BeeDefinition bee1, BeeDefinition result, int chance, ItemStack blockRequired, Class condenserClass, Field emcField, int emcRequired) { + super(bee0, bee1, result, chance, blockRequired); + + this.condenserClass = condenserClass; + this.emcField = emcField; + this.emcRequired = emcRequired; + } + + @Override + public float getChance(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { + float chance = super.getChance(housing, allele0, allele1, genome0, genome1); + + // If we don't have any chance, return at once. + if (chance <= 0) { + return 0; + } + + if (emcRequired <= 0) { + return chance; + } + + World world = housing.getWorld(); + + Vect[] possibleTargets = new Vect[]{new Vect(housing.getXCoord() + 1, housing.getYCoord(), housing.getZCoord()), + new Vect(housing.getXCoord() - 1, housing.getYCoord(), housing.getZCoord()), + new Vect(housing.getXCoord(), housing.getYCoord(), housing.getZCoord() + 1), + new Vect(housing.getXCoord(), housing.getYCoord(), housing.getZCoord() - 1)}; + + for (Vect target : possibleTargets) { + if (!world.blockExists(target.x, target.y, target.z)) { + continue; + } + + TileEntity entity = world.getTileEntity(target.x, target.y, target.z); + if (entity == null) { + continue; + } + + if (!condenserClass.isInstance(entity)) { + Proxies.log.warning("Did not find a relay at " + target.toString()); + continue; + } + + int emc = 0; + try { + emc = emcField.getInt(entity); + } catch (Exception ex) { + Proxies.log.warning("Failed to fetch EMC information."); + } + + if (emc < emcRequired * 80) { + continue; + } + + boolean removedEMC = false; + try { + emcField.set(entity, emc - (emcRequired * 80)); + removedEMC = true; + } catch (Exception ex) { + Proxies.log.warning("Failed to set EMC information."); + } + + if (removedEMC) { + return chance; + } + + } + + return 0; + } +} diff --git a/src/main/java/forestry/apiculture/genetics/MutationReqRes.java b/src/main/java/forestry/apiculture/genetics/MutationReqRes.java new file mode 100755 index 000000000..313801025 --- /dev/null +++ b/src/main/java/forestry/apiculture/genetics/MutationReqRes.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package forestry.apiculture.genetics; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import forestry.api.apiculture.IBeeHousing; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IGenome; +import forestry.core.utils.StackUtils; + +public class MutationReqRes extends BeeMutation { + + private final ItemStack blockRequired; + + public MutationReqRes(BeeDefinition bee0, BeeDefinition bee1, BeeDefinition result, int chance, ItemStack blockRequired) { + super(bee0, bee1, result, chance); + this.blockRequired = blockRequired; + } + + @Override + public float getChance(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { + float chance = super.getChance(housing, allele0, allele1, genome0, genome1); + + // If we have no chance anyway, we don't need to check. + if (chance <= 0) { + return 0; + } + + World world = housing.getWorld(); + if (blockRequired == null) { + return chance; + } + + Block block = world.getBlock(housing.getXCoord(), housing.getYCoord() - 1, housing.getZCoord()); + int meta = world.getBlockMetadata(housing.getXCoord(), housing.getYCoord() - 1, housing.getZCoord()); + if (StackUtils.equals(block, blockRequired) && meta == blockRequired.getItemDamage()) { + return chance; + } else { + return 0; + } + } +} diff --git a/src/main/java/forestry/apiculture/genetics/MutationTimeLimited.java b/src/main/java/forestry/apiculture/genetics/MutationTimeLimited.java new file mode 100755 index 000000000..f3509370e --- /dev/null +++ b/src/main/java/forestry/apiculture/genetics/MutationTimeLimited.java @@ -0,0 +1,154 @@ +/******************************************************************************* + * Copyright (c) 2011-2014 SirSengir. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser Public License v3 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-3.0.txt + * + * Various Contributors including, but not limited to: + * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges + ******************************************************************************/ +package forestry.apiculture.genetics; + +import java.util.Calendar; + +import forestry.api.apiculture.IBeeHousing; +import forestry.api.genetics.IAllele; +import forestry.api.genetics.IGenome; + +public class MutationTimeLimited extends BeeMutation { + + /** + * Fed up with Date and Calendar and their shenanigans + */ + public static class DayMonth { + + public final int day; + public final int month; + + public DayMonth() { + this.day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH); + this.month = Calendar.getInstance().get(Calendar.MONTH) + 1; + } + + public DayMonth(int day, int month) { + this.day = day; + this.month = month; + } + + public boolean between(DayMonth start, DayMonth end) { + if (equals(start) || equals(end)) { + return true; + } + if (start.month > end.month) { + return after(start) || before(end); + } + return after(start) && before(end); + } + + public boolean before(DayMonth other) { + + if (other.month > this.month) { + return true; + } + + if (other.month < this.month) { + return false; + } + + return this.day < other.day; + } + + public boolean after(DayMonth other) { + + if (other.month < this.month) { + return true; + } + + if (other.month > this.month) { + return false; + } + + return this.day > other.day; + } + + @Override + public int hashCode() { + int hash = 7; + hash = 89 * hash + this.day; + hash = 89 * hash + this.month; + return hash; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final DayMonth other = (DayMonth) obj; + if (this.day != other.day) { + return false; + } + if (this.month != other.month) { + return false; + } + return true; + } + + @Override + public String toString() { + return day + "." + month; + } + } + + private final DayMonth start; + private final DayMonth end; + + protected MutationTimeLimited(BeeDefinition bee0, BeeDefinition bee1, BeeDefinition result, int chance, DayMonth start, DayMonth end) { + super(bee0, bee1, result, chance); + + this.start = start; + this.end = end; + } + + @Override + public float getChance(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { + float chance = super.getChance(housing, allele0, allele1, genome0, genome1); + + if (chance == 0) { + return 0; + } + + if (start == null) { + return chance; + } + + DayMonth now = new DayMonth(); + + // If we are equal to start day, return chance. + if (Calendar.getInstance().get(Calendar.DAY_OF_MONTH) == start.day && Calendar.getInstance().get(Calendar.MONTH) + 1 == start.month) { + return chance; + } + + // Still here but not time span? No mutation! + if (end == null) { + return 0; + } + + // Equal to end date, return chance. + if (Calendar.getInstance().get(Calendar.DAY_OF_MONTH) == end.day && Calendar.getInstance().get(Calendar.MONTH) + 1 == end.month) { + return chance; + } + + // Still a chance we are in between + if (now.between(start, end)) { + return chance; + } + + // Now we finally failed. + return 0; + } +} diff --git a/src/main/java/forestry/apiculture/gui/GuiBeealyzer.java b/src/main/java/forestry/apiculture/gui/GuiBeealyzer.java index 7ad854ced..318c13379 100755 --- a/src/main/java/forestry/apiculture/gui/GuiBeealyzer.java +++ b/src/main/java/forestry/apiculture/gui/GuiBeealyzer.java @@ -15,7 +15,6 @@ import java.util.ArrayList; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IAlleleBeeSpecies; @@ -28,11 +27,12 @@ import forestry.apiculture.genetics.BeeGenome; import forestry.apiculture.items.ItemBeeGE; import forestry.apiculture.items.ItemBeealyzer.BeealyzerInventory; import forestry.core.config.ForestryItem; -import forestry.core.genetics.alleles.AlleleBoolean; +import forestry.core.genetics.AlleleBoolean; import forestry.core.gui.ContainerAlyzer; import forestry.core.gui.GuiAlyzer; import forestry.core.utils.StringUtil; import forestry.core.vect.Vect; +import forestry.plugins.PluginApiculture; public class GuiBeealyzer extends GuiAlyzer { @@ -65,8 +65,8 @@ public class GuiBeealyzer extends GuiAlyzer { if (inventory.getStackInSlot(k) == null) { continue; } - bee = BeeManager.beeRoot.getMember(inventory.getStackInSlot(k)); - beeType = BeeManager.beeRoot.getType(inventory.getStackInSlot(k)); + bee = PluginApiculture.beeInterface.getMember(inventory.getStackInSlot(k)); + beeType = PluginApiculture.beeInterface.getType(inventory.getStackInSlot(k)); if (bee == null || !bee.isAnalyzed()) { continue; } diff --git a/src/main/java/forestry/apiculture/items/ItemBeeGE.java b/src/main/java/forestry/apiculture/items/ItemBeeGE.java index 34a73c9b8..c222584b2 100755 --- a/src/main/java/forestry/apiculture/items/ItemBeeGE.java +++ b/src/main/java/forestry/apiculture/items/ItemBeeGE.java @@ -24,7 +24,6 @@ import net.minecraft.util.IIcon; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IAlleleBeeSpecies; @@ -39,6 +38,7 @@ import forestry.apiculture.genetics.BeeGenome; import forestry.core.config.Config; import forestry.core.genetics.ItemGE; import forestry.core.utils.StringUtil; +import forestry.plugins.PluginApiculture; public class ItemBeeGE extends ItemGE { @@ -123,7 +123,7 @@ public class ItemBeeGE extends ItemGE { @SuppressWarnings({"rawtypes", "unchecked"}) public void addCreativeItems(List itemList, boolean hideSecrets) { - for (IIndividual individual : BeeManager.beeRoot.getIndividualTemplates()) { + for (IIndividual individual : PluginApiculture.beeInterface.getIndividualTemplates()) { // Don't show secret bees unless ordered to. if (hideSecrets && individual.isSecret() && !Config.isDebug) { continue; @@ -188,7 +188,7 @@ public class ItemBeeGE extends ItemGE { @SideOnly(Side.CLIENT) public IIcon getIconFromSpecies(IAlleleBeeSpecies species, int renderPass) { if (species == null) { - species = (IAlleleBeeSpecies) BeeManager.beeRoot.getDefaultTemplate()[EnumBeeChromosome.SPECIES.ordinal()]; + species = (IAlleleBeeSpecies) PluginApiculture.beeInterface.getDefaultTemplate()[EnumBeeChromosome.SPECIES.ordinal()]; } return species.getIcon(type, renderPass); diff --git a/src/main/java/forestry/apiculture/items/ItemBeealyzer.java b/src/main/java/forestry/apiculture/items/ItemBeealyzer.java index 89dd3e77a..d6651f7ec 100755 --- a/src/main/java/forestry/apiculture/items/ItemBeealyzer.java +++ b/src/main/java/forestry/apiculture/items/ItemBeealyzer.java @@ -15,7 +15,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IBee; import forestry.api.core.ForestryAPI; import forestry.api.core.Tabs; @@ -27,6 +26,7 @@ import forestry.core.inventory.AlyzerInventory; import forestry.core.items.ItemInventoried; import forestry.core.network.GuiId; import forestry.core.proxy.Proxies; +import forestry.plugins.PluginApiculture; public class ItemBeealyzer extends ItemInventoried { @@ -39,7 +39,7 @@ public class ItemBeealyzer extends ItemInventoried { @Override protected boolean isSpecimen(ItemStack itemStack) { - return BeeManager.beeRoot.isMember(itemStack); + return PluginApiculture.beeInterface.isMember(itemStack); } private void tryAnalyze() { @@ -48,7 +48,7 @@ public class ItemBeealyzer extends ItemInventoried { return; } - IBee bee = BeeManager.beeRoot.getMember(getStackInSlot(SLOT_SPECIMEN)); + IBee bee = PluginApiculture.beeInterface.getMember(getStackInSlot(SLOT_SPECIMEN)); // No bee, abort if (bee == null) { return; @@ -64,8 +64,8 @@ public class ItemBeealyzer extends ItemInventoried { bee.analyze(); if (player != null) { - BeeManager.beeRoot.getBreedingTracker(player.worldObj, player.getGameProfile()).registerSpecies(bee.getGenome().getPrimary()); - BeeManager.beeRoot.getBreedingTracker(player.worldObj, player.getGameProfile()).registerSpecies(bee.getGenome().getSecondary()); + PluginApiculture.beeInterface.getBreedingTracker(player.worldObj, player.getGameProfile()).registerSpecies(bee.getGenome().getPrimary()); + PluginApiculture.beeInterface.getBreedingTracker(player.worldObj, player.getGameProfile()).registerSpecies(bee.getGenome().getSecondary()); } NBTTagCompound nbttagcompound = new NBTTagCompound(); @@ -104,7 +104,7 @@ public class ItemBeealyzer extends ItemInventoried { @Override public EnumErrorCode getErrorState() { - if (BeeManager.beeRoot.isMember(inventoryStacks[SLOT_SPECIMEN]) && !isEnergy(getStackInSlot(SLOT_ENERGY))) { + if (PluginApiculture.beeInterface.isMember(inventoryStacks[SLOT_SPECIMEN]) && !isEnergy(getStackInSlot(SLOT_ENERGY))) { return EnumErrorCode.NOHONEY; } diff --git a/src/main/java/forestry/apiculture/items/ItemHabitatLocator.java b/src/main/java/forestry/apiculture/items/ItemHabitatLocator.java index aad207ea8..129123144 100644 --- a/src/main/java/forestry/apiculture/items/ItemHabitatLocator.java +++ b/src/main/java/forestry/apiculture/items/ItemHabitatLocator.java @@ -32,7 +32,6 @@ import net.minecraftforge.common.BiomeDictionary; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IBee; import forestry.api.core.EnumHumidity; import forestry.api.core.EnumTemperature; @@ -51,6 +50,7 @@ import forestry.core.network.GuiId; import forestry.core.proxy.Proxies; import forestry.core.utils.StringUtil; import forestry.core.vect.Vect; +import forestry.plugins.PluginApiculture; public class ItemHabitatLocator extends ItemInventoried { @@ -91,7 +91,7 @@ public class ItemHabitatLocator extends ItemInventoried { setInventorySlotContents(SLOT_SPECIMEN, null); } - IBee bee = BeeManager.beeRoot.getMember(getStackInSlot(SLOT_ANALYZED)); + IBee bee = PluginApiculture.beeInterface.getMember(getStackInSlot(SLOT_ANALYZED)); // No bee, abort if (bee == null) { @@ -126,7 +126,7 @@ public class ItemHabitatLocator extends ItemInventoried { @Override public EnumErrorCode getErrorState() { - if (BeeManager.beeRoot.isMember(inventoryStacks[SLOT_SPECIMEN]) && !isEnergy(getStackInSlot(SLOT_ENERGY))) { + if (PluginApiculture.beeInterface.isMember(inventoryStacks[SLOT_SPECIMEN]) && !isEnergy(getStackInSlot(SLOT_ENERGY))) { return EnumErrorCode.NOHONEY; } @@ -139,7 +139,7 @@ public class ItemHabitatLocator extends ItemInventoried { Item item = itemStack.getItem(); return item == ForestryItem.honeydew.item() || item == ForestryItem.honeyDrop.item(); } else if (slotIndex == SLOT_SPECIMEN) { - return BeeManager.beeRoot.isMember(itemStack); + return PluginApiculture.beeInterface.isMember(itemStack); } return false; } diff --git a/src/main/java/forestry/apiculture/items/ItemImprinter.java b/src/main/java/forestry/apiculture/items/ItemImprinter.java index a710e91e0..10c712428 100755 --- a/src/main/java/forestry/apiculture/items/ItemImprinter.java +++ b/src/main/java/forestry/apiculture/items/ItemImprinter.java @@ -15,7 +15,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IBee; import forestry.api.core.ForestryAPI; @@ -25,6 +24,7 @@ import forestry.core.inventory.ItemInventory; import forestry.core.items.ItemForestry; import forestry.core.network.GuiId; import forestry.core.proxy.Proxies; +import forestry.plugins.PluginApiculture; public class ItemImprinter extends ItemForestry { @@ -44,7 +44,7 @@ public class ItemImprinter extends ItemForestry { } public void advancePrimary() { - if (primaryIndex < BeeManager.beeRoot.getIndividualTemplates().size() - 1) { + if (primaryIndex < PluginApiculture.beeInterface.getIndividualTemplates().size() - 1) { primaryIndex++; } else { primaryIndex = 0; @@ -52,7 +52,7 @@ public class ItemImprinter extends ItemForestry { } public void advanceSecondary() { - if (secondaryIndex < BeeManager.beeRoot.getIndividualTemplates().size() - 1) { + if (secondaryIndex < PluginApiculture.beeInterface.getIndividualTemplates().size() - 1) { secondaryIndex++; } else { secondaryIndex = 0; @@ -63,7 +63,7 @@ public class ItemImprinter extends ItemForestry { if (primaryIndex > 0) { primaryIndex--; } else { - primaryIndex = BeeManager.beeRoot.getIndividualTemplates().size() - 1; + primaryIndex = PluginApiculture.beeInterface.getIndividualTemplates().size() - 1; } } @@ -71,22 +71,22 @@ public class ItemImprinter extends ItemForestry { if (secondaryIndex > 0) { secondaryIndex--; } else { - secondaryIndex = BeeManager.beeRoot.getIndividualTemplates().size() - 1; + secondaryIndex = PluginApiculture.beeInterface.getIndividualTemplates().size() - 1; } } public IAlleleBeeSpecies getPrimary() { - return BeeManager.beeRoot.getIndividualTemplates().get(primaryIndex).getGenome().getPrimary(); + return PluginApiculture.beeInterface.getIndividualTemplates().get(primaryIndex).getGenome().getPrimary(); } public IAlleleBeeSpecies getSecondary() { - return BeeManager.beeRoot.getIndividualTemplates().get(secondaryIndex).getGenome().getPrimary(); + return PluginApiculture.beeInterface.getIndividualTemplates().get(secondaryIndex).getGenome().getPrimary(); } public IBee getSelectedBee() { - return new Bee(BeeManager.beeRoot.templateAsGenome( - BeeManager.beeRoot.getGenomeTemplates().get(BeeManager.beeRoot.getIndividualTemplates().get(primaryIndex).getIdent()), - BeeManager.beeRoot.getGenomeTemplates().get(BeeManager.beeRoot.getIndividualTemplates().get(secondaryIndex).getIdent()))); + return new Bee(PluginApiculture.beeInterface.templateAsGenome( + PluginApiculture.beeInterface.getGenomeTemplates().get(PluginApiculture.beeInterface.getIndividualTemplates().get(primaryIndex).getIdent()), + PluginApiculture.beeInterface.getGenomeTemplates().get(PluginApiculture.beeInterface.getIndividualTemplates().get(secondaryIndex).getIdent()))); } public int getPrimaryIndex() { @@ -112,7 +112,7 @@ public class ItemImprinter extends ItemForestry { } // Only imprint bees - if (!BeeManager.beeRoot.isMember(inventoryStacks[specimenSlot])) { + if (!PluginApiculture.beeInterface.isMember(inventoryStacks[specimenSlot])) { return; } @@ -146,7 +146,7 @@ public class ItemImprinter extends ItemForestry { @Override public boolean canSlotAccept(int slotIndex, ItemStack itemStack) { - return BeeManager.beeRoot.isMember(itemStack); + return PluginApiculture.beeInterface.isMember(itemStack); } } diff --git a/src/main/java/forestry/apiculture/render/BeeItemRenderer.java b/src/main/java/forestry/apiculture/render/BeeItemRenderer.java index 5fbd739ec..fb1dc733a 100755 --- a/src/main/java/forestry/apiculture/render/BeeItemRenderer.java +++ b/src/main/java/forestry/apiculture/render/BeeItemRenderer.java @@ -20,10 +20,10 @@ import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IBee; import forestry.apiculture.entities.EntityBee; import forestry.core.proxy.Proxies; +import forestry.plugins.PluginApiculture; public class BeeItemRenderer implements IItemRenderer { @@ -67,16 +67,16 @@ public class BeeItemRenderer implements IItemRenderer { } private IBee initBee(ItemStack item, boolean scaled) { - IBee bee = BeeManager.beeRoot.getMember(item); + IBee bee = PluginApiculture.beeInterface.getMember(item); if (bee == null) { - bee = BeeManager.beeRoot.templateAsIndividual(BeeManager.beeRoot.getDefaultTemplate()); + bee = PluginApiculture.beeInterface.templateAsIndividual(PluginApiculture.beeInterface.getDefaultTemplate()); } if (entity == null) { entity = new EntityBee(Proxies.common.getClientInstance().theWorld); } entity.setSpecies(bee.getGenome().getPrimary()); - entity.setType(BeeManager.beeRoot.getType(item)); + entity.setType(PluginApiculture.beeInterface.getType(item)); /* if(scaled) entity.setScale(butterfly.getSize()); diff --git a/src/main/java/forestry/apiculture/worldgen/ComponentVillageBeeHouse.java b/src/main/java/forestry/apiculture/worldgen/ComponentVillageBeeHouse.java index 90748d92d..5f14b62a7 100755 --- a/src/main/java/forestry/apiculture/worldgen/ComponentVillageBeeHouse.java +++ b/src/main/java/forestry/apiculture/worldgen/ComponentVillageBeeHouse.java @@ -46,6 +46,7 @@ import forestry.core.config.Defaults; import forestry.core.config.ForestryBlock; import forestry.core.config.ForestryItem; import forestry.core.utils.StackUtils; +import forestry.plugins.PluginApiculture; import forestry.plugins.PluginManager; public class ComponentVillageBeeHouse extends StructureVillagePieces.House1 { @@ -309,9 +310,9 @@ public class ComponentVillageBeeHouse extends StructureVillagePieces.House1 { TileBeehouse apiary = ((TileBeehouse) tile); apiary.initialize(); apiary.setInventorySlotContents(TileBeehouse.SLOT_QUEEN, - BeeManager.beeRoot.getMemberStack(getVillageBee(world, xCoord, yCoord, zCoord), EnumBeeType.PRINCESS.ordinal())); + PluginApiculture.beeInterface.getMemberStack(getVillageBee(world, xCoord, yCoord, zCoord), EnumBeeType.PRINCESS.ordinal())); apiary.setInventorySlotContents(TileBeehouse.SLOT_DRONE, - BeeManager.beeRoot.getMemberStack(getVillageBee(world, xCoord, yCoord, zCoord), EnumBeeType.DRONE.ordinal())); + PluginApiculture.beeInterface.getMemberStack(getVillageBee(world, xCoord, yCoord, zCoord), EnumBeeType.DRONE.ordinal())); for (int i = TileBeehouse.SLOT_FRAMES_1; i < TileBeehouse.SLOT_FRAMES_1 + TileBeehouse.SLOT_FRAMES_COUNT; i++) { float roll = world.rand.nextFloat(); @@ -350,10 +351,10 @@ public class ComponentVillageBeeHouse extends StructureVillagePieces.House1 { // No valid ones found, return any of the common ones. if (valid.isEmpty()) { - return BeeManager.beeRoot.getBee(world, BeeManager.villageBees[0].get(world.rand.nextInt(BeeManager.villageBees[0].size()))); + return PluginApiculture.beeInterface.getBee(world, BeeManager.villageBees[0].get(world.rand.nextInt(BeeManager.villageBees[0].size()))); } - return BeeManager.beeRoot.getBee(world, valid.get(world.rand.nextInt(valid.size()))); + return PluginApiculture.beeInterface.getBee(world, valid.get(world.rand.nextInt(valid.size()))); } private boolean checkBiomeHazard(IBeeGenome genome, float temperature, float humidity) { diff --git a/src/main/java/forestry/arboriculture/gadgets/TileLeaves.java b/src/main/java/forestry/arboriculture/gadgets/TileLeaves.java index 46e4e1374..13e93919e 100755 --- a/src/main/java/forestry/arboriculture/gadgets/TileLeaves.java +++ b/src/main/java/forestry/arboriculture/gadgets/TileLeaves.java @@ -53,7 +53,7 @@ import forestry.api.lepidopterology.IButterflyRoot; import forestry.arboriculture.network.PacketLeaf; import forestry.arboriculture.network.PacketRipeningUpdate; import forestry.core.EnumErrorCode; -import forestry.core.genetics.alleles.Allele; +import forestry.core.genetics.Allele; import forestry.core.network.ForestryPacket; import forestry.core.proxy.Proxies; import forestry.core.render.TextureManager; diff --git a/src/main/java/forestry/arboriculture/genetics/AlleleFruit.java b/src/main/java/forestry/arboriculture/genetics/AlleleFruit.java index 5496b1983..9f70b42b3 100755 --- a/src/main/java/forestry/arboriculture/genetics/AlleleFruit.java +++ b/src/main/java/forestry/arboriculture/genetics/AlleleFruit.java @@ -12,18 +12,18 @@ package forestry.arboriculture.genetics; import forestry.api.arboriculture.IAlleleFruit; import forestry.api.arboriculture.IFruitProvider; -import forestry.core.genetics.alleles.AlleleForestry; +import forestry.core.genetics.Allele; -public class AlleleFruit extends AlleleForestry implements IAlleleFruit { +public class AlleleFruit extends Allele implements IAlleleFruit { private final IFruitProvider provider; - public AlleleFruit(String name, IFruitProvider provider) { - this(name, provider, false); + public AlleleFruit(String uid, IFruitProvider provider) { + this(uid, provider, false); } - public AlleleFruit(String name, IFruitProvider provider, boolean isDominant) { - super("fruit", name, isDominant); + public AlleleFruit(String uid, IFruitProvider provider, boolean isDominant) { + super(uid, isDominant); this.provider = provider; } diff --git a/src/main/java/forestry/arboriculture/genetics/AlleleGrowth.java b/src/main/java/forestry/arboriculture/genetics/AlleleGrowth.java index b9c237a3e..d73f6a20e 100755 --- a/src/main/java/forestry/arboriculture/genetics/AlleleGrowth.java +++ b/src/main/java/forestry/arboriculture/genetics/AlleleGrowth.java @@ -12,18 +12,18 @@ package forestry.arboriculture.genetics; import forestry.api.arboriculture.IAlleleGrowth; import forestry.api.arboriculture.IGrowthProvider; -import forestry.core.genetics.alleles.AlleleForestry; +import forestry.core.genetics.Allele; -public class AlleleGrowth extends AlleleForestry implements IAlleleGrowth { +public class AlleleGrowth extends Allele implements IAlleleGrowth { private final IGrowthProvider provider; - public AlleleGrowth(String name, IGrowthProvider provider) { - this(name, provider, false); + public AlleleGrowth(String uid, IGrowthProvider provider) { + this(uid, provider, false); } - public AlleleGrowth(String name, IGrowthProvider provider, boolean isDominant) { - super("growth", name, isDominant); + public AlleleGrowth(String uid, IGrowthProvider provider, boolean isDominant) { + super(uid, isDominant); this.provider = provider; } diff --git a/src/main/java/forestry/arboriculture/genetics/AlleleLeafEffectNone.java b/src/main/java/forestry/arboriculture/genetics/AlleleLeafEffectNone.java index 30aff0c88..1e09e1751 100755 --- a/src/main/java/forestry/arboriculture/genetics/AlleleLeafEffectNone.java +++ b/src/main/java/forestry/arboriculture/genetics/AlleleLeafEffectNone.java @@ -16,15 +16,15 @@ import net.minecraft.world.World; import forestry.api.arboriculture.IAlleleLeafEffect; import forestry.api.arboriculture.ITreeGenome; import forestry.api.genetics.IEffectData; -import forestry.core.genetics.alleles.AlleleForestry; +import forestry.core.genetics.Allele; import forestry.core.vect.Vect; -public class AlleleLeafEffectNone extends AlleleForestry implements IAlleleLeafEffect { +public class AlleleLeafEffectNone extends Allele implements IAlleleLeafEffect { private static final int[] DEFAULT_EFFECT_AREA = new int[]{12, 12, 12}; - public AlleleLeafEffectNone() { - super("leaves", "none", true); + public AlleleLeafEffectNone(String uid) { + super(uid, true); } @Override @@ -47,7 +47,7 @@ public class AlleleLeafEffectNone extends AlleleForestry implements IAlleleLeafE return storedData; } - protected static AxisAlignedBB getBounding(int x, int y, int z, float modifier) { + protected AxisAlignedBB getBounding(int x, int y, int z, float modifier) { int[] areaAr = DEFAULT_EFFECT_AREA; Vect area = new Vect(areaAr[0], areaAr[1], areaAr[2]).multiply(modifier); Vect offset = new Vect(-Math.round(area.x / 2), -Math.round(area.y / 2), -Math.round(area.z / 2)); diff --git a/src/main/java/forestry/arboriculture/genetics/AlleleTreeSpecies.java b/src/main/java/forestry/arboriculture/genetics/AlleleTreeSpecies.java index 7754dc833..ec071da66 100755 --- a/src/main/java/forestry/arboriculture/genetics/AlleleTreeSpecies.java +++ b/src/main/java/forestry/arboriculture/genetics/AlleleTreeSpecies.java @@ -40,7 +40,7 @@ import forestry.api.world.ITreeGenData; import forestry.arboriculture.worldgen.WorldGenArboriculture; import forestry.arboriculture.worldgen.WorldGenBalsa; import forestry.core.config.ForestryItem; -import forestry.core.genetics.alleles.AlleleSpecies; +import forestry.core.genetics.AlleleSpecies; import forestry.core.render.TextureManager; import forestry.core.utils.Utils; @@ -93,7 +93,7 @@ public class AlleleTreeSpecies extends AlleleSpecies implements IAlleleTreeSpeci public AlleleTreeSpecies(String uid, boolean isDominant, String name, IClassification branch, String binomial, int primaryColor, int secondaryColor, Class generator, ItemStack wood) { - super("forestry." + uid, "Sengir", "for.description." + uid, isDominant, "trees.species." + name, branch, binomial, true); + super(uid, isDominant, "trees.species." + name, branch, binomial, true); this.root = (ITreeRoot) AlleleManager.alleleRegistry.getSpeciesRoot("rootTrees"); this.generatorClass = generator; @@ -238,8 +238,7 @@ public class AlleleTreeSpecies extends AlleleSpecies implements IAlleleTreeSpeci @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister register) { if (vanillaMap < 0) { - String name = uid.substring("forestry.".length()); - icon = TextureManager.getInstance().registerTex(register, "germlings/sapling." + name); + icon = TextureManager.getInstance().registerTex(register, "germlings/sapling." + uid); } else { icon = Blocks.sapling.getIcon(0, vanillaMap); } diff --git a/src/main/java/forestry/arboriculture/genetics/Tree.java b/src/main/java/forestry/arboriculture/genetics/Tree.java index 8d1e06217..7d55ed631 100755 --- a/src/main/java/forestry/arboriculture/genetics/Tree.java +++ b/src/main/java/forestry/arboriculture/genetics/Tree.java @@ -48,9 +48,9 @@ import forestry.arboriculture.gadgets.ForestryBlockLeaves; import forestry.arboriculture.gadgets.TileLeaves; import forestry.core.config.Defaults; import forestry.core.config.ForestryBlock; +import forestry.core.genetics.Allele; import forestry.core.genetics.Chromosome; import forestry.core.genetics.Individual; -import forestry.core.genetics.alleles.Allele; import forestry.core.utils.StringUtil; import forestry.plugins.PluginArboriculture; diff --git a/src/main/java/forestry/arboriculture/genetics/TreeGenome.java b/src/main/java/forestry/arboriculture/genetics/TreeGenome.java index 5201239a5..c152172b6 100755 --- a/src/main/java/forestry/arboriculture/genetics/TreeGenome.java +++ b/src/main/java/forestry/arboriculture/genetics/TreeGenome.java @@ -29,8 +29,8 @@ import forestry.api.genetics.IAlleleFloat; import forestry.api.genetics.IAlleleInteger; import forestry.api.genetics.IChromosome; import forestry.api.genetics.ISpeciesRoot; +import forestry.core.genetics.AllelePlantType; import forestry.core.genetics.Genome; -import forestry.core.genetics.alleles.AllelePlantType; import forestry.plugins.PluginArboriculture; public class TreeGenome extends Genome implements ITreeGenome { diff --git a/src/main/java/forestry/arboriculture/genetics/TreeMutation.java b/src/main/java/forestry/arboriculture/genetics/TreeMutation.java index 16f824ffd..3fbe8ae92 100755 --- a/src/main/java/forestry/arboriculture/genetics/TreeMutation.java +++ b/src/main/java/forestry/arboriculture/genetics/TreeMutation.java @@ -11,6 +11,7 @@ package forestry.arboriculture.genetics; import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; import forestry.api.arboriculture.ITreeGenome; import forestry.api.arboriculture.ITreeMutation; @@ -40,8 +41,13 @@ public class TreeMutation extends Mutation implements ITreeMutation { @Override public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - float processedChance = super.getChance(world, x, y, z, allele0, allele1, genome0, genome1); - if (processedChance <= 0) { + float processedChance = chance; + + BiomeGenBase biome = world.getWorldChunkManager().getBiomeGenAt(x, z); + if (biome.temperature < minTemperature || biome.temperature > maxTemperature) { + return 0; + } + if (biome.rainfall < minRainfall || biome.rainfall > maxRainfall) { return 0; } diff --git a/src/main/java/forestry/arboriculture/genetics/TreeTemplates.java b/src/main/java/forestry/arboriculture/genetics/TreeTemplates.java index 1a5e3eb2c..ce53b7694 100755 --- a/src/main/java/forestry/arboriculture/genetics/TreeTemplates.java +++ b/src/main/java/forestry/arboriculture/genetics/TreeTemplates.java @@ -14,9 +14,8 @@ import forestry.api.arboriculture.EnumTreeChromosome; import forestry.api.arboriculture.ITreeGenome; import forestry.api.genetics.IAllele; import forestry.api.genetics.IMutation; +import forestry.core.genetics.Allele; import forestry.core.genetics.Chromosome; -import forestry.core.genetics.alleles.Allele; -import forestry.core.genetics.alleles.EnumAllele; public class TreeTemplates { @@ -74,343 +73,343 @@ public class TreeTemplates { public static IAllele[] getDefaultTemplate() { IAllele[] alleles = new IAllele[EnumTreeChromosome.values().length]; - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeOak); - Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitNone); - Allele.helper.set(alleles, EnumTreeChromosome.GROWTH, Allele.growthLightlevel); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALL); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOWEST); - Allele.helper.set(alleles, EnumTreeChromosome.PLANT, Allele.plantTypeNone); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWEST); - Allele.helper.set(alleles, EnumTreeChromosome.TERRITORY, EnumAllele.Territory.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.EFFECT, Allele.leavesNone); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 1); - Allele.helper.set(alleles, EnumTreeChromosome.FIREPROOF, EnumAllele.Fireproof.FALSE); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeOak; + alleles[EnumTreeChromosome.FRUITS.ordinal()] = Allele.fruitNone; + alleles[EnumTreeChromosome.GROWTH.ordinal()] = Allele.growthLightlevel; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightSmall; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsLower; + alleles[EnumTreeChromosome.YIELD.ordinal()] = Allele.yieldLowest; + alleles[EnumTreeChromosome.PLANT.ordinal()] = Allele.plantTypeNone; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLowest; + alleles[EnumTreeChromosome.TERRITORY.ordinal()] = Allele.territoryDefault; + alleles[EnumTreeChromosome.EFFECT.ordinal()] = Allele.leavesNone; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationAverage; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int1; + alleles[EnumTreeChromosome.FIREPROOF.ordinal()] = Allele.fireproofFalse; return alleles; } public static IAllele[] getOakTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitApple); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER); + alleles[EnumTreeChromosome.FRUITS.ordinal()] = Allele.fruitApple; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsAverage; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationFaster; return alleles; } public static IAllele[] getBirchTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeBirch); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeBirch; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsAverage; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationFaster; return alleles; } public static IAllele[] getSpruceTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeSpruce); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeSpruce; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsAverage; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightAverage; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationFaster; return alleles; } public static IAllele[] getJungleTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeJungle); - Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitCocoa); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGER); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FAST); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeJungle; + alleles[EnumTreeChromosome.FRUITS.ordinal()] = Allele.fruitCocoa; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLarger; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationFast; return alleles; } public static IAllele[] getAcaciaTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeAcacia); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeAcacia; return alleles; } public static IAllele[] getDarkOakTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeDarkOak); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeDarkOak; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsAverage; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationFaster; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getBalsaTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeBalsa); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.HIGH); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeBalsa; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsHigh; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLarge; return alleles; } public static IAllele[] getSequoiaTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeSequioa); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGEST); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWER); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 3); - Allele.helper.set(alleles, EnumTreeChromosome.FIREPROOF, EnumAllele.Fireproof.TRUE); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeSequioa; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLargest; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationSlower; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int3; + alleles[EnumTreeChromosome.FIREPROOF.ordinal()] = Allele.fireproofTrue; return alleles; } public static IAllele[] getGiganteumTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeGiganteum); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.GIGANTIC); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWEST); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWEST); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 4); - Allele.helper.set(alleles, EnumTreeChromosome.FIREPROOF, EnumAllele.Fireproof.TRUE); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeGiganteum; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightGigantic; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLowest; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationSlowest; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int4; + alleles[EnumTreeChromosome.FIREPROOF.ordinal()] = Allele.fireproofTrue; return alleles; } public static IAllele[] getLarchTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeLarch); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeLarch; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsLow; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightAverage; return alleles; } public static IAllele[] getPineTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treePine); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treePine; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsLow; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightAverage; return alleles; } public static IAllele[] getCherryTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeCherry); - Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitCherry); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALLER); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeCherry; + alleles[EnumTreeChromosome.FRUITS.ordinal()] = Allele.fruitCherry; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsLow; + alleles[EnumTreeChromosome.YIELD.ordinal()] = Allele.yieldAverage; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLow; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightSmaller; return alleles; } public static IAllele[] getLimeTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeLime); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOWER); - //Allele.helper.set(alleles, EnumTreeChromosome.EFFECT, Allele.leavesBrimstone); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeLime; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsLow; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.YIELD.ordinal()] = Allele.yieldLower; + //alleles[EnumTreeChromosome.EFFECT.ordinal()] = Allele.leavesBrimstone; return alleles; } public static IAllele[] getTeakTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeTeak); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeTeak; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; return alleles; } public static IAllele[] getKapokTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeKapok); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeKapok; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLarge; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLow; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationSlow; return alleles; } public static IAllele[] getEbonyTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeEbony); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWER); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 3); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeEbony; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightAverage; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLow; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationSlower; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int3; return alleles; } public static IAllele[] getMahoganyTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeMahogany); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeMahogany; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLarge; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLow; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationSlow; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getChestnutTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeChestnut); - Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitChestnut); - Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeChestnut; + alleles[EnumTreeChromosome.FRUITS.ordinal()] = Allele.fruitChestnut; + alleles[EnumTreeChromosome.YIELD.ordinal()] = Allele.yieldAverage; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLarge; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getDesertAcaciaTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeDesertAcacia); - Allele.helper.set(alleles, EnumTreeChromosome.PLANT, Allele.plantTypeDesert); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeDesertAcacia; + alleles[EnumTreeChromosome.PLANT.ordinal()] = Allele.plantTypeDesert; return alleles; } public static IAllele[] getWengeTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeWenge); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOWEST); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeWenge; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsLowest; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getBaobabTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeBaobab); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE); - Allele.helper.set(alleles, EnumTreeChromosome.PLANT, Allele.plantTypeDesert); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 3); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeBaobab; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLarge; + alleles[EnumTreeChromosome.PLANT.ordinal()] = Allele.plantTypeDesert; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationSlow; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int3; return alleles; } public static IAllele[] getWalnutTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeWalnut); - Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitWalnut); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeWalnut; + alleles[EnumTreeChromosome.FRUITS.ordinal()] = Allele.fruitWalnut; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsLower; + alleles[EnumTreeChromosome.YIELD.ordinal()] = Allele.yieldAverage; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightAverage; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getWillowTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeWillow); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.FASTER); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeWillow; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightAverage; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLow; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationFaster; return alleles; } public static IAllele[] getSipiriTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeSipiri); - Allele.helper.set(alleles, EnumTreeChromosome.GROWTH, Allele.growthTropical); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOW); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeSipiri; + alleles[EnumTreeChromosome.GROWTH.ordinal()] = Allele.growthTropical; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLarge; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLow; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationSlow; return alleles; } public static IAllele[] getMahoeTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeMahoe); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALL); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.HIGH); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWEST); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeMahoe; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightSmall; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessHigh; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationSlowest; return alleles; } public static IAllele[] getPoplarTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treePoplar); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALL); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.MATURATION, EnumAllele.Maturation.SLOWER); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treePoplar; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightSmall; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLow; + alleles[EnumTreeChromosome.MATURATION.ordinal()] = Allele.maturationSlower; return alleles; } public static IAllele[] getLemonTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeLemon); - Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitLemon); - Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALLEST); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeLemon; + alleles[EnumTreeChromosome.FRUITS.ordinal()] = Allele.fruitLemon; + alleles[EnumTreeChromosome.YIELD.ordinal()] = Allele.yieldLower; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessAverage; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightSmallest; return alleles; } public static IAllele[] getPlumTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treePlum); - Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitPlum); - Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.HIGH); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.AVERAGE); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.SMALLEST); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treePlum; + alleles[EnumTreeChromosome.FRUITS.ordinal()] = Allele.fruitPlum; + alleles[EnumTreeChromosome.YIELD.ordinal()] = Allele.yieldHigh; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessAverage; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightSmallest; return alleles; } public static IAllele[] getMapleTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeMaple); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeMaple; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsLow; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightAverage; return alleles; } public static IAllele[] getPapayaTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treePapaya); - Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitPapaya); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treePapaya; + alleles[EnumTreeChromosome.FRUITS.ordinal()] = Allele.fruitPapaya; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsLow; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightAverage; return alleles; } public static IAllele[] getDateTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeDate); - Allele.helper.set(alleles, EnumTreeChromosome.FRUITS, Allele.fruitDates); - Allele.helper.set(alleles, EnumTreeChromosome.FERTILITY, EnumAllele.Saplings.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.YIELD, EnumAllele.Yield.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOW); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.AVERAGE); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeDate; + alleles[EnumTreeChromosome.FRUITS.ordinal()] = Allele.fruitDates; + alleles[EnumTreeChromosome.FERTILITY.ordinal()] = Allele.saplingsLow; + alleles[EnumTreeChromosome.YIELD.ordinal()] = Allele.yieldLow; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLow; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightAverage; return alleles; } public static IAllele[] getIpeTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeIpe); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeIpe; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLarge; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getPadaukTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treePadauk); - Allele.helper.set(alleles, EnumTreeChromosome.SAPPINESS, EnumAllele.Sappiness.LOWER); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treePadauk; + alleles[EnumTreeChromosome.SAPPINESS.ordinal()] = Allele.sappinessLower; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLarge; return alleles; } public static IAllele[] getCocoboloTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeCocobolo); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGEST); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeCocobolo; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLargest; return alleles; } public static IAllele[] getZebrawoodTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumTreeChromosome.SPECIES, Allele.treeZebrawood); - Allele.helper.set(alleles, EnumTreeChromosome.HEIGHT, EnumAllele.Height.LARGE); - Allele.helper.set(alleles, EnumTreeChromosome.GIRTH, 2); + alleles[EnumTreeChromosome.SPECIES.ordinal()] = Allele.treeZebrawood; + alleles[EnumTreeChromosome.HEIGHT.ordinal()] = Allele.heightLarge; + alleles[EnumTreeChromosome.GIRTH.ordinal()] = Allele.int2; return alleles; } diff --git a/src/main/java/forestry/arboriculture/gui/GuiTreealyzer.java b/src/main/java/forestry/arboriculture/gui/GuiTreealyzer.java index 1edd1dee6..eb0f714d6 100755 --- a/src/main/java/forestry/arboriculture/gui/GuiTreealyzer.java +++ b/src/main/java/forestry/arboriculture/gui/GuiTreealyzer.java @@ -34,9 +34,9 @@ import forestry.arboriculture.genetics.TreeGenome; import forestry.arboriculture.items.ItemGermlingGE; import forestry.arboriculture.items.ItemTreealyzer.TreealyzerInventory; import forestry.core.config.ForestryItem; -import forestry.core.genetics.alleles.Allele; -import forestry.core.genetics.alleles.AlleleBoolean; -import forestry.core.genetics.alleles.AllelePlantType; +import forestry.core.genetics.Allele; +import forestry.core.genetics.AlleleBoolean; +import forestry.core.genetics.AllelePlantType; import forestry.core.gui.ContainerAlyzer; import forestry.core.gui.GuiAlyzer; import forestry.core.utils.StringUtil; diff --git a/src/main/java/forestry/core/config/Defaults.java b/src/main/java/forestry/core/config/Defaults.java index d071b9bba..fb365acce 100755 --- a/src/main/java/forestry/core/config/Defaults.java +++ b/src/main/java/forestry/core/config/Defaults.java @@ -127,6 +127,11 @@ public class Defaults { public static final int SLOTS_BACKPACK_T2 = 45; public static final int SLOTS_BACKPACK_APIARIST = 125; + // Bee ids + public static final int ID_BEE_SPECIES_REDDENED = 31; + public static final int ID_BEE_SPECIES_DARKENED = 32; + public static final int ID_BEE_SPECIES_OMEGA = 33; + // Food stuff public static final int FOOD_AMBROSIA_HEAL = 8; public static final int FOOD_JUICE_HEAL = 2; diff --git a/src/main/java/forestry/core/gadgets/TileAnalyzer.java b/src/main/java/forestry/core/gadgets/TileAnalyzer.java index 58efbb600..12fab69b9 100755 --- a/src/main/java/forestry/core/gadgets/TileAnalyzer.java +++ b/src/main/java/forestry/core/gadgets/TileAnalyzer.java @@ -23,7 +23,6 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; -import forestry.api.apiculture.BeeManager; import forestry.api.core.ForestryAPI; import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IAllele; @@ -44,6 +43,7 @@ import forestry.core.network.GuiId; import forestry.core.network.PacketPayload; import forestry.core.utils.GeneticsUtil; import forestry.core.utils.GuiUtil; +import forestry.plugins.PluginApiculture; public class TileAnalyzer extends TilePowered implements ISidedInventory, ILiquidTankContainer { @@ -211,7 +211,7 @@ public class TileAnalyzer extends TilePowered implements ISidedInventory, ILiqui } IIndividual displayIndividual = AlleleManager.alleleRegistry.getIndividual(displayStack); - int type = BeeManager.beeRoot.getType(displayStack).ordinal(); + int type = PluginApiculture.beeInterface.getType(displayStack).ordinal(); PacketPayload payload = new PacketPayload(); payload.stringPayload = new String[1]; @@ -229,10 +229,10 @@ public class TileAnalyzer extends TilePowered implements ISidedInventory, ILiqui int type = payload.shortPayload[0]; int stackSize = payload.shortPayload[1]; - IAllele[] template = BeeManager.beeRoot.getTemplate(individualUID); - IIndividual individual = BeeManager.beeRoot.templateAsIndividual(template); + IAllele[] template = PluginApiculture.beeInterface.getTemplate(individualUID); + IIndividual individual = PluginApiculture.beeInterface.templateAsIndividual(template); - newIndividualOnDisplay = BeeManager.beeRoot.getMemberStack(individual, type); + newIndividualOnDisplay = PluginApiculture.beeInterface.getMemberStack(individual, type); newIndividualOnDisplay.stackSize = stackSize; } diff --git a/src/main/java/forestry/core/genetics/alleles/Allele.java b/src/main/java/forestry/core/genetics/Allele.java old mode 100644 new mode 100755 similarity index 51% rename from src/main/java/forestry/core/genetics/alleles/Allele.java rename to src/main/java/forestry/core/genetics/Allele.java index b5c1a4a67..96fffd83f --- a/src/main/java/forestry/core/genetics/alleles/Allele.java +++ b/src/main/java/forestry/core/genetics/Allele.java @@ -8,7 +8,7 @@ * Various Contributors including, but not limited to: * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges ******************************************************************************/ -package forestry.core.genetics.alleles; +package forestry.core.genetics; import java.util.EnumSet; @@ -18,17 +18,23 @@ import forestry.api.arboriculture.IAlleleFruit; import forestry.api.arboriculture.IAlleleGrowth; import forestry.api.arboriculture.IAlleleTreeSpecies; import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.EnumTolerance; import forestry.api.genetics.IAllele; import forestry.api.genetics.ILegacyHandler; import forestry.api.lepidopterology.IAlleleButterflySpecies; +import forestry.core.config.Defaults; import forestry.core.utils.StringUtil; -public abstract class Allele implements IAllele { +public class Allele implements IAllele { protected final String uid; protected final boolean isDominant; protected String name; + public Allele(String uid, boolean isDominant) { + this(uid, isDominant, false); + } + protected Allele(String uid, boolean isDominant, boolean skipRegister) { this.uid = uid; this.isDominant = isDominant; @@ -41,7 +47,7 @@ public abstract class Allele implements IAllele { @Override public String getUID() { - return uid; + return "forestry." + this.uid; } @Override @@ -49,8 +55,6 @@ public abstract class Allele implements IAllele { return isDominant; } - public static IAlleleHelper helper; - // / TREES // SPECIES 512 - 1023 public static IAlleleTreeSpecies treeOak; public static IAlleleTreeSpecies treeBirch; @@ -137,6 +141,47 @@ public abstract class Allele implements IAllele { public static IAlleleButterflySpecies lepiSpicebush; public static IAlleleButterflySpecies lepiMalachite; public static IAlleleButterflySpecies lepiLLacewing; + + // / ALL // GENERIC + public static final Allele boolFalse = new AlleleBoolean("boolFalse", false); + public static final Allele boolTrue = new AlleleBoolean("boolTrue", true); + + public static final Allele int1 = new AlleleInteger("i1d", 1, true); + public static final Allele int2 = new AlleleInteger("i2d", 2, true); + public static final Allele int3 = new AlleleInteger("i3d", 3, true); + public static final Allele int4 = new AlleleInteger("i4d", 4, true); + public static final Allele int5 = new AlleleInteger("i5d", 5, true); + public static final Allele int6 = new AlleleInteger("i6d", 6, true); + public static final Allele int7 = new AlleleInteger("i7d", 7, true); + public static final Allele int8 = new AlleleInteger("i8d", 8, true); + public static final Allele int9 = new AlleleInteger("i9d", 9, true); + public static final Allele int10 = new AlleleInteger("i10d", 10, true); + + // / BEES // SPEED 1100 - 1199 + public static final Allele speedSlowest = new AlleleFloat("speedSlowest", 0.3f, true).setName("speed", "slowest"); + public static final Allele speedSlower = new AlleleFloat("speedSlower", 0.6f, true).setName("speed", "slower"); + public static final Allele speedSlow = new AlleleFloat("speedSlow", 0.8f, true).setName("speed", "slow"); + public static final Allele speedNorm = new AlleleFloat("speedNorm", 1.0f).setName("speed", "normal"); + public static final Allele speedFast = new AlleleFloat("speedFast", 1.2f, true).setName("speed", "fast"); + public static final Allele speedFaster = new AlleleFloat("speedFaster", 1.4f).setName("speed", "faster"); + public static final Allele speedFastest = new AlleleFloat("speedFastest", 1.7f).setName("speed", "fastest"); + + // / BEES // LIFESPAN 1200 - 1299 + public static final Allele lifespanShortest = new AlleleInteger("lifespanShortest", 10, false).setName("gui.shortestlife"); + public static final Allele lifespanShorter = new AlleleInteger("lifespanShorter", 20, true).setName("gui.shorterlife"); + public static final Allele lifespanShort = new AlleleInteger("lifespanShort", 30, true).setName("gui.shortlife"); + public static final Allele lifespanShortened = new AlleleInteger("lifespanShortened", 35, true).setName("gui.shortenedlife"); + public static final Allele lifespanNormal = new AlleleInteger("lifespanNormal", 40).setName("gui.normallife"); + public static final Allele lifespanElongated = new AlleleInteger("lifespanElongated", 45, true).setName("gui.elongatedlife"); + public static final Allele lifespanLong = new AlleleInteger("lifespanLong", 50).setName("gui.longlife"); + public static final Allele lifespanLonger = new AlleleInteger("lifespanLonger", 60).setName("gui.longerlife"); + public static final Allele lifespanLongest = new AlleleInteger("lifespanLongest", 70).setName("gui.longestlife"); + + // / BEES // FERTILITY 1300 - 1349 + public static final Allele fertilityLow = new AlleleInteger("fertilityLow", 1, true); + public static final Allele fertilityNormal = new AlleleInteger("fertilityNormal", 2, true); + public static final Allele fertilityHigh = new AlleleInteger("fertilityHigh", 3); + public static final Allele fertilityMaximum = new AlleleInteger("fertilityMaximum", 4); // / TREES // GROWTH PROVIDER 1350 - 1399 public static IAlleleGrowth growthLightlevel; @@ -157,6 +202,106 @@ public abstract class Allele implements IAllele { public static IAlleleFruit fruitPlum; public static IAlleleFruit fruitJujube; + // / TREES // HEIGHT 1400 - 1449 + public static final Allele heightSmallest = new AlleleFloat("heightSmallest", 0.25f).setName("height", "smallest"); + public static final Allele heightSmaller = new AlleleFloat("heightSmaller", 0.5f).setName("height", "smaller"); + public static final Allele heightSmall = new AlleleFloat("heightSmall", 0.75f).setName("height", "small"); + public static final Allele heightAverage = new AlleleFloat("heightMax10", 1.0f).setName("height", "average"); + public static final Allele heightLarge = new AlleleFloat("heightLarge", 1.25f).setName("height", "large"); + public static final Allele heightLarger = new AlleleFloat("heightLarger", 1.5f).setName("height", "larger"); + public static final Allele heightLargest = new AlleleFloat("heightLargest", 1.75f).setName("height", "largest"); + public static final Allele heightGigantic = new AlleleFloat("heightGigantic", 2.0f).setName("height", "gigantic"); + + /// BUTTERFLIES // SIZE + public static final Allele sizeSmallest = new AlleleFloat("sizeSmallest", 0.3f).setName("size", "smallest"); + public static final Allele sizeSmaller = new AlleleFloat("sizeSmaller", 0.4f).setName("size", "smaller"); + public static final Allele sizeSmall = new AlleleFloat("sizeSmall", 0.5f).setName("size", "small"); + public static final Allele sizeAverage = new AlleleFloat("sizeAverage", 0.6f).setName("size", "average"); + public static final Allele sizeLarge = new AlleleFloat("sizeLarge", 0.75f).setName("size", "large"); + public static final Allele sizeLarger = new AlleleFloat("sizeLarger", 0.9f).setName("size", "larger"); + public static final Allele sizeLargest = new AlleleFloat("sizeLargest", 1.0f).setName("size", "largest"); + + // / BOTH // TOLERANCE 1450 - 1499 + public static final Allele toleranceNone = new AlleleTolerance("toleranceNone", EnumTolerance.NONE); + public static final Allele toleranceBoth1 = new AlleleTolerance("toleranceBoth1", EnumTolerance.BOTH_1, true); + public static final Allele toleranceBoth2 = new AlleleTolerance("toleranceBoth2", EnumTolerance.BOTH_2); + public static final Allele toleranceBoth3 = new AlleleTolerance("toleranceBoth3", EnumTolerance.BOTH_3); + public static final Allele toleranceBoth4 = new AlleleTolerance("toleranceBoth4", EnumTolerance.BOTH_4); + public static final Allele toleranceBoth5 = new AlleleTolerance("toleranceBoth5", EnumTolerance.BOTH_5); + public static final Allele toleranceUp1 = new AlleleTolerance("toleranceUp1", EnumTolerance.UP_1, true); + public static final Allele toleranceUp2 = new AlleleTolerance("toleranceUp2", EnumTolerance.UP_2); + public static final Allele toleranceUp3 = new AlleleTolerance("toleranceUp3", EnumTolerance.UP_3); + public static final Allele toleranceUp4 = new AlleleTolerance("toleranceUp4", EnumTolerance.UP_4); + public static final Allele toleranceUp5 = new AlleleTolerance("toleranceUp5", EnumTolerance.UP_5); + public static final Allele toleranceDown1 = new AlleleTolerance("toleranceDown1", EnumTolerance.DOWN_1, true); + public static final Allele toleranceDown2 = new AlleleTolerance("toleranceDown2", EnumTolerance.DOWN_2); + public static final Allele toleranceDown3 = new AlleleTolerance("toleranceDown3", EnumTolerance.DOWN_3); + public static final Allele toleranceDown4 = new AlleleTolerance("toleranceDown4", EnumTolerance.DOWN_4); + public static final Allele toleranceDown5 = new AlleleTolerance("toleranceDown5", EnumTolerance.DOWN_5); + + // / BEES // FLOWER PROVIDERS 1500 - 1599 + public static Allele flowersVanilla; + public static Allele flowersNether; + public static Allele flowersCacti; + public static Allele flowersMushrooms; + public static Allele flowersEnd; + public static Allele flowersJungle; + public static Allele flowersSnow; + public static Allele flowersWheat; + public static Allele flowersGourd; + + // / TREES // FERTILITY 1600 - 1649 + public static final Allele saplingsLowest = new AlleleFloat("saplingsLowest", 0.01f, true).setName("saplings", "lowest"); + public static final Allele saplingsLower = new AlleleFloat("saplingsLower", 0.025f, true).setName("saplings", "lower"); + public static final Allele saplingsLow = new AlleleFloat("saplingsLow", 0.035f, true).setName("saplings", "low"); + public static final Allele saplingsAverage = new AlleleFloat("saplingsDefault", 0.05f, true).setName("saplings", "average"); + public static final Allele saplingsHigh = new AlleleFloat("saplingsDouble", 0.1f, true).setName("saplings", "high"); + public static final Allele saplingsHigher = new AlleleFloat("saplingsTriple", 0.2f, true).setName("saplings", "higher"); + public static final Allele saplingsHighest = new AlleleFloat("saplingsHighest", 0.3f, true).setName("saplings", "highest"); + + // / TREES // YIELD 1650 - 1699 + public static final Allele yieldLowest = new AlleleFloat("yieldLowest", 0.025f, true).setName("yield", "lowest"); + public static final Allele yieldLower = new AlleleFloat("yieldLower", 0.05f, true).setName("yield", "lower"); + public static final Allele yieldLow = new AlleleFloat("yieldLow", 0.1f, true).setName("yield", "low"); + public static final Allele yieldAverage = new AlleleFloat("yieldDefault", 0.2f, true).setName("yield", "average"); + public static final Allele yieldHigh = new AlleleFloat("yieldHigh", 0.3f, false).setName("yield", "high"); + public static final Allele yieldHigher = new AlleleFloat("yieldHigher", 0.35f, false).setName("yield", "higher"); + public static final Allele yieldHighest = new AlleleFloat("yieldHighest", 0.4f, false).setName("yield", "highest"); + + // TREES // SAPPINESS + public static final Allele sappinessLowest = new AlleleFloat("sappinessLowest", 0.1f, true).setName("sappiness", "lowest"); + public static final Allele sappinessLower = new AlleleFloat("sappinessLower", 0.2f, true).setName("sappiness", "lower"); + public static final Allele sappinessLow = new AlleleFloat("sappinessLow", 0.3f, true).setName("sappiness", "low"); + public static final Allele sappinessAverage = new AlleleFloat("sappinessAverage", 0.4f, true).setName("sappiness", "average"); + public static final Allele sappinessHigh = new AlleleFloat("sappinessHigh", 0.6f, true).setName("sappiness", "high"); + public static final Allele sappinessHigher = new AlleleFloat("sappinessHigher", 0.8f, false).setName("sappiness", "higher"); + public static final Allele sappinessHighest = new AlleleFloat("sappinessHighest", 1.0f, false).setName("sappiness", "highest"); + + // TREES // MATURATION TIME + public static final Allele maturationSlowest = new AlleleInteger("maturationSlowest", 10, true).setName("maturity", "slowest"); + public static final Allele maturationSlower = new AlleleInteger("maturationSlower", 7).setName("maturity", "slower"); + public static final Allele maturationSlow = new AlleleInteger("maturationSlow", 5, true).setName("maturity", "slow"); + public static final Allele maturationAverage = new AlleleInteger("maturationAverage", 4).setName("maturity", "average"); + public static final Allele maturationFast = new AlleleInteger("maturationFast", 3).setName("maturity", "fast"); + public static final Allele maturationFaster = new AlleleInteger("maturationFaster", 2).setName("maturity", "faster"); + public static final Allele maturationFastest = new AlleleInteger("maturationFastest", 1).setName("maturity", "fastest"); + + // / BEES // FLOWER GROWTH 1700 - 1749 + public static final Allele floweringSlowest = new AlleleInteger("floweringSlowest", 5, true).setName("flowering", "slowest"); + public static final Allele floweringSlower = new AlleleInteger("floweringSlower", 10).setName("flowering", "slower"); + public static final Allele floweringSlow = new AlleleInteger("floweringSlow", 15).setName("flowering", "slow"); + public static final Allele floweringAverage = new AlleleInteger("floweringAverage", 20).setName("flowering", "average"); + public static final Allele floweringFast = new AlleleInteger("floweringFast", 25).setName("flowering", "fast"); + public static final Allele floweringFaster = new AlleleInteger("floweringFaster", 30).setName("flowering", "faster"); + public static final Allele floweringFastest = new AlleleInteger("floweringFastest", 35).setName("flowering", "fastest"); + public static final Allele floweringMaximum = new AlleleInteger("floweringMaximum", 99, true).setName("flowering", "maximum"); + + // / BOTH // TERRITORY 1750 - 1799 + public static final Allele territoryDefault = new AlleleArea("territoryDefault", new int[]{9, 6, 9}).setName("territory", "average"); + public static final Allele territoryLarge = new AlleleArea("territoryLarge", new int[]{11, 8, 11}).setName("territory", "large"); + public static final Allele territoryLarger = new AlleleArea("territoryLarger", new int[]{13, 12, 13}).setName("territory", "larger"); + public static final Allele territoryLargest = new AlleleArea("territoryLargest", new int[]{15, 13, 15}).setName("territory", "largest"); + // / BEES // EFFECTS 1800 - 1899 public static Allele effectNone; public static Allele effectAggressive; @@ -185,16 +330,20 @@ public abstract class Allele implements IAllele { public static Allele butterflyNone; // These are "secondary" plant attributes, i.e. the tree can double as one. - public static final Allele plantTypeNone = new AllelePlantType("none", EnumSet.noneOf(EnumPlantType.class), true); - public static final Allele plantTypePlains = new AllelePlantType(EnumPlantType.Plains); - public static final Allele plantTypeDesert = new AllelePlantType(EnumPlantType.Desert); - public static final Allele plantTypeBeach = new AllelePlantType(EnumPlantType.Beach); - public static final Allele plantTypeCave = new AllelePlantType(EnumPlantType.Cave); - public static final Allele plantTypeWater = new AllelePlantType(EnumPlantType.Water); - public static final Allele plantTypeNether = new AllelePlantType(EnumPlantType.Nether); - public static final Allele plantTypeCrop = new AllelePlantType(EnumPlantType.Crop); + public static final Allele plantTypeNone = new AllelePlantType("plantTypeNone", EnumSet.noneOf(EnumPlantType.class), true); + public static final Allele plantTypePlains = new AllelePlantType("plantTypePlains", EnumPlantType.Plains); + public static final Allele plantTypeDesert = new AllelePlantType("plantTypeDesert", EnumPlantType.Desert); + public static final Allele plantTypeBeach = new AllelePlantType("plantTypeBeach", EnumPlantType.Beach); + public static final Allele plantTypeCave = new AllelePlantType("plantTypeCave", EnumPlantType.Cave); + public static final Allele plantTypeWater = new AllelePlantType("plantTypeWater", EnumPlantType.Water); + public static final Allele plantTypeNether = new AllelePlantType("plantTypeNether", EnumPlantType.Nether); + public static final Allele plantTypeCrop = new AllelePlantType("plantTypeCrop", EnumPlantType.Crop); - public static void setupAPI() { + // / TREES // FIREPROOF + public static final Allele fireproofFalse = new AlleleBoolean("fireproofFalse", false); + public static final Allele fireproofTrue = new AlleleBoolean("fireproofTrue", true); + + public static void setupLegacyAPI() { // LEGACY MAPPINGS ILegacyHandler legacy = (ILegacyHandler) AlleleManager.alleleRegistry; @@ -235,6 +384,10 @@ public abstract class Allele implements IAllele { legacy.registerLegacyMapping(29, "forestry.speciesVengeful"); legacy.registerLegacyMapping(30, "forestry.speciesAvenging"); + legacy.registerLegacyMapping(Defaults.ID_BEE_SPECIES_DARKENED, "forestry.speciesDarkened"); + legacy.registerLegacyMapping(Defaults.ID_BEE_SPECIES_REDDENED, "forestry.speciesReddened"); + legacy.registerLegacyMapping(Defaults.ID_BEE_SPECIES_OMEGA, "forestry.speciesOmega"); + legacy.registerLegacyMapping(34, "forestry.speciesLeporine"); legacy.registerLegacyMapping(40, "forestry.speciesRural"); @@ -335,6 +488,11 @@ public abstract class Allele implements IAllele { public String getUnlocalizedName() { return name; } + + public Allele setName(String string) { + name = string; + return this; + } @Override public String toString() { diff --git a/src/main/java/forestry/core/genetics/alleles/AlleleArea.java b/src/main/java/forestry/core/genetics/AlleleArea.java old mode 100644 new mode 100755 similarity index 59% rename from src/main/java/forestry/core/genetics/alleles/AlleleArea.java rename to src/main/java/forestry/core/genetics/AlleleArea.java index 337d36c91..002c39139 --- a/src/main/java/forestry/core/genetics/alleles/AlleleArea.java +++ b/src/main/java/forestry/core/genetics/AlleleArea.java @@ -8,17 +8,22 @@ * Various Contributors including, but not limited to: * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges ******************************************************************************/ -package forestry.core.genetics.alleles; +package forestry.core.genetics; import forestry.api.genetics.IAlleleArea; +import forestry.core.utils.StringUtil; import forestry.core.vect.Vect; -public class AlleleArea extends AlleleForestry implements IAlleleArea { +public class AlleleArea extends Allele implements IAlleleArea { private final int[] area; - public AlleleArea(String prefix, String name, int[] value, boolean isDominant) { - super(prefix, name, isDominant, false); + public AlleleArea(String uid, int[] value) { + this(uid, value, false); + } + + public AlleleArea(String uid, int[] value, boolean isDominant) { + super(uid, isDominant); this.area = value; } @@ -29,4 +34,15 @@ public class AlleleArea extends AlleleForestry implements IAlleleArea { public Vect getArea() { return new Vect(area); } + + public AlleleArea setName(String customPrefix, String name) { + String customName = "gui." + customPrefix + "." + name; + if (StringUtil.canTranslate(customName)) { + this.name = customName; + } else { + this.name = "gui." + name; + } + return this; + } + } diff --git a/src/main/java/forestry/core/genetics/alleles/AlleleBoolean.java b/src/main/java/forestry/core/genetics/AlleleBoolean.java old mode 100644 new mode 100755 similarity index 69% rename from src/main/java/forestry/core/genetics/alleles/AlleleBoolean.java rename to src/main/java/forestry/core/genetics/AlleleBoolean.java index 01f0e618e..1bd96078a --- a/src/main/java/forestry/core/genetics/alleles/AlleleBoolean.java +++ b/src/main/java/forestry/core/genetics/AlleleBoolean.java @@ -8,16 +8,20 @@ * Various Contributors including, but not limited to: * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges ******************************************************************************/ -package forestry.core.genetics.alleles; +package forestry.core.genetics; import forestry.api.genetics.IAlleleBoolean; -public class AlleleBoolean extends AlleleForestry implements IAlleleBoolean { +public class AlleleBoolean extends Allele implements IAlleleBoolean { - private final boolean value; + final boolean value; - public AlleleBoolean(String category, boolean value, boolean isDominant) { - super(category, Boolean.toString(value), isDominant); + public AlleleBoolean(String uid, boolean value) { + this(uid, value, false); + } + + public AlleleBoolean(String uid, boolean value, boolean isDominant) { + super(uid, isDominant); this.value = value; } diff --git a/src/main/java/forestry/core/genetics/alleles/AlleleFloat.java b/src/main/java/forestry/core/genetics/AlleleFloat.java old mode 100644 new mode 100755 similarity index 56% rename from src/main/java/forestry/core/genetics/alleles/AlleleFloat.java rename to src/main/java/forestry/core/genetics/AlleleFloat.java index e03d00e09..cd99ca273 --- a/src/main/java/forestry/core/genetics/alleles/AlleleFloat.java +++ b/src/main/java/forestry/core/genetics/AlleleFloat.java @@ -8,20 +8,21 @@ * Various Contributors including, but not limited to: * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges ******************************************************************************/ -package forestry.core.genetics.alleles; +package forestry.core.genetics; import forestry.api.genetics.IAlleleFloat; +import forestry.core.utils.StringUtil; -public class AlleleFloat extends AlleleForestry implements IAlleleFloat { +public class AlleleFloat extends Allele implements IAlleleFloat { private final float value; - public AlleleFloat(String prefix, String name, float value) { - this(prefix, name, value, false); + public AlleleFloat(String uid, float value) { + this(uid, value, false); } - public AlleleFloat(String prefix, String name, float value, boolean isDominant) { - super(prefix, name, isDominant); + public AlleleFloat(String uid, float value, boolean isDominant) { + super(uid, isDominant); this.value = value; } @@ -29,4 +30,14 @@ public class AlleleFloat extends AlleleForestry implements IAlleleFloat { public float getValue() { return value; } + + public AlleleFloat setName(String customPrefix, String name) { + String customName = "gui." + customPrefix + "." + name; + if (StringUtil.canTranslate(customName)) { + this.name = customName; + } else { + this.name = "gui." + name; + } + return this; + } } diff --git a/src/main/java/forestry/core/genetics/alleles/AlleleInteger.java b/src/main/java/forestry/core/genetics/AlleleInteger.java old mode 100644 new mode 100755 similarity index 56% rename from src/main/java/forestry/core/genetics/alleles/AlleleInteger.java rename to src/main/java/forestry/core/genetics/AlleleInteger.java index 75e34b683..34d2c9341 --- a/src/main/java/forestry/core/genetics/alleles/AlleleInteger.java +++ b/src/main/java/forestry/core/genetics/AlleleInteger.java @@ -8,20 +8,21 @@ * Various Contributors including, but not limited to: * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges ******************************************************************************/ -package forestry.core.genetics.alleles; +package forestry.core.genetics; import forestry.api.genetics.IAlleleInteger; +import forestry.core.utils.StringUtil; -public class AlleleInteger extends AlleleForestry implements IAlleleInteger { +public class AlleleInteger extends Allele implements IAlleleInteger { private final int value; - public AlleleInteger(String prefix, String name, int value) { - this(prefix, name, value, false); + public AlleleInteger(String uid, int value) { + this(uid, value, false); } - public AlleleInteger(String prefix, String name, int value, boolean isDominant) { - super(prefix, name, isDominant); + public AlleleInteger(String uid, int value, boolean isDominant) { + super(uid, isDominant); this.value = value; } @@ -29,4 +30,15 @@ public class AlleleInteger extends AlleleForestry implements IAlleleInteger { public int getValue() { return value; } + + public AlleleInteger setName(String customPrefix, String name) { + String customName = "gui." + customPrefix + "." + name; + if (StringUtil.canTranslate(customName)) { + this.name = customName; + } else { + this.name = "gui." + name; + } + return this; + } + } diff --git a/src/main/java/forestry/core/genetics/alleles/AllelePlantType.java b/src/main/java/forestry/core/genetics/AllelePlantType.java old mode 100644 new mode 100755 similarity index 63% rename from src/main/java/forestry/core/genetics/alleles/AllelePlantType.java rename to src/main/java/forestry/core/genetics/AllelePlantType.java index eeff08ca3..1c067ea46 --- a/src/main/java/forestry/core/genetics/alleles/AllelePlantType.java +++ b/src/main/java/forestry/core/genetics/AllelePlantType.java @@ -8,29 +8,28 @@ * Various Contributors including, but not limited to: * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges ******************************************************************************/ -package forestry.core.genetics.alleles; +package forestry.core.genetics; import java.util.EnumSet; -import java.util.Locale; import net.minecraftforge.common.EnumPlantType; import forestry.api.genetics.IAllelePlantType; -public class AllelePlantType extends AlleleForestry implements IAllelePlantType { +public class AllelePlantType extends Allele implements IAllelePlantType { private final EnumSet types; - protected AllelePlantType(EnumPlantType type) { - this(type, false); + protected AllelePlantType(String uid, EnumPlantType type) { + this(uid, type, false); } - protected AllelePlantType(EnumPlantType type, boolean isDominant) { - this(type.toString().toLowerCase(Locale.ENGLISH), EnumSet.of(type), isDominant); + protected AllelePlantType(String uid, EnumPlantType type, boolean isDominant) { + this(uid, EnumSet.of(type), isDominant); } - protected AllelePlantType(String name, EnumSet types, boolean isDominant) { - super("plantType", name, isDominant); + protected AllelePlantType(String uid, EnumSet types, boolean isDominant) { + super(uid, isDominant); this.types = types; } diff --git a/src/main/java/forestry/core/genetics/alleles/AlleleRegistry.java b/src/main/java/forestry/core/genetics/AlleleRegistry.java old mode 100644 new mode 100755 similarity index 98% rename from src/main/java/forestry/core/genetics/alleles/AlleleRegistry.java rename to src/main/java/forestry/core/genetics/AlleleRegistry.java index c6b478e6b..ae9b46d6d --- a/src/main/java/forestry/core/genetics/alleles/AlleleRegistry.java +++ b/src/main/java/forestry/core/genetics/AlleleRegistry.java @@ -8,7 +8,7 @@ * Various Contributors including, but not limited to: * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges ******************************************************************************/ -package forestry.core.genetics.alleles; +package forestry.core.genetics; import java.util.ArrayList; import java.util.Collection; @@ -34,7 +34,6 @@ import forestry.api.genetics.ILegacyHandler; import forestry.api.genetics.IMutation; import forestry.api.genetics.ISpeciesRoot; import forestry.core.config.ForestryItem; -import forestry.core.genetics.Classification; import forestry.core.genetics.ItemResearchNote.EnumNoteType; public class AlleleRegistry implements IAlleleRegistry, ILegacyHandler { diff --git a/src/main/java/forestry/core/genetics/alleles/AlleleSpecies.java b/src/main/java/forestry/core/genetics/AlleleSpecies.java old mode 100644 new mode 100755 similarity index 78% rename from src/main/java/forestry/core/genetics/alleles/AlleleSpecies.java rename to src/main/java/forestry/core/genetics/AlleleSpecies.java index d9818ad4c..8c4b8b0c0 --- a/src/main/java/forestry/core/genetics/alleles/AlleleSpecies.java +++ b/src/main/java/forestry/core/genetics/AlleleSpecies.java @@ -8,13 +8,12 @@ * Various Contributors including, but not limited to: * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges ******************************************************************************/ -package forestry.core.genetics.alleles; +package forestry.core.genetics; import java.util.Collection; import java.util.Map; import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; import net.minecraft.world.World; import com.mojang.authlib.GameProfile; @@ -26,18 +25,19 @@ import forestry.api.core.EnumHumidity; import forestry.api.core.EnumTemperature; import forestry.api.core.IIconProvider; import forestry.api.genetics.AlleleManager; -import forestry.api.genetics.IAlleleSpeciesCustom; +import forestry.api.genetics.IAlleleSpecies; import forestry.api.genetics.IClassification; import forestry.api.genetics.IIndividual; import forestry.api.genetics.IMutation; import forestry.core.config.ForestryItem; import forestry.core.utils.StackUtils; +import forestry.core.utils.StringUtil; -public abstract class AlleleSpecies extends Allele implements IAlleleSpeciesCustom { +public abstract class AlleleSpecies extends Allele implements IAlleleSpecies { private final String binomial; - private final String authority; private String description = null; + private int complexity = 3; private boolean hasEffect = false; private boolean isSecret = false; private boolean isCounted = true; @@ -45,14 +45,13 @@ public abstract class AlleleSpecies extends Allele implements IAlleleSpeciesCust private EnumTemperature climate = EnumTemperature.NORMAL; private EnumHumidity humidity = EnumHumidity.NORMAL; - public AlleleSpecies(String uid, String authority, String unlocalizedDescription, boolean isDominant, String name, IClassification branch, String binomial, boolean doRegister) { + public AlleleSpecies(String uid, boolean isDominant, String name, IClassification branch, String binomial, boolean doRegister) { super(uid, isDominant, true); this.branch = branch; this.name = name; this.binomial = binomial; - this.description = StatCollector.translateToLocal(unlocalizedDescription); - this.authority = authority; + this.description = StringUtil.localize("description." + uid); // FIXME: do not register here if (doRegister) { @@ -65,6 +64,11 @@ public abstract class AlleleSpecies extends Allele implements IAlleleSpeciesCust return description; } + @Override + public int getComplexity() { + return complexity; + } + @Override public float getResearchSuitability(ItemStack itemstack) { if (itemstack == null) { @@ -142,7 +146,7 @@ public abstract class AlleleSpecies extends Allele implements IAlleleSpeciesCust @Override public String getAuthority() { - return authority; + return "Sengir"; } @Override @@ -150,50 +154,42 @@ public abstract class AlleleSpecies extends Allele implements IAlleleSpeciesCust return this.branch; } - @Override - public IAlleleSpeciesCustom setTemperature(EnumTemperature temperature) { - climate = temperature; - return this; - } - - @Override - public IAlleleSpeciesCustom setHumidity(EnumHumidity humidity) { - this.humidity = humidity; - return this; - } - - @Override - public IAlleleSpeciesCustom setHasEffect() { - hasEffect = true; - return this; - } - - @Override - public IAlleleSpeciesCustom setIsSecret() { - isSecret = true; - return this; - } - - @Override - public IAlleleSpeciesCustom setIsNotCounted() { - isCounted = false; - return this; - } - - @Deprecated @SuppressWarnings("unchecked") - public T setTemperatureDeprecated(EnumTemperature temperature) { + public T setComplexity(int complexity) { + this.complexity = complexity; + return (T) this; + } + + @SuppressWarnings("unchecked") + public T setTemperature(EnumTemperature temperature) { climate = temperature; return (T) this; } - @Deprecated @SuppressWarnings("unchecked") - public T setHumidityDeprecated(EnumHumidity humidity) { + public T setHumidity(EnumHumidity humidity) { this.humidity = humidity; return (T) this; } + @SuppressWarnings("unchecked") + public T setHasEffect() { + hasEffect = true; + return (T) this; + } + + @SuppressWarnings("unchecked") + public T setIsSecret() { + isSecret = true; + return (T) this; + } + + @SuppressWarnings("unchecked") + public T setIsNotCounted() { + isCounted = false; + return (T) this; + } + @Override @SideOnly(Side.CLIENT) public abstract IIconProvider getIconProvider(); diff --git a/src/main/java/forestry/core/genetics/alleles/AlleleTolerance.java b/src/main/java/forestry/core/genetics/AlleleTolerance.java old mode 100644 new mode 100755 similarity index 85% rename from src/main/java/forestry/core/genetics/alleles/AlleleTolerance.java rename to src/main/java/forestry/core/genetics/AlleleTolerance.java index 1559c0694..4eba9dfa8 --- a/src/main/java/forestry/core/genetics/alleles/AlleleTolerance.java +++ b/src/main/java/forestry/core/genetics/AlleleTolerance.java @@ -8,17 +8,21 @@ * Various Contributors including, but not limited to: * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges ******************************************************************************/ -package forestry.core.genetics.alleles; +package forestry.core.genetics; import forestry.api.genetics.EnumTolerance; import forestry.api.genetics.IAlleleTolerance; -public class AlleleTolerance extends AlleleForestry implements IAlleleTolerance { +public class AlleleTolerance extends Allele implements IAlleleTolerance { private final EnumTolerance value; - public AlleleTolerance(String category, String name, EnumTolerance value, boolean isDominant) { - super(category, name, isDominant); + public AlleleTolerance(String uid, EnumTolerance value) { + this(uid, value, false); + } + + public AlleleTolerance(String uid, EnumTolerance value, boolean isDominant) { + super(uid, isDominant); this.value = value; } diff --git a/src/main/java/forestry/core/genetics/Genome.java b/src/main/java/forestry/core/genetics/Genome.java index 6886cea56..aac9b6ab9 100755 --- a/src/main/java/forestry/core/genetics/Genome.java +++ b/src/main/java/forestry/core/genetics/Genome.java @@ -26,6 +26,7 @@ import forestry.api.genetics.IChromosomeType; import forestry.api.genetics.IGenome; import forestry.api.genetics.ISpeciesRoot; import forestry.core.config.Config; +import forestry.core.proxy.Proxies; public abstract class Genome implements IGenome { @@ -92,7 +93,7 @@ public abstract class Genome implements IGenome { } if (chromosome.hasInvalidAlleles(speciesRoot.getKaryotype()[chromosomeOrdinal].getAlleleClass())) { - throw new RuntimeException("Found Chromosome with invalid Alleles.\nNBTTagCompound: " + chromosomesNBT + "\nSee config option \"genetics.clear.invalid.chromosomes\".\nMissing: " + chromosomeNBT); + throw new RuntimeException("Found Chromosome with invalid Alleles.\nNBTTagCompound: " + chromosomesNBT + "\nSee config option \"genetics.clear.invalid.chromosomes\"."); } } } diff --git a/src/main/java/forestry/core/genetics/Mutation.java b/src/main/java/forestry/core/genetics/Mutation.java index 7f20e1f9f..d205640bd 100755 --- a/src/main/java/forestry/core/genetics/Mutation.java +++ b/src/main/java/forestry/core/genetics/Mutation.java @@ -12,24 +12,16 @@ package forestry.core.genetics; import java.util.ArrayList; import java.util.Collection; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.world.World; - -import net.minecraftforge.common.BiomeDictionary; import forestry.api.core.EnumHumidity; import forestry.api.core.EnumTemperature; import forestry.api.genetics.IAllele; import forestry.api.genetics.IAlleleSpecies; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutationCondition; -import forestry.api.genetics.IMutationCustom; +import forestry.api.genetics.IMutation; -public abstract class Mutation implements IMutationCustom { +public abstract class Mutation implements IMutation { - private final int chance; + protected final int chance; boolean isSecret = false; protected final IAllele species0; @@ -37,8 +29,12 @@ public abstract class Mutation implements IMutationCustom { private final IAllele[] template; - private final List mutationConditions = new ArrayList(); - private final List specialConditions = new ArrayList(); + protected float minTemperature = 0.0f; + protected float maxTemperature = 2.0f; + protected float minRainfall = 0.0f; + protected float maxRainfall = 2.0f; + + protected final ArrayList specialConditions = new ArrayList(); public Mutation(IAlleleSpecies species0, IAlleleSpecies species1, IAllele[] template, int chance) { this.species0 = species0; @@ -47,84 +43,54 @@ public abstract class Mutation implements IMutationCustom { this.chance = chance; } + + public Mutation setSpecialConditions(Collection conditions) { + specialConditions.addAll(conditions); + return this; + } + public Collection getSpecialConditions() { return specialConditions; } - @Override public Mutation setIsSecret() { isSecret = true; return this; } - @Override - public Mutation restrictTemperature(EnumTemperature temperature) { - return restrictTemperature(temperature, temperature); - } - - @Override - public Mutation restrictTemperature(EnumTemperature minTemperature, EnumTemperature maxTemperature) { - IMutationCondition mutationCondition = new MutationConditionTemperature(minTemperature, maxTemperature); - return addMutationCondition(mutationCondition); - } - - @Override - public Mutation restrictHumidity(EnumHumidity humidity) { - return restrictHumidity(humidity, humidity); - } - - @Override - public Mutation restrictHumidity(EnumHumidity minHumidity, EnumHumidity maxHumidity) { - IMutationCondition mutationCondition = new MutationConditionHumidity(minHumidity, maxHumidity); - return addMutationCondition(mutationCondition); - } - - @Override - public Mutation restrictBiomeType(BiomeDictionary.Type... types) { - IMutationCondition mutationCondition = new MutationConditionBiome(types); - return addMutationCondition(mutationCondition); - } - - @Override - public Mutation requireDay() { - IMutationCondition mutationCondition = new MutationConditionDaytime(true); - return addMutationCondition(mutationCondition); - } - - @Override - public Mutation requireNight() { - IMutationCondition mutationCondition = new MutationConditionDaytime(false); - return addMutationCondition(mutationCondition); - } - - @Override - public Mutation restrictDateRange(int startMonth, int startDay, int endMonth, int endDay) { - IMutationCondition mutationCondition = new MutationConditionTimeLimited(startMonth, startDay, endMonth, endDay); - return addMutationCondition(mutationCondition); - } - - @Override - public Mutation requireResource(Block block, int meta) { - IMutationCondition mutationCondition = new MutationConditionRequiresResource(block, meta); - return addMutationCondition(mutationCondition); - } - - @Override - public Mutation addMutationCondition(IMutationCondition mutationCondition) { - mutationConditions.add(mutationCondition); - specialConditions.add(mutationCondition.getDescription()); + public Mutation setTemperature(float minTemperature, float maxTemperature) { + this.minTemperature = minTemperature; + this.maxTemperature = maxTemperature; + + EnumTemperature temp1 = EnumTemperature.getFromValue(minTemperature); + EnumTemperature temp2 = EnumTemperature.getFromValue(maxTemperature); + if (temp1 != temp2) { + specialConditions.add(String.format("Temperature between %s and %s.", temp1, temp2)); + } else { + specialConditions.add(String.format("Temperature %s required.", temp1)); + } return this; } - protected float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - float mutationChance = chance; - for (IMutationCondition mutationCondition : mutationConditions) { - mutationChance *= mutationCondition.getChance(world, x, y, z, allele0, allele1, genome0, genome1); - if (mutationChance == 0) { - return 0; - } + public Mutation setRainfall(float minRainfall, float maxRainfall) { + this.minRainfall = minRainfall; + this.maxRainfall = maxRainfall; + + EnumHumidity temp1 = EnumHumidity.getFromValue(minRainfall); + EnumHumidity temp2 = EnumHumidity.getFromValue(maxRainfall); + + if (temp1 != temp2) { + specialConditions.add(String.format("Humidity between %s and %s.", temp1, temp2)); + } else { + specialConditions.add(String.format("Humidity %s required.", temp1)); } - return mutationChance; + return this; + } + + public Mutation setTemperatureRainfall(float minTemperature, float maxTemperature, float minRainfall, float maxRainfall) { + setTemperature(minTemperature, maxTemperature); + setRainfall(minRainfall, maxRainfall); + return this; } @Override diff --git a/src/main/java/forestry/core/genetics/MutationConditionBiome.java b/src/main/java/forestry/core/genetics/MutationConditionBiome.java deleted file mode 100644 index 3fc2a0f44..000000000 --- a/src/main/java/forestry/core/genetics/MutationConditionBiome.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.core.genetics; - -import java.util.Arrays; -import java.util.List; - -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; - -import net.minecraftforge.common.BiomeDictionary; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutationCondition; - -public class MutationConditionBiome implements IMutationCondition { - - private final List validBiomeTypes; - - public MutationConditionBiome(BiomeDictionary.Type... types) { - this.validBiomeTypes = Arrays.asList(types); - } - - @Override - public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - BiomeGenBase biome = world.getBiomeGenForCoords(x, z); - for (BiomeDictionary.Type type : validBiomeTypes) { - if (BiomeDictionary.isBiomeOfType(biome, type)) { - return 1; - } - } - - return 0; - } - - @Override - public String getDescription() { - if (validBiomeTypes.size() > 1) { - String biomeTypes = Arrays.toString(validBiomeTypes.toArray()); - return String.format("Is restricted to biomes like: %s", biomeTypes); - } else { - String biomeType = validBiomeTypes.get(0).toString(); - return String.format("Is restricted to %s-like biomes.", biomeType); - } - } -} diff --git a/src/main/java/forestry/core/genetics/MutationConditionDaytime.java b/src/main/java/forestry/core/genetics/MutationConditionDaytime.java deleted file mode 100644 index b1fb5ffe4..000000000 --- a/src/main/java/forestry/core/genetics/MutationConditionDaytime.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.core.genetics; - -import net.minecraft.world.World; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutationCondition; - -public class MutationConditionDaytime implements IMutationCondition { - - private final boolean daytime; - - public MutationConditionDaytime(boolean daytime) { - this.daytime = daytime; - } - - @Override - public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - if (world.isDaytime() == daytime) { - return 1; - } - return 0; - } - - @Override - public String getDescription() { - if (daytime) { - return "Can only occur during the day."; - } else { - return "Can only occur during the night."; - } - } -} diff --git a/src/main/java/forestry/core/genetics/MutationConditionHumidity.java b/src/main/java/forestry/core/genetics/MutationConditionHumidity.java deleted file mode 100644 index 778545576..000000000 --- a/src/main/java/forestry/core/genetics/MutationConditionHumidity.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.core.genetics; - -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; - -import forestry.api.core.EnumHumidity; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutationCondition; - -public class MutationConditionHumidity implements IMutationCondition { - private final EnumHumidity minHumidity; - private final EnumHumidity maxHumidity; - - public MutationConditionHumidity(EnumHumidity minHumidity, EnumHumidity maxHumidity) { - this.minHumidity = minHumidity; - this.maxHumidity = maxHumidity; - } - - @Override - public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - BiomeGenBase biome = world.getWorldChunkManager().getBiomeGenAt(x, z); - EnumHumidity biomeHumidity = EnumHumidity.getFromValue(biome.rainfall); - - if (biomeHumidity.ordinal() < minHumidity.ordinal() || biomeHumidity.ordinal() > maxHumidity.ordinal()) { - return 0; - } - return 1; - } - - @Override - public String getDescription() { - if (minHumidity != maxHumidity) { - return String.format("Humidity between %s and %s.", minHumidity, maxHumidity); - } else { - return String.format("Humidity %s required.", minHumidity); - } - } -} diff --git a/src/main/java/forestry/core/genetics/MutationConditionRequiresResource.java b/src/main/java/forestry/core/genetics/MutationConditionRequiresResource.java deleted file mode 100644 index fd367a870..000000000 --- a/src/main/java/forestry/core/genetics/MutationConditionRequiresResource.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.core.genetics; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutationCondition; -import forestry.core.utils.StackUtils; - -public class MutationConditionRequiresResource implements IMutationCondition { - - private final ItemStack blockRequired; - - public MutationConditionRequiresResource(Block block, int meta) { - blockRequired = new ItemStack(block, meta); - } - - @Override - public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - Block block = world.getBlock(x, y - 1, z); - int meta = world.getBlockMetadata(x, y - 1, z); - return StackUtils.equals(block, meta, blockRequired) ? 1 : 0; - } - - @Override - public String getDescription() { - return String.format("Must be placed on:%s", blockRequired.getDisplayName()); - } -} diff --git a/src/main/java/forestry/core/genetics/MutationConditionTemperature.java b/src/main/java/forestry/core/genetics/MutationConditionTemperature.java deleted file mode 100644 index b819800ba..000000000 --- a/src/main/java/forestry/core/genetics/MutationConditionTemperature.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.core.genetics; - -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; - -import forestry.api.core.EnumTemperature; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutationCondition; - -public class MutationConditionTemperature implements IMutationCondition { - - private final EnumTemperature minTemperature; - private final EnumTemperature maxTemperature; - - public MutationConditionTemperature(EnumTemperature minTemperature, EnumTemperature maxTemperature) { - this.minTemperature = minTemperature; - this.maxTemperature = maxTemperature; - } - - @Override - public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - BiomeGenBase biome = world.getWorldChunkManager().getBiomeGenAt(x, z); - EnumTemperature biomeTemperature = EnumTemperature.getFromBiome(biome); - - if (biomeTemperature.ordinal() < minTemperature.ordinal() || biomeTemperature.ordinal() > maxTemperature.ordinal()) { - return 0; - } - return 1; - } - - @Override - public String getDescription() { - if (minTemperature != maxTemperature) { - return String.format("Temperature between %s and %s.", minTemperature, maxTemperature); - } else { - return String.format("Temperature %s required.", minTemperature); - } - } -} diff --git a/src/main/java/forestry/core/genetics/MutationConditionTimeLimited.java b/src/main/java/forestry/core/genetics/MutationConditionTimeLimited.java deleted file mode 100644 index 09705d417..000000000 --- a/src/main/java/forestry/core/genetics/MutationConditionTimeLimited.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.core.genetics; - -import java.util.Calendar; - -import net.minecraft.world.World; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutationCondition; -import forestry.core.utils.DayMonth; - -public class MutationConditionTimeLimited implements IMutationCondition { - - private final DayMonth start; - private final DayMonth end; - - public MutationConditionTimeLimited(int startMonth, int startDay, int endMonth, int endDay) { - this.start = new DayMonth(startDay, startMonth); - this.end = new DayMonth(endDay, endMonth); - } - - @Override - public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - DayMonth now = new DayMonth(); - - // If we are equal to start day, return 1. - if (Calendar.getInstance().get(Calendar.DAY_OF_MONTH) == start.day && Calendar.getInstance().get(Calendar.MONTH) + 1 == start.month) { - return 1; - } - - // Equal to end date, return 1 - if (Calendar.getInstance().get(Calendar.DAY_OF_MONTH) == end.day && Calendar.getInstance().get(Calendar.MONTH) + 1 == end.month) { - return 1; - } - - // Still a chance we are in between - if (now.between(start, end)) { - return 1; - } - - // Now we finally failed. - return 0; - } - - @Override - public String getDescription() { - return "Between " + start + " and " + end + '.'; - } -} diff --git a/src/main/java/forestry/core/genetics/alleles/AlleleForestry.java b/src/main/java/forestry/core/genetics/alleles/AlleleForestry.java deleted file mode 100644 index 89a4eae16..000000000 --- a/src/main/java/forestry/core/genetics/alleles/AlleleForestry.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.core.genetics.alleles; - -import org.apache.commons.lang3.text.WordUtils; - -import forestry.core.utils.StringUtil; - -public class AlleleForestry extends Allele { - public AlleleForestry(String prefix, String name, boolean isDominant) { - this(prefix, name, isDominant, false); - } - - protected AlleleForestry(String prefix, String name, boolean isDominant, boolean skipRegister) { - super("forestry." + prefix + WordUtils.capitalize(name), isDominant, skipRegister); - setName(prefix, name); - } - - private AlleleForestry setName(String customPrefix, String name) { - String customName = "gui." + customPrefix + '.' + name; - if (StringUtil.canTranslate(customName)) { - this.name = customName; - } else { - this.name = "gui." + name; - } - return this; - } -} diff --git a/src/main/java/forestry/core/genetics/alleles/AlleleHelper.java b/src/main/java/forestry/core/genetics/alleles/AlleleHelper.java deleted file mode 100644 index 92f248e48..000000000 --- a/src/main/java/forestry/core/genetics/alleles/AlleleHelper.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.core.genetics.alleles; - -import java.util.EnumMap; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - -import forestry.api.genetics.AlleleManager; -import forestry.api.genetics.EnumTolerance; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IAlleleBoolean; -import forestry.api.genetics.IAlleleInteger; -import forestry.api.genetics.IChromosomeType; -import forestry.apiculture.flowers.FlowerProvider; -import forestry.apiculture.genetics.AlleleFlowers; -import forestry.core.vect.IVect; -import forestry.plugins.PluginManager; - -public class AlleleHelper implements IAlleleHelper { - - private final Map> alleleMaps = new HashMap>(); - - public void init() { - if (PluginManager.Module.APICULTURE.isEnabled()) { - createAlleles(EnumAllele.Fertility.class); - createAlleles(EnumAllele.Flowering.class); - } - - if (PluginManager.Module.APICULTURE.isEnabled() || PluginManager.Module.ARBORICULTURE.isEnabled()) { - createAlleles(EnumAllele.Territory.class); - - AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.territoryDefault", get(EnumAllele.Territory.AVERAGE)); - } - - if (PluginManager.Module.APICULTURE.isEnabled() || PluginManager.Module.LEPIDOPTEROLOGY.isEnabled()) { - createAlleles(EnumAllele.Speed.class); - createAlleles(EnumAllele.Lifespan.class); - createAlleles(EnumAllele.Tolerance.class); - createAlleles(EnumAllele.Flowers.class); - - AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.speedNorm", get(EnumAllele.Speed.NORMAL)); - } - - if (PluginManager.Module.ARBORICULTURE.isEnabled()) { - createAlleles(EnumAllele.Height.class); - createAlleles(EnumAllele.Saplings.class); - createAlleles(EnumAllele.Yield.class); - createAlleles(EnumAllele.Fireproof.class); - createAlleles(EnumAllele.Maturation.class); - createAlleles(EnumAllele.Sappiness.class); - - AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.heightMax10", get(EnumAllele.Height.AVERAGE)); - AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.saplingsDefault", get(EnumAllele.Saplings.AVERAGE)); - AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.saplingsDouble", get(EnumAllele.Saplings.HIGH)); - AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.saplingsTriple", get(EnumAllele.Saplings.HIGHER)); - AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("forestry.yieldDefault", get(EnumAllele.Yield.AVERAGE)); - } - - if (PluginManager.Module.LEPIDOPTEROLOGY.isEnabled()) { - createAlleles(EnumAllele.Size.class); - } - - Map integers = new HashMap(); - for (int i = 1; i <= 10; i++) { - IAlleleInteger alleleInteger = new AlleleInteger("i", i + "d", i, true); - integers.put(i, alleleInteger); - } - alleleMaps.put(Integer.class, integers); - - Map booleans = new HashMap(); - booleans.put(true, new AlleleBoolean("bool", true, false)); - booleans.put(false, new AlleleBoolean("bool", false, false)); - alleleMaps.put(Boolean.class, booleans); - } - - private & IChromosomeType> IAllele get(Object value) { - Class valueClass = value.getClass(); - Map map = alleleMaps.get(valueClass); - if (map == null) { - throw new IllegalArgumentException("There is no IAllele type for: " + valueClass + ' ' + value); - } - IAllele allele = map.get(value); - if (allele == null) { - throw new IllegalArgumentException("There is no IAllele for: " + valueClass + ' ' + value); - } - - return allele; - } - - @Override - public & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, IAllele allele) { - if (allele == null || !chromosomeType.getAlleleClass().isInstance(allele)) { - throw new IllegalArgumentException("Allele is the wrong type. Expected: " + chromosomeType + " Got: " + allele); - } - alleles[chromosomeType.ordinal()] = allele; - } - - @Override - public & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, IAlleleValue value) { - set(alleles, chromosomeType, get(value)); - } - - @Override - public & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, boolean value) { - set(alleles, chromosomeType, get(value)); - } - - @Override - public & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, int value) { - set(alleles, chromosomeType, get(value)); - } - - private & IAlleleValue, V> void createAlleles(Class enumClass) { - String category = enumClass.getSimpleName().toLowerCase(Locale.ENGLISH); - EnumMap map = new EnumMap(enumClass); - for (K enumValue : enumClass.getEnumConstants()) { - IAllele allele = createAllele(category, enumValue); - map.put(enumValue, allele); - } - alleleMaps.put(enumClass, map); - } - - private static , V> IAllele createAllele(String category, K enumValue) { - V value = enumValue.getValue(); - boolean isDominant = enumValue.isDominant(); - String name = enumValue.toString().toLowerCase(Locale.ENGLISH); - - Class valueClass = value.getClass(); - if (Float.class.isAssignableFrom(valueClass)) { - return new AlleleFloat(category, name, (Float) value, isDominant); - } else if (Integer.class.isAssignableFrom(valueClass)) { - return new AlleleInteger(category, name, (Integer) value, isDominant); - } else if (IVect.class.isAssignableFrom(valueClass)) { - int[] area = ((IVect) value).toArray(); - return new AlleleArea(category, name, area, isDominant); - } else if (Boolean.class.isAssignableFrom(valueClass)) { - return new AlleleBoolean(category, (Boolean) value, isDominant); - } else if (EnumTolerance.class.isAssignableFrom(valueClass)) { - return new AlleleTolerance(category, name, (EnumTolerance) value, isDominant); - } else if (FlowerProvider.class.isAssignableFrom(valueClass)) { - return new AlleleFlowers(category, name, (FlowerProvider) value, isDominant); - } - throw new RuntimeException("could not create allele for category: " + category + " and value " + valueClass); - } -} diff --git a/src/main/java/forestry/core/genetics/alleles/EnumAllele.java b/src/main/java/forestry/core/genetics/alleles/EnumAllele.java deleted file mode 100644 index 6297e3aa7..000000000 --- a/src/main/java/forestry/core/genetics/alleles/EnumAllele.java +++ /dev/null @@ -1,456 +0,0 @@ -package forestry.core.genetics.alleles; - -import java.util.Locale; - -import forestry.api.apiculture.FlowerManager; -import forestry.api.genetics.EnumTolerance; -import forestry.apiculture.flowers.FlowerProvider; -import forestry.core.vect.IVect; -import forestry.core.vect.Vect; - -public class EnumAllele { - public enum Fertility implements IAlleleValue { - LOW(1, true), - NORMAL(2, true), - HIGH(3), - MAXIMUM(4); - - private final Integer value; - private final boolean dominant; - - Fertility(Integer value) { - this(value, false); - } - - Fertility(Integer value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public Integer getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Fireproof implements IAlleleValue { - TRUE(true), - FALSE(false); - - private final boolean value; - private final boolean dominant; - - Fireproof(boolean value) { - this(value, false); - } - - Fireproof(boolean value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public boolean isDominant() { - return dominant; - } - - @Override - public Boolean getValue() { - return value; - } - } - - public enum Flowering implements IAlleleValue { - SLOWEST(5, true), - SLOWER(10), - SLOW(15), - AVERAGE(20), - FAST(25), - FASTER(30), - FASTEST(35); - - private final Integer value; - private final boolean dominant; - - Flowering(Integer value) { - this(value, false); - } - - Flowering(Integer value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public Integer getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Flowers implements IAlleleValue { - VANILLA(FlowerManager.FlowerTypeVanilla, true), - NETHER(FlowerManager.FlowerTypeNether), - CACTI(FlowerManager.FlowerTypeCacti), - MUSHROOMS(FlowerManager.FlowerTypeMushrooms), - END(FlowerManager.FlowerTypeEnd), - JUNGLE(FlowerManager.FlowerTypeJungle), - SNOW(FlowerManager.FlowerTypeSnow, true), - WHEAT(FlowerManager.FlowerTypeWheat, true), - GOURD(FlowerManager.FlowerTypeGourd, true); - - private final FlowerProvider value; - private final boolean dominant; - - Flowers(String flowerType) { - this(flowerType, false); - } - - Flowers(String flowerType, boolean dominant) { - String lowercaseName = toString().toLowerCase(Locale.ENGLISH); - this.value = new FlowerProvider(flowerType, "flowers." + lowercaseName); - this.dominant = dominant; - } - - @Override - public FlowerProvider getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Height implements IAlleleValue { - SMALLEST(0.25f), - SMALLER(0.5f), - SMALL(0.75f), - AVERAGE(1.0f), - LARGE(1.25f), - LARGER(1.5f), - LARGEST(1.75f), - GIGANTIC(2.0f); - - private final float value; - private final boolean dominant; - - Height(float value) { - this(value, false); - } - - Height(float value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public Float getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Lifespan implements IAlleleValue { - SHORTEST(10), - SHORTER(20, true), - SHORT(30, true), - SHORTENED(35, true), - NORMAL(40), - ELONGATED(45, true), - LONG(50), - LONGER(60), - LONGEST(70); - - private final Integer value; - private final boolean dominant; - - Lifespan(Integer value) { - this(value, false); - } - - Lifespan(Integer value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public Integer getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Maturation implements IAlleleValue { - SLOWEST(10, true), - SLOWER(7), - SLOW(5, true), - AVERAGE(4), - FAST(3), - FASTER(2), - FASTEST(1); - - private final Integer value; - private final boolean dominant; - - Maturation(Integer value) { - this(value, false); - } - - Maturation(Integer value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public Integer getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Saplings implements IAlleleValue { - LOWEST(0.01f, true), - LOWER(0.025f, true), - LOW(0.035f, true), - AVERAGE(0.05f, true), - HIGH(0.1f, true), - HIGHER(0.2f, true), - HIGHEST(0.3f, true); - - private final float value; - private final boolean dominant; - - Saplings(float value) { - this(value, false); - } - - Saplings(float value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public Float getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Sappiness implements IAlleleValue { - LOWEST(0.1f, true), - LOWER(0.2f, true), - LOW(0.3f, true), - AVERAGE(0.4f, true), - HIGH(0.6f, true), - HIGHER(0.8f), - HIGHEST(1.0f); - - private final Float value; - private final boolean dominant; - - Sappiness(Float value) { - this(value, false); - } - - Sappiness(Float value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public Float getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Size implements IAlleleValue { - SMALLEST(0.3f), - SMALLER(0.4f), - SMALL(0.5f), - AVERAGE(0.6f), - LARGE(0.75f), - LARGER(0.9f), - LARGEST(1.0f); - - private final float value; - private final boolean dominant; - - Size(float value) { - this(value, false); - } - - Size(float value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public Float getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Speed implements IAlleleValue { - SLOWEST(0.3f, true), - SLOWER(0.6f, true), - SLOW(0.8f, true), - NORMAL(1.0f), - FAST(1.2f, true), - FASTER(1.4f), - FASTEST(1.7f); - - private final float value; - private final boolean dominant; - - Speed(float value) { - this(value, false); - } - - Speed(float value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public Float getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Territory implements IAlleleValue { - AVERAGE(9, 6, 9), - LARGE(11, 8, 11), - LARGER(13, 12, 13), - LARGEST(15, 13, 15); - - private final IVect area; - private final boolean dominant; - - Territory(int x, int y, int z) { - this(x, y, z, false); - } - - Territory(int x, int y, int z, boolean dominant) { - this.area = new Vect(x, y, z); - this.dominant = dominant; - } - - @Override - public IVect getValue() { - return area; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Tolerance implements IAlleleValue { - NONE, - BOTH_1(true), BOTH_2, BOTH_3, BOTH_4, BOTH_5, - UP_1(true), UP_2, UP_3, UP_4, UP_5, - DOWN_1(true), DOWN_2, DOWN_3, DOWN_4, DOWN_5; - - private final EnumTolerance value; - private final boolean dominant; - - Tolerance() { - this(false); - } - - Tolerance(boolean dominant) { - this.value = EnumTolerance.values()[ordinal()]; - this.dominant = dominant; - } - - @Override - public String toString() { - return super.toString().replace("_", ""); - } - - @Override - public EnumTolerance getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } - - public enum Yield implements IAlleleValue { - LOWEST(0.025f, true), - LOWER(0.05f, true), - LOW(0.1f, true), - AVERAGE(0.2f, true), - HIGH(0.3f), - HIGHER(0.35f), - HIGHEST(0.4f); - - private final float value; - private final boolean dominant; - - Yield(float value) { - this(value, false); - } - - Yield(float value, boolean dominant) { - this.value = value; - this.dominant = dominant; - } - - @Override - public Float getValue() { - return value; - } - - @Override - public boolean isDominant() { - return dominant; - } - } -} diff --git a/src/main/java/forestry/core/genetics/alleles/IAlleleHelper.java b/src/main/java/forestry/core/genetics/alleles/IAlleleHelper.java deleted file mode 100644 index a1047e04b..000000000 --- a/src/main/java/forestry/core/genetics/alleles/IAlleleHelper.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.core.genetics.alleles; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IChromosomeType; - -public interface IAlleleHelper { - - & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, IAllele allele); - - & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, IAlleleValue value); - - & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, boolean value); - - & IChromosomeType> void set(IAllele[] alleles, T chromosomeType, int value); - -} diff --git a/src/main/java/forestry/core/genetics/alleles/IAlleleValue.java b/src/main/java/forestry/core/genetics/alleles/IAlleleValue.java deleted file mode 100644 index 119b08be4..000000000 --- a/src/main/java/forestry/core/genetics/alleles/IAlleleValue.java +++ /dev/null @@ -1,7 +0,0 @@ -package forestry.core.genetics.alleles; - -public interface IAlleleValue { - boolean isDominant(); - - V getValue(); -} diff --git a/src/main/java/forestry/core/utils/DayMonth.java b/src/main/java/forestry/core/utils/DayMonth.java deleted file mode 100644 index 24137806e..000000000 --- a/src/main/java/forestry/core/utils/DayMonth.java +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011-2014 SirSengir. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser Public License v3 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl-3.0.txt - * - * Various Contributors including, but not limited to: - * SirSengir (original work), CovertJaguar, Player, Binnie, MysteriousAges - ******************************************************************************/ -package forestry.core.utils; - -import java.text.DateFormatSymbols; -import java.util.Calendar; - -/** - * Fed up with Date and Calendar and their shenanigans - */ -public class DayMonth { - - public final int day; - public final int month; - - public DayMonth() { - this.day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH); - this.month = Calendar.getInstance().get(Calendar.MONTH) + 1; - } - - public DayMonth(int day, int month) { - this.day = day; - this.month = month; - } - - public boolean between(DayMonth start, DayMonth end) { - if (equals(start) || equals(end)) { - return true; - } - if (start.month > end.month) { - return after(start) || before(end); - } - return after(start) && before(end); - } - - public boolean before(DayMonth other) { - - if (other.month > this.month) { - return true; - } - - if (other.month < this.month) { - return false; - } - - return this.day < other.day; - } - - public boolean after(DayMonth other) { - - if (other.month < this.month) { - return true; - } - - if (other.month > this.month) { - return false; - } - - return this.day > other.day; - } - - @Override - public int hashCode() { - int hash = 7; - hash = 89 * hash + this.day; - hash = 89 * hash + this.month; - return hash; - } - - @Override - public boolean equals(Object obj) { - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final DayMonth other = (DayMonth) obj; - if (this.day != other.day) { - return false; - } - if (this.month != other.month) { - return false; - } - return true; - } - - @Override - public String toString() { - String monthName = new DateFormatSymbols().getMonths()[month - 1]; - return monthName + ' ' + day; - } - -} diff --git a/src/main/java/forestry/core/vect/IVect.java b/src/main/java/forestry/core/vect/IVect.java index 8524dcd01..e43053e04 100644 --- a/src/main/java/forestry/core/vect/IVect.java +++ b/src/main/java/forestry/core/vect/IVect.java @@ -27,6 +27,4 @@ public interface IVect { IVect add(int x, int y, int z); IVect add(ForgeDirection direction); - - int[] toArray(); } diff --git a/src/main/java/forestry/core/vect/MutableVect.java b/src/main/java/forestry/core/vect/MutableVect.java index 164e35b14..f68d16410 100644 --- a/src/main/java/forestry/core/vect/MutableVect.java +++ b/src/main/java/forestry/core/vect/MutableVect.java @@ -54,11 +54,6 @@ public class MutableVect implements IVect { return this; } - @Override - public int[] toArray() { - return new int[]{x, y, z}; - } - public boolean advancePositionInArea(Vect area) { // Increment z first until end reached if (z < area.z - 1) { diff --git a/src/main/java/forestry/core/vect/Vect.java b/src/main/java/forestry/core/vect/Vect.java index 878c22cb7..0841a8e35 100644 --- a/src/main/java/forestry/core/vect/Vect.java +++ b/src/main/java/forestry/core/vect/Vect.java @@ -76,11 +76,6 @@ public class Vect implements IVect { return add(direction.offsetX, direction.offsetY, direction.offsetZ); } - @Override - public int[] toArray() { - return new int[]{x, y, z}; - } - public Vect multiply(float factor) { return new Vect(Math.round(x * factor), Math.round(y * factor), Math.round(z * factor)); } diff --git a/src/main/java/forestry/lepidopterology/genetics/AlleleButterflySpecies.java b/src/main/java/forestry/lepidopterology/genetics/AlleleButterflySpecies.java index 1ce953463..2c5e19b05 100755 --- a/src/main/java/forestry/lepidopterology/genetics/AlleleButterflySpecies.java +++ b/src/main/java/forestry/lepidopterology/genetics/AlleleButterflySpecies.java @@ -34,7 +34,7 @@ import forestry.api.lepidopterology.EnumFlutterType; import forestry.api.lepidopterology.IAlleleButterflySpecies; import forestry.api.lepidopterology.IButterflyRoot; import forestry.core.config.Defaults; -import forestry.core.genetics.alleles.AlleleSpecies; +import forestry.core.genetics.AlleleSpecies; public class AlleleButterflySpecies extends AlleleSpecies implements IAlleleButterflySpecies { @@ -52,7 +52,7 @@ public class AlleleButterflySpecies extends AlleleSpecies implements IAlleleButt private final Map caterpillarLoot = new HashMap(); public AlleleButterflySpecies(String uid, boolean isDominant, String name, IClassification branch, String binomial, int serumColour) { - super("forestry." + uid, "Sengir", "for.description." + uid, isDominant, "butterflies.species." + branch.getParent().getUID().substring((branch.getParent().getLevel().name().toLowerCase(Locale.ENGLISH)).length() + 1) + "." + name, branch, binomial, true); + super(uid, isDominant, "butterflies.species." + branch.getParent().getUID().substring((branch.getParent().getLevel().name().toLowerCase(Locale.ENGLISH)).length() + 1) + "." + name, branch, binomial, true); this.root = (IButterflyRoot) AlleleManager.alleleRegistry.getSpeciesRoot("rootButterflies"); this.serumColour = serumColour; texture = "forestry:" + Defaults.TEXTURE_PATH_ENTITIES + "/butterflies/" + uid + ".png"; diff --git a/src/main/java/forestry/lepidopterology/genetics/AlleleEffectNone.java b/src/main/java/forestry/lepidopterology/genetics/AlleleEffectNone.java index f3a3b65d3..bb36239a3 100755 --- a/src/main/java/forestry/lepidopterology/genetics/AlleleEffectNone.java +++ b/src/main/java/forestry/lepidopterology/genetics/AlleleEffectNone.java @@ -13,12 +13,12 @@ package forestry.lepidopterology.genetics; import forestry.api.genetics.IEffectData; import forestry.api.lepidopterology.IAlleleButterflyEffect; import forestry.api.lepidopterology.IEntityButterfly; -import forestry.core.genetics.alleles.AlleleForestry; +import forestry.core.genetics.Allele; -public class AlleleEffectNone extends AlleleForestry implements IAlleleButterflyEffect { +public class AlleleEffectNone extends Allele implements IAlleleButterflyEffect { - public AlleleEffectNone(String prefix, String name, boolean isDominant) { - super(prefix, name, isDominant); + public AlleleEffectNone(String uid, boolean isDominant) { + super(uid, isDominant, false); } @Override diff --git a/src/main/java/forestry/lepidopterology/genetics/ButterflyGenome.java b/src/main/java/forestry/lepidopterology/genetics/ButterflyGenome.java index 962109daf..68a8de8c0 100755 --- a/src/main/java/forestry/lepidopterology/genetics/ButterflyGenome.java +++ b/src/main/java/forestry/lepidopterology/genetics/ButterflyGenome.java @@ -24,9 +24,9 @@ import forestry.api.lepidopterology.EnumButterflyChromosome; import forestry.api.lepidopterology.IAlleleButterflyEffect; import forestry.api.lepidopterology.IAlleleButterflySpecies; import forestry.api.lepidopterology.IButterflyGenome; +import forestry.core.genetics.AlleleBoolean; +import forestry.core.genetics.AlleleTolerance; import forestry.core.genetics.Genome; -import forestry.core.genetics.alleles.AlleleBoolean; -import forestry.core.genetics.alleles.AlleleTolerance; import forestry.plugins.PluginLepidopterology; public class ButterflyGenome extends Genome implements IButterflyGenome { diff --git a/src/main/java/forestry/lepidopterology/genetics/ButterflyTemplates.java b/src/main/java/forestry/lepidopterology/genetics/ButterflyTemplates.java index 237cd3186..71cbd9f4a 100755 --- a/src/main/java/forestry/lepidopterology/genetics/ButterflyTemplates.java +++ b/src/main/java/forestry/lepidopterology/genetics/ButterflyTemplates.java @@ -12,302 +12,294 @@ package forestry.lepidopterology.genetics; import forestry.api.genetics.IAllele; import forestry.api.lepidopterology.EnumButterflyChromosome; -import forestry.core.genetics.alleles.Allele; -import forestry.core.genetics.alleles.EnumAllele; +import forestry.core.genetics.Allele; public class ButterflyTemplates { public static IAllele[] getDefaultTemplate() { IAllele[] alleles = new IAllele[EnumButterflyChromosome.values().length]; - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiCabbageWhite); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.SMALL); - Allele.helper.set(alleles, EnumButterflyChromosome.SPEED, EnumAllele.Speed.SLOWEST); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTER); - Allele.helper.set(alleles, EnumButterflyChromosome.METABOLISM, 3); - Allele.helper.set(alleles, EnumButterflyChromosome.FERTILITY, 3); - Allele.helper.set(alleles, EnumButterflyChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.NONE); - Allele.helper.set(alleles, EnumButterflyChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.NONE); - Allele.helper.set(alleles, EnumButterflyChromosome.NOCTURNAL, false); - Allele.helper.set(alleles, EnumButterflyChromosome.TOLERANT_FLYER, false); - Allele.helper.set(alleles, EnumButterflyChromosome.FIRE_RESIST, false); - Allele.helper.set(alleles, EnumButterflyChromosome.FLOWER_PROVIDER, EnumAllele.Flowers.VANILLA); - Allele.helper.set(alleles, EnumButterflyChromosome.EFFECT, Allele.butterflyNone); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiCabbageWhite; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeSmall; + alleles[EnumButterflyChromosome.SPEED.ordinal()] = Allele.speedSlowest; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanShorter; + alleles[EnumButterflyChromosome.METABOLISM.ordinal()] = Allele.int3; + alleles[EnumButterflyChromosome.FERTILITY.ordinal()] = Allele.int3; + alleles[EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceNone; + alleles[EnumButterflyChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceNone; + alleles[EnumButterflyChromosome.NOCTURNAL.ordinal()] = Allele.boolFalse; + alleles[EnumButterflyChromosome.TOLERANT_FLYER.ordinal()] = Allele.boolFalse; + alleles[EnumButterflyChromosome.FIRE_RESIST.ordinal()] = Allele.boolFalse; + alleles[EnumButterflyChromosome.FLOWER_PROVIDER.ordinal()] = Allele.flowersVanilla; + alleles[EnumButterflyChromosome.EFFECT.ordinal()] = Allele.butterflyNone; return alleles; } public static IAllele[] getCabbageWhiteTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.AVERAGE); + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeAverage; return alleles; } public static IAllele[] getGlasswingTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiGlasswing); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.SMALLER); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT); - Allele.helper.set(alleles, EnumButterflyChromosome.FERTILITY, 5); - Allele.helper.set(alleles, EnumButterflyChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_1); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiGlasswing; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeSmaller; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanShort; + alleles[EnumButterflyChromosome.FERTILITY.ordinal()] = Allele.int5; + alleles[EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceDown1; return alleles; } public static IAllele[] getEmeraldPeacockTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiEmeraldPeacock); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.LARGE); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.NORMAL); - Allele.helper.set(alleles, EnumButterflyChromosome.FERTILITY, 5); - Allele.helper.set(alleles, EnumButterflyChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_1); - Allele.helper.set(alleles, EnumButterflyChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.DOWN_1); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiEmeraldPeacock; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeLarge; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanNormal; + alleles[EnumButterflyChromosome.FERTILITY.ordinal()] = Allele.int5; + alleles[EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceDown1; + alleles[EnumButterflyChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceDown1; return alleles; } public static IAllele[] getCitrusSwallowTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiCitrusSwallow); - Allele.helper.set(alleles, EnumButterflyChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.LARGE); - Allele.helper.set(alleles, EnumButterflyChromosome.FERTILITY, 10); - Allele.helper.set(alleles, EnumButterflyChromosome.METABOLISM, 8); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTER); - Allele.helper.set(alleles, EnumButterflyChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_1); - Allele.helper.set(alleles, EnumButterflyChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.DOWN_1); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiCitrusSwallow; + alleles[EnumButterflyChromosome.SPEED.ordinal()] = Allele.speedSlower; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeLarge; + alleles[EnumButterflyChromosome.FERTILITY.ordinal()] = Allele.int10; + alleles[EnumButterflyChromosome.METABOLISM.ordinal()] = Allele.int8; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanShorter; + alleles[EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceDown1; + alleles[EnumButterflyChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceDown1; return alleles; } public static IAllele[] getBlackSwallowTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiBlackSwallow); - Allele.helper.set(alleles, EnumButterflyChromosome.SPEED, EnumAllele.Speed.SLOW); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.LARGE); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTER); - Allele.helper.set(alleles, EnumButterflyChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_1); - Allele.helper.set(alleles, EnumButterflyChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.DOWN_1); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiBlackSwallow; + alleles[EnumButterflyChromosome.SPEED.ordinal()] = Allele.speedSlow; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeLarge; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanShorter; + alleles[EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceDown1; + alleles[EnumButterflyChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceDown1; return alleles; } public static IAllele[] getBrimstoneMothTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.mothBrimstone); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.mothBrimstone; return alleles; } public static IAllele[] getSpeckledWoodTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiSpeckledWood); - Allele.helper.set(alleles, EnumButterflyChromosome.FERTILITY, 2); - ; + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiSpeckledWood; + alleles[EnumButterflyChromosome.FERTILITY.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getMadeiranSpeckledWoodTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiMadeiranSpeckledWood); - Allele.helper.set(alleles, EnumButterflyChromosome.FERTILITY, 2); - ; + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiMadeiranSpeckledWood; + alleles[EnumButterflyChromosome.FERTILITY.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getCanarySpeckledWoodTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiCanarySpeckledWood); - Allele.helper.set(alleles, EnumButterflyChromosome.FERTILITY, 2); - ; + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiCanarySpeckledWood; + alleles[EnumButterflyChromosome.FERTILITY.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getMenelausBlueMorphoTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiMenelausBlueMorpho); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.LARGER); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTEST); - Allele.helper.set(alleles, EnumButterflyChromosome.FERTILITY, 2); - ; + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiMenelausBlueMorpho; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeLarger; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanShortest; + alleles[EnumButterflyChromosome.FERTILITY.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getRhetenorBlueMorphoTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiRhetenorBlueMorpho); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.LARGER); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTEST); - Allele.helper.set(alleles, EnumButterflyChromosome.FERTILITY, 2); - ; + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiRhetenorBlueMorpho; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeLarger; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanShortest; + alleles[EnumButterflyChromosome.FERTILITY.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getPeleidesBlueMorphoTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiPeleidesBlueMorpho); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.LARGER); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTEST); - Allele.helper.set(alleles, EnumButterflyChromosome.FERTILITY, 2); - ; + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiPeleidesBlueMorpho; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeLarger; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanShortest; + alleles[EnumButterflyChromosome.FERTILITY.ordinal()] = Allele.int2; return alleles; } public static IAllele[] getBrimstoneTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiBrimstone); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiBrimstone; return alleles; } public static IAllele[] getAuroraTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiAurora); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.SMALLER); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiAurora; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeSmaller; return alleles; } public static IAllele[] getPostillionTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiPostillion); - Allele.helper.set(alleles, EnumButterflyChromosome.SPEED, EnumAllele.Speed.SLOW); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiPostillion; + alleles[EnumButterflyChromosome.SPEED.ordinal()] = Allele.speedSlow; return alleles; } public static IAllele[] getPalaenoSulphurTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiPalaenoSulphur); - Allele.helper.set(alleles, EnumButterflyChromosome.SPEED, EnumAllele.Speed.SLOWER); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiPalaenoSulphur; + alleles[EnumButterflyChromosome.SPEED.ordinal()] = Allele.speedSlower; return alleles; } public static IAllele[] getResedaTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiReseda); - Allele.helper.set(alleles, EnumButterflyChromosome.SPEED, EnumAllele.Speed.SLOWER); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiReseda; + alleles[EnumButterflyChromosome.SPEED.ordinal()] = Allele.speedSlower; return alleles; } public static IAllele[] getSpringAzureTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiSpringAzure); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.SMALLER); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiSpringAzure; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeSmaller; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanShort; return alleles; } public static IAllele[] getGozoraAzureTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiGozoraAzure); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.SMALLER); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.SHORT); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiGozoraAzure; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeSmaller; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanShort; return alleles; } public static IAllele[] getCommaTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiComma); - Allele.helper.set(alleles, EnumButterflyChromosome.SPEED, EnumAllele.Speed.SLOWER); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiComma; + alleles[EnumButterflyChromosome.SPEED.ordinal()] = Allele.speedSlower; return alleles; } public static IAllele[] getBatesiaTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiBatesia); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.LARGE); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiBatesia; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeLarge; return alleles; } public static IAllele[] getBlueWingTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiBlueWing); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.AVERAGE); - Allele.helper.set(alleles, EnumButterflyChromosome.METABOLISM, 5); - ; + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiBlueWing; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeAverage; + alleles[EnumButterflyChromosome.METABOLISM.ordinal()] = Allele.int5; return alleles; } public static IAllele[] getBlueDukeTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiBlueDuke); - Allele.helper.set(alleles, EnumButterflyChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.BOTH_1); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiBlueDuke; + alleles[EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceBoth1; return alleles; } public static IAllele[] getGlassyTigerTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiGlassyTiger); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.AVERAGE); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiGlassyTiger; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeAverage; return alleles; } public static IAllele[] getPostmanTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiPostman); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiPostman; return alleles; } public static IAllele[] getSpicebushTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiSpicebush); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.AVERAGE); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiSpicebush; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeAverage; return alleles; } public static IAllele[] getMalachiteTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiMalachite); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.AVERAGE); - Allele.helper.set(alleles, EnumButterflyChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.DOWN_1); - Allele.helper.set(alleles, EnumButterflyChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.DOWN_1); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiMalachite; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeAverage; + alleles[EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceDown1; + alleles[EnumButterflyChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceDown1; return alleles; } public static IAllele[] getLeopardLacewingTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiLLacewing); - Allele.helper.set(alleles, EnumButterflyChromosome.TEMPERATURE_TOLERANCE, EnumAllele.Tolerance.UP_1); - Allele.helper.set(alleles, EnumButterflyChromosome.HUMIDITY_TOLERANCE, EnumAllele.Tolerance.UP_1); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiLLacewing; + alleles[EnumButterflyChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.toleranceUp1; + alleles[EnumButterflyChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.toleranceUp1; return alleles; } public static IAllele[] getMonarchTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiMonarch); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.AVERAGE); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiMonarch; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeAverage; return alleles; } public static IAllele[] getThoasSwallowTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiThoasSwallow); - Allele.helper.set(alleles, EnumButterflyChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.LARGE); - Allele.helper.set(alleles, EnumButterflyChromosome.LIFESPAN, EnumAllele.Lifespan.SHORTEST); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiThoasSwallow; + alleles[EnumButterflyChromosome.SPEED.ordinal()] = Allele.speedSlower; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeLarge; + alleles[EnumButterflyChromosome.LIFESPAN.ordinal()] = Allele.lifespanShortest; return alleles; } public static IAllele[] getZebraSwallowTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiZebraSwallow); - Allele.helper.set(alleles, EnumButterflyChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.AVERAGE); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiZebraSwallow; + alleles[EnumButterflyChromosome.SPEED.ordinal()] = Allele.speedSlower; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeAverage; return alleles; } public static IAllele[] getDianaFritTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.lepiDianaFrit); - Allele.helper.set(alleles, EnumButterflyChromosome.SPEED, EnumAllele.Speed.SLOWER); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.SMALLER); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.lepiDianaFrit; + alleles[EnumButterflyChromosome.SPEED.ordinal()] = Allele.speedSlower; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeSmaller; return alleles; } public static IAllele[] getLatticedHeathTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.mothLatticedHeath); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.SMALLEST); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.mothLatticedHeath; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeSmallest; return alleles; } public static IAllele[] getAtlasMothTemplate() { IAllele[] alleles = getDefaultTemplate(); - Allele.helper.set(alleles, EnumButterflyChromosome.SPECIES, Allele.mothAtlas); - Allele.helper.set(alleles, EnumButterflyChromosome.SIZE, EnumAllele.Size.LARGEST); + alleles[EnumButterflyChromosome.SPECIES.ordinal()] = Allele.mothAtlas; + alleles[EnumButterflyChromosome.SIZE.ordinal()] = Allele.sizeLargest; return alleles; } diff --git a/src/main/java/forestry/lepidopterology/gui/GuiFlutterlyzer.java b/src/main/java/forestry/lepidopterology/gui/GuiFlutterlyzer.java index 8f4339545..c91fa7952 100755 --- a/src/main/java/forestry/lepidopterology/gui/GuiFlutterlyzer.java +++ b/src/main/java/forestry/lepidopterology/gui/GuiFlutterlyzer.java @@ -23,8 +23,8 @@ import forestry.api.lepidopterology.EnumButterflyChromosome; import forestry.api.lepidopterology.IAlleleButterflySpecies; import forestry.api.lepidopterology.IButterfly; import forestry.core.config.ForestryItem; +import forestry.core.genetics.AlleleBoolean; import forestry.core.genetics.GenericRatings; -import forestry.core.genetics.alleles.AlleleBoolean; import forestry.core.gui.ContainerAlyzer; import forestry.core.gui.GuiAlyzer; import forestry.core.utils.StringUtil; diff --git a/src/main/java/forestry/pipes/GuiHandlerPipes.java b/src/main/java/forestry/pipes/GuiHandlerPipes.java index 62708248f..38e7ae844 100755 --- a/src/main/java/forestry/pipes/GuiHandlerPipes.java +++ b/src/main/java/forestry/pipes/GuiHandlerPipes.java @@ -13,10 +13,10 @@ import net.minecraft.world.World; import cpw.mods.fml.common.network.IGuiHandler; -import forestry.api.apiculture.BeeManager; import forestry.core.network.GuiId; import forestry.pipes.gui.ContainerPropolisPipe; import forestry.pipes.gui.GuiPropolisPipe; +import forestry.plugins.PluginApiculture; import buildcraft.transport.Pipe; import buildcraft.transport.TileGenericPipe; @@ -63,7 +63,7 @@ public class GuiHandlerPipes implements IGuiHandler { switch (GuiId.values()[id]) { case PropolisPipeGUI: - BeeManager.beeRoot.getBreedingTracker(world, player.getGameProfile()).synchToPlayer(player); + PluginApiculture.beeInterface.getBreedingTracker(world, player.getGameProfile()).synchToPlayer(player); return new ContainerPropolisPipe(player.inventory, (PipeItemsPropolis) getPipe(world, x, y, z)); default: return null; diff --git a/src/main/java/forestry/pipes/PipeItemsPropolis.java b/src/main/java/forestry/pipes/PipeItemsPropolis.java index 3767284d7..7615d1f11 100755 --- a/src/main/java/forestry/pipes/PipeItemsPropolis.java +++ b/src/main/java/forestry/pipes/PipeItemsPropolis.java @@ -20,12 +20,12 @@ import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IBee; import forestry.api.core.ForestryAPI; import forestry.api.genetics.IAllele; import forestry.core.network.GuiId; import forestry.core.proxy.Proxies; +import forestry.plugins.PluginApiculture; import buildcraft.api.core.IIconProvider; import buildcraft.transport.BlockGenericPipe; @@ -104,7 +104,7 @@ public class PipeItemsPropolis extends Pipe { IBee bee = null; if (type != EnumFilterType.ITEM) { - bee = BeeManager.beeRoot.getMember(event.item.getItemStack()); + bee = PluginApiculture.beeInterface.getMember(event.item.getItemStack()); } // Filtered outputs diff --git a/src/main/java/forestry/pipes/gui/GuiPropolisPipe.java b/src/main/java/forestry/pipes/gui/GuiPropolisPipe.java index 9d7095733..33c806c7d 100755 --- a/src/main/java/forestry/pipes/gui/GuiPropolisPipe.java +++ b/src/main/java/forestry/pipes/gui/GuiPropolisPipe.java @@ -19,7 +19,6 @@ import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; -import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IApiaristTracker; import forestry.api.genetics.AlleleManager; @@ -38,6 +37,7 @@ import forestry.core.utils.StringUtil; import forestry.pipes.EnumFilterType; import forestry.pipes.PipeItemsPropolis; import forestry.pipes.PipeLogicPropolis; +import forestry.plugins.PluginApiculture; /** * GuiScreen for propolis pipes. @@ -233,7 +233,7 @@ public class GuiPropolisPipe extends GuiForestry(), new ArrayList()}; - BeeManager.beeFactory = new BeeFactory(); - BeeManager.beeMutationFactory = new BeeMutationFactory(); - BeeManager.jubilanceFactory = new JubilanceFactory(); - // Init bee interface - BeeManager.beeRoot = new BeeHelper(); - AlleleManager.alleleRegistry.registerSpeciesRoot(BeeManager.beeRoot); + AlleleManager.alleleRegistry.registerSpeciesRoot(PluginApiculture.beeInterface = new BeeHelper()); // Modes - BeeManager.beeRoot.registerBeekeepingMode(BeekeepingMode.easy); - BeeManager.beeRoot.registerBeekeepingMode(BeekeepingMode.normal); - BeeManager.beeRoot.registerBeekeepingMode(BeekeepingMode.hard); - BeeManager.beeRoot.registerBeekeepingMode(BeekeepingMode.hardcore); - BeeManager.beeRoot.registerBeekeepingMode(BeekeepingMode.insane); + PluginApiculture.beeInterface.registerBeekeepingMode(BeekeepingMode.easy); + PluginApiculture.beeInterface.registerBeekeepingMode(BeekeepingMode.normal); + PluginApiculture.beeInterface.registerBeekeepingMode(BeekeepingMode.hard); + PluginApiculture.beeInterface.registerBeekeepingMode(BeekeepingMode.hardcore); + PluginApiculture.beeInterface.registerBeekeepingMode(BeekeepingMode.insane); } @Override @@ -785,26 +784,37 @@ public class PluginApiculture extends ForestryPlugin { apidae.addMemberGroup(beeBranch.getBranch()); } + // / BEES // FLOWER PROVIDERS 1500 - 1599 + Allele.flowersVanilla = new AlleleFlowers("flowersVanilla", new FlowerProvider(FlowerManager.FlowerTypeVanilla, "flowers.vanilla"), true); + Allele.flowersNether = new AlleleFlowers("flowersNether", new FlowerProvider(FlowerManager.FlowerTypeNether, "flowers.nether")); + Allele.flowersCacti = new AlleleFlowers("flowersCacti", new FlowerProvider(FlowerManager.FlowerTypeCacti, "flowers.cacti")); + Allele.flowersMushrooms = new AlleleFlowers("flowersMushrooms", new FlowerProvider(FlowerManager.FlowerTypeMushrooms, "flowers.mushroom")); + Allele.flowersEnd = new AlleleFlowers("flowersEnd", new FlowerProvider(FlowerManager.FlowerTypeEnd, "flowers.end")); + Allele.flowersJungle = new AlleleFlowers("flowersJungle", new FlowerProvider(FlowerManager.FlowerTypeJungle, "flowers.jungle")); + Allele.flowersSnow = new AlleleFlowers("flowersSnow", new FlowerProvider(FlowerManager.FlowerTypeSnow, "flowers.vanilla"), true); + Allele.flowersWheat = new AlleleFlowers("flowersWheat", new FlowerProvider(FlowerManager.FlowerTypeWheat, "flowers.wheat"), true); + Allele.flowersGourd = new AlleleFlowers("flowersGourd", new FlowerProvider(FlowerManager.FlowerTypeGourd, "flowers.gourd"), true); + // / BEES // EFFECTS 1800 - 1899 - Allele.effectNone = new AlleleEffectNone("none"); - Allele.effectAggressive = new AlleleEffectAggressive(); - Allele.effectHeroic = new AlleleEffectHeroic(); - Allele.effectBeatific = new AlleleEffectPotion("beatific", false, Potion.regeneration, 100, true); - Allele.effectMiasmic = new AlleleEffectMiasmic(); - Allele.effectMisanthrope = new AlleleEffectMisanthrope(); - Allele.effectGlacial = new AlleleEffectGlacial(); - Allele.effectRadioactive = new AlleleEffectRadioactive(); - Allele.effectCreeper = new AlleleEffectCreeper(); - Allele.effectIgnition = new AlleleEffectIgnition(); - Allele.effectExploration = new AlleleEffectExploration(); - Allele.effectFestiveEaster = new AlleleEffectNone("festiveEaster"); - Allele.effectSnowing = new AlleleEffectSnowing(); - Allele.effectDrunkard = new AlleleEffectPotion("drunkard", false, Potion.confusion, 100, false); - Allele.effectReanimation = new AlleleEffectResurrection("reanimation", AlleleEffectResurrection.getReanimationList()); - Allele.effectResurrection = new AlleleEffectResurrection("resurrection", AlleleEffectResurrection.getResurrectionList()); - Allele.effectRepulsion = new AlleleEffectRepulsion(); - Allele.effectFertile = new AlleleEffectFertile(); - Allele.effectMycophilic = new AlleleEffectFungification(); + Allele.effectNone = new AlleleEffectNone("effectNone"); + Allele.effectAggressive = new AlleleEffectAggressive("effectAggressive"); + Allele.effectHeroic = new AlleleEffectHeroic("effectHeroic"); + Allele.effectBeatific = new AlleleEffectPotion("effectBeatific", "beatific", false, Potion.regeneration, 100, true); + Allele.effectMiasmic = new AlleleEffectMiasmic("effectMiasmic"); + Allele.effectMisanthrope = new AlleleEffectMisanthrope("effectMisanthrope"); + Allele.effectGlacial = new AlleleEffectGlacial("effectGlacial"); + Allele.effectRadioactive = new AlleleEffectRadioactive("effectRadioactive"); + Allele.effectCreeper = new AlleleEffectCreeper("effectCreeper"); + Allele.effectIgnition = new AlleleEffectIgnition("effectIgnition"); + Allele.effectExploration = new AlleleEffectExploration("effectExploration"); + Allele.effectFestiveEaster = new AlleleEffectNone("effectFestiveEaster"); + Allele.effectSnowing = new AlleleEffectSnowing("effectSnowing"); + Allele.effectDrunkard = new AlleleEffectPotion("effectDrunkard", "drunkard", false, Potion.confusion, 100, false); + Allele.effectReanimation = new AlleleEffectResurrection("effectReanimation", "reanimation", AlleleEffectResurrection.getReanimationList()); + Allele.effectResurrection = new AlleleEffectResurrection("effectResurrection", "resurrection", AlleleEffectResurrection.getResurrectionList()); + Allele.effectRepulsion = new AlleleEffectRepulsion("effectRepulsion"); + Allele.effectFertile = new AlleleEffectFertile("effectFertile"); + Allele.effectMycophilic = new AlleleEffectFungification("effectMycophilic"); } public static float getSecondPrincessChance() { diff --git a/src/main/java/forestry/plugins/PluginArboriculture.java b/src/main/java/forestry/plugins/PluginArboriculture.java index e9f9577da..5e22d7225 100644 --- a/src/main/java/forestry/plugins/PluginArboriculture.java +++ b/src/main/java/forestry/plugins/PluginArboriculture.java @@ -37,8 +37,6 @@ import cpw.mods.fml.common.registry.VillagerRegistry; import forestry.api.arboriculture.EnumGermlingType; import forestry.api.arboriculture.ITree; import forestry.api.arboriculture.ITreeRoot; -import forestry.api.core.EnumHumidity; -import forestry.api.core.EnumTemperature; import forestry.api.core.Tabs; import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IAllele; @@ -141,8 +139,8 @@ import forestry.core.config.ForestryItem; import forestry.core.fluids.Fluids; import forestry.core.gadgets.BlockBase; import forestry.core.gadgets.MachineDefinition; +import forestry.core.genetics.Allele; import forestry.core.genetics.FruitFamily; -import forestry.core.genetics.alleles.Allele; import forestry.core.interfaces.IPacketHandler; import forestry.core.items.ItemForestryBlock; import forestry.core.items.ItemFruit.EnumFruit; @@ -319,17 +317,17 @@ public class PluginArboriculture extends ForestryPlugin { // Commands PluginCore.rootCommand.addChildCommand(new CommandTree()); - } - - @Override - public void doInit() { - super.doInit(); // Create alleles createAlleles(); createMutations(); registerTemplates(); registerErsatzGenomes(); + } + + @Override + public void doInit() { + super.doInit(); GameRegistry.registerTileEntity(TileSapling.class, "forestry.Sapling"); GameRegistry.registerTileEntity(TileLeaves.class, "forestry.Leaves"); @@ -1017,29 +1015,29 @@ public class PluginArboriculture extends ForestryPlugin { .addFruitFamily(prunes); // FRUITS - Allele.fruitNone = new AlleleFruit("none", new FruitProviderNone("none", null)); - Allele.fruitApple = new AlleleFruit("apple", new FruitProviderRandom("apple", pomes, new ItemStack(Items.apple), 1.0f).setColour(0xff2e2e).setOverlay("pomes")); - Allele.fruitCocoa = new AlleleFruit("cocoa", new FruitProviderPod("cocoa", jungle, EnumPodType.COCOA)); + Allele.fruitNone = new AlleleFruit("fruitNone", new FruitProviderNone("none", null)); + Allele.fruitApple = new AlleleFruit("fruitApple", new FruitProviderRandom("apple", pomes, new ItemStack(Items.apple), 1.0f).setColour(0xff2e2e).setOverlay("pomes")); + Allele.fruitCocoa = new AlleleFruit("fruitCocoa", new FruitProviderPod("cocoa", jungle, EnumPodType.COCOA)); // .setColours(0xecdca5, 0xc4d24a), true); - Allele.fruitChestnut = new AlleleFruit("chestnut", new FruitProviderRipening("chestnut", nux, EnumFruit.CHESTNUT.getStack(), 1.0f).setRipeningPeriod(6).setColours(0x7f333d, 0xc4d24a).setOverlay("nuts"), true); - Allele.fruitWalnut = new AlleleFruit("walnut", new FruitProviderRipening("walnut", nux, EnumFruit.WALNUT.getStack(), 1.0f).setRipeningPeriod(8).setColours(0xfba248, 0xc4d24a).setOverlay("nuts"), true); - Allele.fruitCherry = new AlleleFruit("cherry", new FruitProviderRipening("cherry", prunes, EnumFruit.CHERRY.getStack(), 1.0f).setColours(0xff2e2e, 0xc4d24a).setOverlay("berries"), true); - Allele.fruitDates = new AlleleFruit("dates", new FruitProviderPod("dates", jungle, EnumPodType.DATES, EnumFruit.DATES.getStack(4))); - Allele.fruitPapaya = new AlleleFruit("papaya", new FruitProviderPod("papaya", jungle, EnumPodType.PAPAYA, EnumFruit.PAPAYA.getStack())); + Allele.fruitChestnut = new AlleleFruit("fruitChestnut", new FruitProviderRipening("chestnut", nux, EnumFruit.CHESTNUT.getStack(), 1.0f).setRipeningPeriod(6).setColours(0x7f333d, 0xc4d24a).setOverlay("nuts"), true); + Allele.fruitWalnut = new AlleleFruit("fruitWalnut", new FruitProviderRipening("walnut", nux, EnumFruit.WALNUT.getStack(), 1.0f).setRipeningPeriod(8).setColours(0xfba248, 0xc4d24a).setOverlay("nuts"), true); + Allele.fruitCherry = new AlleleFruit("fruitCherry", new FruitProviderRipening("cherry", prunes, EnumFruit.CHERRY.getStack(), 1.0f).setColours(0xff2e2e, 0xc4d24a).setOverlay("berries"), true); + Allele.fruitDates = new AlleleFruit("fruitDates", new FruitProviderPod("dates", jungle, EnumPodType.DATES, EnumFruit.DATES.getStack(4))); + Allele.fruitPapaya = new AlleleFruit("fruitPapaya", new FruitProviderPod("papaya", jungle, EnumPodType.PAPAYA, EnumFruit.PAPAYA.getStack())); // Allele.fruitCoconut = new AlleleFruit("fruitCoconut", new // FruitProviderPod("coconut", jungle, EnumPodType.COCONUT, new // ItemStack[] { new ItemStack( // ForestryItem.fruits, 1, EnumFruit.COCONUT.ordinal()) })); - Allele.fruitLemon = new AlleleFruit("lemon", new FruitProviderRipening("lemon", prunes, EnumFruit.LEMON.getStack(), 1.0f).setColours(0xeeee00, 0x99ff00).setOverlay("citrus"), true); - Allele.fruitPlum = new AlleleFruit("plum", new FruitProviderRipening("plum", prunes, EnumFruit.PLUM.getStack(), 1.0f).setColours(0x663446, 0xeeff1a).setOverlay("plums"), true); + Allele.fruitLemon = new AlleleFruit("fruitLemon", new FruitProviderRipening("lemon", prunes, EnumFruit.LEMON.getStack(), 1.0f).setColours(0xeeee00, 0x99ff00).setOverlay("citrus"), true); + Allele.fruitPlum = new AlleleFruit("fruitPlum", new FruitProviderRipening("plum", prunes, EnumFruit.PLUM.getStack(), 1.0f).setColours(0x663446, 0xeeff1a).setOverlay("plums"), true); // / TREES // GROWTH PROVIDER 1350 - 1399 - Allele.growthLightlevel = new AlleleGrowth("lightlevel", new GrowthProvider()); - Allele.growthAcacia = new AlleleGrowth("acacia", new GrowthProvider()); - Allele.growthTropical = new AlleleGrowth("tropical", new GrowthProviderTropical()); + Allele.growthLightlevel = new AlleleGrowth("growthLightlevel", new GrowthProvider()); + Allele.growthAcacia = new AlleleGrowth("growthAcacia", new GrowthProvider()); + Allele.growthTropical = new AlleleGrowth("growthTropical", new GrowthProviderTropical()); // / TREES // EFFECTS 1900 - 1999 - Allele.leavesNone = new AlleleLeafEffectNone(); + Allele.leavesNone = new AlleleLeafEffectNone("leavesNone"); } @@ -1189,19 +1187,19 @@ public class PluginArboriculture extends ForestryPlugin { TreeTemplates.mahoeA = new TreeMutation(Allele.treeBalsa, Allele.treeDesertAcacia, TreeTemplates.getMahoeTemplate(), 5); - TreeTemplates.willowA = new TreeMutation(Allele.treeOak, Allele.treeBirch, TreeTemplates.getWillowTemplate(), 10) - .restrictTemperature(EnumTemperature.WARM, EnumTemperature.HOT) - .restrictHumidity(EnumHumidity.DAMP); - TreeTemplates.willowB = new TreeMutation(Allele.treeOak, Allele.treeLime, TreeTemplates.getWillowTemplate(), 10) - .restrictTemperature(EnumTemperature.WARM, EnumTemperature.HOT) - .restrictHumidity(EnumHumidity.DAMP); - TreeTemplates.willowC = new TreeMutation(Allele.treeLime, Allele.treeBirch, TreeTemplates.getWillowTemplate(), 10) - .restrictTemperature(EnumTemperature.WARM, EnumTemperature.HOT) - .restrictHumidity(EnumHumidity.DAMP); + TreeTemplates.willowA = new TreeMutation(Allele.treeOak, Allele.treeBirch, + TreeTemplates.getWillowTemplate(), 10).setTemperatureRainfall(0.7f, 1.5f, 0.9f, + 2.0f); + TreeTemplates.willowB = new TreeMutation(Allele.treeOak, Allele.treeLime, + TreeTemplates.getWillowTemplate(), 10).setTemperatureRainfall(0.7f, 1.5f, 0.9f, + 2.0f); + TreeTemplates.willowC = new TreeMutation(Allele.treeLime, Allele.treeBirch, + TreeTemplates.getWillowTemplate(), 10).setTemperatureRainfall(0.7f, 1.5f, 0.9f, + 2.0f); - TreeTemplates.sipiriA = new TreeMutation(Allele.treeKapok, Allele.treeMahogany, TreeTemplates.getSipiriTemplate(), 10) - .restrictTemperature(EnumTemperature.WARM, EnumTemperature.HOT) - .restrictHumidity(EnumHumidity.DAMP); + TreeTemplates.sipiriA = new TreeMutation(Allele.treeKapok, Allele.treeMahogany, + TreeTemplates.getSipiriTemplate(), 10).setTemperatureRainfall(0.9f, 1.9f, 0.9f, + 2.0f); TreeTemplates.poplarA = new TreeMutation(Allele.treeBirch, Allele.treeWillow, TreeTemplates.getPoplarTemplate(), 5); @@ -1209,6 +1207,7 @@ public class PluginArboriculture extends ForestryPlugin { TreeTemplates.getPoplarTemplate(), 5); TreeTemplates.poplarB = new TreeMutation(Allele.treeLime, Allele.treeWillow, TreeTemplates.getPoplarTemplate(), 5); + } @Override diff --git a/src/main/java/forestry/plugins/PluginCore.java b/src/main/java/forestry/plugins/PluginCore.java index 3d5aeee26..adef1d0d3 100644 --- a/src/main/java/forestry/plugins/PluginCore.java +++ b/src/main/java/forestry/plugins/PluginCore.java @@ -52,11 +52,10 @@ import forestry.core.gadgets.BlockSoil; import forestry.core.gadgets.BlockStainedGlass; import forestry.core.gadgets.MachineDefinition; import forestry.core.gadgets.TileEscritoire; +import forestry.core.genetics.Allele; +import forestry.core.genetics.AlleleRegistry; import forestry.core.genetics.ClimateHelper; import forestry.core.genetics.ItemResearchNote; -import forestry.core.genetics.alleles.Allele; -import forestry.core.genetics.alleles.AlleleHelper; -import forestry.core.genetics.alleles.AlleleRegistry; import forestry.core.interfaces.IPickupHandler; import forestry.core.interfaces.ISaveEventHandler; import forestry.core.items.ItemArmorNaturalist; @@ -84,8 +83,6 @@ public class PluginCore extends ForestryPlugin { public static ForestryModEnvWarningCallable crashCallable; public static final RootCommand rootCommand = new RootCommand(); - private AlleleHelper alleleHelper; - @Override protected void setupAPI() { super.setupAPI(); @@ -99,7 +96,7 @@ public class PluginCore extends ForestryPlugin { AlleleManager.climateHelper = new ClimateHelper(); alleleRegistry.initialize(); - Allele.setupAPI(); + Allele.setupLegacyAPI(); } @Override @@ -109,8 +106,6 @@ public class PluginCore extends ForestryPlugin { rootCommand.addChildCommand(new CommandVersion()); rootCommand.addChildCommand(new CommandPlugins()); - Allele.helper = alleleHelper = new AlleleHelper(); - ForestryBlock.core.registerBlock(new BlockBase(Material.iron, true), ItemForestryBlock.class, "core"); definitionEscritoire = ((BlockBase) ForestryBlock.core.block()).addDefinition(new MachineDefinition(Defaults.DEFINITION_ESCRITOIRE_META, "forestry.Escritoire", TileEscritoire.class, @@ -145,8 +140,6 @@ public class PluginCore extends ForestryPlugin { definitionEscritoire.register(); crashCallable = new ForestryModEnvWarningCallable(); - alleleHelper.init(); - RecipeSorter.register("forestry:shapedrecipecustom", ShapedRecipeCustom.class, RecipeSorter.Category.SHAPED, "before:minecraft:shaped"); } diff --git a/src/main/java/forestry/plugins/PluginLepidopterology.java b/src/main/java/forestry/plugins/PluginLepidopterology.java index c1b7ed51d..3aa973e3d 100755 --- a/src/main/java/forestry/plugins/PluginLepidopterology.java +++ b/src/main/java/forestry/plugins/PluginLepidopterology.java @@ -41,8 +41,8 @@ import forestry.core.config.Property; import forestry.core.fluids.Fluids; import forestry.core.gadgets.BlockBase; import forestry.core.gadgets.MachineDefinition; +import forestry.core.genetics.Allele; import forestry.core.genetics.Branch; -import forestry.core.genetics.alleles.Allele; import forestry.core.items.ItemForestryBlock; import forestry.core.utils.ShapedRecipeCustom; import forestry.core.utils.Utils; @@ -222,11 +222,11 @@ public class PluginLepidopterology extends ForestryPlugin { IClassification protographium = createButterflyBranch(papilionidae, "Protographium"); Allele.lepiCitrusSwallow = new AlleleButterflySpecies("lepiCitrusSwallow", false, "swallowtailC", papilio, "demodocus", 0xeae389).setRarity(1.0f) - .setTemperatureDeprecated(EnumTemperature.WARM).setHumidityDeprecated(EnumHumidity.DAMP); + .setTemperature(EnumTemperature.WARM).setHumidity(EnumHumidity.DAMP); Allele.lepiEmeraldPeacock = new AlleleButterflySpecies("lepiEmeraldPeacock", true, "emeraldPeacock", papilio, "palinurus", 0x7cfe80) - .setTemperatureDeprecated(EnumTemperature.WARM).setHumidityDeprecated(EnumHumidity.DAMP); + .setTemperature(EnumTemperature.WARM).setHumidity(EnumHumidity.DAMP); Allele.lepiThoasSwallow = new AlleleButterflySpecies("lepiThoasSwallow", false, "swallowtailT", papilio, "thoas", 0xeac783).setRarity(0.2f) - .setTemperatureDeprecated(EnumTemperature.WARM).setHumidityDeprecated(EnumHumidity.DAMP); + .setTemperature(EnumTemperature.WARM).setHumidity(EnumHumidity.DAMP); Allele.lepiSpicebush = new AlleleButterflySpecies("lepiSpicebush", true, "swallowtailS", papilio, "troilus", 0xeefeff).setRarity(0.5f); Allele.lepiBlackSwallow = new AlleleButterflySpecies("lepiBlackSwallow", true, "swallowtailB", papilio, "polyxenes", 0xeac783).setRarity(1.0f); @@ -248,36 +248,36 @@ public class PluginLepidopterology extends ForestryPlugin { IClassification speyeria = createButterflyBranch(nymphalidae, "Speyeria"); Allele.lepiGlasswing = new AlleleButterflySpecies("lepiGlasswing", true, "glasswing", greta, "oto", 0x583732) - .setTemperatureDeprecated(EnumTemperature.WARM); + .setTemperature(EnumTemperature.WARM); Allele.lepiSpeckledWood = new AlleleButterflySpecies("lepiSpeckledWood", true, "speckledWood", pararge, "aegeria", 0x947245).setRarity(1.0f); Allele.lepiMadeiranSpeckledWood = new AlleleButterflySpecies("lepiMSpeckledWood", true, "speckledWoodM", pararge, "xiphia", 0x402919).setRarity(0.5f); Allele.lepiCanarySpeckledWood = new AlleleButterflySpecies("lepiCSpeckledWood", true, "speckledWoodC", pararge, "xiphioides", 0x51372a).setRarity(0.5f); Allele.lepiMenelausBlueMorpho = new AlleleButterflySpecies("lepiMBlueMorpho", true, "blueMorphoM", morpho, "menelaus", 0x72e1fd).setRarity(0.5f) - .setTemperatureDeprecated(EnumTemperature.WARM).setHumidityDeprecated(EnumHumidity.DAMP); + .setTemperature(EnumTemperature.WARM).setHumidity(EnumHumidity.DAMP); Allele.lepiPeleidesBlueMorpho = new AlleleButterflySpecies("lepiPBlueMorpho", true, "blueMorphoP", morpho, "peleides", 0x6ecce8).setRarity(0.25f) - .setTemperatureDeprecated(EnumTemperature.WARM).setHumidityDeprecated(EnumHumidity.DAMP); + .setTemperature(EnumTemperature.WARM).setHumidity(EnumHumidity.DAMP); Allele.lepiRhetenorBlueMorpho = new AlleleButterflySpecies("lepiRBlueMorpho", true, "blueMorphoR", morpho, "rhetenor", 0x00bef8) - .setTemperatureDeprecated(EnumTemperature.WARM).setHumidityDeprecated(EnumHumidity.DAMP); + .setTemperature(EnumTemperature.WARM).setHumidity(EnumHumidity.DAMP); Allele.lepiComma = new AlleleButterflySpecies("lepiComma", true, "comma", polygonia, "c-album", 0xf89505).setRarity(0.3f); Allele.lepiBatesia = new AlleleButterflySpecies("lepiBatesia", true, "paintedBeauty", batesia, "hypochlora", 0xfe7763).setRarity(0.3f) - .setTemperatureDeprecated(EnumTemperature.WARM).setHumidityDeprecated(EnumHumidity.DAMP); + .setTemperature(EnumTemperature.WARM).setHumidity(EnumHumidity.DAMP); Allele.lepiBlueWing = new AlleleButterflySpecies("lepiBlueWing", true, "blueWing", myscelia, "ethusa", 0x3a93cc).setRarity(0.3f); Allele.lepiMonarch = new AlleleButterflySpecies("lepiMonarch", true, "monarch", danaus, "plexippus", 0xffa722).setRarity(0.2f); Allele.lepiBlueDuke = new AlleleButterflySpecies("lepiBlueDuke", true, "blueDuke", bassarona, "durga", 0x304240).setRarity(0.5f) - .setTemperatureDeprecated(EnumTemperature.COLD); + .setTemperature(EnumTemperature.COLD); Allele.lepiGlassyTiger = new AlleleButterflySpecies("lepiGlassyTiger", true, "glassyTiger", parantica, "aglea", 0x5b3935).setRarity(0.3f); Allele.lepiPostman = new AlleleButterflySpecies("lepiPostman", true, "postman", heliconius, "melpomene", 0xf7302d).setRarity(0.3f); Allele.lepiMalachite = new AlleleButterflySpecies("lepiMalachite", true, "malachite", siproeta, "stelenes", 0xbdff53).setRarity(0.5f) - .setTemperatureDeprecated(EnumTemperature.WARM).setHumidityDeprecated(EnumHumidity.DAMP); + .setTemperature(EnumTemperature.WARM).setHumidity(EnumHumidity.DAMP); Allele.lepiLLacewing = new AlleleButterflySpecies("lepiLLacewing", true, "leopardLacewing", cethosia, "cyane", 0xfb8a06).setRarity(0.7f); Allele.lepiDianaFrit = new AlleleButterflySpecies("lepiDianaFrit", true, "dianaFritillary", speyeria, "diana", 0xffac05).setRarity(0.6f); - Allele.butterflyNone = new AlleleEffectNone("bf", "none", false); + Allele.butterflyNone = new AlleleEffectNone("bfNone", false); } private static IClassification createButterflyBranch(IClassification family, String scientific) { diff --git a/src/main/java/forestry/storage/items/ItemNaturalistBackpack.java b/src/main/java/forestry/storage/items/ItemNaturalistBackpack.java index 3b685dc1c..0631ec35d 100755 --- a/src/main/java/forestry/storage/items/ItemNaturalistBackpack.java +++ b/src/main/java/forestry/storage/items/ItemNaturalistBackpack.java @@ -13,10 +13,10 @@ package forestry.storage.items; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import forestry.api.apiculture.BeeManager; import forestry.api.core.ForestryAPI; import forestry.api.storage.EnumBackpackType; import forestry.api.storage.IBackpackDefinition; +import forestry.plugins.PluginApiculture; import forestry.plugins.PluginLepidopterology; import forestry.storage.BackpackDefinition; @@ -30,7 +30,7 @@ public class ItemNaturalistBackpack extends ItemBackpack { @Override public boolean isValidItem(ItemStack stack) { - return BeeManager.beeRoot.isMember(stack); + return PluginApiculture.beeInterface.isMember(stack); } }