package net.t7seven7t.craftfx.data.effect; import net.t7seven7t.craftfx.data.AbstractData; import net.t7seven7t.craftfx.data.Data; /** * */ public class SpeedData extends AbstractData { private final float speedDef; private float speed; public SpeedData(float speedDef) { this.speedDef = speedDef; } public SpeedData() { this(0.1f); } public float getSpeed() { return speed; } @Override public void onDataHolderUpdate() { this.speed = get("speed", Double.class) .map(f -> Math.abs(f) > 1 ? 1 * Math.signum(f) : f) .orElse((double) speedDef).floatValue(); } @Override public Data getCopy() { return new SpeedData(); } }