Files
ReplayModCinematic/src/main/java/com/replaymod/simplepathing/preview/PathPreview.java
2019-05-04 15:27:03 +02:00

62 lines
2.0 KiB
Java

package com.replaymod.simplepathing.preview;
import com.replaymod.core.KeyBindingRegistry;
import com.replaymod.core.SettingsRegistry;
import com.replaymod.core.events.SettingsChangedCallback;
import de.johni0702.minecraft.gui.utils.EventRegistrations;
import com.replaymod.core.versions.MCVer.Keyboard;
import com.replaymod.replay.ReplayHandler;
import com.replaymod.replay.events.ReplayClosedCallback;
import com.replaymod.replay.events.ReplayOpenedCallback;
import com.replaymod.simplepathing.ReplayModSimplePathing;
import com.replaymod.simplepathing.Setting;
public class PathPreview extends EventRegistrations {
private final ReplayModSimplePathing mod;
private ReplayHandler replayHandler;
private PathPreviewRenderer renderer;
public PathPreview(ReplayModSimplePathing mod) {
this.mod = mod;
on(SettingsChangedCallback.EVENT, (registry, key) -> {
if (key == Setting.PATH_PREVIEW) {
update();
}
});
on(ReplayOpenedCallback.EVENT, replayHandler -> {
this.replayHandler = replayHandler;
update();
});
on(ReplayClosedCallback.EVENT, replayHandler -> {
this.replayHandler = null;
update();
});
}
public void registerKeyBindings(KeyBindingRegistry registry) {
registry.registerKeyBinding("replaymod.input.pathpreview", Keyboard.KEY_H, () -> {
SettingsRegistry settings = mod.getCore().getSettingsRegistry();
settings.set(Setting.PATH_PREVIEW, !settings.get(Setting.PATH_PREVIEW));
settings.save();
});
}
private void update() {
if (mod.getCore().getSettingsRegistry().get(Setting.PATH_PREVIEW) && replayHandler != null) {
if (renderer == null) {
renderer = new PathPreviewRenderer(mod, replayHandler);
renderer.register();
}
} else {
if (renderer != null) {
renderer.unregister();
renderer = null;
}
}
}
}