package forestry.api.arboriculture; import java.util.Collection; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; import net.minecraftforge.common.EnumPlantType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import forestry.api.genetics.IAlleleSpecies; import forestry.api.genetics.IFruitFamily; public interface IAlleleTreeSpecies extends IAlleleSpecies { ITreeRoot getRoot(); /** * @return Native plant type of this species. */ EnumPlantType getPlantType(); /** * @return List of all {@link IFruitFamily}s which can grow on leaves generated by this species. */ Collection getSuitableFruit(); /** * @return Trunk girth. 1 = 1x1, 2 = 2x2, etc. */ @Deprecated int getGirth(); /** * @param tree * @param world * @param x * @param y * @param z * @return Tree generator for the tree at the given location. */ WorldGenerator getGenerator(ITree tree, World world, int x, int y, int z); /** * @return All available generator classes for this species. */ Class[] getGeneratorClasses(); /* TEXTURES AND OVERRIDES */ int getLeafColour(ITree tree); short getLeafIconIndex(ITree tree, boolean fancy); @SideOnly(Side.CLIENT) Icon getGermlingIcon(EnumGermlingType type, int renderPass); @SideOnly(Side.CLIENT) int getGermlingColour(EnumGermlingType type, int renderPass); /** * * @return Array of ItemStacks representing logs that these tree produces, the first one being the primary one */ ItemStack[] getLogStacks(); }