| package mcp.mobius.waila.api; |
| |
| /** |
| * Main registration interface. An instance will be provided to a method specified in an IMC msg formatted as follow<br> |
| * FMLInterModComms.sendMessage("Waila", "register", "fully.qualified.path.to.registration.method");<br> |
| * The registration method need to follow this signature<br> |
| * public static void callbackRegister({@link IWailaRegistrar} registrar)<p> |
| * If not specified otherwise, all the registration methods taking a class can take classes as well as interfaces. |
| * Waila will do a lookup using instanceof on the registered classes, meaning that if all your targets inherit one interface, you only need |
| * to specify it to cover the whole hierarchy.<br> |
| * For the registration of blocks, both Blocks and TileEntities are accepted.<p> |
| * For the configuration keys :<br> |
| * modname refers to a String used for display in Waila's config panel.<br> |
| * keyname refers to an unique key used internally for config query (cf {@link IWailaConfigHandler}). Those keys are shared across Waila, keep them unique !<br> |
| * |
| * |
| * @author ProfMobius |
| * |
| */ |
| public interface IWailaRegistrar { |
| /* Add a config option in the section modname with displayed text configtext and access key keyname */ |
| public void addConfig(String modname, String keyname, String configtext); |
| public void addConfig(String modname, String keyname, String configtext, boolean defvalue); |
| public void addConfigRemote(String modname, String keyname, String configtext); |
| public void addConfigRemote(String modname, String keyname, String configtext, boolean defvalue); |
| public void addConfig(String modname, String keyname); |
| public void addConfig(String modname, String keyname, boolean defvalue); |
| public void addConfigRemote(String modname, String keyname); |
| public void addConfigRemote(String modname, String keyname, boolean defvalue); |
| |
| /* Register a stack overrider for the given blockID */ |
| public void registerStackProvider(IWailaDataProvider dataProvider, Class block); |
| |
| /* Same thing, but works on a class hierarchy instead */ |
| public void registerHeadProvider (IWailaDataProvider dataProvider, Class block); |
| public void registerBodyProvider (IWailaDataProvider dataProvider, Class block); |
| public void registerTailProvider (IWailaDataProvider dataProvider, Class block); |
| |
| /* Registering an NBT Provider provides a way to override the default "writeToNBT" way of doing things. */ |
| public void registerNBTProvider(IWailaDataProvider dataProvider, Class block); |
| |
| /* Entity text registration methods */ |
| public void registerHeadProvider (IWailaEntityProvider dataProvider, Class entity); |
| public void registerBodyProvider (IWailaEntityProvider dataProvider, Class entity); |
| public void registerTailProvider (IWailaEntityProvider dataProvider, Class entity); |
| public void registerOverrideEntityProvider (IWailaEntityProvider dataProvider, Class entity); |
| |
| /* Registering an NBT Provider provides a way to override the default "writeToNBT" way of doing things. */ |
| public void registerNBTProvider(IWailaEntityProvider dataProvider, Class entity); |
| |
| /* FMP Providers */ |
| public void registerHeadProvider(IWailaFMPProvider dataProvider, String name); |
| public void registerBodyProvider(IWailaFMPProvider dataProvider, String name); |
| public void registerTailProvider(IWailaFMPProvider dataProvider, String name); |
| |
| /* The block decorators */ |
| public void registerDecorator (IWailaBlockDecorator decorator, Class block); |
| public void registerDecorator (IWailaFMPDecorator decorator, String name); |
| |
| public void registerTooltipRenderer(String name, IWailaTooltipRenderer renderer); |
| |
| /* UNUSED FOR NOW (Will be used for the ingame wiki */ |
| //public void registerDocTextFile (String filename); |
| //public void registerShortDataProvider (IWailaSummaryProvider dataProvider, Class item); |
| } |