package net.kennux.cubicworld.pluginapi;
import net.kennux.cubicworld.gui.GuiManager;
import net.kennux.cubicworld.input.InputManager;
/**
* Implement this class in your plugin. It will handle loading and registering
* all your extensions.
*
* @author KennuX
*
*/
public abstract class APlugin
{
/**
* <pre>
* Load all you entity types in here and add them to the entity system.
*
* Called on client and server.
* </pre>
*/
public abstract void defineEntityTypes();
/**
* <pre>
* Define all your input key actions in here.
* </pre>
*/
public abstract void defineInputHandlers(InputManager inputManager);
/**
* <pre>
* Register all your item types in here.
* Use ItemSystem.registerItemType().
* </pre>
*/
public abstract void defineItemTypes();
/**
* <pre>
* Define all your packets from server -> client in here.
*
* Called only on client.
* </pre>
*/
public abstract void defineProtocol();
/**
* <pre>
* Loads all voxel types for this plugin.
* Register them to VoxelEngine with registerType().
*
* Called on client and server.
* </pre>
*/
public abstract void defineVoxelTypes();
/**
* <pre>
* Define all your gui windows in here.
*
* Called only on client.
* </pre>
*/
public abstract void initializeGuiManager(GuiManager guiManager);
/**
* <pre>
* Load your XMLOverlayLoader object loader's in here.
* This function may will get used to load other things in future!
*
* Called only on client.
* </pre>
*/
public abstract void initializeGuiSystem();
/**
* <pre>
* Gets called when this plugin should load it's models.
* There is no need to register them to anything.
* You can use them later to set mesh rendered voxel types.
*
* Called only on client.
* </pre>
*/
public abstract void loadModels();
/**
* <pre>
* Gets called when this plugin should load it's sounds.
*
* Called only on client.
* </pre>
*/
public abstract void loadSounds();
// Bootstrap
/**
* <pre>
* Gets called when this plugin should load it's textures and add them to
* the voxel engine or item system.
*
* Called only on client.
* </pre>
*/
public abstract void loadTextures();
}