aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/core/genetics/BreedingSystem.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/binnie/core/genetics/BreedingSystem.java')
-rw-r--r--src/Java/binnie/core/genetics/BreedingSystem.java558
1 files changed, 0 insertions, 558 deletions
diff --git a/src/Java/binnie/core/genetics/BreedingSystem.java b/src/Java/binnie/core/genetics/BreedingSystem.java
deleted file mode 100644
index 1bdd5d6376..0000000000
--- a/src/Java/binnie/core/genetics/BreedingSystem.java
+++ /dev/null
@@ -1,558 +0,0 @@
-package binnie.core.genetics;
-
-import binnie.Binnie;
-import binnie.core.BinnieCore;
-import binnie.core.language.ManagerLanguage;
-import binnie.core.proxy.BinnieProxy;
-import binnie.core.resource.BinnieIcon;
-import binnie.extrabees.genetics.ExtraBeeMutation;
-import com.mojang.authlib.GameProfile;
-import cpw.mods.fml.common.eventhandler.EventBus;
-import cpw.mods.fml.common.eventhandler.SubscribeEvent;
-import forestry.api.core.ForestryEvent.SyncedBreedingTracker;
-import forestry.api.genetics.AlleleManager;
-import forestry.api.genetics.IAllele;
-import forestry.api.genetics.IAlleleBoolean;
-import forestry.api.genetics.IAlleleRegistry;
-import forestry.api.genetics.IAlleleSpecies;
-import forestry.api.genetics.IBreedingTracker;
-import forestry.api.genetics.IChromosomeType;
-import forestry.api.genetics.IClassification;
-import forestry.api.genetics.IGenome;
-import forestry.api.genetics.IIndividual;
-import forestry.api.genetics.IMutation;
-import forestry.api.genetics.ISpeciesRoot;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
-import net.minecraft.world.World;
-import net.minecraftforge.common.MinecraftForge;
-
-public abstract class BreedingSystem
- implements IItemStackRepresentitive
-{
- protected BinnieIcon iconUndiscovered;
- protected BinnieIcon iconDiscovered;
-
- public BreedingSystem()
- {
- Binnie.Genetics.registerBreedingSystem(this);
- MinecraftForge.EVENT_BUS.register(this);
- }
-
- public String getChromosomeName(IChromosomeType chromo)
- {
- return BinnieCore.proxy.localise(getSpeciesRoot().getUID() + ".chromosome." + chromo.getName());
- }
-
- public String getChromosomeShortName(IChromosomeType chromo)
- {
- return BinnieCore.proxy.localise(getSpeciesRoot().getUID() + ".chromosome." + chromo.getName() + ".short");
- }
-
- public final String getEpitome(float discoveredPercentage)
- {
- int i = 0;
- if (discoveredPercentage == 1.0F) {
- i = 6;
- } else if (discoveredPercentage < 0.1F) {
- i = 0;
- } else if (discoveredPercentage < 0.3F) {
- i = 1;
- } else if (discoveredPercentage < 0.5F) {
- i = 2;
- } else if (discoveredPercentage < 0.7F) {
- i = 3;
- } else if (discoveredPercentage < 0.9F) {
- i = 4;
- } else if (discoveredPercentage < 1.0F) {
- i = 5;
- }
- return BinnieCore.proxy.localise(getSpeciesRoot().getUID() + ".epitome." + i);
- }
-
- private List<IClassification> allBranches = new ArrayList();
- List<IAlleleSpecies> allActiveSpecies = new ArrayList();
- private List<IAlleleSpecies> allSpecies = new ArrayList();
- private List<IMutation> allMutations = new ArrayList();
- private Map<IAlleleSpecies, List<IMutation>> resultantMutations = new HashMap();
- private Map<IAlleleSpecies, List<IMutation>> furtherMutations = new HashMap();
- private Map<IAlleleSpecies, List<IMutation>> allResultantMutations = new HashMap();
- private Map<IAlleleSpecies, List<IMutation>> allFurtherMutations = new HashMap();
- public float discoveredSpeciesPercentage;
- public int totalSpeciesCount;
- public int discoveredSpeciesCount;
- public int totalSecretCount;
- public int discoveredSecretCount;
- public float discoveredBranchPercentage;
- public int totalBranchCount;
- public int discoveredBranchCount;
- private int totalSecretBranchCount;
- private int discoveredSecretBranchCount;
- String currentEpithet;
-
- public abstract ISpeciesRoot getSpeciesRoot();
-
- public final List<IClassification> getAllBranches()
- {
- return this.allBranches;
- }
-
- public final Collection<IAlleleSpecies> getAllSpecies()
- {
- return this.allActiveSpecies;
- }
-
- public final Collection<IMutation> getAllMutations()
- {
- return this.allMutations;
- }
-
- public void calculateArrays()
- {
- Collection<IAllele> allAlleles = AlleleManager.alleleRegistry.getRegisteredAlleles().values();
-
-
- this.resultantMutations = new HashMap();
- this.furtherMutations = new HashMap();
- this.allResultantMutations = new HashMap();
- this.allFurtherMutations = new HashMap();
-
- this.allActiveSpecies = new ArrayList();
- this.allSpecies = new ArrayList();
- for (IAllele species : allAlleles) {
- if (getSpeciesRoot().getTemplate(species.getUID()) != null)
- {
- this.resultantMutations.put((IAlleleSpecies)species, new ArrayList());
-
- this.furtherMutations.put((IAlleleSpecies)species, new ArrayList());
-
- this.allResultantMutations.put((IAlleleSpecies)species, new ArrayList());
-
- this.allFurtherMutations.put((IAlleleSpecies)species, new ArrayList());
-
- this.allSpecies.add((IAlleleSpecies)species);
- if ((!isBlacklisted(species)) && (!species.getUID().contains("speciesBotAlfheim"))) {
- this.allActiveSpecies.add((IAlleleSpecies)species);
- }
- }
- }
- this.allMutations = new ArrayList();
-
- Collection<IClassification> allRegBranches = AlleleManager.alleleRegistry.getRegisteredClassifications().values();
-
-
- this.allBranches = new ArrayList();
- for (IClassification branch : allRegBranches) {
- if ((branch.getMemberSpecies().length > 0) &&
- (getSpeciesRoot().getTemplate(branch.getMemberSpecies()[0].getUID()) != null))
- {
- boolean possible = false;
- for (IAlleleSpecies species : branch.getMemberSpecies()) {
- if (this.allActiveSpecies.contains(species)) {
- possible = true;
- }
- }
- if (possible) {
- this.allBranches.add(branch);
- }
- }
- }
- if (getSpeciesRoot().getMutations(false) != null)
- {
- Set<IMutation> mutations = new LinkedHashSet();
- mutations.addAll(getSpeciesRoot().getMutations(false));
- if (this == Binnie.Genetics.beeBreedingSystem) {
- mutations.addAll(ExtraBeeMutation.mutations);
- }
- for (IMutation mutation : mutations)
- {
- this.allMutations.add(mutation);
-
- Set<IAlleleSpecies> participatingSpecies = new LinkedHashSet();
- if ((mutation.getAllele0() instanceof IAlleleSpecies)) {
- participatingSpecies.add((IAlleleSpecies)mutation.getAllele0());
- }
- if ((mutation.getAllele1() instanceof IAlleleSpecies)) {
- participatingSpecies.add((IAlleleSpecies)mutation.getAllele1());
- }
- for (IAlleleSpecies species : participatingSpecies)
- {
- ((List)this.allFurtherMutations.get(species)).add(mutation);
- if (this.allActiveSpecies.contains(species)) {
- ((List)this.furtherMutations.get(species)).add(mutation);
- }
- }
- if (this.resultantMutations.containsKey(mutation.getTemplate()[0]))
- {
- ((List)this.allResultantMutations.get(mutation.getTemplate()[0])).add(mutation);
- ((List)this.resultantMutations.get(mutation.getTemplate()[0])).add(mutation);
- }
- }
- }
- }
-
- public final boolean isBlacklisted(IAllele allele)
- {
- return AlleleManager.alleleRegistry.isBlacklisted(allele.getUID());
- }
-
- public final List<IMutation> getResultantMutations(IAlleleSpecies species, boolean includeInactive)
- {
- if (this.resultantMutations.isEmpty()) {
- calculateArrays();
- }
- return includeInactive ? (List)this.allResultantMutations.get(species) : (List)this.resultantMutations.get(species);
- }
-
- public final List<IMutation> getResultantMutations(IAlleleSpecies species)
- {
- if (this.resultantMutations.isEmpty()) {
- calculateArrays();
- }
- return (List)this.resultantMutations.get(species);
- }
-
- public final List<IMutation> getFurtherMutations(IAlleleSpecies species, boolean includeInactive)
- {
- if (this.furtherMutations.isEmpty()) {
- calculateArrays();
- }
- return includeInactive ? (List)this.allFurtherMutations.get(species) : (List)this.furtherMutations.get(species);
- }
-
- public final List<IMutation> getFurtherMutations(IAlleleSpecies species)
- {
- if (this.furtherMutations.isEmpty()) {
- calculateArrays();
- }
- return (List)this.furtherMutations.get(species);
- }
-
- public final boolean isMutationDiscovered(IMutation mutation, World world, GameProfile name)
- {
- return isMutationDiscovered(mutation, getSpeciesRoot().getBreedingTracker(world, name));
- }
-
- public final boolean isMutationDiscovered(IMutation mutation, IBreedingTracker tracker)
- {
- if (tracker == null) {
- return true;
- }
- return tracker.isDiscovered(mutation);
- }
-
- public final boolean isSpeciesDiscovered(IAlleleSpecies species, World world, GameProfile name)
- {
- return isSpeciesDiscovered(species, getSpeciesRoot().getBreedingTracker(world, name));
- }
-
- public final boolean isSpeciesDiscovered(IAlleleSpecies species, IBreedingTracker tracker)
- {
- if (tracker == null) {
- return true;
- }
- return tracker.isDiscovered(species);
- }
-
- public final boolean isSecret(IAlleleSpecies species)
- {
- return !species.isCounted();
- }
-
- public final boolean isSecret(IClassification branch)
- {
- for (IAlleleSpecies species : branch.getMemberSpecies()) {
- if (!isSecret(species)) {
- return false;
- }
- }
- return true;
- }
-
- public final Collection<IClassification> getDiscoveredBranches(World world, GameProfile player)
- {
- List<IClassification> branches = new ArrayList();
- for (IClassification branch : getAllBranches())
- {
- boolean discovered = false;
- for (IAlleleSpecies species : branch.getMemberSpecies()) {
- if (isSpeciesDiscovered(species, world, player)) {
- discovered = true;
- }
- }
- if (discovered) {
- branches.add(branch);
- }
- }
- return branches;
- }
-
- public final Collection<IClassification> getDiscoveredBranches(IBreedingTracker tracker)
- {
- List<IClassification> branches = new ArrayList();
- for (IClassification branch : getAllBranches())
- {
- boolean discovered = false;
- for (IAlleleSpecies species : branch.getMemberSpecies()) {
- if (isSpeciesDiscovered(species, tracker)) {
- discovered = true;
- }
- }
- if (discovered) {
- branches.add(branch);
- }
- }
- return branches;
- }
-
- public final Collection<IAlleleSpecies> getDiscoveredSpecies(World world, GameProfile player)
- {
- List<IAlleleSpecies> speciesList = new ArrayList();
- for (IAlleleSpecies species : getAllSpecies()) {
- if (isSpeciesDiscovered(species, world, player)) {
- speciesList.add(species);
- }
- }
- return speciesList;
- }
-
- public final Collection<IAlleleSpecies> getDiscoveredSpecies(IBreedingTracker tracker)
- {
- List<IAlleleSpecies> speciesList = new ArrayList();
- for (IAlleleSpecies species : getAllSpecies()) {
- if (isSpeciesDiscovered(species, tracker)) {
- speciesList.add(species);
- }
- }
- return speciesList;
- }
-
- public final List<IMutation> getDiscoveredMutations(World world, GameProfile player)
- {
- List<IMutation> speciesList = new ArrayList();
- for (IMutation species : getAllMutations()) {
- if (isMutationDiscovered(species, world, player)) {
- speciesList.add(species);
- }
- }
- return speciesList;
- }
-
- public final List<IMutation> getDiscoveredMutations(IBreedingTracker tracker)
- {
- List<IMutation> speciesList = new ArrayList();
- for (IMutation species : getAllMutations()) {
- if (isMutationDiscovered(species, tracker)) {
- speciesList.add(species);
- }
- }
- return speciesList;
- }
-
- public final int getDiscoveredBranchMembers(IClassification branch, IBreedingTracker tracker)
- {
- int discoveredSpecies = 0;
- for (IAlleleSpecies species : branch.getMemberSpecies()) {
- if (isSpeciesDiscovered(species, tracker)) {
- discoveredSpecies++;
- }
- }
- return discoveredSpecies;
- }
-
- public IIcon getUndiscoveredIcon()
- {
- return this.iconUndiscovered.getIcon();
- }
-
- public IIcon getDiscoveredIcon()
- {
- return this.iconDiscovered.getIcon();
- }
-
- public abstract float getChance(IMutation paramIMutation, EntityPlayer paramEntityPlayer, IAllele paramIAllele1, IAllele paramIAllele2);
-
- public abstract Class<? extends IBreedingTracker> getTrackerClass();
-
- @SubscribeEvent
- public final void onSyncBreedingTracker(ForestryEvent.SyncedBreedingTracker event)
- {
- IBreedingTracker tracker = event.tracker;
- if (!getTrackerClass().isInstance(tracker)) {
- return;
- }
- syncTracker(tracker);
- }
-
- public final void syncTracker(IBreedingTracker tracker)
- {
- this.discoveredSpeciesPercentage = 0.0F;
-
- this.totalSpeciesCount = 0;
- this.discoveredSpeciesCount = 0;
-
- this.totalSecretCount = 0;
- this.discoveredSecretCount = 0;
-
- Collection<IAlleleSpecies> discoveredSpecies = getDiscoveredSpecies(tracker);
- Collection<IAlleleSpecies> allSpecies = getAllSpecies();
- for (IAlleleSpecies species : allSpecies) {
- if (!isSecret(species))
- {
- this.totalSpeciesCount += 1;
- if (isSpeciesDiscovered(species, tracker)) {
- this.discoveredSpeciesCount += 1;
- }
- }
- else
- {
- this.totalSecretCount += 1;
- if (isSpeciesDiscovered(species, tracker)) {
- this.discoveredSecretCount += 1;
- }
- }
- }
- this.discoveredBranchPercentage = 0.0F;
-
- this.totalBranchCount = 0;
- this.discoveredBranchCount = 0;
-
- Collection<IClassification> discoveredBranches = getDiscoveredBranches(tracker);
- Collection<IClassification> allBranches = getAllBranches();
- for (IClassification branch : allBranches) {
- if (!isSecret(branch))
- {
- this.totalBranchCount += 1;
- if (discoveredBranches.contains(branch)) {
- this.discoveredBranchCount += 1;
- }
- }
- else
- {
- this.totalSecretBranchCount += 1;
- if (discoveredBranches.contains(branch)) {
- this.discoveredSecretBranchCount += 1;
- }
- }
- }
- this.discoveredSpeciesPercentage = (this.discoveredSpeciesCount / this.totalSpeciesCount);
-
- this.discoveredBranchPercentage = (this.discoveredBranchCount / this.totalBranchCount);
-
-
- String epithet = getEpitome();
-
- onSyncBreedingTracker(tracker);
- }
-
- public void onSyncBreedingTracker(IBreedingTracker tracker) {}
-
- public String getEpitome()
- {
- return getEpitome(this.discoveredSpeciesPercentage);
- }
-
- public final String getDescriptor()
- {
- return BinnieCore.proxy.localise(getSpeciesRoot().getUID() + ".descriptor");
- }
-
- public final String getIdent()
- {
- return getSpeciesRoot().getUID();
- }
-
- public final IChromosomeType getChromosome(int i)
- {
- for (IChromosomeType chromosome : getSpeciesRoot().getKaryotype()) {
- if (i == chromosome.ordinal()) {
- return chromosome;
- }
- }
- return null;
- }
-
- public abstract int getColour();
-
- public String getAlleleName(IChromosomeType chromosome, IAllele allele)
- {
- if ((allele instanceof IAlleleBoolean)) {
- return ((IAlleleBoolean)allele).getValue() ? Binnie.Language.localise(BinnieCore.instance, "allele.true") : Binnie.Language.localise(BinnieCore.instance, "allele.false");
- }
- if (allele.getName() == "for.gui.maximum") {
- return Binnie.Language.localise(BinnieCore.instance, "allele.fertility.maximum");
- }
- return allele.getName();
- }
-
- public String getName()
- {
- return BinnieCore.proxy.localise(getSpeciesRoot().getUID() + ".shortName");
- }
-
- public ItemStack getItemStackRepresentitive()
- {
- IIndividual first = (IIndividual)getSpeciesRoot().getIndividualTemplates().get(0);
- return getSpeciesRoot().getMemberStack(first, getDefaultType());
- }
-
- public String toString()
- {
- return getName();
- }
-
- public abstract boolean isDNAManipulable(ItemStack paramItemStack);
-
- public IIndividual getConversion(ItemStack stack)
- {
- return null;
- }
-
- public final IIndividual getDefaultIndividual()
- {
- return getSpeciesRoot().templateAsIndividual(getSpeciesRoot().getDefaultTemplate());
- }
-
- public final int getDefaultType()
- {
- return getActiveTypes()[0];
- }
-
- public abstract int[] getActiveTypes();
-
- public abstract void addExtraAlleles(IChromosomeType paramIChromosomeType, TreeSet<IAllele> paramTreeSet);
-
- public ItemStack getConversionStack(ItemStack stack)
- {
- return getSpeciesRoot().getMemberStack(getConversion(stack), getDefaultType());
- }
-
- public final Collection<IChromosomeType> getActiveKaryotype()
- {
- return Binnie.Genetics.getActiveChromosomes(getSpeciesRoot());
- }
-
- public ItemStack getDefaultMember(String uid)
- {
- return getSpeciesRoot().getMemberStack(getIndividual(uid), getDefaultType());
- }
-
- public IIndividual getIndividual(String uid)
- {
- return getSpeciesRoot().templateAsIndividual(getSpeciesRoot().getTemplate(uid));
- }
-
- public IGenome getGenome(String uid)
- {
- return getSpeciesRoot().templateAsGenome(getSpeciesRoot().getTemplate(uid));
- }
-}