package dark.lib; import java.util.List; import java.util.Set; import net.minecraft.block.ITileEntityProvider; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.Configuration; import com.builtbroken.common.Pair; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; /** * Used to handle info about the block that would normally be handled by the mod main class. Use the * BlockRegistry in order for these methods to be called on load of the mod. * * @author DarkGuardsman */ public interface IExtraInfo { /** Does this object need to generate a settings config */ public boolean hasExtraConfigs(); /** * Loads the config file for this block. This is a single config file that is tied to just this * block alone. Anything can be stored in the config file but its suggested to use it for * advanced settings for the block/tile. Things like power, update rate, optional features, * graphics, or crafting cost */ public void loadExtraConfigs(Configuration config); public static interface IExtraBlockInfo extends IExtraInfo, ITileEntityProvider { /** Loads the names used to reference this item in a recipe */ public void loadOreNames(); /** List of all tileEntities this block needs */ public void getTileEntities(int blockID, Set>> list); @SideOnly(Side.CLIENT) public void getClientTileEntityRenderers(List, TileEntitySpecialRenderer>> list); } public static interface IExtraTileEntityInfo extends IExtraInfo { } public static interface IExtraItemInfo extends IExtraInfo { /** Loads the names used to reference this item in a recipe */ public void loadOreNames(); } }