    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.network;
    014
    015import net.minecraft.entity.player.EntityPlayer;
    016import net.minecraft.world.World;
    017
    018public interface IGuiHandler
    019{
    020    /**
    021     * Returns a Server side Container to be displayed to the user.
    022     *
    023     * @param ID
    024     *            The Gui ID Number
    025     * @param player
    026     *            The player viewing the Gui
    027     * @param world
    028     *            The current world
    029     * @param x
    030     *            X Position
    031     * @param y
    032     *            Y Position
    033     * @param z
    034     *            Z Position
    035     * @return A GuiScreen/Container to be displayed to the user, null if none.
    036     */
    037    public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z);
    038    /**
    039     * Returns a Container to be displayed to the user. On the client side, this
    040     * needs to return a instance of GuiScreen On the server side, this needs to
    041     * return a instance of Container
    042     *
    043     * @param ID
    044     *            The Gui ID Number
    045     * @param player
    046     *            The player viewing the Gui
    047     * @param world
    048     *            The current world
    049     * @param x
    050     *            X Position
    051     * @param y
    052     *            Y Position
    053     * @param z
    054     *            Z Position
    055     * @return A GuiScreen/Container to be displayed to the user, null if none.
    056     */
    057    public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z);
    058}