Instead of using AdvancedPosition objects with a value for spectatedEntityID, use SpectatorData objects for Spectator Keyframes. This allows us to add more options to Spectator Keyframes.
This commit is contained in:
@@ -3,10 +3,7 @@ package eu.crushedpixel.replaymod.gui;
|
||||
import eu.crushedpixel.replaymod.ReplayMod;
|
||||
import eu.crushedpixel.replaymod.gui.elements.*;
|
||||
import eu.crushedpixel.replaymod.gui.elements.listeners.NumberValueChangeListener;
|
||||
import eu.crushedpixel.replaymod.holders.AdvancedPosition;
|
||||
import eu.crushedpixel.replaymod.holders.Keyframe;
|
||||
import eu.crushedpixel.replaymod.holders.Marker;
|
||||
import eu.crushedpixel.replaymod.holders.TimestampValue;
|
||||
import eu.crushedpixel.replaymod.holders.*;
|
||||
import eu.crushedpixel.replaymod.interpolation.KeyframeList;
|
||||
import eu.crushedpixel.replaymod.interpolation.KeyframeValue;
|
||||
import eu.crushedpixel.replaymod.replay.ReplayHandler;
|
||||
@@ -323,7 +320,8 @@ public abstract class GuiEditKeyframe<T extends KeyframeValue> extends GuiScreen
|
||||
|
||||
@Override
|
||||
public void initGui() {
|
||||
if (keyframe.getValue().getSpectatedEntityID() != null) {
|
||||
if (keyframe.getValue() instanceof SpectatorData) {
|
||||
//TODO: Spectator Keyframe Settings
|
||||
super.initGui();
|
||||
return;
|
||||
}
|
||||
@@ -347,7 +345,7 @@ public abstract class GuiEditKeyframe<T extends KeyframeValue> extends GuiScreen
|
||||
public void onValueChange(double value) {
|
||||
keyframe.setValue(new AdvancedPosition(xCoord.getPreciseValue(), yCoord.getPreciseValue(),
|
||||
zCoord.getPreciseValue(), new Float(pitch.getPreciseValue()), (float) yaw.getPreciseValue(),
|
||||
(float) roll.getPreciseValue(), null));
|
||||
(float) roll.getPreciseValue()));
|
||||
|
||||
super.onValueChange(value);
|
||||
}
|
||||
@@ -387,7 +385,7 @@ public abstract class GuiEditKeyframe<T extends KeyframeValue> extends GuiScreen
|
||||
|
||||
@Override
|
||||
protected void drawScreen0() {
|
||||
if (keyframe.getValue().getSpectatedEntityID() != null) return;
|
||||
if (keyframe.getValue() instanceof SpectatorData) return;
|
||||
drawString(fontRendererObj, I18n.format("replaymod.gui.editkeyframe.xpos"), left, virtualY + 27, Color.WHITE.getRGB());
|
||||
drawString(fontRendererObj, I18n.format("replaymod.gui.editkeyframe.ypos"), left, virtualY + 57, Color.WHITE.getRGB());
|
||||
drawString(fontRendererObj, I18n.format("replaymod.gui.editkeyframe.zpos"), left, virtualY + 87, Color.WHITE.getRGB());
|
||||
|
||||
@@ -2,10 +2,7 @@ package eu.crushedpixel.replaymod.gui.elements.timelines;
|
||||
|
||||
import eu.crushedpixel.replaymod.ReplayMod;
|
||||
import eu.crushedpixel.replaymod.gui.GuiEditKeyframe;
|
||||
import eu.crushedpixel.replaymod.holders.AdvancedPosition;
|
||||
import eu.crushedpixel.replaymod.holders.Keyframe;
|
||||
import eu.crushedpixel.replaymod.holders.Marker;
|
||||
import eu.crushedpixel.replaymod.holders.TimestampValue;
|
||||
import eu.crushedpixel.replaymod.holders.*;
|
||||
import eu.crushedpixel.replaymod.replay.ReplayHandler;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
||||
@@ -131,7 +128,7 @@ public class GuiKeyframeTimeline extends GuiTimeline {
|
||||
while(iterator.hasNext()) {
|
||||
Keyframe<AdvancedPosition> kf = iterator.next();
|
||||
|
||||
if(kf.getValue().getSpectatedEntityID() == null)
|
||||
if(!(kf.getValue() instanceof SpectatorData))
|
||||
continue;
|
||||
|
||||
int i = iterator.nextIndex();
|
||||
@@ -139,10 +136,14 @@ public class GuiKeyframeTimeline extends GuiTimeline {
|
||||
|
||||
if (iterator.hasNext()) {
|
||||
Keyframe<AdvancedPosition> kf2 = iterator.next();
|
||||
if(kf.getValue().getSpectatedEntityID()
|
||||
.equals(kf2.getValue().getSpectatedEntityID())) {
|
||||
|
||||
nextSpectatorKeyframeRealTime = kf2.getRealTimestamp();
|
||||
if(kf2.getValue() instanceof SpectatorData) {
|
||||
SpectatorData spectatorData1 = (SpectatorData)kf.getValue();
|
||||
SpectatorData spectatorData2 = (SpectatorData)kf2.getValue();
|
||||
|
||||
if(spectatorData1.getSpectatedEntityID() == spectatorData2.getSpectatedEntityID()) {
|
||||
nextSpectatorKeyframeRealTime = kf2.getRealTimestamp();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,7 +232,7 @@ public class GuiKeyframeTimeline extends GuiTimeline {
|
||||
y += 0;
|
||||
|
||||
//If Spectator Keyframe, use different texture
|
||||
if(((AdvancedPosition) kf.getValue()).getSpectatedEntityID() != null) {
|
||||
if(kf.getValue() instanceof SpectatorData) {
|
||||
textureX = KEYFRAME_SPEC_X;
|
||||
textureY = KEYFRAME_SPEC_Y;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import eu.crushedpixel.replaymod.gui.elements.timelines.GuiKeyframeTimeline;
|
||||
import eu.crushedpixel.replaymod.gui.elements.timelines.GuiMarkerTimeline;
|
||||
import eu.crushedpixel.replaymod.holders.AdvancedPosition;
|
||||
import eu.crushedpixel.replaymod.holders.Keyframe;
|
||||
import eu.crushedpixel.replaymod.holders.SpectatorData;
|
||||
import eu.crushedpixel.replaymod.holders.TimestampValue;
|
||||
import eu.crushedpixel.replaymod.registry.KeybindRegistry;
|
||||
import eu.crushedpixel.replaymod.registry.ReplayGuiRegistry;
|
||||
@@ -150,12 +151,12 @@ public class GuiReplayOverlay extends Gui {
|
||||
Entity cam = mc.getRenderViewEntity();
|
||||
if (cam != null) {
|
||||
AdvancedPosition position = new AdvancedPosition(cam.posX, cam.posY, cam.posZ, cam.rotationPitch,
|
||||
cam.rotationYaw % 360, ReplayHandler.getCameraTilt(), null);
|
||||
cam.rotationYaw % 360, ReplayHandler.getCameraTilt());
|
||||
|
||||
if (ReplayHandler.isCamera())
|
||||
ReplayHandler.addKeyframe(new Keyframe<AdvancedPosition>(ReplayHandler.getRealTimelineCursor(), position));
|
||||
else
|
||||
ReplayHandler.addKeyframe(new Keyframe<AdvancedPosition>(ReplayHandler.getRealTimelineCursor(), new AdvancedPosition(cam.getEntityId(), true)));
|
||||
ReplayHandler.addKeyframe(new Keyframe<AdvancedPosition>(ReplayHandler.getRealTimelineCursor(), new SpectatorData(cam)));
|
||||
}
|
||||
}
|
||||
}, "replaymod.gui.ingame.menu.addposkeyframe");
|
||||
@@ -173,12 +174,12 @@ public class GuiReplayOverlay extends Gui {
|
||||
Entity cam = mc.getRenderViewEntity();
|
||||
if (cam != null) {
|
||||
AdvancedPosition position = new AdvancedPosition(cam.posX, cam.posY, cam.posZ, cam.rotationPitch,
|
||||
cam.rotationYaw % 360, ReplayHandler.getCameraTilt(), null);
|
||||
cam.rotationYaw % 360, ReplayHandler.getCameraTilt());
|
||||
|
||||
if (ReplayHandler.isCamera())
|
||||
ReplayHandler.addKeyframe(new Keyframe<AdvancedPosition>(ReplayHandler.getRealTimelineCursor(), position));
|
||||
else
|
||||
ReplayHandler.addKeyframe(new Keyframe<AdvancedPosition>(ReplayHandler.getRealTimelineCursor(), new AdvancedPosition(cam.getEntityId(), true)));
|
||||
ReplayHandler.addKeyframe(new Keyframe<AdvancedPosition>(ReplayHandler.getRealTimelineCursor(), new SpectatorData(cam)));
|
||||
}
|
||||
}
|
||||
}, "replaymod.gui.ingame.menu.addspeckeyframe");
|
||||
@@ -195,7 +196,7 @@ public class GuiReplayOverlay extends Gui {
|
||||
boolean selected = ReplayHandler.getSelectedKeyframe() != null && ReplayHandler.getSelectedKeyframe().getValue() instanceof AdvancedPosition;
|
||||
boolean camera;
|
||||
if(selected) {
|
||||
camera = ((AdvancedPosition)ReplayHandler.getSelectedKeyframe().getValue()).getSpectatedEntityID() == null;
|
||||
camera = !(ReplayHandler.getSelectedKeyframe().getValue() instanceof SpectatorData);
|
||||
} else {
|
||||
camera = ReplayHandler.isCamera();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user