package openmods.gui.component; import net.minecraft.client.Minecraft; import openmods.api.IValueReceiver; import openmods.gui.listener.IValueChangedListener; import org.lwjgl.opengl.GL11; public class GuiComponentCheckbox extends BaseComponent implements IValueReceiver<Boolean> { protected int color; private boolean value; private IValueChangedListener<Boolean> listener; public GuiComponentCheckbox(int x, int y, boolean initialValue, int color) { super(x, y); this.color = color; this.value = initialValue; } @Override public void render(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) { GL11.glColor4f(1, 1, 1, 1); bindComponentsSheet(); drawTexturedModalRect(offsetX + x, offsetY + y, value? 16 : 0, 62, 8, 8); } @Override public void renderOverlay(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) {} @Override public void mouseDown(int x, int y, int button) { super.mouseDown(x, y, button); value = !value; if (listener != null) listener.valueChanged(value); } @Override public int getHeight() { return 8; } @Override public int getWidth() { return 8; } public boolean getValue() { return value; } @Override public void setValue(Boolean value) { this.value = value; } public void setListener(IValueChangedListener<Boolean> listener) { this.listener = listener; } }