package micdoodle8.mods.galacticraft.api.recipe;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
/**
* Schematic page to be added to NASA Workbench
*/
public interface ISchematicPage extends Comparable<ISchematicPage>
{
/**
* Get the page ID. Make it configurable since it has to be unique between
* other Galacticraft addons. Determines order of schematics.
*/
public int getPageID();
/**
* The GUI ID of this page. Used like any other GUI IDs to determine which
* container and GUI to open. Again, must be unique between mods so make it
* configurable.
*/
public int getGuiID();
/**
* The item required to unlock this schematic. The item class must implement
* ISchematicItem, since it goes in the NASA Workbench unlock slot.
*/
public ItemStack getRequiredItem();
/**
* The resulting client-side GUI for this page
*
* @param player The player opening this GUI
* @param pos Coordinates of the NASA Workbench
* @return the GUI to be opened with this schematic
*/
@SideOnly(Side.CLIENT)
public GuiScreen getResultScreen(EntityPlayer player, BlockPos pos);
/**
* The resulting container for this page
*
* @param player The player opening this GUI
* @param pos Coordinates of the NASA Workbench
* @return the container to be opened with this schematic
*/
public Container getResultContainer(EntityPlayer player, BlockPos pos);
}