48 lines
1.7 KiB
Java
48 lines
1.7 KiB
Java
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<Triple<Float, Float, Float>> {
|
|
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<Triple<Float, Float, Float>> 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<PropertyPart<Triple<Float, Float, Float>>> getParts() {
|
|
return Collections.singletonList(VALUE);
|
|
}
|
|
|
|
@Override
|
|
public void applyToGame(Triple<Float, Float, Float> value, @NonNull Object replayHandler) {
|
|
currentOverride = value.getLeft();
|
|
}
|
|
|
|
@Override
|
|
public void toJson(JsonWriter writer, Triple<Float, Float, Float> value) throws IOException {
|
|
writer.value(value.getLeft());
|
|
}
|
|
|
|
@Override
|
|
public Triple<Float, Float, Float> fromJson(JsonReader reader) throws IOException {
|
|
return Triple.of((float) reader.nextDouble(), 0f, 0f);
|
|
}
|
|
} |