    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}