package mods.eln.gui;
import mods.eln.gui.GuiTextFieldEln.GuiTextFieldElnObserver;
import mods.eln.gui.IGuiObject.IGuiObjectObserver;
import net.minecraft.client.gui.GuiScreen;
public abstract class GuiScreenEln extends GuiScreen implements GuiTextFieldElnObserver, IGuiObjectObserver {
protected GuiHelper helper;
protected abstract GuiHelper newHelper();
@Override
public void initGui() {
super.initGui();
helper = newHelper();
}
public GuiTextFieldEln newGuiTextField(int x, int y, int width) {
GuiTextFieldEln o = helper.newGuiTextField(x, y, width);
o.setObserver(this);
return o;
}
public GuiButtonEln newGuiButton(int x, int y, int width, String name) {
GuiButtonEln o = helper.newGuiButton(x, y, width, name);
o.setObserver(this);
return o;
}
public GuiVerticalTrackBar newGuiVerticalTrackBar(int x, int y, int width, int height) {
GuiVerticalTrackBar o = helper.newGuiVerticalTrackBar(x, y, width, height);
o.setObserver(this);
return o;
}
public GuiVerticalTrackBarHeat newGuiVerticalTrackBarHeat(int x, int y, int width, int height) {
GuiVerticalTrackBarHeat o = helper.newGuiVerticalTrackBarHeat(x, y, width, height);
o.setObserver(this);
return o;
}
public GuiVerticalCustomValuesBar newGuiVerticalCustomValuesBar(int x, int y, int width, int height, Float[] values) {
GuiVerticalCustomValuesBar o = helper.newGuiVerticalCustomValuesBar(x, y, width, height, values);
o.setObserver(this);
return o;
}
public GuiVerticalProgressBar newGuiVerticalProgressBar(int x, int y, int width, int height) {
GuiVerticalProgressBar o = helper.newGuiVerticalProgressBar(x, y, width, height);
return o;
}
@Override
protected void keyTyped(char key, int code) {
helper.keyTyped(key, code);
super.keyTyped(key, code);
}
protected void mouseClicked(int x, int y, int code) {
helper.mouseClicked(x, y, code);
super.mouseClicked(x, y, code);
}
@Override
protected void mouseMovedOrUp(int x, int y, int witch) {
helper.mouseMovedOrUp(x, y, witch);
super.mouseMovedOrUp(x, y, witch);
}
public boolean doesGuiPauseGame() {
return false;
}
@Override
public void drawScreen(int x, int y, float f) {
super.drawScreen(x, y, f);
preDraw(f, x, y);
helper.mouseMove(x, y);
helper.draw(x, y, f);
postDraw(f, x, y);
helper.draw2(x, y);
}
@Override
public void textFieldNewValue(GuiTextFieldEln textField, String value) {
guiObjectEvent(textField);
}
@Override
public void guiObjectEvent(IGuiObject object) {
}
protected void preDraw(float f, int x, int y) {
}
protected void postDraw(float f, int x, int y) {
}
protected void drawString(int x, int y, String str) {
drawString(x, y, 4210752, str);
}
protected void drawString(int x, int y, int color, String str) {
helper.drawString(x, y, color, str);
}
protected void add(IGuiObject o) {
helper.add(o);
}
protected void remove(IGuiObject o) {
helper.remove(o);
}
}