001/*
002 * Forge Mod Loader
003 * Copyright (c) 2012-2013 cpw.
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the GNU Lesser Public License v2.1
006 * which accompanies this distribution, and is available at
007 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
008 * 
009 * Contributors:
010 *     cpw - implementation
011 */
012
013package cpw.mods.fml.common.modloader;
014
015import java.util.Random;
016
017import net.minecraft.entity.player.EntityPlayer;
018import net.minecraft.inventory.IInventory;
019import net.minecraft.item.ItemStack;
020import net.minecraft.network.INetworkManager;
021import net.minecraft.network.NetServerHandler;
022import net.minecraft.network.packet.NetHandler;
023import net.minecraft.network.packet.Packet250CustomPayload;
024import net.minecraft.world.World;
025
026import cpw.mods.fml.common.TickType;
027import cpw.mods.fml.relauncher.Side;
028import cpw.mods.fml.relauncher.SideOnly;
029
030/**
031 *
032 * Marker interface for BaseMod
033 *
034 * @author cpw
035 *
036 */
037public interface BaseModProxy
038{
039    void modsLoaded();
040
041    void load();
042
043    String getName();
044
045    String getPriorities();
046
047    String getVersion();
048
049    boolean doTickInGUI(TickType type, boolean end, Object... tickData);
050    boolean doTickInGame(TickType type, boolean end, Object... tickData);
051    void generateSurface(World w, Random random, int i, int j);
052    void generateNether(World w, Random random, int i, int j);
053    int addFuel(int itemId, int damage);
054    void takenFromCrafting(EntityPlayer player, ItemStack item, IInventory craftMatrix);
055    void takenFromFurnace(EntityPlayer player, ItemStack item);
056
057    public abstract void onClientLogout(INetworkManager manager);
058
059    public abstract void onClientLogin(EntityPlayer player);
060
061    public abstract void serverDisconnect();
062
063    public abstract void serverConnect(NetHandler handler);
064
065    public abstract void receiveCustomPacket(Packet250CustomPayload packet);
066
067    public abstract void clientChat(String text);
068
069    public abstract void onItemPickup(EntityPlayer player, ItemStack item);
070
071    public abstract void serverCustomPayload(NetServerHandler handler, Packet250CustomPayload packet);
072
073    public abstract void serverChat(NetServerHandler source, String message);
074}