package crazypants.enderio.gui;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import com.enderio.core.api.client.render.IWidgetIcon;
import com.enderio.core.api.client.render.IWidgetMap;
public enum IconEIO implements IWidgetIcon {
TICK(0, 192),
MINUS(16, 192),
LOCK_UNLOCKED(32, 192),
LOCK_LOCKED(48, 192),
CROSS(64, 192),
PLUS(80, 192),
ARROWS(176, 192),
ADD(112, 240),
SUBTRACT(96, 240),
WRENCH_OVERLAY_POWER(0, 112),
WRENCH_OVERLAY_POWER_OFF(0 + 48, 112),
WRENCH_OVERLAY_REDSTONE(16, 112),
WRENCH_OVERLAY_REDSTONE_OFF(16 + 48, 112),
WRENCH_OVERLAY_FLUID(0, 128),
WRENCH_OVERLAY_FLUID_OFF(0 + 48, 128),
WRENCH_OVERLAY_ITEM(16, 128),
WRENCH_OVERLAY_ITEM_OFF(16 + 48, 128),
WRENCH_OVERLAY_GAS(32, 112),
WRENCH_OVERLAY_GAS_OFF(32 + 48, 112),
WRENCH_OVERLAY_ME(32, 128),
WRENCH_OVERLAY_ME_OFF(32 + 48, 128),
WRENCH_OVERLAY_OC(96, 112),
WRENCH_OVERLAY_OC_OFF(96, 128),
PROBE_OVERLAY_PROBE(112, 192, 16, 16),
PROBE_OVERLAY_COPY(128, 192, 16, 16),
PROBE_OVERLAY_PROBE_OFF(144, 192, 16, 16),
PROBE_OVERLAY_COPY_OFF(160, 192, 16, 16),
ACTIVE_TAB(205, 0, 19, 24),
INACTIVE_TAB(237, 0, 19, 24),
REDSTONE_MODE_WITHOUT_SIGNAL(64, 224),
REDSTONE_MODE_WITH_SIGNAL(80, 224),
REDSTONE_MODE_ALWAYS(96, 224),
REDSTONE_MODE_NEVER(112, 224),
FILTER_META(160, 224),
FILTER_NBT(176, 224),
FILTER_ORE_DICT(192, 224),
FILTER_WHITELIST(0, 224),
FILTER_BLACKLIST(0, 240),
FILTER_STICKY(16, 240),
FILTER_STICKY_OFF(32, 240),
FILTER_META_OFF(208, 224),
FILTER_NBT_OFF(224, 224),
FILTER_ORE_DICT_OFF(240, 224),
FILTER_FUZZY_DISABLED(240, 176),
FILTER_FUZZY_25(224, 176),
FILTER_FUZZY_50(208, 176),
FILTER_FUZZY_75(192, 176),
FILTER_FUZZY_99(176, 176),
@Deprecated
INPUT_OLD(128, 197 + 32, 30, 14),
@Deprecated
OUTPUT_OLD(128, 180 + 32, 30, 14),
INPUT(32, 176, 16, 8),
OUTPUT(48, 176, 16, 8),
INPUT_OUTPUT(32, 176, 32, 8),
DISABLED(64, 176),
LOOP(80, 176),
LOOP_OFF(96, 176),
ROUND_ROBIN(64, 240),
ROUND_ROBIN_OFF(80, 240),
IO_CONFIG_UP(16, 224),
IO_CONFIG_DOWN(32, 224),
IO_WHATSIT(128, 208),
RECIPE(0, 224),
SOUND(176, 208),
XP(128, 224),
XP_PLUS(144, 224),
SINGLE_PLUS(240, 192),
DOUBLE_PLUS(224, 192),
TRIPLE_PLUS(208, 192),
SINGLE_MINUS(240, 208),
DOUBLE_MINUS(224, 208),
TRIPLE_MINUS(208, 208),
ENDER_RAIL(192, 208),
FILTER(192, 192),
ITEM_STACK(144, 208),
ITEM_SINGLE(160, 208),
SUN(160, 240),
RAIN(176, 240),
THUNDER(192, 240),
SORT_DIR_DOWN(0, 176),
SORT_DIR_UP(16, 176),
SORT_NAME_DOWN(208, 240, SORT_DIR_DOWN),
SORT_NAME_UP(208, 240, SORT_DIR_UP),
SORT_SIZE_DOWN(224, 240, SORT_DIR_DOWN),
SORT_SIZE_UP(224, 240, SORT_DIR_UP),
SORT_MOD_DOWN(240, 240, SORT_DIR_DOWN),
SORT_MOD_UP(240, 240, SORT_DIR_UP);
// Texture size is actually 512 but everything is aligned to a 256 grid
private static final int TEX_SIZE = 256;
public final int x;
public final int y;
public final int width;
public final int height;
public final IconEIO overlay;
public static final ResourceLocation TEXTURE = new ResourceLocation("enderio:textures/gui/widgetsv2.png");
public static final IWidgetMap map = new IWidgetMap.WidgetMapImpl(TEX_SIZE, TEXTURE) {
@Override
public void render(IWidgetIcon widget, double x, double y, double width, double height, double zLevel, boolean doDraw,
boolean flipY) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
super.render(widget, x, y, width, height, zLevel, doDraw, flipY);
}
};
IconEIO(int x, int y) {
this(x, y, null);
}
IconEIO(int x, int y, IconEIO overlay) {
this(x, y, 16, 16, overlay);
}
IconEIO(int x, int y, int width, int height) {
this(x, y, width, height, null);
}
private IconEIO(int x, int y, int width, int height, IconEIO overlay) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
this.overlay = overlay;
}
@Override
public IWidgetMap getMap() {
return map;
}
@Override
public int getX() {
return x;
}
@Override
public int getY() {
return y;
}
@Override
public int getWidth() {
return width;
}
@Override
public int getHeight() {
return height;
}
@Override
public IconEIO getOverlay() {
return overlay;
}
}