/* * Copyright (c) CovertJaguar, 2014 http://railcraft.info * * This code is the property of CovertJaguar * and may only be used with explicit written * permission unless otherwise specified on the * license page at http://railcraft.info/wiki/info:license. */ package mods.railcraft.common.gui; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.network.IGuiHandler; import org.apache.logging.log4j.Level; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import mods.railcraft.client.gui.FactoryGui; import mods.railcraft.common.core.Railcraft; import mods.railcraft.common.gui.containers.FactoryContainer; import mods.railcraft.common.util.misc.Game; public class GuiHandler implements IGuiHandler { public static void openGui(EnumGui gui, EntityPlayer player, World world, int x, int y, int z) { if(Game.isHost(world)) { if(gui.hasContainer()) { player.openGui(Railcraft.getMod(), gui.ordinal(), world, x, y, z); } } else if(!gui.hasContainer()) { TileEntity tile = world.getTileEntity(x, y, z); FMLClientHandler.instance().displayGuiScreen(player, FactoryGui.build(gui, player.inventory, tile, world, x, y, z)); } } public static void openGui(EnumGui gui, EntityPlayer player, World world, Entity entity) { if(Game.isHost(world)) { if(gui.hasContainer()) { player.openGui(Railcraft.getMod(), gui.ordinal(), world, entity.getEntityId(), -1, 0); } } else if(!gui.hasContainer()) { FMLClientHandler.instance().displayGuiScreen(player, FactoryGui.build(gui, player.inventory, entity, world, entity.getEntityId(), -1, 0)); } } @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { if(y < 0) { Entity entity = world.getEntityByID(x); if(entity == null) { Game.log(Level.WARN, "[Server] Entity not found when opening GUI: {0}", x); return null; } return FactoryContainer.build(EnumGui.fromOrdinal(ID), player.inventory, entity, world, x, y, z); } TileEntity tile = world.getTileEntity(x, y, z); return FactoryContainer.build(EnumGui.fromOrdinal(ID), player.inventory, tile, world, x, y, z); } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { if(y < 0) { Entity entity = world.getEntityByID(x); if(entity == null) { Game.log(Level.WARN, "[Client] Entity not found when opening GUI: {0}", x); return null; } return FactoryGui.build(EnumGui.fromOrdinal(ID), player.inventory, entity, world, x, y, z); } TileEntity tile = world.getTileEntity(x, y, z); return FactoryGui.build(EnumGui.fromOrdinal(ID), player.inventory, tile, world, x, y, z); } }