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

107 lines
2.5 KiB
Java

package forestry.api.genetics;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
import forestry.api.core.IIconProvider;
/**
* Basic species allele.
*/
public interface IAlleleSpecies extends IAllele {
/**
* @return the {@link ISpeciesRoot} associated with this species.
*/
ISpeciesRoot getRoot();
/**
* @return Localized short description of this species. (May be null.)
*/
String getDescription();
/**
* Binomial name of the species sans genus ("Apis"). Returning "humboldti" will have the bee species flavour name be "Apis humboldti". Feel free to use fun
* names or return null.
*
* @return flavour text (may be null)
*/
String getBinomial();
/**
* Authority for the binomial name, e.g. "Sengir" on species of base Forestry.
*
* @return flavour text (may be null)
*/
String getAuthority();
/**
* @return Branch this species is associated with.
*/
IClassification getBranch();
/* RESEARCH */
/**
* Complexity determines the difficulty researching a species. The values of primary and secondary are
* added together (and rounded) to determine the amount of pairs needed for successful research.
* @return Values between 3 - 11 are useful.
*/
int getComplexity();
/**
* @param itemstack
* @return A float signifying the chance for the passed itemstack to yield a research success.
*/
float getResearchSuitability(ItemStack itemstack);
/**
* @param world
* @param researcher
* @param individual
* @param bountyLevel
* @return Array of itemstacks representing the bounty for this research success.
*/
ItemStack[] getResearchBounty(World world, String researcher, IIndividual individual, int bountyLevel);
/* CLIMATE */
/**
* @return Preferred temperature
*/
EnumTemperature getTemperature();
/**
* @return Preferred humidity
*/
EnumHumidity getHumidity();
/* MISC */
/**
* @return true if the species icon should have a glowing effect.
*/
boolean hasEffect();
/**
* @return true if the species should not be displayed in NEI or creative inventory.
*/
boolean isSecret();
/**
* @return true to have the species count against the species total.
*/
boolean isCounted();
/* APPEARANCE */
/**
* @param renderPass Render pass to get the colour for.
* @return Colour to use for the render pass.
*/
int getIconColour(int renderPass);
@SideOnly(Side.CLIENT)
IIconProvider getIconProvider();
}