| 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<IButterfly> getIndividualTemplates(); |
| |
| /* MUTATIONS */ |
| Collection<IButterflyMutation> getMutations(boolean shuffle); |
| |
| } |