Got rid of cancerous Cloneable interface and fixed possible NPE when cloning a Position Keyframe

This commit is contained in:
CrushedPixel
2015-06-12 23:27:43 +02:00
parent b1864424d9
commit 8ef7e768d6
5 changed files with 14 additions and 15 deletions

View File

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

View File

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

View File

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

View File

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

View File

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