package net.t7seven7t.craftfx.data.effect; import net.t7seven7t.craftfx.data.AbstractData; import net.t7seven7t.craftfx.data.Data; import net.t7seven7t.craftfx.effect.ExtentState; import net.t7seven7t.util.EnumUtil; /** * */ public class ExtentData extends AbstractData { private final ExtentState disabledDef; private final boolean invertedDef; private ExtentState disabled; private boolean inverted; public ExtentData() { this(ExtentState.END); } public ExtentData(ExtentState disabledDef) { this(disabledDef, false); } public ExtentData(ExtentState disabledDef, boolean invertedDef) { this.disabledDef = disabledDef; this.invertedDef = invertedDef; } public boolean isExtentDisabled(ExtentState state) { return disabled != null && disabled == state; } public boolean isInverted() { return inverted; } @Override public void onDataHolderUpdate() { disabled = EnumUtil.matchEnumValue(ExtentState.class, get("disable-extent", String.class, "")); if (disabled == null) disabled = disabledDef; inverted = get("invert-extents", Boolean.class, invertedDef); } @Override public Data getCopy() { return new ExtentData(disabledDef, invertedDef); } }