package net.geforcemods.securitycraft.gui; import net.geforcemods.securitycraft.api.CustomizableSCTE; import net.geforcemods.securitycraft.containers.BriefcaseInventory; import net.geforcemods.securitycraft.containers.ContainerBlockReinforcer; import net.geforcemods.securitycraft.containers.ContainerBriefcase; import net.geforcemods.securitycraft.containers.ContainerCustomizeBlock; import net.geforcemods.securitycraft.containers.ContainerDisguiseModule; import net.geforcemods.securitycraft.containers.ContainerGeneric; import net.geforcemods.securitycraft.containers.ContainerInventoryScanner; import net.geforcemods.securitycraft.containers.ContainerKeypadFurnace; import net.geforcemods.securitycraft.containers.ModuleInventory; import net.geforcemods.securitycraft.items.ItemCameraMonitor; import net.geforcemods.securitycraft.items.ItemModule; import net.geforcemods.securitycraft.main.mod_SecurityCraft; import net.geforcemods.securitycraft.tileentity.TileEntityIMS; import net.geforcemods.securitycraft.tileentity.TileEntityInventoryScanner; import net.geforcemods.securitycraft.tileentity.TileEntityKeycardReader; import net.geforcemods.securitycraft.tileentity.TileEntityKeypadFurnace; import net.geforcemods.securitycraft.tileentity.TileEntityLogger; import net.geforcemods.securitycraft.util.BlockUtils; import net.geforcemods.securitycraft.util.PlayerUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.fml.common.network.IGuiHandler; public class GuiHandler implements IGuiHandler { public static final int SETUP_KEYCARD_READER_ID = 1; public static final int MRAT_MENU_ID = 2; public static final int MRAT_ACTIVATE_ID = 3; public static final int MRAT_DEACTIVATE_ID = 4; public static final int MRAT_DETONATE_ID = 5; public static final int INVENTORY_SCANNER_GUI_ID = 6; public static final int USERNAME_LOGGER_GUI_ID = 7; public static final int KEYPAD_FURNACE_GUI_ID = 8; public static final int SETUP_PASSWORD_ID = 9; public static final int INSERT_PASSWORD_ID = 10; public static final int IMS_GUI_ID = 11; public static final int CAMERA_MONITOR_GUI_ID = 12; public static final int BRIEFCASE_CODE_SETUP_GUI_ID = 13; public static final int BRIEFCASE_INSERT_CODE_GUI_ID = 14; public static final int BRIEFCASE_GUI_ID = 15; public static final int KEY_CHANGER_GUI_ID = 16; public static final int CUSTOMIZE_BLOCK = 100; public static final int IRC_INFORMATION = 101; public static final int DISGUISE_MODULE = 102; public static final int BLOCK_REINFORCER = 103; @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile_entity = world.getTileEntity(BlockUtils.toPos(x, y, z)); switch(ID) { case SETUP_KEYCARD_READER_ID: return new ContainerGeneric(player.inventory, tile_entity); case MRAT_MENU_ID: return new ContainerGeneric(player.inventory, tile_entity); case MRAT_ACTIVATE_ID: return new ContainerGeneric(player.inventory, tile_entity); case MRAT_DEACTIVATE_ID: return new ContainerGeneric(player.inventory, tile_entity); case MRAT_DETONATE_ID: return new ContainerGeneric(player.inventory, tile_entity); case INVENTORY_SCANNER_GUI_ID: return new ContainerInventoryScanner(player.inventory, (TileEntityInventoryScanner) tile_entity); case USERNAME_LOGGER_GUI_ID: return new ContainerGeneric(player.inventory, tile_entity); case KEYPAD_FURNACE_GUI_ID: return new ContainerKeypadFurnace(player.inventory, (TileEntityKeypadFurnace) tile_entity); case SETUP_PASSWORD_ID: return new ContainerGeneric(player.inventory, tile_entity); case INSERT_PASSWORD_ID: return new ContainerGeneric(player.inventory, tile_entity); case IMS_GUI_ID: return new ContainerGeneric(player.inventory, tile_entity); case CAMERA_MONITOR_GUI_ID: if(!PlayerUtils.isHoldingItem(player, mod_SecurityCraft.cameraMonitor)) return null; return new ContainerGeneric(player.inventory, tile_entity); case BRIEFCASE_CODE_SETUP_GUI_ID: if(!PlayerUtils.isHoldingItem(player, mod_SecurityCraft.briefcase)) return null; return null; case BRIEFCASE_INSERT_CODE_GUI_ID: if(!PlayerUtils.isHoldingItem(player, mod_SecurityCraft.briefcase)) return null; return null; case BRIEFCASE_GUI_ID: if(!PlayerUtils.isHoldingItem(player, mod_SecurityCraft.briefcase)) return null; return new ContainerBriefcase(player, player.inventory, new BriefcaseInventory(player.inventory.getCurrentItem())); case KEY_CHANGER_GUI_ID: if(tile_entity == null || !PlayerUtils.isHoldingItem(player, mod_SecurityCraft.universalKeyChanger)) return null; return new ContainerGeneric(player.inventory, tile_entity); case CUSTOMIZE_BLOCK: return new ContainerCustomizeBlock(player.inventory, (CustomizableSCTE) tile_entity); case IRC_INFORMATION: return new ContainerGeneric(null, null); case DISGUISE_MODULE: if(!(player.inventory.getCurrentItem().getItem() instanceof ItemModule) || !((ItemModule) player.inventory.getCurrentItem().getItem()).canBeCustomized()) return null; return new ContainerDisguiseModule(player, player.inventory, new ModuleInventory(player.inventory.getCurrentItem())); case BLOCK_REINFORCER: return new ContainerBlockReinforcer(player, player.inventory); default: return null; } } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile_entity = world.getTileEntity(BlockUtils.toPos(x, y, z)); switch(ID) { case SETUP_KEYCARD_READER_ID: return new GuiKeycardSetup(player.inventory, (TileEntityKeycardReader) tile_entity); case MRAT_MENU_ID: return new GuiMRAT(player.inventory); case MRAT_ACTIVATE_ID: return new GuiMRATActivate(player.inventory, player.inventory.getCurrentItem()); case MRAT_DEACTIVATE_ID: return new GuiMRATDeactivate(player.inventory, player.inventory.getCurrentItem()); case MRAT_DETONATE_ID: return new GuiMRATDetonate(player.inventory, player.inventory.getCurrentItem()); case INVENTORY_SCANNER_GUI_ID: return new GuiInventoryScanner(player.inventory, (TileEntityInventoryScanner) tile_entity, player); case USERNAME_LOGGER_GUI_ID: return new GuiLogger(player.inventory, (TileEntityLogger) tile_entity); case KEYPAD_FURNACE_GUI_ID: return new GuiKeypadFurnaceInventory(player.inventory, (TileEntityKeypadFurnace) tile_entity); case SETUP_PASSWORD_ID: return new GuiSetPassword(player.inventory, tile_entity, BlockUtils.getBlock(world, x, y, z)); case INSERT_PASSWORD_ID: return new GuiCheckPassword(player.inventory, tile_entity, BlockUtils.getBlock(world, x, y, z)); case IMS_GUI_ID: return new GuiIMS(player.inventory, (TileEntityIMS) tile_entity); case CAMERA_MONITOR_GUI_ID: if(!PlayerUtils.isHoldingItem(player, mod_SecurityCraft.cameraMonitor)) return null; return new GuiCameraMonitor(player.inventory, (ItemCameraMonitor) player.inventory.getCurrentItem().getItem(), player.inventory.getCurrentItem().getTagCompound()); case BRIEFCASE_CODE_SETUP_GUI_ID: if(!PlayerUtils.isHoldingItem(player, mod_SecurityCraft.briefcase)) return null; return new GuiBriefcaseSetup(player.inventory, null); case BRIEFCASE_INSERT_CODE_GUI_ID: if(!PlayerUtils.isHoldingItem(player, mod_SecurityCraft.briefcase)) return null; return new GuiBriefcase(player.inventory, null); case BRIEFCASE_GUI_ID: if(!PlayerUtils.isHoldingItem(player, mod_SecurityCraft.briefcase)) return null; return new GuiBriefcaseInventory(player, player.inventory); case KEY_CHANGER_GUI_ID: if(tile_entity == null || !PlayerUtils.isHoldingItem(player, mod_SecurityCraft.universalKeyChanger)) return null; return new GuiKeyChanger(player.inventory, tile_entity); case CUSTOMIZE_BLOCK: return new GuiCustomizeBlock(player.inventory, (CustomizableSCTE) tile_entity); case IRC_INFORMATION: return new GuiIRCInfo(); case DISGUISE_MODULE: if(!(player.inventory.getCurrentItem().getItem() instanceof ItemModule) || !((ItemModule) player.inventory.getCurrentItem().getItem()).canBeCustomized()) return null; return new GuiDisguiseModule(player, player.inventory); case BLOCK_REINFORCER: return new GuiBlockReinforcer(new ContainerBlockReinforcer(player, player.inventory)); default: return null; } } }