Got rid of cancerous Cloneable interface and fixed possible NPE when cloning a Position Keyframe
This commit is contained in:
@@ -50,7 +50,7 @@ public class GuiEditKeyframe extends GuiScreen {
|
||||
|
||||
public GuiEditKeyframe(Keyframe keyframe) {
|
||||
this.keyframe = keyframe;
|
||||
this.keyframeBackup = (Keyframe)keyframe.clone();
|
||||
this.keyframeBackup = keyframe.clone();
|
||||
this.posKeyframe = keyframe instanceof PositionKeyframe;
|
||||
this.timeKeyframe = keyframe instanceof TimeKeyframe;
|
||||
this.markerKeyframe = keyframe instanceof MarkerKeyframe;
|
||||
@@ -58,14 +58,14 @@ public class GuiEditKeyframe extends GuiScreen {
|
||||
ReplayHandler.selectKeyframe(null);
|
||||
|
||||
if(posKeyframe) {
|
||||
previous = ReplayHandler.getPreviousPositionKeyframe(keyframe.getRealTimestamp()-1);
|
||||
previous = ReplayHandler.getPreviousPositionKeyframe(keyframe.getRealTimestamp() - 1);
|
||||
next = ReplayHandler.getNextPositionKeyframe(keyframe.getRealTimestamp() + 1);
|
||||
} else if(timeKeyframe) {
|
||||
previous = ReplayHandler.getPreviousTimeKeyframe(keyframe.getRealTimestamp()-1);
|
||||
next = ReplayHandler.getNextTimeKeyframe(keyframe.getRealTimestamp()+1);
|
||||
previous = ReplayHandler.getPreviousTimeKeyframe(keyframe.getRealTimestamp() - 1);
|
||||
next = ReplayHandler.getNextTimeKeyframe(keyframe.getRealTimestamp() + 1);
|
||||
} else if(markerKeyframe) {
|
||||
previous = ReplayHandler.getPreviousMarkerKeyframe(keyframe.getRealTimestamp()-1);
|
||||
next = ReplayHandler.getNextMarkerKeyframe(keyframe.getRealTimestamp()+1);
|
||||
previous = ReplayHandler.getPreviousMarkerKeyframe(keyframe.getRealTimestamp() - 1);
|
||||
next = ReplayHandler.getNextMarkerKeyframe(keyframe.getRealTimestamp() + 1);
|
||||
}
|
||||
|
||||
ReplayHandler.selectKeyframe(keyframe);
|
||||
@@ -119,7 +119,7 @@ public class GuiEditKeyframe extends GuiScreen {
|
||||
inputs.addAll(posInputs);
|
||||
} else if(markerKeyframe) {
|
||||
markerNameInput = new GuiTextField(GuiConstants.KEYFRAME_REPOSTORY_NAME_INPUT, fontRendererObj, 0, 0, 300, 20);
|
||||
markerNameInput.setText(((MarkerKeyframe)keyframe).getName());
|
||||
markerNameInput.setText(((MarkerKeyframe)keyframe).getName() == null ? "" : ((MarkerKeyframe)keyframe).getName());
|
||||
inputs.add(markerNameInput);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package eu.crushedpixel.replaymod.holders;
|
||||
|
||||
public class Keyframe implements Cloneable {
|
||||
public class Keyframe {
|
||||
|
||||
private int realTimestamp;
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
public Keyframe clone() {
|
||||
return new Keyframe(realTimestamp);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ public class MarkerKeyframe extends Keyframe {
|
||||
private String name;
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
public Keyframe clone() {
|
||||
return new MarkerKeyframe(this.getPosition(), this.getRealTimestamp(), this.getName());
|
||||
}
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ public class PositionKeyframe extends Keyframe {
|
||||
private Integer spectatedEntityID = null;
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
return new PositionKeyframe(this.getRealTimestamp(), this.getPosition(), this.getSpectatedEntityID());
|
||||
public Keyframe clone() {
|
||||
return new PositionKeyframe(getRealTimestamp(), position, spectatedEntityID);
|
||||
}
|
||||
|
||||
public PositionKeyframe(int realTime, Position position) {
|
||||
@@ -17,7 +17,7 @@ public class PositionKeyframe extends Keyframe {
|
||||
this.position = position;
|
||||
}
|
||||
|
||||
public PositionKeyframe(int realTime, Position position, int spectatedEntityID) {
|
||||
public PositionKeyframe(int realTime, Position position, Integer spectatedEntityID) {
|
||||
super(realTime);
|
||||
this.position = position;
|
||||
this.spectatedEntityID = spectatedEntityID;
|
||||
|
||||
@@ -7,7 +7,7 @@ public class TimeKeyframe extends Keyframe {
|
||||
private final int timestamp;
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
public Keyframe clone() {
|
||||
return new TimeKeyframe(this.getRealTimestamp(), this.getTimestamp());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user