blob: c1536118b9f8d4c36c013dcbf5902bfd86c00f66 [file] [log] [blame] [raw]
/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.lepidopterology;
import java.util.EnumSet;
import java.util.Map;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.BiomeDictionary;
import forestry.api.genetics.IAlleleSpecies;
public interface IAlleleButterflySpecies extends IAlleleSpecies {
/**
* @return the IBeeRoot
*/
IButterflyRoot getRoot();
/**
* @return Path of the texture to use for entity rendering.
*/
String getEntityTexture();
/**
* Allows butterflies to restrict random spawns beyond the restrictions set by getTemperature() and getHumidity().
*
* @return EnumSet of biome tags this butterfly species can be spawned in.
*/
EnumSet<BiomeDictionary.Type> getSpawnBiomes();
/**
* @return true if a prospective spawn biome must not match a biome tag outside of getSpawnBiomes.
*/
boolean strictSpawnMatch();
/**
* @return Float between 0 and 1 representing the rarity of the species, will affect spawn rate.
*/
float getRarity();
/**
* @return Float representing the distance below which this butterfly will take flight if it detects a player which is not sneaking.
*/
float getFlightDistance();
/**
* @return true if this species is only active at night.
*/
boolean isNocturnal();
Map<ItemStack, Float> getButterflyLoot();
Map<ItemStack, Float> getCaterpillarLoot();
}