package com.agilemods.materiamuto.common.network;
import com.agilemods.materiamuto.client.gui.GuiAlchemicalChest;
import com.agilemods.materiamuto.common.inventory.ContainerAlchemicalChest;
import com.agilemods.materiamuto.common.tile.TileAlchemicalChest;
import cpw.mods.fml.common.network.IGuiHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import com.agilemods.materiamuto.MateriaMuto;
import com.agilemods.materiamuto.client.gui.GuiAlchemicalBag;
import com.agilemods.materiamuto.client.gui.GuiCondenser;
import com.agilemods.materiamuto.common.inventory.ContainerAlchemicalBag;
import com.agilemods.materiamuto.common.inventory.ContainerCondenser;
import com.agilemods.materiamuto.common.tile.TileCondenser;
public class GuiHandler implements IGuiHandler {
public static enum Type {
GUI_ALCHEMICAL_BAG,
GUI_CONDENSER,
GUI_ALCHEMICAL_CHEST;
public void openGui(EntityPlayer entityPlayer) {
openGui(entityPlayer, 0, 0, 0);
}
public void openGui(EntityPlayer entityPlayer, int x, int y, int z) {
entityPlayer.openGui(MateriaMuto.instance, this.ordinal(), entityPlayer.worldObj, x, y, z);
}
private static Type[] values;
public static Type[] all() {
if (values == null) {
values = values();
}
return values;
}
public static Type get(int ordinal) {
return all()[ordinal % all().length];
}
}
@Override
public Object getServerGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z) {
Type type = Type.get(id);
switch (type) {
case GUI_ALCHEMICAL_BAG:
return new ContainerAlchemicalBag(entityPlayer, entityPlayer.getHeldItem());
case GUI_CONDENSER:
return new ContainerCondenser(entityPlayer, (TileCondenser) world.getTileEntity(x, y, z));
case GUI_ALCHEMICAL_CHEST:
return new ContainerAlchemicalChest(entityPlayer, (TileAlchemicalChest) world.getTileEntity(x, y, z));
}
return null;
}
@Override
public Object getClientGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z) {
Type type = Type.get(id);
switch (type) {
case GUI_ALCHEMICAL_BAG:
return new GuiAlchemicalBag(entityPlayer, entityPlayer.getHeldItem());
case GUI_CONDENSER:
return new GuiCondenser(entityPlayer, (TileCondenser) world.getTileEntity(x, y, z));
case GUI_ALCHEMICAL_CHEST:
return new GuiAlchemicalChest(entityPlayer, (TileAlchemicalChest) world.getTileEntity(x, y, z));
}
return null;
}
}