/** * MrCrayfish's Furniture Mod * Copyright (C) 2016 MrCrayfish (http://www.mrcrayfish.com/) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.mrcrayfish.furniture.gui; import com.mrcrayfish.furniture.blocks.BlockBedsideCabinet; import com.mrcrayfish.furniture.blocks.BlockCabinet; import com.mrcrayfish.furniture.gui.containers.ContainerBedsideCabinet; import com.mrcrayfish.furniture.gui.containers.ContainerBin; import com.mrcrayfish.furniture.gui.containers.ContainerCabinet; import com.mrcrayfish.furniture.gui.containers.ContainerComputer; import com.mrcrayfish.furniture.gui.containers.ContainerCrate; import com.mrcrayfish.furniture.gui.containers.ContainerDishwasher; import com.mrcrayfish.furniture.gui.containers.ContainerEnvelope; import com.mrcrayfish.furniture.gui.containers.ContainerEski; import com.mrcrayfish.furniture.gui.containers.ContainerFreezer; import com.mrcrayfish.furniture.gui.containers.ContainerFridge; import com.mrcrayfish.furniture.gui.containers.ContainerMailBox; import com.mrcrayfish.furniture.gui.containers.ContainerMicrowave; import com.mrcrayfish.furniture.gui.containers.ContainerOven; import com.mrcrayfish.furniture.gui.containers.ContainerPackage; import com.mrcrayfish.furniture.gui.containers.ContainerPresent; import com.mrcrayfish.furniture.gui.containers.ContainerPrinter; import com.mrcrayfish.furniture.gui.containers.ContainerWallCabinet; import com.mrcrayfish.furniture.gui.containers.ContainerWashingMachine; import com.mrcrayfish.furniture.items.ItemEnvelope; import com.mrcrayfish.furniture.items.ItemEnvelopeSigned; import com.mrcrayfish.furniture.items.ItemPackage; import com.mrcrayfish.furniture.items.ItemPackageSigned; import com.mrcrayfish.furniture.items.ItemPresent; import com.mrcrayfish.furniture.tileentity.TileEntityBedsideCabinet; import com.mrcrayfish.furniture.tileentity.TileEntityBin; import com.mrcrayfish.furniture.tileentity.TileEntityCabinet; import com.mrcrayfish.furniture.tileentity.TileEntityCabinetKitchen; import com.mrcrayfish.furniture.tileentity.TileEntityComputer; import com.mrcrayfish.furniture.tileentity.TileEntityCrate; import com.mrcrayfish.furniture.tileentity.TileEntityDishwasher; import com.mrcrayfish.furniture.tileentity.TileEntityDoorMat; import com.mrcrayfish.furniture.tileentity.TileEntityEsky; import com.mrcrayfish.furniture.tileentity.TileEntityFreezer; import com.mrcrayfish.furniture.tileentity.TileEntityFridge; import com.mrcrayfish.furniture.tileentity.TileEntityMailBox; import com.mrcrayfish.furniture.tileentity.TileEntityMicrowave; import com.mrcrayfish.furniture.tileentity.TileEntityOven; import com.mrcrayfish.furniture.tileentity.TileEntityPrinter; import com.mrcrayfish.furniture.tileentity.TileEntityWallCabinet; import com.mrcrayfish.furniture.tileentity.TileEntityWashingMachine; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.common.network.IGuiHandler; public class GuiHandler implements IGuiHandler { @Override public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile_entity = world.getTileEntity(new BlockPos(x, y, z)); if (tile_entity instanceof TileEntityFridge) { return new ContainerFridge(player.inventory, (TileEntityFridge) tile_entity); } if (tile_entity instanceof TileEntityFreezer) { return new ContainerFreezer(player.inventory, (TileEntityFreezer) tile_entity); } if (tile_entity instanceof TileEntityCabinet) { return new ContainerCabinet(player.inventory, (TileEntityCabinet) tile_entity); } if (tile_entity instanceof TileEntityBedsideCabinet) { return new ContainerBedsideCabinet(player.inventory, (TileEntityBedsideCabinet) tile_entity); } if (tile_entity instanceof TileEntityOven) { return new ContainerOven(player.inventory, (TileEntityOven) tile_entity); } if (tile_entity instanceof TileEntityMailBox) { return new ContainerMailBox(player.inventory, (TileEntityMailBox) tile_entity); } if (tile_entity instanceof TileEntityComputer) { return new ContainerComputer(player.inventory, (TileEntityComputer) tile_entity); } if (tile_entity instanceof TileEntityPrinter) { return new ContainerPrinter(player.inventory, (TileEntityPrinter) tile_entity); } if (tile_entity instanceof TileEntityBin) { return new ContainerBin(player.inventory, (TileEntityBin) tile_entity); } if (tile_entity instanceof TileEntityWallCabinet) { return new ContainerWallCabinet(player.inventory, (TileEntityWallCabinet) tile_entity); } if (tile_entity instanceof TileEntityMicrowave) { return new ContainerMicrowave(player.inventory, (TileEntityMicrowave) tile_entity); } if (tile_entity instanceof TileEntityWashingMachine) { return new ContainerWashingMachine(player.inventory, (TileEntityWashingMachine) tile_entity); } if (tile_entity instanceof TileEntityDishwasher) { return new ContainerDishwasher(player.inventory, (TileEntityDishwasher) tile_entity); } if (tile_entity instanceof TileEntityCabinetKitchen) { return new ContainerCabinet(player.inventory, (TileEntityCabinetKitchen) tile_entity); } if (tile_entity instanceof TileEntityEsky) { return new ContainerEski(player.inventory, (TileEntityEsky) tile_entity); } if (tile_entity instanceof TileEntityCrate) { return new ContainerCrate(player.inventory, (TileEntityCrate) tile_entity); } if (id == 5) { return new ContainerEnvelope(player.inventory, ItemEnvelope.getInv(player)); } if (id == 6) { return new ContainerEnvelope(player.inventory, ItemEnvelopeSigned.getInv(player)); } if (id == 7) { return new ContainerPackage(player.inventory, ItemPackage.getInv(player)); } if (id == 8) { return new ContainerPackage(player.inventory, ItemPackageSigned.getInv(player)); } if (id == 9) { return new ContainerPresent(player.inventory, ItemPresent.getInv(player, player.getActiveHand())); } return null; } @Override public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile_entity = world.getTileEntity(new BlockPos(x, y, z)); if (tile_entity instanceof TileEntityFridge) { return new GuiFridge(player.inventory, (TileEntityFridge) tile_entity); } if (tile_entity instanceof TileEntityFreezer) { return new GuiFreezer(player.inventory, (TileEntityFreezer) tile_entity); } if (tile_entity instanceof TileEntityCabinet) { return new GuiCabinet(player.inventory, (TileEntityCabinet) tile_entity, (BlockCabinet) tile_entity.getBlockType()); } if (tile_entity instanceof TileEntityBedsideCabinet) { return new GuiBedsideCabinet(player.inventory, (TileEntityBedsideCabinet) tile_entity, (BlockBedsideCabinet) tile_entity.getBlockType()); } if (tile_entity instanceof TileEntityOven) { return new GuiOven(player.inventory, (TileEntityOven) tile_entity); } if (tile_entity instanceof TileEntityMailBox && id == 0) { return new GuiMailBox(player.inventory, (TileEntityMailBox) tile_entity); } if (tile_entity instanceof TileEntityComputer) { return new GuiComputer(player.inventory, (TileEntityComputer) tile_entity); } if (tile_entity instanceof TileEntityPrinter) { return new GuiPrinter(player.inventory, (TileEntityPrinter) tile_entity); } if (tile_entity instanceof TileEntityBin) { return new GuiBin(player.inventory, (TileEntityBin) tile_entity, x, y, z); } if (tile_entity instanceof TileEntityWallCabinet) { return new GuiWallCabinet(player.inventory, (TileEntityWallCabinet) tile_entity); } if (tile_entity instanceof TileEntityMicrowave) { return new GuiMicrowave(player.inventory, (TileEntityMicrowave) tile_entity); } if (tile_entity instanceof TileEntityWashingMachine) { return new GuiWashingMachine(player.inventory, (TileEntityWashingMachine) tile_entity); } if (tile_entity instanceof TileEntityDishwasher) { return new GuiDishwasher(player.inventory, (TileEntityDishwasher) tile_entity); } if (tile_entity instanceof TileEntityCabinetKitchen) { return new GuiKitchenCabinet(player.inventory, (TileEntityCabinetKitchen) tile_entity); } if (tile_entity instanceof TileEntityEsky) { return new GuiEski(player.inventory, (TileEntityEsky) tile_entity); } if (tile_entity instanceof TileEntityDoorMat) { return new GuiDoorMat(x, y, z); } if (tile_entity instanceof TileEntityCrate) { return new GuiCrate(player.inventory, (TileEntityCrate) tile_entity, x, y, z); } ItemStack mail = null; if (player.inventory.getCurrentItem() != null) { mail = player.inventory.getCurrentItem(); } if (id == 5) { return new GuiEnvelope(player.inventory, ItemEnvelope.getInv(player), player, mail); } if (id == 6) { return new GuiEnvelope(player.inventory, ItemEnvelopeSigned.getInv(player), player, mail); } if (id == 7) { return new GuiPackage(player.inventory, ItemPackage.getInv(player), player, mail); } if (id == 8) { return new GuiPackage(player.inventory, ItemPackageSigned.getInv(player), player, mail); } if (id == 9) { return new GuiPresent(player.inventory, ItemPresent.getInv(player, player.getActiveHand()), player, mail); } if (id == 10) { return new GuiRecipeBook(); } return null; } }