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:
CrushedPixel
2015-09-09 23:23:33 +02:00
parent d839204855
commit 7196bc03bd
3 changed files with 58 additions and 29 deletions

View File

@@ -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();

View File

@@ -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>();
}
}