87 lines
3.6 KiB
Java
87 lines
3.6 KiB
Java
package storagecraft.gui;
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.inventory.Container;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.math.BlockPos;
|
|
import net.minecraft.world.World;
|
|
import net.minecraftforge.fml.common.network.IGuiHandler;
|
|
import storagecraft.StorageCraftGUI;
|
|
import storagecraft.container.*;
|
|
import storagecraft.storage.IStorageGui;
|
|
import storagecraft.tile.*;
|
|
|
|
public class GuiHandler implements IGuiHandler
|
|
{
|
|
private Container getContainer(int ID, EntityPlayer player, TileEntity tile)
|
|
{
|
|
switch (ID)
|
|
{
|
|
case StorageCraftGUI.CONTROLLER:
|
|
return new ContainerController(player);
|
|
case StorageCraftGUI.GRID:
|
|
return new ContainerGrid(player, (TileGrid) tile);
|
|
case StorageCraftGUI.DRIVE:
|
|
return new ContainerDrive(player, (TileDrive) tile);
|
|
case StorageCraftGUI.IMPORTER:
|
|
return new ContainerImporter(player, (TileImporter) tile);
|
|
case StorageCraftGUI.EXPORTER:
|
|
return new ContainerExporter(player, (TileExporter) tile);
|
|
case StorageCraftGUI.DETECTOR:
|
|
return new ContainerDetector(player, (TileDetector) tile);
|
|
case StorageCraftGUI.SOLDERER:
|
|
return new ContainerSolderer(player, (TileSolderer) tile);
|
|
case StorageCraftGUI.WIRELESS_TRANSMITTER:
|
|
return new ContainerWirelessTransmitter(player, (TileWirelessTransmitter) tile);
|
|
case StorageCraftGUI.DESTRUCTOR:
|
|
return new ContainerDestructor(player);
|
|
case StorageCraftGUI.CONSTRUCTOR:
|
|
return new ContainerConstructor(player, (TileConstructor) tile);
|
|
case StorageCraftGUI.STORAGE:
|
|
return new ContainerStorage(player, ((IStorageGui) tile).getInventory());
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
|
|
{
|
|
return getContainer(ID, player, world.getTileEntity(new BlockPos(x, y, z)));
|
|
}
|
|
|
|
@Override
|
|
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
|
|
{
|
|
TileEntity tile = world.getTileEntity(new BlockPos(x, y, z));
|
|
|
|
switch (ID)
|
|
{
|
|
case StorageCraftGUI.CONTROLLER:
|
|
return new GuiController((ContainerController) getContainer(ID, player, tile), (TileController) tile);
|
|
case StorageCraftGUI.GRID:
|
|
return new GuiGrid((ContainerGrid) getContainer(ID, player, tile), (TileGrid) tile);
|
|
case StorageCraftGUI.DRIVE:
|
|
return new GuiDrive((ContainerDrive) getContainer(ID, player, tile), (TileDrive) tile);
|
|
case StorageCraftGUI.IMPORTER:
|
|
return new GuiImporter((ContainerImporter) getContainer(ID, player, tile), (TileImporter) tile);
|
|
case StorageCraftGUI.EXPORTER:
|
|
return new GuiExporter((ContainerExporter) getContainer(ID, player, tile), (TileExporter) tile);
|
|
case StorageCraftGUI.DETECTOR:
|
|
return new GuiDetector((ContainerDetector) getContainer(ID, player, tile), (TileDetector) tile);
|
|
case StorageCraftGUI.SOLDERER:
|
|
return new GuiSolderer((ContainerSolderer) getContainer(ID, player, tile), (TileSolderer) tile);
|
|
case StorageCraftGUI.WIRELESS_TRANSMITTER:
|
|
return new GuiWirelessTransmitter((ContainerWirelessTransmitter) getContainer(ID, player, tile), (TileWirelessTransmitter) tile);
|
|
case StorageCraftGUI.DESTRUCTOR:
|
|
return new GuiDestructor((ContainerDestructor) getContainer(ID, player, tile), (TileDestructor) tile);
|
|
case StorageCraftGUI.CONSTRUCTOR:
|
|
return new GuiConstructor((ContainerConstructor) getContainer(ID, player, tile), (TileConstructor) tile);
|
|
case StorageCraftGUI.STORAGE:
|
|
return new GuiStorage((ContainerStorage) getContainer(ID, player, tile), (IStorageGui) tile);
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
}
|