private IAllele[] getDefaultTemplate() { return getSpeciesRoot().getDefaultTemplate(); }
private static IAllele validateAllele(@Nullable String speciesUid, IChromosomeType chromosomeType, @Nullable IAllele allele) { if (!chromosomeType.getAlleleClass().isInstance(allele)) { ISpeciesRoot speciesRoot = chromosomeType.getSpeciesRoot(); IAllele[] template = null; if (speciesUid != null) { template = speciesRoot.getTemplate(speciesUid); } if (template == null) { template = speciesRoot.getDefaultTemplate(); } return template[chromosomeType.ordinal()]; } return allele; }
public static List<GenepoolRecipeWrapper> create() { List<GenepoolRecipeWrapper> recipes = new ArrayList<>(); Collection<ISpeciesRoot> roots = AlleleManager.alleleRegistry.getSpeciesRoot().values(); for (ISpeciesRoot root : roots) { ISpeciesType[] speciesTypes = root.getIconType().getClass().getEnumConstants(); IAllele[] defaultTemplate = root.getDefaultTemplate(); IIndividual individual = root.templateAsIndividual(defaultTemplate); for (ISpeciesType speciesType : speciesTypes) { ItemStack memberStack = root.getMemberStack(individual, speciesType); memberStack.setItemDamage(OreDictionary.WILDCARD_VALUE); GenepoolRecipeWrapper recipeWrapper = new GenepoolRecipeWrapper(memberStack); recipes.add(recipeWrapper); } } return recipes; } }
@Override public final IIndividual getDefaultIndividual() { return this.getSpeciesRoot().templateAsIndividual(this.getSpeciesRoot().getDefaultTemplate()); }
public static List<SequencerRecipeWrapper> create() { List<SequencerRecipeWrapper> recipes = new ArrayList<>(); Collection<ISpeciesRoot> roots = AlleleManager.alleleRegistry.getSpeciesRoot().values(); for (ISpeciesRoot root : roots) { IChromosomeType speciesChromosomeType = root.getSpeciesChromosomeType(); IAllele[] defaultTemplate = root.getDefaultTemplate(); IAllele species = defaultTemplate[speciesChromosomeType.ordinal()]; ItemStack filledSequence = ItemSequence.create(new Gene(species, speciesChromosomeType, root), false); recipes.add(new SequencerRecipeWrapper(filledSequence)); filledSequence = filledSequence.copy(); filledSequence.setItemDamage(0); recipes.add(new SequencerRecipeWrapper(filledSequence)); } return recipes; } }
public static List<IsolatorRecipeWrapper> create() { List<IsolatorRecipeWrapper> recipes = new ArrayList<>(); Collection<ISpeciesRoot> roots = AlleleManager.alleleRegistry.getSpeciesRoot().values(); for (ISpeciesRoot root : roots) { ISpeciesType[] speciesTypes = root.getIconType().getClass().getEnumConstants(); IChromosomeType speciesChromosomeType = root.getSpeciesChromosomeType(); IAllele[] defaultTemplate = root.getDefaultTemplate(); IIndividual individual = root.templateAsIndividual(defaultTemplate); for (ISpeciesType speciesType : speciesTypes) { ItemStack memberStack = root.getMemberStack(individual, speciesType); memberStack.setItemDamage(OreDictionary.WILDCARD_VALUE); IAllele species = defaultTemplate[speciesChromosomeType.ordinal()]; ItemStack filledSequence = ItemSequence.create(new Gene(species, speciesChromosomeType, root), false); IsolatorRecipeWrapper recipeWrapper = new IsolatorRecipeWrapper(memberStack, filledSequence); recipes.add(recipeWrapper); } } return recipes; } }
ISpeciesRoot root = system.getSpeciesRoot(); IChromosomeType speciesChromosomeType = root.getSpeciesChromosomeType(); IAllele[] defaultTemplate = root.getDefaultTemplate(); IIndividual individual = root.templateAsIndividual(defaultTemplate); for (ISpeciesType speciesType : system.getActiveTypes()) {
private static IChromosome getChromosome(ItemStack itemStack, IChromosomeType chromosomeType, ISpeciesRoot speciesRoot) { NBTTagCompound nbtTagCompound = itemStack.getTagCompound(); if (nbtTagCompound == null) { nbtTagCompound = new NBTTagCompound(); itemStack.setTagCompound(nbtTagCompound); } NBTTagCompound genomeNbt = nbtTagCompound.getCompoundTag("Genome"); if (genomeNbt.isEmpty()) { Log.error("Got a genetic item with no genome, setting it to a default value."); genomeNbt = new NBTTagCompound(); IAllele[] defaultTemplate = speciesRoot.getDefaultTemplate(); IGenome genome = speciesRoot.templateAsGenome(defaultTemplate); genome.writeToNBT(genomeNbt); nbtTagCompound.setTag("Genome", genomeNbt); } IChromosome[] chromosomes = getChromosomes(genomeNbt, speciesRoot); return chromosomes[chromosomeType.ordinal()]; }
private static IChromosome[] getChromosomes(NBTTagCompound genomeNBT, ISpeciesRoot speciesRoot) { NBTTagList chromosomesNBT = genomeNBT.getTagList("Chromosomes", 10); IChromosome[] chromosomes = new IChromosome[speciesRoot.getDefaultTemplate().length]; String primarySpeciesUid = null; String secondarySpeciesUid = null; for (int i = 0; i < chromosomesNBT.tagCount(); i++) { NBTTagCompound chromosomeNBT = chromosomesNBT.getCompoundTagAt(i); byte chromosomeOrdinal = chromosomeNBT.getByte(SLOT_TAG); if (chromosomeOrdinal >= 0 && chromosomeOrdinal < chromosomes.length) { IChromosomeType chromosomeType = speciesRoot.getKaryotype()[chromosomeOrdinal]; Chromosome chromosome = Chromosome.create(primarySpeciesUid, secondarySpeciesUid, chromosomeType, chromosomeNBT); chromosomes[chromosomeOrdinal] = chromosome; if (chromosomeOrdinal == speciesRoot.getSpeciesChromosomeType().ordinal()) { primarySpeciesUid = chromosome.getPrimaryAllele().getUID(); secondarySpeciesUid = chromosome.getSecondaryAllele().getUID(); } } } return chromosomes; }
final ControlTabBar<IBreedingSystem> tabSystems = new GenesisTabSystems(this); this.root = Binnie.GENETICS.getActiveSystems().iterator().next().getSpeciesRoot(); this.template = this.root.getDefaultTemplate(); final Area one = new Area(32, 28, 170, 100); final Area two = new Area(214, 28, 100, 100); template = root.getDefaultTemplate(); refreshTemplate(null); });