Keyframe Presets now ignore Marker Keyframes and those are not overwritten when loading a preset
This commit is contained in:
@@ -6,6 +6,7 @@ import eu.crushedpixel.replaymod.gui.elements.listeners.SelectionListener;
|
|||||||
import eu.crushedpixel.replaymod.gui.overlay.GuiReplayOverlay;
|
import eu.crushedpixel.replaymod.gui.overlay.GuiReplayOverlay;
|
||||||
import eu.crushedpixel.replaymod.holders.Keyframe;
|
import eu.crushedpixel.replaymod.holders.Keyframe;
|
||||||
import eu.crushedpixel.replaymod.holders.KeyframeSet;
|
import eu.crushedpixel.replaymod.holders.KeyframeSet;
|
||||||
|
import eu.crushedpixel.replaymod.holders.MarkerKeyframe;
|
||||||
import eu.crushedpixel.replaymod.replay.ReplayHandler;
|
import eu.crushedpixel.replaymod.replay.ReplayHandler;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.GuiButton;
|
import net.minecraft.client.gui.GuiButton;
|
||||||
@@ -18,6 +19,7 @@ import org.lwjgl.input.Keyboard;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class GuiKeyframeRepository extends GuiScreen implements GuiReplayOverlay.NoOverlay {
|
public class GuiKeyframeRepository extends GuiScreen implements GuiReplayOverlay.NoOverlay {
|
||||||
|
|
||||||
@@ -131,7 +133,12 @@ public class GuiKeyframeRepository extends GuiScreen implements GuiReplayOverlay
|
|||||||
if(!button.enabled) return;
|
if(!button.enabled) return;
|
||||||
switch(button.id) {
|
switch(button.id) {
|
||||||
case GuiConstants.KEYFRAME_REPOSITORY_ADD_BUTTON:
|
case GuiConstants.KEYFRAME_REPOSITORY_ADD_BUTTON:
|
||||||
Keyframe[] keyframes = ReplayHandler.getKeyframes().toArray(new Keyframe[ReplayHandler.getKeyframes().size()]);
|
List<Keyframe> kfs = new ArrayList<Keyframe>(ReplayHandler.getKeyframes());
|
||||||
|
for(Keyframe kf : new ArrayList<Keyframe>(kfs)) {
|
||||||
|
if(kf instanceof MarkerKeyframe) kfs.remove(kf);
|
||||||
|
}
|
||||||
|
|
||||||
|
Keyframe[] keyframes = kfs.toArray(new Keyframe[ReplayHandler.getKeyframes().size()]);
|
||||||
KeyframeSet newSet = new KeyframeSet(I18n.format("replaymod.gui.keyframerepository.preset.defaultname"), keyframes);
|
KeyframeSet newSet = new KeyframeSet(I18n.format("replaymod.gui.keyframerepository.preset.defaultname"), keyframes);
|
||||||
if(newSet.getPositionKeyframeCount() < 2 && newSet.getTimeKeyframeCount() < 2) {
|
if(newSet.getPositionKeyframeCount() < 2 && newSet.getTimeKeyframeCount() < 2) {
|
||||||
message = I18n.format("replaymod.chat.notenoughkeyframes");
|
message = I18n.format("replaymod.chat.notenoughkeyframes");
|
||||||
|
|||||||
@@ -95,7 +95,15 @@ public class ReplayHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void useKeyframePresetFromRepository(int index) {
|
public static void useKeyframePresetFromRepository(int index) {
|
||||||
|
MarkerKeyframe[] markers = getMarkers();
|
||||||
|
|
||||||
keyframes = new ArrayList<Keyframe>(Arrays.asList(keyframeRepository[index].getKeyframes()));
|
keyframes = new ArrayList<Keyframe>(Arrays.asList(keyframeRepository[index].getKeyframes()));
|
||||||
|
|
||||||
|
for(MarkerKeyframe mk : markers) {
|
||||||
|
keyframes.add(mk);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!(selectedKeyframe instanceof MarkerKeyframe)) selectedKeyframe = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void spectateEntity(Entity e) {
|
public static void spectateEntity(Entity e) {
|
||||||
@@ -374,8 +382,14 @@ public class ReplayHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void resetKeyframes() {
|
public static void resetKeyframes() {
|
||||||
|
MarkerKeyframe[] markers = getMarkers();
|
||||||
keyframes = new ArrayList<Keyframe>();
|
keyframes = new ArrayList<Keyframe>();
|
||||||
|
|
||||||
|
for(MarkerKeyframe mk : markers) {
|
||||||
|
keyframes.add(mk);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!(selectedKeyframe instanceof MarkerKeyframe))
|
||||||
selectKeyframe(null);
|
selectKeyframe(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user