From b240f8a27691d7ff5600bf84f8551ae115c13094 Mon Sep 17 00:00:00 2001 From: johni0702 Date: Sun, 23 Oct 2016 14:45:14 +0200 Subject: [PATCH] Fix camera path always playing from the beginning regardless of ctrl key --- .../replaymod/pathing/player/AbstractTimelinePlayer.java | 6 ++++++ .../replaymod/pathing/player/RealtimeTimelinePlayer.java | 2 +- .../java/com/replaymod/simplepathing/gui/GuiPathing.java | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/replaymod/pathing/player/AbstractTimelinePlayer.java b/src/main/java/com/replaymod/pathing/player/AbstractTimelinePlayer.java index 07530d28..04104787 100644 --- a/src/main/java/com/replaymod/pathing/player/AbstractTimelinePlayer.java +++ b/src/main/java/com/replaymod/pathing/player/AbstractTimelinePlayer.java @@ -24,6 +24,7 @@ public abstract class AbstractTimelinePlayer { private final Minecraft mc = Minecraft.getMinecraft(); private final ReplayHandler replayHandler; private Timeline timeline; + protected long startOffset; private long lastTime; private long lastTimestamp; private ListenableFuture future; @@ -33,6 +34,11 @@ public abstract class AbstractTimelinePlayer { this.replayHandler = replayHandler; } + public ListenableFuture start(Timeline timeline, long from) { + startOffset = from; + return start(timeline); + } + public ListenableFuture start(Timeline timeline) { this.timeline = timeline; diff --git a/src/main/java/com/replaymod/pathing/player/RealtimeTimelinePlayer.java b/src/main/java/com/replaymod/pathing/player/RealtimeTimelinePlayer.java index eca409f4..4271ddbf 100644 --- a/src/main/java/com/replaymod/pathing/player/RealtimeTimelinePlayer.java +++ b/src/main/java/com/replaymod/pathing/player/RealtimeTimelinePlayer.java @@ -46,6 +46,6 @@ public class RealtimeTimelinePlayer extends AbstractTimelinePlayer { @Override public long getTimePassed() { - return firstFrame ? 0 : System.currentTimeMillis() - startTime; + return startOffset + (firstFrame ? 0 : System.currentTimeMillis() - startTime); } } diff --git a/src/main/java/com/replaymod/simplepathing/gui/GuiPathing.java b/src/main/java/com/replaymod/simplepathing/gui/GuiPathing.java index 8e0236b1..efae78eb 100644 --- a/src/main/java/com/replaymod/simplepathing/gui/GuiPathing.java +++ b/src/main/java/com/replaymod/simplepathing/gui/GuiPathing.java @@ -235,7 +235,9 @@ public class GuiPathing { if (!preparePathsForPlayback()) return; timePath.setActive(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)); - ListenableFuture future = player.start(timeline); + // Start from cursor time unless the control key is pressed (then start from beginning) + int startTime = Keyboard.isKeyDown(Keyboard.KEY_LCONTROL)? 0 : GuiPathing.this.timeline.getCursorPosition(); + ListenableFuture future = player.start(timeline, startTime); overlay.setCloseable(false); overlay.setMouseVisible(true); Futures.addCallback(future, new FutureCallback() {