package com.replaymod.pathing.properties; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.replaymod.replaystudio.pathing.property.AbstractProperty; import com.replaymod.replaystudio.pathing.property.PropertyPart; import com.replaymod.replaystudio.pathing.property.PropertyParts; import de.johni0702.minecraft.gui.utils.NonNull; import org.apache.commons.lang3.tuple.Triple; import java.io.IOException; import java.util.Collection; import java.util.Collections; public class FovProperty extends AbstractProperty> { public static final float DEFAULT_FOV = 70.0f; public static volatile Float currentOverride = null; public static final FovProperty FOV = new FovProperty("fov", DEFAULT_FOV); public final PropertyPart> VALUE = new PropertyParts.ForFloatTriple(this, true, PropertyParts.TripleElement.LEFT); private FovProperty(String id, float defaultValue) { super(id, "replaymod.gui.editkeyframe." + id, null, Triple.of(defaultValue, 0f, 0f)); } @Override public Collection>> getParts() { return Collections.singletonList(VALUE); } @Override public void applyToGame(Triple value, @NonNull Object replayHandler) { currentOverride = value.getLeft(); } @Override public void toJson(JsonWriter writer, Triple value) throws IOException { writer.value(value.getLeft()); } @Override public Triple fromJson(JsonReader reader) throws IOException { return Triple.of((float) reader.nextDouble(), 0f, 0f); } }