package joshie.progression.gui.fields; import joshie.progression.api.criteria.IRuleProvider; import joshie.progression.api.gui.IDrawHelper; import joshie.progression.api.special.IInit; import java.lang.reflect.Field; public class BooleanField extends AbstractField { public Field field; public String truth; public String lies; public BooleanField(String displayName, String fieldName, Object object) { super(displayName); this.object = object; try { field = object.getClass().getField(fieldName); } catch (Exception e) {} } public BooleanField(String displayName, String fieldName, Object object, String truth, String lies) { this(displayName, fieldName, object); this.truth = truth; this.lies = lies; } public boolean getBoolean() { try { return field.getBoolean(object); } catch (Exception e) { return false; } } public void setBoolean(boolean bool) { try { field.set(object, bool); //Init the object after we've set it if (object instanceof IInit) { ((IInit) object).init(true); } } catch (Exception e) {} } public BooleanField(String name, Object object) { this(name, name, object); } @Override public String getFieldName() { return field.getName(); } @Override public boolean click() { try { setBoolean(!getBoolean()); return true; } catch (Exception e) { return false; } } @Override public String getField() { try { return "" + getBoolean(); } catch (Exception e) { return "" + false; } } @Override public void draw(IRuleProvider provider, IDrawHelper helper, int renderX, int renderY, int color, int yPos, int mouseX, int mouseY) { try { boolean value = getBoolean(); if (truth != null) helper.drawSplitText(renderX, renderY, name + ": " + (value ? truth : lies), 4, yPos, 105, color, 0.75F); else helper.drawSplitText(renderX, renderY, name + ": " + value, 4, yPos, 125, color, 0.75F); } catch (Exception e) {} } }