@Override public boolean isSecret() { return getGenome().getPrimary().isSecret(); }
@ModuleContainerObjectMethod.Inject( module = IntegrationForestry.analyzerMod, worldThread = false, modId = Constants.MOD_ID, doc = "function(root:string):table -- Get a list of all species in the given species root" ) public static Object[] getSpeciesList(IContext<IModuleContainer> context, Object[] args) throws LuaException { String uid = ArgumentHelper.getString(args, 0); ISpeciesRoot root = getSpeciesRoot(uid); // please don't hurt me squid LuaList<Object> species = alleleRegistry.getRegisteredAlleles(root.getSpeciesChromosomeType()).stream() .map(IAlleleSpecies.class::cast) .filter(s -> !s.isSecret()) .map(MetaGenome::getAlleleMeta) .collect(LuaList.toLuaList()); return new Object[]{species.asMap()}; }
@Override public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) { if (this.isInCreativeTab(tab)) { for (ISpeciesRoot root : AlleleManager.alleleRegistry.getSpeciesRoot().values()) { for (IIndividual template : root.getIndividualTemplates()) { if (template.getGenome().getPrimary().isSecret()) { continue; } IGeneItem geneItem = new GeneArrayItem(); for (IChromosomeType type : root.getKaryotype()) { IChromosome chromosome = template.getGenome().getChromosomes()[type.ordinal()]; if (chromosome != null) { IAllele active = chromosome.getActiveAllele(); geneItem.addGene(new Gene(active, type, root)); } } ItemStack array = new ItemStack(this); geneItem.writeToItem(array); items.add(array); } } } }