BloodMagic/BM_src/forestry/api/lepidopterology/IButterflyRoot.java
2014-01-25 20:36:28 -05:00

55 lines
1.5 KiB
Java

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);
}