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

72 lines
2 KiB
Java

package forestry.api.lepidopterology;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import forestry.api.genetics.IIndividualLiving;
public interface IButterfly extends IIndividualLiving {
IButterflyGenome getGenome();
/**
* @return Genetic information of the mate, null if unmated.
*/
IButterflyGenome getMate();
/**
* @return Physical size of the butterfly.
*/
float getSize();
/**
* @param world
* @param x
* @param y
* @param z
* @return true if the butterfly can naturally spawn at the given location at this time. (Used to auto-spawn butterflies from tree leaves.)
*/
boolean canSpawn(World world, double x, double y, double z);
/**
* @param world
* @param x
* @param y
* @param z
* @return true if the butterfly can take flight at the given location at this time. (Used to auto-spawn butterflies from dropped items.)
*/
boolean canTakeFlight(World world, double x, double y, double z);
/**
* @param world
* @param x
* @param y
* @param z
* @return true if the environment (temperature, humidity) is valid for the butterfly at the given location.
*/
boolean isAcceptedEnvironment(World world, double x, double y, double z);
IButterfly spawnCaterpillar(IButterflyNursery nursery);
/**
* @param entity
* @param playerKill Whether or not the butterfly was killed by a player.
* @param lootLevel Loot level according to the weapon used to kill the butterfly.
* @return Array of itemstacks to drop on death of the given entity.
*/
ItemStack[] getLootDrop(IEntityButterfly entity, boolean playerKill, int lootLevel);
/**
* @param nursery
* @param playerKill Whether or not the nursery was broken by a player.
* @param lootLevel Fortune level.
* @return Array of itemstacks to drop on breaking of the nursery.
*/
ItemStack[] getCaterpillarDrop(IButterflyNursery nursery, boolean playerKill, int lootLevel);
/**
* Create an exact copy of this butterfly.
*/
IButterfly copy();
}