Get simplepathing module compiling on 1.13

This commit is contained in:
Jonas Herzig
2019-03-01 15:20:59 +01:00
parent 344a550dc1
commit 1727702de4
10 changed files with 84 additions and 70 deletions

View File

@@ -11,6 +11,7 @@ import com.replaymod.recording.ReplayModRecording;
import com.replaymod.render.ReplayModRender;
import com.replaymod.replay.ReplayModReplay;
import com.replaymod.replaystudio.util.I18n;
import com.replaymod.simplepathing.ReplayModSimplePathing;
import de.johni0702.minecraft.gui.container.GuiScreen;
import lombok.Getter;
import net.minecraft.client.Minecraft;
@@ -165,6 +166,7 @@ public class ReplayMod implements Module {
modules.add(new ReplayModRecording(this));
modules.add(new ReplayModReplay(this));
modules.add(new ReplayModRender(this));
modules.add(new ReplayModSimplePathing(this));
//#if MC>=11300
settingsRegistry.register();

View File

@@ -31,6 +31,7 @@ import net.minecraftforge.common.MinecraftForge;
//#if MC>=11300
import net.minecraft.client.MainWindow;
import net.minecraft.client.util.InputMappings;
import net.minecraft.crash.ReportedException;
import org.lwjgl.glfw.GLFW;
//#else
@@ -709,6 +710,8 @@ public class MCVer {
public static void colorLogicOp(int op) { GlStateManager.logicOp(op); }
public static abstract class Keyboard {
public static final int KEY_LCONTROL = GLFW.GLFW_KEY_LEFT_CONTROL;
public static final int KEY_LSHIFT = GLFW.GLFW_KEY_LEFT_SHIFT;
public static final int KEY_ESCAPE = GLFW.GLFW_KEY_ESCAPE;
public static final int KEY_HOME = GLFW.GLFW_KEY_HOME;
public static final int KEY_END = GLFW.GLFW_KEY_END;
@@ -747,6 +750,10 @@ public class MCVer {
public static final int KEY_X = GLFW.GLFW_KEY_X;
public static final int KEY_Y = GLFW.GLFW_KEY_Y;
public static final int KEY_Z = GLFW.GLFW_KEY_Z;
public static boolean isKeyDown(int keyCode) {
return InputMappings.isKeyDown(keyCode);
}
}
//#endif
}

View File

@@ -1,5 +1,7 @@
package com.replaymod.simplepathing;
import com.replaymod.core.KeyBindingRegistry;
import com.replaymod.core.Module;
import com.replaymod.core.ReplayMod;
import com.replaymod.core.events.SettingsChangedEvent;
import com.replaymod.replay.ReplayModReplay;
@@ -17,19 +19,19 @@ import com.replaymod.simplepathing.gui.GuiPathing;
import com.replaymod.simplepathing.preview.PathPreview;
import lombok.Getter;
import net.minecraft.crash.CrashReport;
import net.minecraft.util.ReportedException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.input.Keyboard;
//#if MC>=10800
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
//#if MC>=11300
import net.minecraftforge.eventbus.api.SubscribeEvent;
//#else
//$$ import org.lwjgl.input.Keyboard;
//#if MC>=10800
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
//#else
//$$ import cpw.mods.fml.common.Mod;
//$$ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
//$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
//#endif
//#endif
import java.io.IOException;
import java.util.Collections;
@@ -41,38 +43,32 @@ import java.util.concurrent.atomic.AtomicInteger;
import static com.replaymod.core.versions.MCVer.*;
@Mod(modid = ReplayModSimplePathing.MOD_ID,
version = "@MOD_VERSION@",
acceptedMinecraftVersions = "@MC_VERSION@",
acceptableRemoteVersions = "*",
//#if MC>=10800
clientSideOnly = true,
//#endif
useMetadata = true)
public class ReplayModSimplePathing {
public static final String MOD_ID = "replaymod-simplepathing";
@Mod.Instance(MOD_ID)
public class ReplayModSimplePathing implements Module {
{ instance = this; }
public static ReplayModSimplePathing instance;
private ReplayMod core;
public static Logger LOGGER;
public static Logger LOGGER = LogManager.getLogger();
private GuiPathing guiPathing;
private PathPreview pathPreview = new PathPreview(this);
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
LOGGER = event.getModLog();
core = ReplayMod.instance;
public ReplayModSimplePathing(ReplayMod core) {
this.core = core;
core.getSettingsRegistry().register(Setting.class);
}
@Override
public void initClient() {
FML_BUS.register(this);
PathPreview pathPreview = new PathPreview(this);
pathPreview.register();
}
@Override
public void registerKeyBindings(KeyBindingRegistry registry) {
pathPreview.registerKeyBindings(registry);
core.getKeyBindingRegistry().registerKeyBinding("replaymod.input.keyframerepository", Keyboard.KEY_X, () -> {
if (guiPathing != null) guiPathing.keyframeRepoButtonPressed();
});
@@ -100,7 +96,7 @@ public class ReplayModSimplePathing {
}
}
} catch (IOException e) {
throw new ReportedException(CrashReport.makeCrashReport(e, "Reading timeline"));
throw newReportedException(CrashReport.makeCrashReport(e, "Reading timeline"));
}
guiPathing = new GuiPathing(core, this, event.getReplayHandler());
@@ -226,7 +222,7 @@ public class ReplayModSimplePathing {
timeline = serialization.deserialize(serialized).get("");
} catch (Throwable t) {
CrashReport report = CrashReport.makeCrashReport(t, "Cloning timeline");
throw new ReportedException(report);
throw newReportedException(report);
}
int id = lastSaveId.incrementAndGet();

View File

@@ -31,7 +31,6 @@ import com.replaymod.simplepathing.properties.ExplicitInterpolationProperty;
import lombok.Getter;
import net.minecraft.crash.CrashReport;
import net.minecraft.crash.CrashReportCategory;
import net.minecraft.util.ReportedException;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.Validate;
import org.apache.commons.lang3.tuple.Triple;
@@ -660,7 +659,7 @@ public class SPTimeline implements PathingRegistry {
CrashReport crash = CrashReport.makeCrashReport(e, "Serializing interpolator");
CrashReportCategory category = crash.makeCategory("Serializing interpolator");
addDetail(category, "Interpolator", interpolator::toString);
throw new ReportedException(crash);
throw newReportedException(crash);
}
return baos.toString();
@@ -674,8 +673,8 @@ public class SPTimeline implements PathingRegistry {
} catch (IOException e) {
CrashReport crash = CrashReport.makeCrashReport(e, "De-serializing interpolator");
CrashReportCategory category = crash.makeCategory("De-serializing interpolator");
category.addCrashSection("Interpolator", json);
throw new ReportedException(crash);
addDetail(category, "Interpolator", json::toString);
throw newReportedException(crash);
}
}
}

View File

@@ -33,16 +33,21 @@ import de.johni0702.minecraft.gui.layout.VerticalLayout;
import de.johni0702.minecraft.gui.popup.AbstractGuiPopup;
import de.johni0702.minecraft.gui.utils.Colors;
import de.johni0702.minecraft.gui.utils.Consumer;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadablePoint;
import lombok.Getter;
import net.minecraft.client.resources.I18n;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.input.Keyboard;
import org.lwjgl.util.ReadablePoint;
import java.util.Map;
import java.util.Optional;
//#if MC>=11300
import com.replaymod.core.versions.MCVer.Keyboard;
//#else
//$$ import org.lwjgl.input.Keyboard;
//#endif
import static de.johni0702.minecraft.gui.utils.Utils.link;
public abstract class GuiEditKeyframe<T extends GuiEditKeyframe<T>> extends AbstractGuiPopup<T> implements Typeable {

View File

@@ -1,6 +1,7 @@
package com.replaymod.simplepathing.gui;
import com.replaymod.core.ReplayMod;
import com.replaymod.core.versions.MCVer;
import com.replaymod.pathing.properties.CameraProperties;
import com.replaymod.pathing.properties.SpectatorProperty;
import com.replaymod.pathing.properties.TimestampProperty;
@@ -16,11 +17,10 @@ import com.replaymod.simplepathing.SPTimeline.SPPath;
import de.johni0702.minecraft.gui.GuiRenderer;
import de.johni0702.minecraft.gui.element.advanced.AbstractGuiTimeline;
import de.johni0702.minecraft.gui.function.Draggable;
import net.minecraft.client.Minecraft;
import org.apache.commons.lang3.tuple.Pair;
import org.lwjgl.util.Point;
import org.lwjgl.util.ReadableDimension;
import org.lwjgl.util.ReadablePoint;
import de.johni0702.minecraft.gui.utils.lwjgl.Point;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadablePoint;
import java.util.Comparator;
import java.util.Optional;
@@ -46,7 +46,7 @@ public class GuiKeyframeTimeline extends AbstractGuiTimeline<GuiKeyframeTimeline
/**
* The time at which {@link #lastClickedKeyframe} was updated.
* According to {@link Minecraft#getSystemTime()}.
* According to {@link MCVer#milliTime()}.
*/
private long lastClickedTime;
@@ -191,7 +191,7 @@ public class GuiKeyframeTimeline extends AbstractGuiTimeline<GuiKeyframeTimeline
// Clicked on keyframe
long keyframeTime = pathKeyframePair.getRight();
if (button == 0) { // Left click
long now = Minecraft.getSystemTime();
long now = MCVer.milliTime();
if (lastClickedKeyframe == keyframeTime) {
// Clicked the same keyframe again, potentially a double click
if (now - lastClickedTime < DOUBLE_CLICK_INTERVAL) {

View File

@@ -45,20 +45,23 @@ import de.johni0702.minecraft.gui.popup.AbstractGuiPopup;
import de.johni0702.minecraft.gui.popup.GuiInfoPopup;
import de.johni0702.minecraft.gui.popup.GuiYesNoPopup;
import de.johni0702.minecraft.gui.utils.Colors;
import de.johni0702.minecraft.gui.utils.lwjgl.Dimension;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadablePoint;
import de.johni0702.minecraft.gui.utils.lwjgl.WritablePoint;
import net.minecraft.crash.CrashReport;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.input.Keyboard;
import org.lwjgl.util.Dimension;
import org.lwjgl.util.ReadableDimension;
import org.lwjgl.util.ReadablePoint;
import org.lwjgl.util.WritablePoint;
//#if MC>=11300
//#else
//$$ import org.lwjgl.input.Keyboard;
//#if MC>=10800
import net.minecraftforge.fml.common.Loader;
//$$ import net.minecraftforge.fml.common.Loader;
//#else
//$$ import cpw.mods.fml.common.Loader;
//#endif
//#endif
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -211,15 +214,9 @@ public class GuiPathing {
}).addElements(null, timelineTime, timeline, scrollbar, zoomButtonPanel);
public final GuiPanel panel = new GuiPanel()
.setLayout(new HorizontalLayout(HorizontalLayout.Alignment.CENTER).setSpacing(5));
{
panel.addElements(new HorizontalLayout.Data(0.5), playPauseButton);
if (Loader.isModLoaded("replaymod-render")) {
panel.addElements(new HorizontalLayout.Data(0.5), renderButton);
}
panel.addElements(new HorizontalLayout.Data(0.5), positionKeyframeButton, timeKeyframeButton, timelinePanel);
}
.setLayout(new HorizontalLayout(HorizontalLayout.Alignment.CENTER).setSpacing(5))
.addElements(new HorizontalLayout.Data(0.5),
playPauseButton, renderButton, positionKeyframeButton, timeKeyframeButton, timelinePanel);
/**
* IGuiClickable dummy component that is inserted at a high level.

View File

@@ -1,6 +1,6 @@
package com.replaymod.simplepathing.preview;
import com.replaymod.core.ReplayMod;
import com.replaymod.core.KeyBindingRegistry;
import com.replaymod.core.SettingsRegistry;
import com.replaymod.core.events.SettingsChangedEvent;
import com.replaymod.replay.ReplayHandler;
@@ -8,13 +8,17 @@ import com.replaymod.replay.events.ReplayCloseEvent;
import com.replaymod.replay.events.ReplayOpenEvent;
import com.replaymod.simplepathing.ReplayModSimplePathing;
import com.replaymod.simplepathing.Setting;
import org.lwjgl.input.Keyboard;
//#if MC>=11300
import net.minecraftforge.eventbus.api.SubscribeEvent;
//#else
//$$ import org.lwjgl.input.Keyboard;
//#if MC>=10800
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
//#else
//$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
//#endif
//#endif
import static com.replaymod.core.versions.MCVer.*;
@@ -30,12 +34,13 @@ public class PathPreview {
public void register() {
FML_BUS.register(this);
}
ReplayMod core = mod.getCore();
mod.getCore().getKeyBindingRegistry().registerKeyBinding("replaymod.input.pathpreview", Keyboard.KEY_H, () -> {
SettingsRegistry registry = core.getSettingsRegistry();
registry.set(Setting.PATH_PREVIEW, !registry.get(Setting.PATH_PREVIEW));
registry.save();
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();
});
}

View File

@@ -1,6 +1,7 @@
package com.replaymod.simplepathing.preview;
import com.replaymod.core.ReplayMod;
import com.replaymod.core.versions.MCVer;
import com.replaymod.pathing.properties.CameraProperties;
import com.replaymod.pathing.properties.SpectatorProperty;
import com.replaymod.pathing.properties.TimestampProperty;
@@ -15,7 +16,6 @@ import com.replaymod.simplepathing.ReplayModSimplePathing;
import com.replaymod.simplepathing.SPTimeline;
import com.replaymod.simplepathing.gui.GuiPathing;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.RenderWorldLastEvent;
@@ -26,7 +26,11 @@ import org.lwjgl.opengl.GL11;
//#if MC>=10800
import net.minecraft.client.renderer.GlStateManager;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
//#if MC>=11300
import net.minecraftforge.eventbus.api.SubscribeEvent;
//#else
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
//#endif
//#else
//$$ import com.replaymod.core.versions.MCVer.GlStateManager;
//$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
@@ -40,7 +44,7 @@ import static com.replaymod.core.versions.MCVer.*;
public class PathPreviewRenderer {
private static final ResourceLocation CAMERA_HEAD = new ResourceLocation("replaymod", "camera_head.png");
private static final Minecraft mc = Minecraft.getMinecraft();
private static final Minecraft mc = MCVer.getMinecraft();
private static final int SLOW_PATH_COLOR = 0xffcccc;
private static final int FAST_PATH_COLOR = 0x660000;
@@ -239,7 +243,7 @@ public class PathPreviewRenderer {
Keyframe keyframe) {
BufferBuilder_setTranslation(0, 0, 0);
mc.renderEngine.bindTexture(TEXTURE);
MCVer.bindTexture(TEXTURE);
float posX = 80f / ReplayMod.TEXTURE_SIZE;
float posY = 0f;
@@ -286,7 +290,7 @@ public class PathPreviewRenderer {
Triple<Float, Float, Float> rot) {
BufferBuilder_setTranslation(0, 0, 0);
mc.renderEngine.bindTexture(CAMERA_HEAD);
MCVer.bindTexture(CAMERA_HEAD);
GL11.glPushMatrix();