package zmaster587.advancedRocketry.inventory; import zmaster587.advancedRocketry.api.satellite.SatelliteBase; import zmaster587.advancedRocketry.dimension.DimensionManager; import zmaster587.advancedRocketry.satellite.SatelliteOreMapping; import zmaster587.libVulpes.inventory.modules.IModularInventory; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import cpw.mods.fml.common.network.IGuiHandler; public class GuiHandler implements IGuiHandler { public enum guiId { RocketBuilder, BlastFurnace, OreMappingSatellite } //X coord is entity ID num if entity @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { Object tile; if(y > -1) tile = world.getTileEntity(x, y, z); else if(x == -1) { ItemStack stack = player.getHeldItem(); //If there is latency or some desync odd things can happen so check for that if(stack == null || !(stack.getItem() instanceof IModularInventory)) { return null; } tile = player.getHeldItem().getItem(); } else tile = world.getEntityByID(x); if(ID == guiId.OreMappingSatellite.ordinal()) { SatelliteBase satellite = DimensionManager.getInstance().getSatellite(y); if(satellite == null || !(satellite instanceof SatelliteOreMapping) || satellite.getDimensionId() != world.provider.dimensionId) satellite = null; return new ContainerOreMappingSatallite((SatelliteOreMapping) satellite, player.inventory); } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { Object tile; if(y > -1) tile = world.getTileEntity(x, y, z); else if(x == -1) { ItemStack stack = player.getHeldItem(); //If there is latency or some desync odd things can happen so check for that if(stack == null || !(stack.getItem() instanceof IModularInventory)) { return null; } tile = player.getHeldItem().getItem(); } else tile = world.getEntityByID(x); if(ID == guiId.OreMappingSatellite.ordinal()) { SatelliteBase satellite = DimensionManager.getInstance().getSatellite(y); if(satellite == null || !(satellite instanceof SatelliteOreMapping) || satellite.getDimensionId() != world.provider.dimensionId) satellite = null; return new GuiOreMappingSatellite((SatelliteOreMapping) satellite, player); } return null; } }