package org.saturnclient.config.property; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; public class FloatProperty extends Property { public float value; public final float defaultValue; /** Bounds for a slider, when the setting has a sensible range */ public Float min, max; public float step = 0.1f; /** Shown after the value, like "×" */ public String unit = ""; public FloatProperty(float defaultValue) { this.value = defaultValue; this.defaultValue = defaultValue; } /** * Gives the setting a range, so it's edited with a slider. */ public FloatProperty range(float min, float max, float step) { this.min = min; this.max = max; this.step = step; return this; } public FloatProperty unit(String unit) { this.unit = unit; return this; } public boolean hasRange() { return min != null && max != null; } @Override public void reset() { this.value = defaultValue; this.isReset = true; } @Override public JsonNode toJson() { return JsonNodeFactory.instance.numberNode(this.value); } @Override public void loadFromJson(JsonNode element) { if (element.isNumber()) this.value = element.floatValue(); } }