package com.cricketcraft.chisel.utils;
import java.util.ArrayList;
import java.util.Collections;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.IGuiHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
public abstract class GuiHandler implements Comparable<Object> {
static ArrayList<GuiHandler> items = new ArrayList<GuiHandler>();
int index;
Object mod;
String name;
public GuiHandler(String n) {
items.add(this);
name = n;
}
public void open(EntityPlayer player, World world, int x, int y, int z) {
player.openGui(mod, index, world, x, y, z);
}
@Override
public int compareTo(Object a) {
return name.compareTo(((GuiHandler) a).name);
}
public static void register(Object mod) {
Collections.sort(items);
int index = 0;
for (GuiHandler h : items) {
h.mod = mod;
h.index = index++;
}
NetworkRegistry.INSTANCE.registerGuiHandler(mod, new IGuiHandler() {
@Override
public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
if (id < 0 || id >= items.size()) {
return null;
}
return items.get(id).getServerGuiElement(id, player, world, x, y, z);
}
@Override
public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
if (id < 0 || id >= items.size()) {
return null;
}
return items.get(id).getClientGuiElement(id, player, world, x, y, z);
}
});
}
public abstract Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z);
public abstract Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z);
}