package forestry.api.lepidopterology; import java.util.ArrayList; import java.util.Collection; import net.minecraft.entity.EntityLiving; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import forestry.api.genetics.IAllele; import forestry.api.genetics.IIndividual; import forestry.api.genetics.ISpeciesRoot; public interface IButterflyRoot extends ISpeciesRoot { boolean isMember(ItemStack stack); IButterfly getMember(ItemStack stack); IButterfly getMember(NBTTagCompound compound); ItemStack getMemberStack(IIndividual butterfly, int type); /* GENOME CONVERSION */ IButterfly templateAsIndividual(IAllele[] template); IButterfly templateAsIndividual(IAllele[] templateActive, IAllele[] templateInactive); IButterflyGenome templateAsGenome(IAllele[] template); IButterflyGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive); /* BUTTERFLY SPECIFIC */ ILepidopteristTracker getBreedingTracker(World world, String player); /** * Spawns the given butterfly in the world. * @param butterfly * @return butterfly entity on success, null otherwise. */ EntityLiving spawnButterflyInWorld(World world, IButterfly butterfly, double x, double y, double z); /** * @return true if passed item is mated. */ boolean isMated(ItemStack stack); /* TEMPLATES */ ArrayList getIndividualTemplates(); /* MUTATIONS */ Collection getMutations(boolean shuffle); }