Rebalance the maximum and default SpectatorDataThirdPersonInfo#shoulderCamSmoothness values (+1 squashed commit)
Squashed commits: [d1374a7] Information about the shoulder camera's position are now stored in a separate, interpolateable Object instead of directly in the SpectatorData Object
This commit is contained in:
@@ -442,10 +442,10 @@ public abstract class GuiEditKeyframe<T extends KeyframeValue> extends GuiScreen
|
||||
shoulderYawString = new GuiString(0, 0, Color.WHITE, I18n.format("replaymod.gui.editkeyframe.spec.method.shoulder.yaw"));
|
||||
shoulderSmoothnessString = new GuiString(0, 0, Color.WHITE, I18n.format("replaymod.gui.editkeyframe.spec.method.shoulder.smoothness"));
|
||||
|
||||
shoulderDistanceInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 0, 0d, 30d, data.getShoulderCamDistance(), true, "", 0.1);
|
||||
shoulderPitchOffsetInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 0, -90d, 90d, (double)data.getShoulderCamPitchOffset(), false, "°", 1);
|
||||
shoulderYawOffsetInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 0, null, null, (double)data.getShoulderCamYawOffset(), false, "°", 1);
|
||||
shoulderSmoothnessInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 0, 0.1d, 1d, data.getShoulderCamSmoothness()/1000d, true, "", 0.1);
|
||||
shoulderDistanceInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 0, 0d, 30d, data.getThirdPersonInfo().shoulderCamDistance, true, "", 0.1);
|
||||
shoulderPitchOffsetInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 0, -90d, 90d, data.getThirdPersonInfo().shoulderCamPitchOffset, false, "°", 1);
|
||||
shoulderYawOffsetInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 0, null, null, data.getThirdPersonInfo().shoulderCamYawOffset, false, "°", 1);
|
||||
shoulderSmoothnessInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 0, 0.1d, 3d, data.getThirdPersonInfo().shoulderCamSmoothness, true, "", 0.1);
|
||||
|
||||
shoulderCamSettings = new ComposedElement(
|
||||
shoulderDistanceString, shoulderDistanceInput,
|
||||
@@ -486,10 +486,10 @@ public abstract class GuiEditKeyframe<T extends KeyframeValue> extends GuiScreen
|
||||
public void onGuiClosed() {
|
||||
SpectatorData data = (SpectatorData)keyframe.getValue();
|
||||
data.setSpectatingMethod(SpectatorData.SpectatingMethod.values()[perspectiveButton.getValue()]);
|
||||
data.setShoulderCamDistance(shoulderDistanceInput.getPreciseValue());
|
||||
data.setShoulderCamPitchOffset(shoulderPitchOffsetInput.getIntValue());
|
||||
data.setShoulderCamYawOffset(shoulderYawOffsetInput.getIntValue());
|
||||
data.setShoulderCamSmoothness((int)(shoulderSmoothnessInput.getPreciseValue()*1000));
|
||||
data.getThirdPersonInfo().shoulderCamDistance = shoulderDistanceInput.getPreciseValue();
|
||||
data.getThirdPersonInfo().shoulderCamPitchOffset = shoulderPitchOffsetInput.getIntValue();
|
||||
data.getThirdPersonInfo().shoulderCamYawOffset = shoulderYawOffsetInput.getIntValue();
|
||||
data.getThirdPersonInfo().shoulderCamSmoothness = shoulderSmoothnessInput.getPreciseValue();
|
||||
super.onGuiClosed();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,27 +18,7 @@ public class SpectatorData extends AdvancedPosition {
|
||||
|
||||
private SpectatingMethod spectatingMethod = SpectatingMethod.FIRST_PERSON;
|
||||
|
||||
//these fields are only relevant for SpectatingMethod.SHOULDER_CAM
|
||||
/**
|
||||
* The shoulder camera's distance (in blocks) to the player
|
||||
*/
|
||||
private double shoulderCamDistance = 3;
|
||||
|
||||
/**
|
||||
* The shoulder camera's pitch offset in degrees, value between -90 and 90
|
||||
*/
|
||||
private float shoulderCamPitchOffset = 0;
|
||||
|
||||
/**
|
||||
* The shoulder camera's rotation around the player in degrees
|
||||
*/
|
||||
private float shoulderCamYawOffset = 0;
|
||||
|
||||
/**
|
||||
* The distance between the automatically calculated position keyframes in milliseconds
|
||||
*/
|
||||
private int shoulderCamSmoothness = 500;
|
||||
|
||||
private SpectatorDataThirdPersonInfo thirdPersonInfo = new SpectatorDataThirdPersonInfo();
|
||||
|
||||
public int getSpectatedEntityID() {
|
||||
if(spectatedEntityID == null) throw new IllegalStateException();
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package eu.crushedpixel.replaymod.holders;
|
||||
|
||||
import eu.crushedpixel.replaymod.interpolation.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SpectatorDataThirdPersonInfo implements KeyframeValue {
|
||||
|
||||
/**
|
||||
* The shoulder camera's distance (in blocks) to the player
|
||||
*/
|
||||
@Interpolate
|
||||
public double shoulderCamDistance = 3;
|
||||
|
||||
/**
|
||||
* The shoulder camera's pitch offset in degrees, value between -90 and 90
|
||||
*/
|
||||
@Interpolate
|
||||
public double shoulderCamPitchOffset = 0;
|
||||
|
||||
/**
|
||||
* The shoulder camera's rotation around the player in degrees
|
||||
*/
|
||||
@Interpolate
|
||||
public double shoulderCamYawOffset = 0;
|
||||
|
||||
/**
|
||||
* The distance between the automatically calculated position keyframes in seconds
|
||||
*/
|
||||
@Interpolate
|
||||
public double shoulderCamSmoothness = 1;
|
||||
|
||||
@Override
|
||||
public KeyframeValue newInstance() {
|
||||
return new SpectatorDataThirdPersonInfo();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Interpolation getLinearInterpolator() {
|
||||
return new GenericLinearInterpolation<SpectatorDataThirdPersonInfo>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Interpolation getCubicInterpolator() {
|
||||
return new GenericSplineInterpolation<SpectatorDataThirdPersonInfo>();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user