package codechicken.nei.guihook;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.item.ItemStack;
/**
* Provides more general gui calls as well as functions for more integration between objects
*/
public interface IContainerObjectHandler {
/**
* Called once per tick in the gui.
*
* @param gui An instance of the currentscreen
*/
public void guiTick(GuiContainer gui);
/**
* Called when the same gui is reshown.
*
* @param gui An instance of the currentscreen
*/
public void refresh(GuiContainer gui);
/**
* Called when the gui is shown
*
* @param gui An instance of the currentscreen
*/
public void load(GuiContainer gui);
/**
* Do not return an item that is handled somewhere else
*
* @param gui An instance of the currentscreen
* @param mousex The x position of the mouse in pixels from left
* @param mousey The y position of the mouse in pixels from top
* @return The itemstack from one of your objects that the mouse is hovering over
*/
public ItemStack getStackUnderMouse(GuiContainer gui, int mousex, int mousey);
/**
* @param gui An instance of the currentscreen
* @param mousex The x position of the mouse in pixels from left
* @param mousey The y position of the mouse in pixels from top
* @return true if there is an object of yours obscuring the slot that the mouse would otherwise be hovering over.
*/
public boolean objectUnderMouse(GuiContainer gui, int mousex, int mousey);
/**
* @param gui An instance of the currentscreen
* @return false if tooltips should not be shown. Eg. if you have a custom object being held
*/
public boolean shouldShowTooltip(GuiContainer gui);
}