Add path preview to simplepathing

This commit is contained in:
johni0702
2016-08-03 11:48:46 +02:00
parent 36c973d13a
commit 90aaa4378e
7 changed files with 422 additions and 320 deletions

View File

@@ -0,0 +1,58 @@
package com.replaymod.simplepathing.preview;
import com.replaymod.core.events.SettingsChangedEvent;
import com.replaymod.replay.ReplayHandler;
import com.replaymod.replay.events.ReplayCloseEvent;
import com.replaymod.replay.events.ReplayOpenEvent;
import com.replaymod.simplepathing.ReplayModSimplePathing;
import com.replaymod.simplepathing.Setting;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
public class PathPreview {
private final ReplayModSimplePathing mod;
private ReplayHandler replayHandler;
private PathPreviewRenderer renderer;
public PathPreview(ReplayModSimplePathing mod) {
this.mod = mod;
}
public void register() {
FMLCommonHandler.instance().bus().register(this);
}
@SubscribeEvent
public void onReplayOpen(ReplayOpenEvent.Post event) {
replayHandler = event.getReplayHandler();
update();
}
@SubscribeEvent
public void onReplayClose(ReplayCloseEvent.Pre event) {
replayHandler = null;
update();
}
@SubscribeEvent
public void onSettingsChanged(SettingsChangedEvent event) {
if (event.getKey() == Setting.PATH_PREVIEW) {
update();
}
}
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;
}
}
}
}