2014-12-15 00:11:48 +00:00
|
|
|
package com.cricketcraft.chisel.utils;
|
2014-03-16 22:26:43 +01:00
|
|
|
|
2014-12-11 20:09:54 -05:00
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Collections;
|
2014-03-16 22:26:43 +01:00
|
|
|
|
2014-12-14 20:05:39 +00:00
|
|
|
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;
|
|
|
|
|
|
2015-01-07 19:50:18 -05:00
|
|
|
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);
|
2014-03-16 22:26:43 +01:00
|
|
|
}
|