diff --git a/api/forestry b/api/forestry index cb7a1a618..73da80bca 160000 --- a/api/forestry +++ b/api/forestry @@ -1 +1 @@ -Subproject commit cb7a1a61811b3bb83c40a7448e709288c32b03d1 +Subproject commit 73da80bca5efde424a2a8921985ce919bc6ef0dd diff --git a/src/main/java/forestry/core/genetics/ItemResearchNote.java b/src/main/java/forestry/core/genetics/ItemResearchNote.java index deb3f408e..1c0719c5d 100755 --- a/src/main/java/forestry/core/genetics/ItemResearchNote.java +++ b/src/main/java/forestry/core/genetics/ItemResearchNote.java @@ -142,8 +142,8 @@ public class ItemResearchNote extends ItemForestry { return false; } - IAlleleSpecies species0 = encoded.getAllele0(); - IAlleleSpecies species1 = encoded.getAllele1(); + IAlleleSpecies species0 = (IAlleleSpecies) encoded.getAllele0(); + IAlleleSpecies species1 = (IAlleleSpecies) encoded.getAllele1(); IAlleleSpecies speciesResult = (IAlleleSpecies) encoded.getTemplate()[root.getKaryotypeKey().ordinal()]; tracker.registerSpecies(species0); diff --git a/src/main/java/forestry/core/genetics/mutations/Mutation.java b/src/main/java/forestry/core/genetics/mutations/Mutation.java index 85cbaefda..b7666e66d 100644 --- a/src/main/java/forestry/core/genetics/mutations/Mutation.java +++ b/src/main/java/forestry/core/genetics/mutations/Mutation.java @@ -139,6 +139,16 @@ public abstract class Mutation implements IMutationCustom { return species1; } + @Override + public IAlleleSpecies getSpecies0() { + return species0; + } + + @Override + public IAlleleSpecies getSpecies1() { + return species1; + } + @Override public float getBaseChance() { return chance; diff --git a/src/main/java/forestry/core/utils/GeneticsUtil.java b/src/main/java/forestry/core/utils/GeneticsUtil.java index 16f1dc954..c462fbfa8 100644 --- a/src/main/java/forestry/core/utils/GeneticsUtil.java +++ b/src/main/java/forestry/core/utils/GeneticsUtil.java @@ -192,14 +192,16 @@ public class GeneticsUtil { exclude.add(species); for (IMutation mutation : species.getRoot().getPaths(species, speciesChromosome)) { - if (!exclude.contains(mutation.getAllele0())) { - int otherAdvance = getGeneticAdvancement(mutation.getAllele0(), exclude, speciesChromosome); + IAlleleSpecies species0 = (IAlleleSpecies) mutation.getAllele0(); + IAlleleSpecies species1 = (IAlleleSpecies) mutation.getAllele1(); + if (!exclude.contains(species0)) { + int otherAdvance = getGeneticAdvancement(species0, exclude, speciesChromosome); if (otherAdvance > highest) { highest = otherAdvance; } } - if (!exclude.contains(mutation.getAllele1())) { - int otherAdvance = getGeneticAdvancement(mutation.getAllele1(), exclude, speciesChromosome); + if (!exclude.contains(species1)) { + int otherAdvance = getGeneticAdvancement(species1, exclude, speciesChromosome); if (otherAdvance > highest) { highest = otherAdvance; }