Update to 20w22a (minimal mode only)
This commit is contained in:
@@ -2,7 +2,7 @@ import groovy.json.JsonOutput
|
|||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("fabric-loom") version "0.2.5-SNAPSHOT" apply false
|
id("fabric-loom") version "0.2.7-SNAPSHOT" apply false
|
||||||
id("com.replaymod.preprocess") version "3c46acb"
|
id("com.replaymod.preprocess") version "3c46acb"
|
||||||
id("com.github.hierynomus.license") version "0.15.0"
|
id("com.github.hierynomus.license") version "0.15.0"
|
||||||
}
|
}
|
||||||
@@ -178,19 +178,21 @@ val doRelease by tasks.registering {
|
|||||||
defaultTasks("shadowJar")
|
defaultTasks("shadowJar")
|
||||||
|
|
||||||
preprocess {
|
preprocess {
|
||||||
"1.15.2"(11502, "yarn") {
|
"1.16"(11600, "yarn") {
|
||||||
"1.14.4"(11404, "yarn", file("versions/mapping-fabric-1.15.2-1.14.4.txt")) {
|
"1.15.2"(11502, "yarn") {
|
||||||
"1.14.4-forge"(11404, "srg", file("versions/mapping-1.14.4-fabric-forge.txt")) {
|
"1.14.4"(11404, "yarn", file("versions/mapping-fabric-1.15.2-1.14.4.txt")) {
|
||||||
"1.12.2"(11202, "srg", file("versions/1.14.4-forge/mapping.txt")) {
|
"1.14.4-forge"(11404, "srg", file("versions/mapping-1.14.4-fabric-forge.txt")) {
|
||||||
"1.12.1"(11201, "srg") {
|
"1.12.2"(11202, "srg", file("versions/1.14.4-forge/mapping.txt")) {
|
||||||
"1.12"(11200, "srg") {
|
"1.12.1"(11201, "srg") {
|
||||||
"1.11.2"(11102, "srg", file("versions/1.12/mapping.txt")) {
|
"1.12"(11200, "srg") {
|
||||||
"1.11"(11100, "srg", file("versions/1.11.2/mapping.txt")) {
|
"1.11.2"(11102, "srg", file("versions/1.12/mapping.txt")) {
|
||||||
"1.10.2"(11002, "srg", file("versions/1.11/mapping.txt")) {
|
"1.11"(11100, "srg", file("versions/1.11.2/mapping.txt")) {
|
||||||
"1.9.4"(10904, "srg") {
|
"1.10.2"(11002, "srg", file("versions/1.11/mapping.txt")) {
|
||||||
"1.8.9"(10809, "srg", file("versions/1.9.4/mapping.txt")) {
|
"1.9.4"(10904, "srg") {
|
||||||
"1.8"(10800, "srg", file("versions/1.8.9/mapping.txt")) {
|
"1.8.9"(10809, "srg", file("versions/1.9.4/mapping.txt")) {
|
||||||
"1.7.10"(10710, "srg", file("versions/1.8/mapping.txt"))
|
"1.8"(10800, "srg", file("versions/1.8.9/mapping.txt")) {
|
||||||
|
"1.7.10"(10710, "srg", file("versions/1.8/mapping.txt"))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
jGui
2
jGui
Submodule jGui updated: 3063ae1f8c...e44c2ee579
@@ -27,7 +27,8 @@ val jGuiVersions = listOf(
|
|||||||
"1.12",
|
"1.12",
|
||||||
"1.14.4-forge",
|
"1.14.4-forge",
|
||||||
"1.14.4",
|
"1.14.4",
|
||||||
"1.15.2"
|
"1.15.2",
|
||||||
|
"1.16"
|
||||||
)
|
)
|
||||||
val replayModVersions = listOf(
|
val replayModVersions = listOf(
|
||||||
"1.7.10",
|
"1.7.10",
|
||||||
@@ -42,7 +43,8 @@ val replayModVersions = listOf(
|
|||||||
"1.12.2",
|
"1.12.2",
|
||||||
"1.14.4-forge",
|
"1.14.4-forge",
|
||||||
"1.14.4",
|
"1.14.4",
|
||||||
"1.15.2"
|
"1.15.2",
|
||||||
|
"1.16"
|
||||||
)
|
)
|
||||||
|
|
||||||
include(":jGui")
|
include(":jGui")
|
||||||
|
|||||||
@@ -261,6 +261,9 @@ public class ReplayMod implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ // TODO
|
||||||
|
//#else
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
mc.getResourcePackManager().registerProvider(new ResourcePackProvider() {
|
mc.getResourcePackManager().registerProvider(new ResourcePackProvider() {
|
||||||
@Override
|
@Override
|
||||||
@@ -273,6 +276,7 @@ public class ReplayMod implements
|
|||||||
//$$ List<IResourcePack> defaultResourcePacks = ((MinecraftAccessor) mc).getDefaultResourcePacks();
|
//$$ List<IResourcePack> defaultResourcePacks = ((MinecraftAccessor) mc).getDefaultResourcePacks();
|
||||||
//$$ defaultResourcePacks.add(jGuiResourcePack);
|
//$$ defaultResourcePacks.add(jGuiResourcePack);
|
||||||
//#endif
|
//#endif
|
||||||
|
//#endif
|
||||||
//#if MC<=10710
|
//#if MC<=10710
|
||||||
//$$ FolderResourcePack mainResourcePack = new FolderResourcePack(new File("../src/main/resources")) {
|
//$$ FolderResourcePack mainResourcePack = new FolderResourcePack(new File("../src/main/resources")) {
|
||||||
//$$ @Override
|
//$$ @Override
|
||||||
@@ -649,13 +653,19 @@ public class ReplayMod implements
|
|||||||
if (getSettingsRegistry().get(Setting.NOTIFICATIONS)) {
|
if (getSettingsRegistry().get(Setting.NOTIFICATIONS)) {
|
||||||
// Some nostalgia: "§8[§6Replay Mod§8]§r Your message goes here"
|
// Some nostalgia: "§8[§6Replay Mod§8]§r Your message goes here"
|
||||||
//#if MC>=10904
|
//#if MC>=10904
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ Style coloredDarkGray = Style.EMPTY.withColor(Formatting.DARK_GRAY);
|
||||||
|
//$$ Style coloredGold = Style.EMPTY.withColor(Formatting.GOLD);
|
||||||
|
//$$ Style alert = Style.EMPTY.withColor(warning ? Formatting.RED : Formatting.DARK_GREEN);
|
||||||
|
//#else
|
||||||
Style coloredDarkGray = new Style().setColor(Formatting.DARK_GRAY);
|
Style coloredDarkGray = new Style().setColor(Formatting.DARK_GRAY);
|
||||||
Style coloredGold = new Style().setColor(Formatting.GOLD);
|
Style coloredGold = new Style().setColor(Formatting.GOLD);
|
||||||
|
Style alert = new Style().setColor(warning ? Formatting.RED : Formatting.DARK_GREEN);
|
||||||
|
//#endif
|
||||||
Text text = new LiteralText("[").setStyle(coloredDarkGray)
|
Text text = new LiteralText("[").setStyle(coloredDarkGray)
|
||||||
.append(new TranslatableText("replaymod.title").setStyle(coloredGold))
|
.append(new TranslatableText("replaymod.title").setStyle(coloredGold))
|
||||||
.append(new LiteralText("] "))
|
.append(new LiteralText("] "))
|
||||||
.append(new TranslatableText(message, args).setStyle(new Style()
|
.append(new TranslatableText(message, args).setStyle(alert));
|
||||||
.setColor(warning ? Formatting.RED : Formatting.DARK_GREEN)));
|
|
||||||
//#else
|
//#else
|
||||||
//$$ ChatStyle coloredDarkGray = new ChatStyle().setColor(EnumChatFormatting.DARK_GRAY);
|
//$$ ChatStyle coloredDarkGray = new ChatStyle().setColor(EnumChatFormatting.DARK_GRAY);
|
||||||
//$$ ChatStyle coloredGold = new ChatStyle().setColor(EnumChatFormatting.GOLD);
|
//$$ ChatStyle coloredGold = new ChatStyle().setColor(EnumChatFormatting.GOLD);
|
||||||
|
|||||||
@@ -5,13 +5,16 @@ import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
|||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.screen.TitleScreen;
|
import net.minecraft.client.gui.screen.TitleScreen;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.realms.RealmsScreenProxy;
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.replaymod.core.versions.MCVer.*;
|
import static com.replaymod.core.versions.MCVer.*;
|
||||||
|
|
||||||
|
//#if MC>=11400 && MC<11600
|
||||||
|
import net.minecraft.realms.RealmsScreenProxy;
|
||||||
|
//#endif
|
||||||
|
|
||||||
//#if FABRIC>=1
|
//#if FABRIC>=1
|
||||||
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
|
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
|
||||||
//#else
|
//#else
|
||||||
@@ -68,7 +71,7 @@ public class MainMenuHandler extends EventRegistrations {
|
|||||||
}
|
}
|
||||||
//#endif
|
//#endif
|
||||||
}
|
}
|
||||||
//#if MC>=11400
|
//#if MC>=11400 && MC<11600
|
||||||
GuiMainMenuAccessor guiA = (GuiMainMenuAccessor) gui;
|
GuiMainMenuAccessor guiA = (GuiMainMenuAccessor) gui;
|
||||||
if (realmsOffset != 0 && guiA.getRealmsNotification() instanceof RealmsScreenProxy) {
|
if (realmsOffset != 0 && guiA.getRealmsNotification() instanceof RealmsScreenProxy) {
|
||||||
guiA.setRealmsNotification(new RealmsNotificationProxy((RealmsScreenProxy) guiA.getRealmsNotification(), realmsOffset));
|
guiA.setRealmsNotification(new RealmsNotificationProxy((RealmsScreenProxy) guiA.getRealmsNotification(), realmsOffset));
|
||||||
@@ -77,7 +80,7 @@ public class MainMenuHandler extends EventRegistrations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//#if MC>=11400
|
//#if MC>=11400 && MC<11600
|
||||||
private static class RealmsNotificationProxy extends Screen {
|
private static class RealmsNotificationProxy extends Screen {
|
||||||
private final RealmsScreenProxy proxy;
|
private final RealmsScreenProxy proxy;
|
||||||
private final int offset;
|
private final int offset;
|
||||||
|
|||||||
@@ -19,25 +19,39 @@ public class WrappedTimer extends RenderTickCounter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginRenderTick(
|
public
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ int
|
||||||
|
//#else
|
||||||
|
void
|
||||||
|
//#endif
|
||||||
|
beginRenderTick(
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
long sysClock
|
long sysClock
|
||||||
//#endif
|
//#endif
|
||||||
) {
|
) {
|
||||||
copy(this, wrapped);
|
copy(this, wrapped);
|
||||||
wrapped.beginRenderTick(
|
try {
|
||||||
//#if MC>=11400
|
//#if MC>=11600
|
||||||
sysClock
|
//$$ return
|
||||||
//#endif
|
//#endif
|
||||||
);
|
wrapped.beginRenderTick(
|
||||||
copy(wrapped, this);
|
//#if MC>=11400
|
||||||
|
sysClock
|
||||||
|
//#endif
|
||||||
|
);
|
||||||
|
} finally {
|
||||||
|
copy(wrapped, this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void copy(RenderTickCounter from, RenderTickCounter to) {
|
protected void copy(RenderTickCounter from, RenderTickCounter to) {
|
||||||
TimerAccessor fromA = (TimerAccessor) from;
|
TimerAccessor fromA = (TimerAccessor) from;
|
||||||
TimerAccessor toA = (TimerAccessor) to;
|
TimerAccessor toA = (TimerAccessor) to;
|
||||||
|
|
||||||
|
//#if MC<11600
|
||||||
to.ticksThisFrame = from.ticksThisFrame;
|
to.ticksThisFrame = from.ticksThisFrame;
|
||||||
|
//#endif
|
||||||
to.tickDelta = from.tickDelta;
|
to.tickDelta = from.tickDelta;
|
||||||
toA.setLastSyncSysClock(fromA.getLastSyncSysClock());
|
toA.setLastSyncSysClock(fromA.getLastSyncSysClock());
|
||||||
to.lastFrameDuration = from.lastFrameDuration;
|
to.lastFrameDuration = from.lastFrameDuration;
|
||||||
|
|||||||
@@ -82,11 +82,15 @@ public class HotkeyButtons extends EventRegistrations implements Extra {
|
|||||||
// There doesn't seem to be an KeyBindingUpdate event, so we'll just update it every time
|
// There doesn't seem to be an KeyBindingUpdate event, so we'll just update it every time
|
||||||
String keyName = "???";
|
String keyName = "???";
|
||||||
try {
|
try {
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ keyName = keyBinding.getBoundKeyLocalizedText().asString();
|
||||||
|
//#else
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
keyName = keyBinding.getLocalizedName();
|
keyName = keyBinding.getLocalizedName();
|
||||||
//#else
|
//#else
|
||||||
//$$ keyName = Keyboard.getKeyName(keyBinding.getKeyCode());
|
//$$ keyName = Keyboard.getKeyName(keyBinding.getKeyCode());
|
||||||
//#endif
|
//#endif
|
||||||
|
//#endif
|
||||||
} catch (ArrayIndexOutOfBoundsException e) {
|
} catch (ArrayIndexOutOfBoundsException e) {
|
||||||
// Apparently windows likes to press strange keys, see https://www.replaymod.com/forum/thread/55
|
// Apparently windows likes to press strange keys, see https://www.replaymod.com/forum/thread/55
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ public class PlayerOverviewGui extends GuiScreen implements Closeable {
|
|||||||
}.setSize(16, 16),
|
}.setSize(16, 16),
|
||||||
new GuiLabel().setText(
|
new GuiLabel().setText(
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
p.getName().asFormattedString()
|
p.getName().asString()
|
||||||
//#else
|
//#else
|
||||||
//#if MC>=10800
|
//#if MC>=10800
|
||||||
//$$ p.getName()
|
//$$ p.getName()
|
||||||
@@ -181,7 +181,7 @@ public class PlayerOverviewGui extends GuiScreen implements Closeable {
|
|||||||
if (isSpectator(o1) && !isSpectator(o2)) return 1;
|
if (isSpectator(o1) && !isSpectator(o2)) return 1;
|
||||||
if (isSpectator(o2) && !isSpectator(o1)) return -1;
|
if (isSpectator(o2) && !isSpectator(o1)) return -1;
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
return o1.getName().asFormattedString().compareToIgnoreCase(o2.getName().asFormattedString());
|
return o1.getName().asString().compareToIgnoreCase(o2.getName().asString());
|
||||||
//#else
|
//#else
|
||||||
//#if MC>=10800
|
//#if MC>=10800
|
||||||
//$$ return o1.getName().compareToIgnoreCase(o2.getName());
|
//$$ return o1.getName().compareToIgnoreCase(o2.getName());
|
||||||
|
|||||||
@@ -124,10 +124,13 @@ public abstract class AbstractTimelinePlayer extends EventRegistrations {
|
|||||||
float timeInTicks = replayTime / 50f;
|
float timeInTicks = replayTime / 50f;
|
||||||
float previousTimeInTicks = lastTime / 50f;
|
float previousTimeInTicks = lastTime / 50f;
|
||||||
float passedTicks = timeInTicks - previousTimeInTicks;
|
float passedTicks = timeInTicks - previousTimeInTicks;
|
||||||
RenderTickCounter timer = ((MinecraftAccessor) mc).getTimer();
|
RenderTickCounter renderTickCounter = ((MinecraftAccessor) mc).getTimer();
|
||||||
timer.tickDelta += passedTicks;
|
if (renderTickCounter instanceof ReplayTimer) {
|
||||||
timer.ticksThisFrame = (int) timer.tickDelta;
|
ReplayTimer timer = (ReplayTimer) renderTickCounter;
|
||||||
timer.tickDelta -= timer.ticksThisFrame;
|
timer.tickDelta += passedTicks;
|
||||||
|
timer.ticksThisFrame = (int) timer.tickDelta;
|
||||||
|
timer.tickDelta -= timer.ticksThisFrame;
|
||||||
|
}
|
||||||
|
|
||||||
lastTime = replayTime;
|
lastTime = replayTime;
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,10 @@ public class ReplayTimer extends WrappedTimer {
|
|||||||
//$$ private final Timer state = new Timer(0);
|
//$$ private final Timer state = new Timer(0);
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ public int ticksThisFrame;
|
||||||
|
//#endif
|
||||||
|
|
||||||
public ReplayTimer(RenderTickCounter wrapped) {
|
public ReplayTimer(RenderTickCounter wrapped) {
|
||||||
super(wrapped);
|
super(wrapped);
|
||||||
}
|
}
|
||||||
@@ -21,7 +25,13 @@ public class ReplayTimer extends WrappedTimer {
|
|||||||
@Override
|
@Override
|
||||||
// This should be handled by Remap but it isn't (was handled before a9724e3).
|
// This should be handled by Remap but it isn't (was handled before a9724e3).
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
public void beginRenderTick(
|
public
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ int
|
||||||
|
//#else
|
||||||
|
void
|
||||||
|
//#endif
|
||||||
|
beginRenderTick(
|
||||||
//#else
|
//#else
|
||||||
//$$ public void updateTimer(
|
//$$ public void updateTimer(
|
||||||
//#endif
|
//#endif
|
||||||
@@ -30,13 +40,22 @@ public class ReplayTimer extends WrappedTimer {
|
|||||||
//#endif
|
//#endif
|
||||||
) {
|
) {
|
||||||
copy(this, state); // Save our current state
|
copy(this, state); // Save our current state
|
||||||
wrapped.beginRenderTick(
|
try {
|
||||||
//#if MC>=11400
|
//#if MC>=11600
|
||||||
sysClock
|
//$$ ticksThisFrame =
|
||||||
//#endif
|
//#endif
|
||||||
); // Update current state
|
wrapped.beginRenderTick(
|
||||||
copy(state, this); // Restore our old state
|
//#if MC>=11400
|
||||||
UpdatedCallback.EVENT.invoker().onUpdate();
|
sysClock
|
||||||
|
//#endif
|
||||||
|
); // Update current state
|
||||||
|
} finally {
|
||||||
|
copy(state, this); // Restore our old state
|
||||||
|
UpdatedCallback.EVENT.invoker().onUpdate();
|
||||||
|
}
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ return ticksThisFrame;
|
||||||
|
//#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public RenderTickCounter getWrapped() {
|
public RenderTickCounter getWrapped() {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
|||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.font.TextRenderer;
|
import net.minecraft.client.font.TextRenderer;
|
||||||
import net.minecraft.client.resource.language.I18n;
|
import net.minecraft.client.resource.language.I18n;
|
||||||
|
import net.minecraft.client.util.math.MatrixStack;
|
||||||
|
|
||||||
//#if FABRIC>=1
|
//#if FABRIC>=1
|
||||||
import de.johni0702.minecraft.gui.versions.callbacks.RenderHudCallback;
|
import de.johni0702.minecraft.gui.versions.callbacks.RenderHudCallback;
|
||||||
@@ -41,21 +42,26 @@ public class GuiRecordingOverlay extends EventRegistrations {
|
|||||||
* Render the recording icon and text in the top left corner of the screen.
|
* Render the recording icon and text in the top left corner of the screen.
|
||||||
*/
|
*/
|
||||||
//#if FABRIC>=1
|
//#if FABRIC>=1
|
||||||
{ on(RenderHudCallback.EVENT, partialTicks -> renderRecordingIndicator()); }
|
{ on(RenderHudCallback.EVENT, (stack, partialTicks) -> renderRecordingIndicator(stack)); }
|
||||||
private void renderRecordingIndicator() {
|
private void renderRecordingIndicator(MatrixStack stack) {
|
||||||
//#else
|
//#else
|
||||||
//$$ @SubscribeEvent
|
//$$ @SubscribeEvent
|
||||||
//$$ public void renderRecordingIndicator(RenderGameOverlayEvent.Post event) {
|
//$$ public void renderRecordingIndicator(RenderGameOverlayEvent.Post event) {
|
||||||
//$$ if (getType(event) != RenderGameOverlayEvent.ElementType.ALL) return;
|
//$$ if (getType(event) != RenderGameOverlayEvent.ElementType.ALL) return;
|
||||||
|
//$$ MatrixStack stack = new MatrixStack();
|
||||||
//#endif
|
//#endif
|
||||||
if (guiControls.isStopped()) return;
|
if (guiControls.isStopped()) return;
|
||||||
if (settingsRegistry.get(Setting.INDICATOR)) {
|
if (settingsRegistry.get(Setting.INDICATOR)) {
|
||||||
TextRenderer fontRenderer = mc.textRenderer;
|
TextRenderer fontRenderer = mc.textRenderer;
|
||||||
String text = guiControls.isPaused() ? I18n.translate("replaymod.gui.paused") : I18n.translate("replaymod.gui.recording");
|
String text = guiControls.isPaused() ? I18n.translate("replaymod.gui.paused") : I18n.translate("replaymod.gui.recording");
|
||||||
fontRenderer.draw(text.toUpperCase(), 30, 18 - (fontRenderer.fontHeight / 2), 0xffffffff);
|
fontRenderer.draw(
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ stack,
|
||||||
|
//#endif
|
||||||
|
text.toUpperCase(), 30, 18 - (fontRenderer.fontHeight / 2), 0xffffffff);
|
||||||
bindTexture(TEXTURE);
|
bindTexture(TEXTURE);
|
||||||
enableAlphaTest();
|
enableAlphaTest();
|
||||||
GuiRenderer renderer = new MinecraftGuiRenderer(MCVer.newScaledResolution(mc));
|
GuiRenderer renderer = new MinecraftGuiRenderer(stack, MCVer.newScaledResolution(mc));
|
||||||
renderer.drawTexturedRect(10, 10, 58, 20, 16, 16, 16, 16, TEXTURE_SIZE, TEXTURE_SIZE);
|
renderer.drawTexturedRect(10, 10, 58, 20, 16, 16, 16, 16, TEXTURE_SIZE, TEXTURE_SIZE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,9 @@ import net.minecraft.client.MinecraftClient;
|
|||||||
import net.minecraft.network.ClientConnection;
|
import net.minecraft.network.ClientConnection;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ import net.minecraft.world.World;
|
||||||
|
//#else
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
//#endif
|
//#endif
|
||||||
@@ -25,6 +28,7 @@ import net.minecraft.world.dimension.DimensionType;
|
|||||||
//#if MC>=10800
|
//#if MC>=10800
|
||||||
import net.minecraft.world.level.LevelGeneratorType;
|
import net.minecraft.world.level.LevelGeneratorType;
|
||||||
//#endif
|
//#endif
|
||||||
|
//#endif
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
@@ -60,10 +64,14 @@ public class ConnectionEventHandler {
|
|||||||
boolean local = networkManager.isLocal();
|
boolean local = networkManager.isLocal();
|
||||||
if (local) {
|
if (local) {
|
||||||
//#if MC>=10800
|
//#if MC>=10800
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ if (mc.getServer().getWorld(World.field_25179).isDebugWorld()) {
|
||||||
|
//#else
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
if (mc.getServer().getWorld(DimensionType.OVERWORLD).getGeneratorType() == LevelGeneratorType.DEBUG_ALL_BLOCK_STATES) {
|
if (mc.getServer().getWorld(DimensionType.OVERWORLD).getGeneratorType() == LevelGeneratorType.DEBUG_ALL_BLOCK_STATES) {
|
||||||
//#else
|
//#else
|
||||||
//$$ if (mc.getIntegratedServer().getEntityWorld().getWorldType() == WorldType.DEBUG_ALL_BLOCK_STATES) {
|
//$$ if (mc.getIntegratedServer().getEntityWorld().getWorldType() == WorldType.DEBUG_ALL_BLOCK_STATES) {
|
||||||
|
//#endif
|
||||||
//#endif
|
//#endif
|
||||||
logger.info("Debug World recording is not supported.");
|
logger.info("Debug World recording is not supported.");
|
||||||
return;
|
return;
|
||||||
@@ -82,7 +90,11 @@ public class ConnectionEventHandler {
|
|||||||
|
|
||||||
String worldName;
|
String worldName;
|
||||||
if (local) {
|
if (local) {
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ worldName = mc.getServer().method_27728().getLevelName();
|
||||||
|
//#else
|
||||||
worldName = mc.getServer().getLevelName();
|
worldName = mc.getServer().getLevelName();
|
||||||
|
//#endif
|
||||||
} else if (mc.getCurrentServerEntry() != null) {
|
} else if (mc.getCurrentServerEntry() != null) {
|
||||||
worldName = mc.getCurrentServerEntry().address;
|
worldName = mc.getCurrentServerEntry().address;
|
||||||
//#if MC>=11100
|
//#if MC>=11100
|
||||||
|
|||||||
@@ -207,9 +207,13 @@ public class RecordingEventHandler extends EventRegistrations {
|
|||||||
//$$ (byte) Math.round(dx * 32), (byte) Math.round(dy * 32), (byte) Math.round(dz * 32),
|
//$$ (byte) Math.round(dx * 32), (byte) Math.round(dy * 32), (byte) Math.round(dz * 32),
|
||||||
//#endif
|
//#endif
|
||||||
newYaw, newPitch
|
newYaw, newPitch
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ , player.isOnGround()
|
||||||
|
//#else
|
||||||
//#if MC>=10800
|
//#if MC>=10800
|
||||||
, player.onGround
|
, player.onGround
|
||||||
//#endif
|
//#endif
|
||||||
|
//#endif
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,16 +10,25 @@ import net.minecraft.sound.SoundCategory;
|
|||||||
import net.minecraft.sound.SoundEvent;
|
import net.minecraft.sound.SoundEvent;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.level.LevelProperties;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ import net.minecraft.util.registry.RegistryKey;
|
||||||
|
//$$ import net.minecraft.world.MutableWorldProperties;
|
||||||
|
//$$ import java.util.function.Supplier;
|
||||||
|
//#else
|
||||||
|
import net.minecraft.world.level.LevelProperties;
|
||||||
|
//#endif
|
||||||
|
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
import net.minecraft.world.chunk.ChunkManager;
|
import net.minecraft.world.chunk.ChunkManager;
|
||||||
|
//#if MC<11600
|
||||||
import net.minecraft.world.dimension.Dimension;
|
import net.minecraft.world.dimension.Dimension;
|
||||||
|
//#endif
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
//#else
|
//#else
|
||||||
@@ -38,6 +47,11 @@ public abstract class MixinWorldClient extends World implements RecordingEventHa
|
|||||||
@Shadow
|
@Shadow
|
||||||
private MinecraftClient client;
|
private MinecraftClient client;
|
||||||
|
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ protected MixinWorldClient(MutableWorldProperties mutableWorldProperties, RegistryKey<World> registryKey, RegistryKey<DimensionType> registryKey2, DimensionType dimensionType, Supplier<Profiler> profiler, boolean bl, boolean bl2, long l) {
|
||||||
|
//$$ super(mutableWorldProperties, registryKey, registryKey2, dimensionType, profiler, bl, bl2, l);
|
||||||
|
//$$ }
|
||||||
|
//#else
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
protected MixinWorldClient(LevelProperties levelProperties_1, DimensionType dimensionType_1, BiFunction<World, Dimension, ChunkManager> biFunction_1, Profiler profiler_1, boolean boolean_1) {
|
protected MixinWorldClient(LevelProperties levelProperties_1, DimensionType dimensionType_1, BiFunction<World, Dimension, ChunkManager> biFunction_1, Profiler profiler_1, boolean boolean_1) {
|
||||||
super(levelProperties_1, dimensionType_1, biFunction_1, profiler_1, boolean_1);
|
super(levelProperties_1, dimensionType_1, biFunction_1, profiler_1, boolean_1);
|
||||||
@@ -61,6 +75,7 @@ public abstract class MixinWorldClient extends World implements RecordingEventHa
|
|||||||
//$$ info, providerIn, profilerIn, client);
|
//$$ info, providerIn, profilerIn, client);
|
||||||
//$$ }
|
//$$ }
|
||||||
//#endif
|
//#endif
|
||||||
|
//#endif
|
||||||
|
|
||||||
private RecordingEventHandler replayModRecording_getRecordingEventHandler() {
|
private RecordingEventHandler replayModRecording_getRecordingEventHandler() {
|
||||||
return ((RecordingEventHandler.RecordingEventSender) this.client.worldRenderer).getRecordingEventHandler();
|
return ((RecordingEventHandler.RecordingEventSender) this.client.worldRenderer).getRecordingEventHandler();
|
||||||
|
|||||||
@@ -32,6 +32,10 @@ import net.minecraft.util.crash.CrashException;
|
|||||||
import net.minecraft.sound.SoundCategory;
|
import net.minecraft.sound.SoundCategory;
|
||||||
import net.minecraft.client.render.RenderTickCounter;
|
import net.minecraft.client.render.RenderTickCounter;
|
||||||
|
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ import net.minecraft.client.util.math.MatrixStack;
|
||||||
|
//#endif
|
||||||
|
|
||||||
//#if MC>=11500
|
//#if MC>=11500
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import net.minecraft.client.util.Window;
|
import net.minecraft.client.util.Window;
|
||||||
@@ -160,7 +164,9 @@ public class VideoRenderer implements RenderInfo {
|
|||||||
//$$ timer.timerSpeed = 1;
|
//$$ timer.timerSpeed = 1;
|
||||||
//#endif
|
//#endif
|
||||||
while (replayTime < videoStart) {
|
while (replayTime < videoStart) {
|
||||||
|
//#if MC<11600
|
||||||
timer.ticksThisFrame = 1;
|
timer.ticksThisFrame = 1;
|
||||||
|
//#endif
|
||||||
replayTime += 50;
|
replayTime += 50;
|
||||||
replayHandler.getReplaySender().sendPacketsTill(replayTime);
|
replayHandler.getReplaySender().sendPacketsTill(replayTime);
|
||||||
tick();
|
tick();
|
||||||
@@ -218,6 +224,11 @@ public class VideoRenderer implements RenderInfo {
|
|||||||
|
|
||||||
// Updating the timer will cause the timeline player to update the game state
|
// Updating the timer will cause the timeline player to update the game state
|
||||||
RenderTickCounter timer = ((MinecraftAccessor) mc).getTimer();
|
RenderTickCounter timer = ((MinecraftAccessor) mc).getTimer();
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ int elapsedTicks =
|
||||||
|
//#else
|
||||||
|
int elapsedTicks = timer.ticksThisFrame;
|
||||||
|
//#endif
|
||||||
timer.beginRenderTick(
|
timer.beginRenderTick(
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
MCVer.milliTime()
|
MCVer.milliTime()
|
||||||
@@ -232,7 +243,6 @@ public class VideoRenderer implements RenderInfo {
|
|||||||
//$$ }
|
//$$ }
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
int elapsedTicks = timer.ticksThisFrame;
|
|
||||||
while (elapsedTicks-- > 0) {
|
while (elapsedTicks-- > 0) {
|
||||||
tick();
|
tick();
|
||||||
}
|
}
|
||||||
@@ -501,7 +511,11 @@ public class VideoRenderer implements RenderInfo {
|
|||||||
int mouseY = (int) mc.mouse.getY() * getWindow(mc).getScaledHeight() / displayHeight;
|
int mouseY = (int) mc.mouse.getY() * getWindow(mc).getScaledHeight() / displayHeight;
|
||||||
|
|
||||||
gui.toMinecraft().tick();
|
gui.toMinecraft().tick();
|
||||||
gui.toMinecraft().render(mouseX, mouseY, 0);
|
gui.toMinecraft().render(
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ new MatrixStack(),
|
||||||
|
//#endif
|
||||||
|
mouseX, mouseY, 0);
|
||||||
//#else
|
//#else
|
||||||
//$$ int mouseX = Mouse.getX() * scaled.getScaledWidth() / mc.displayWidth;
|
//$$ int mouseX = Mouse.getX() * scaled.getScaledWidth() / mc.displayWidth;
|
||||||
//$$ int mouseY = scaled.getScaledHeight() - Mouse.getY() * scaled.getScaledHeight() / mc.displayHeight - 1;
|
//$$ int mouseY = scaled.getScaledHeight() - Mouse.getY() * scaled.getScaledHeight() / mc.displayHeight - 1;
|
||||||
|
|||||||
@@ -591,14 +591,27 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
|||||||
packet.getSeed(),
|
packet.getSeed(),
|
||||||
//#endif
|
//#endif
|
||||||
false,
|
false,
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ packet.method_29443(),
|
||||||
|
//$$ (net.minecraft.world.dimension.DimensionTracker.Modifiable) packet.getDimension(),
|
||||||
|
//$$ packet.method_29444(),
|
||||||
|
//$$ packet.getDimensionId(),
|
||||||
|
//#else
|
||||||
packet.getDimension(),
|
packet.getDimension(),
|
||||||
|
//#endif
|
||||||
0, // max players (has no getter -> never actually used)
|
0, // max players (has no getter -> never actually used)
|
||||||
|
//#if MC<11600
|
||||||
packet.getGeneratorType(),
|
packet.getGeneratorType(),
|
||||||
|
//#endif
|
||||||
packet.getChunkLoadDistance(),
|
packet.getChunkLoadDistance(),
|
||||||
packet.hasReducedDebugInfo()
|
packet.hasReducedDebugInfo()
|
||||||
//#if MC>=11500
|
//#if MC>=11500
|
||||||
, packet.showsDeathScreen()
|
, packet.showsDeathScreen()
|
||||||
//#endif
|
//#endif
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ , packet.isDebugWorld()
|
||||||
|
//$$ , packet.isFlatWorld()
|
||||||
|
//#endif
|
||||||
);
|
);
|
||||||
//#else
|
//#else
|
||||||
//#if MC>=10800
|
//#if MC>=10800
|
||||||
@@ -638,12 +651,22 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
|
|||||||
PlayerRespawnS2CPacket respawn = (PlayerRespawnS2CPacket) p;
|
PlayerRespawnS2CPacket respawn = (PlayerRespawnS2CPacket) p;
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
p = new PlayerRespawnS2CPacket(
|
p = new PlayerRespawnS2CPacket(
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ respawn.method_29445(),
|
||||||
|
//#endif
|
||||||
respawn.getDimension(),
|
respawn.getDimension(),
|
||||||
//#if MC>=11500
|
//#if MC>=11500
|
||||||
respawn.getSha256Seed(),
|
respawn.getSha256Seed(),
|
||||||
//#endif
|
//#endif
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ GameMode.SPECTATOR,
|
||||||
|
//$$ respawn.isDebugWorld(),
|
||||||
|
//$$ respawn.isFlatWorld(),
|
||||||
|
//$$ respawn.isWritingErrorSkippable()
|
||||||
|
//#else
|
||||||
respawn.getGeneratorType(),
|
respawn.getGeneratorType(),
|
||||||
GameMode.SPECTATOR
|
GameMode.SPECTATOR
|
||||||
|
//#endif
|
||||||
);
|
);
|
||||||
//#else
|
//#else
|
||||||
//#if MC>=10809
|
//#if MC>=10809
|
||||||
|
|||||||
@@ -45,11 +45,20 @@ public class InputReplayTimer extends WrappedTimer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beginRenderTick(
|
public
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ int
|
||||||
|
//#else
|
||||||
|
void
|
||||||
|
//#endif
|
||||||
|
beginRenderTick(
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
long sysClock
|
long sysClock
|
||||||
//#endif
|
//#endif
|
||||||
) {
|
) {
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ int ticksThisFrame =
|
||||||
|
//#endif
|
||||||
super.beginRenderTick(
|
super.beginRenderTick(
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
sysClock
|
sysClock
|
||||||
@@ -114,6 +123,9 @@ public class InputReplayTimer extends WrappedTimer {
|
|||||||
//$$ }
|
//$$ }
|
||||||
//#endif
|
//#endif
|
||||||
}
|
}
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ return ticksThisFrame;
|
||||||
|
//#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void handleScroll(int wheel) {
|
public static void handleScroll(int wheel) {
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import net.minecraft.network.NetworkState;
|
|||||||
import net.minecraft.network.NetworkSide;
|
import net.minecraft.network.NetworkSide;
|
||||||
import net.minecraft.network.Packet;
|
import net.minecraft.network.Packet;
|
||||||
import net.minecraft.util.PacketByteBuf;
|
import net.minecraft.util.PacketByteBuf;
|
||||||
import net.minecraft.world.level.LevelGeneratorType;
|
|
||||||
|
|
||||||
//#if FABRIC>=1
|
//#if FABRIC>=1
|
||||||
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
|
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
|
||||||
@@ -40,6 +39,11 @@ import java.io.IOException;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ import net.minecraft.world.World;
|
||||||
|
//#else
|
||||||
|
import net.minecraft.world.level.LevelGeneratorType;
|
||||||
|
//#endif
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
//#else
|
//#else
|
||||||
@@ -190,6 +194,15 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe
|
|||||||
public void restart() {
|
public void restart() {
|
||||||
replay.reset();
|
replay.reset();
|
||||||
ctx.fireChannelRead(new PlayerRespawnS2CPacket(
|
ctx.fireChannelRead(new PlayerRespawnS2CPacket(
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ DimensionType.OVERWORLD_REGISTRY_KEY,
|
||||||
|
//$$ World.field_25179,
|
||||||
|
//$$ 0,
|
||||||
|
//$$ GameMode.SPECTATOR,
|
||||||
|
//$$ false,
|
||||||
|
//$$ false,
|
||||||
|
//$$ false
|
||||||
|
//#else
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
DimensionType.OVERWORLD,
|
DimensionType.OVERWORLD,
|
||||||
//#else
|
//#else
|
||||||
@@ -203,6 +216,7 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe
|
|||||||
//#endif
|
//#endif
|
||||||
LevelGeneratorType.DEFAULT,
|
LevelGeneratorType.DEFAULT,
|
||||||
GameMode.SPECTATOR
|
GameMode.SPECTATOR
|
||||||
|
//#endif
|
||||||
));
|
));
|
||||||
ctx.fireChannelRead(new PlayerPositionLookS2CPacket(0, 0, 0, 0, 0, Collections.emptySet(), 0));
|
ctx.fireChannelRead(new PlayerPositionLookS2CPacket(0, 0, 0, 0, 0, Collections.emptySet(), 0));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,15 +19,17 @@ import com.replaymod.replay.gui.overlay.GuiReplayOverlay;
|
|||||||
import com.replaymod.replaystudio.data.Marker;
|
import com.replaymod.replaystudio.data.Marker;
|
||||||
import com.replaymod.replaystudio.replay.ReplayFile;
|
import com.replaymod.replaystudio.replay.ReplayFile;
|
||||||
import com.replaymod.replaystudio.util.Location;
|
import com.replaymod.replaystudio.util.Location;
|
||||||
|
import de.johni0702.minecraft.gui.container.AbstractGuiScreen;
|
||||||
import de.johni0702.minecraft.gui.container.GuiContainer;
|
import de.johni0702.minecraft.gui.container.GuiContainer;
|
||||||
|
import de.johni0702.minecraft.gui.container.GuiScreen;
|
||||||
|
import de.johni0702.minecraft.gui.element.GuiLabel;
|
||||||
import de.johni0702.minecraft.gui.element.advanced.GuiProgressBar;
|
import de.johni0702.minecraft.gui.element.advanced.GuiProgressBar;
|
||||||
|
import de.johni0702.minecraft.gui.layout.HorizontalLayout;
|
||||||
import de.johni0702.minecraft.gui.popup.AbstractGuiPopup;
|
import de.johni0702.minecraft.gui.popup.AbstractGuiPopup;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.channel.embedded.EmbeddedChannel;
|
import io.netty.channel.embedded.EmbeddedChannel;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
|
||||||
import net.minecraft.client.network.ClientLoginNetworkHandler;
|
import net.minecraft.client.network.ClientLoginNetworkHandler;
|
||||||
import net.minecraft.client.resource.language.I18n;
|
|
||||||
import net.minecraft.util.crash.CrashReport;
|
import net.minecraft.util.crash.CrashReport;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
@@ -36,6 +38,10 @@ import net.minecraft.network.ClientConnection;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
//#if MC>=11500
|
||||||
|
//$$ import net.minecraft.client.util.math.MatrixStack;
|
||||||
|
//#endif
|
||||||
|
|
||||||
//#if MC>=11500
|
//#if MC>=11500
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
@@ -180,7 +186,7 @@ public class ReplayHandler {
|
|||||||
//#else
|
//#else
|
||||||
//$$ // We need to re-set the GUI screen because having one with `allowsUserInput = true` active during world
|
//$$ // We need to re-set the GUI screen because having one with `allowsUserInput = true` active during world
|
||||||
//$$ // load (i.e. before player is set) will crash MC...
|
//$$ // load (i.e. before player is set) will crash MC...
|
||||||
//$$ mc.displayGuiScreen(new GuiScreen() {});
|
//$$ mc.displayGuiScreen(new net.minecraft.client.gui.GuiScreen() {});
|
||||||
//$$ mc.loadWorld(null);
|
//$$ mc.loadWorld(null);
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
@@ -592,22 +598,10 @@ public class ReplayHandler {
|
|||||||
replaySender.jumpToTime(targetTime);
|
replaySender.jumpToTime(targetTime);
|
||||||
} else { // We either have to restart the replay or send a significant amount of packets
|
} else { // We either have to restart the replay or send a significant amount of packets
|
||||||
// Render our please-wait-screen
|
// Render our please-wait-screen
|
||||||
Screen guiScreen = new Screen(
|
GuiScreen guiScreen = new GuiScreen();
|
||||||
//#if MC>=11400
|
guiScreen.setBackground(AbstractGuiScreen.Background.DIRT);
|
||||||
null
|
guiScreen.addElements(new HorizontalLayout.Data(0.5),
|
||||||
//#endif
|
new GuiLabel().setI18nText("replaymod.gui.pleasewait"));
|
||||||
) {
|
|
||||||
@Override
|
|
||||||
//#if MC>=11400
|
|
||||||
public void render(int mouseX, int mouseY, float partialTicks) {
|
|
||||||
//#else
|
|
||||||
//$$ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
|
|
||||||
//#endif
|
|
||||||
renderDirtBackground(0);
|
|
||||||
drawCenteredString(this.minecraft.textRenderer, I18n.translate("replaymod.gui.pleasewait"),
|
|
||||||
width / 2, height / 2, 0xffffffff);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Make sure that the replaysender changes into sync mode
|
// Make sure that the replaysender changes into sync mode
|
||||||
replaySender.setSyncModeAndWait();
|
replaySender.setSyncModeAndWait();
|
||||||
@@ -648,12 +642,17 @@ public class ReplayHandler {
|
|||||||
//$$ ScaledResolution
|
//$$ ScaledResolution
|
||||||
//#endif
|
//#endif
|
||||||
resolution = newScaledResolution(mc);
|
resolution = newScaledResolution(mc);
|
||||||
guiScreen.init(mc, resolution.getScaledWidth(), resolution.getScaledHeight());
|
guiScreen.toMinecraft().init(mc, resolution.getScaledWidth(), resolution.getScaledHeight());
|
||||||
//#if MC>=11400
|
//#if MC>=11600
|
||||||
guiScreen.render(0, 0, 0);
|
//$$ guiScreen.toMinecraft().render(new MatrixStack(), 0, 0, 0);
|
||||||
//#else
|
//#else
|
||||||
//$$ guiScreen.drawScreen(0, 0, 0);
|
//#if MC>=11400
|
||||||
|
guiScreen.toMinecraft().render(0, 0, 0);
|
||||||
|
//#else
|
||||||
|
//$$ guiScreen.toMinecraft().drawScreen(0, 0, 0);
|
||||||
//#endif
|
//#endif
|
||||||
|
//#endif
|
||||||
|
guiScreen.toMinecraft().removed();
|
||||||
|
|
||||||
mc.getFramebuffer().endWrite();
|
mc.getFramebuffer().endWrite();
|
||||||
popMatrix();
|
popMatrix();
|
||||||
|
|||||||
@@ -153,6 +153,10 @@ public class CameraEntity
|
|||||||
//#if MC>=11200
|
//#if MC>=11200
|
||||||
, recipeBook
|
, recipeBook
|
||||||
//#endif
|
//#endif
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ , false
|
||||||
|
//$$ , false
|
||||||
|
//#endif
|
||||||
);
|
);
|
||||||
eventHandler.register();
|
eventHandler.register();
|
||||||
if (ReplayModReplay.instance.getReplayHandler().getSpectatedUUID() == null) {
|
if (ReplayModReplay.instance.getReplayHandler().getSpectatedUUID() == null) {
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ import net.minecraft.client.gui.screen.Screen;
|
|||||||
import net.minecraft.client.gui.widget.AbstractButtonWidget;
|
import net.minecraft.client.gui.widget.AbstractButtonWidget;
|
||||||
import net.minecraft.client.resource.language.I18n;
|
import net.minecraft.client.resource.language.I18n;
|
||||||
|
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ import net.minecraft.text.Text;
|
||||||
|
//$$ import net.minecraft.text.TranslatableText;
|
||||||
|
//#endif
|
||||||
|
|
||||||
//#if FABRIC>=1
|
//#if FABRIC>=1
|
||||||
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
|
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
|
||||||
//#else
|
//#else
|
||||||
@@ -56,6 +61,13 @@ public class GuiHandler extends EventRegistrations {
|
|||||||
// Pause replay when menu is opened
|
// Pause replay when menu is opened
|
||||||
mod.getReplayHandler().getReplaySender().setReplaySpeed(0);
|
mod.getReplayHandler().getReplaySender().setReplaySpeed(0);
|
||||||
|
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ final TranslatableText BUTTON_OPTIONS = new TranslatableText("menu.options");
|
||||||
|
//$$ final TranslatableText BUTTON_EXIT_SERVER = new TranslatableText("menu.disconnect");
|
||||||
|
//$$ final TranslatableText BUTTON_ADVANCEMENTS = new TranslatableText("gui.advancements");
|
||||||
|
//$$ final TranslatableText BUTTON_STATS = new TranslatableText("gui.stats");
|
||||||
|
//$$ final TranslatableText BUTTON_OPEN_TO_LAN = new TranslatableText("menu.shareToLan");
|
||||||
|
//#else
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
final String BUTTON_OPTIONS = I18n.translate("menu.options");
|
final String BUTTON_OPTIONS = I18n.translate("menu.options");
|
||||||
final String BUTTON_EXIT_SERVER = I18n.translate("menu.disconnect");
|
final String BUTTON_EXIT_SERVER = I18n.translate("menu.disconnect");
|
||||||
@@ -71,6 +83,7 @@ public class GuiHandler extends EventRegistrations {
|
|||||||
//$$ final int BUTTON_STATS = 6;
|
//$$ final int BUTTON_STATS = 6;
|
||||||
//$$ final int BUTTON_OPEN_TO_LAN = 7;
|
//$$ final int BUTTON_OPEN_TO_LAN = 7;
|
||||||
//#endif
|
//#endif
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
|
||||||
//#if MC<11400
|
//#if MC<11400
|
||||||
@@ -85,7 +98,11 @@ public class GuiHandler extends EventRegistrations {
|
|||||||
//#endif
|
//#endif
|
||||||
boolean remove = false;
|
boolean remove = false;
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ Text id = b.getMessage();
|
||||||
|
//#else
|
||||||
String id = b.getMessage();
|
String id = b.getMessage();
|
||||||
|
//#endif
|
||||||
if (id == null) {
|
if (id == null) {
|
||||||
// likely a button of some third-part mod
|
// likely a button of some third-part mod
|
||||||
// e.g. https://github.com/Pokechu22/WorldDownloader/blob/b1b279f948beec2d7dac7524eea8f584a866d8eb/share_14/src/main/java/wdl/WDLHooks.java#L491
|
// e.g. https://github.com/Pokechu22/WorldDownloader/blob/b1b279f948beec2d7dac7524eea8f584a866d8eb/share_14/src/main/java/wdl/WDLHooks.java#L491
|
||||||
@@ -104,7 +121,7 @@ public class GuiHandler extends EventRegistrations {
|
|||||||
b.y,
|
b.y,
|
||||||
width(b),
|
width(b),
|
||||||
height(b),
|
height(b),
|
||||||
I18n.translate("replaymod.gui.exit"),
|
"replaymod.gui.exit",
|
||||||
this::onButton
|
this::onButton
|
||||||
));
|
));
|
||||||
} else if (id.equals(BUTTON_ADVANCEMENTS)) {
|
} else if (id.equals(BUTTON_ADVANCEMENTS)) {
|
||||||
@@ -216,7 +233,7 @@ public class GuiHandler extends EventRegistrations {
|
|||||||
guiScreen.height / 4 + 10 + 4 * 24,
|
guiScreen.height / 4 + 10 + 4 * 24,
|
||||||
200,
|
200,
|
||||||
20,
|
20,
|
||||||
I18n.translate("replaymod.gui.replayviewer"),
|
"replaymod.gui.replayviewer",
|
||||||
this::onButton
|
this::onButton
|
||||||
);
|
);
|
||||||
//#if FABRIC<=0
|
//#if FABRIC<=0
|
||||||
@@ -283,7 +300,11 @@ public class GuiHandler extends EventRegistrations {
|
|||||||
y,
|
y,
|
||||||
width,
|
width,
|
||||||
height,
|
height,
|
||||||
buttonText
|
//#if MC>=11600
|
||||||
|
//$$ new TranslatableText(buttonText)
|
||||||
|
//#else
|
||||||
|
I18n.translate(buttonText)
|
||||||
|
//#endif
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
, self -> onClick.accept((InjectedButton) self)
|
, self -> onClick.accept((InjectedButton) self)
|
||||||
//#endif
|
//#endif
|
||||||
|
|||||||
@@ -3,13 +3,18 @@ package com.replaymod.replay.mixin;
|
|||||||
//#if MC>=10904
|
//#if MC>=10904
|
||||||
import net.minecraft.client.particle.Particle;
|
import net.minecraft.client.particle.Particle;
|
||||||
import net.minecraft.client.particle.ParticleManager;
|
import net.minecraft.client.particle.ParticleManager;
|
||||||
import net.minecraft.world.World;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ import net.minecraft.client.world.ClientWorld;
|
||||||
|
//#else
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
//#endif
|
||||||
|
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
|
|
||||||
@Mixin(ParticleManager.class)
|
@Mixin(ParticleManager.class)
|
||||||
@@ -30,7 +35,13 @@ public abstract class MixinParticleManager {
|
|||||||
* @param ci Callback info
|
* @param ci Callback info
|
||||||
*/
|
*/
|
||||||
@Inject(method = "setWorld", at = @At("HEAD"))
|
@Inject(method = "setWorld", at = @At("HEAD"))
|
||||||
public void replayModReplay_clearParticleQueue(World world, CallbackInfo ci) {
|
public void replayModReplay_clearParticleQueue(
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ ClientWorld world,
|
||||||
|
//#else
|
||||||
|
World world,
|
||||||
|
//#endif
|
||||||
|
CallbackInfo ci) {
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
this.newParticles.clear();
|
this.newParticles.clear();
|
||||||
//#else
|
//#else
|
||||||
|
|||||||
@@ -60,6 +60,10 @@ public abstract class MixinPlayerControllerMP {
|
|||||||
//#endif
|
//#endif
|
||||||
StatHandler statisticsManager,
|
StatHandler statisticsManager,
|
||||||
ClientRecipeBook recipeBookClient,
|
ClientRecipeBook recipeBookClient,
|
||||||
|
//#if MC>=11600
|
||||||
|
//$$ boolean lastIsHoldingSneakKey,
|
||||||
|
//$$ boolean lastSprinting,
|
||||||
|
//#endif
|
||||||
CallbackInfoReturnable<ClientPlayerEntity> ci
|
CallbackInfoReturnable<ClientPlayerEntity> ci
|
||||||
) {
|
) {
|
||||||
if (ReplayModReplay.instance.getReplayHandler() != null) {
|
if (ReplayModReplay.instance.getReplayHandler() != null) {
|
||||||
|
|||||||
0
versions/1.16/.gitkeep
Normal file
0
versions/1.16/.gitkeep
Normal file
@@ -32,7 +32,7 @@ buildscript {
|
|||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.2'
|
classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.2'
|
||||||
if (fabric) {
|
if (fabric) {
|
||||||
classpath 'fabric-loom:fabric-loom.gradle.plugin:0.2.6-SNAPSHOT'
|
classpath 'fabric-loom:fabric-loom.gradle.plugin:0.2.7-SNAPSHOT'
|
||||||
} else if (mcVersion >= 11400) {
|
} else if (mcVersion >= 11400) {
|
||||||
classpath('net.minecraftforge.gradle:ForgeGradle:3.+'){
|
classpath('net.minecraftforge.gradle:ForgeGradle:3.+'){
|
||||||
exclude group: 'trove', module: 'trove' // preprocessor/idea requires more recent one
|
exclude group: 'trove', module: 'trove' // preprocessor/idea requires more recent one
|
||||||
@@ -193,7 +193,12 @@ repositories {
|
|||||||
name = "fabric"
|
name = "fabric"
|
||||||
url = "https://maven.fabricmc.net/"
|
url = "https://maven.fabricmc.net/"
|
||||||
}
|
}
|
||||||
maven { url 'https://jitpack.io' }
|
maven {
|
||||||
|
url 'https://jitpack.io'
|
||||||
|
content {
|
||||||
|
includeGroupByRegex 'com\\.github\\..*'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
@@ -226,18 +231,22 @@ dependencies {
|
|||||||
minecraft 'com.mojang:minecraft:' + [
|
minecraft 'com.mojang:minecraft:' + [
|
||||||
11404: '1.14.4',
|
11404: '1.14.4',
|
||||||
11502: '1.15.2',
|
11502: '1.15.2',
|
||||||
|
11600: '20w22a',
|
||||||
][mcVersion]
|
][mcVersion]
|
||||||
mappings 'net.fabricmc:yarn:' + [
|
mappings 'net.fabricmc:yarn:' + [
|
||||||
11404: '1.14.4+build.16',
|
11404: '1.14.4+build.16',
|
||||||
11502: '1.15.2+build.14',
|
11502: '1.15.2+build.14',
|
||||||
|
11600: '20w22a+build.11:v2',
|
||||||
][mcVersion]
|
][mcVersion]
|
||||||
modCompile 'net.fabricmc:fabric-loader:' + [
|
modCompile 'net.fabricmc:fabric-loader:' + [
|
||||||
11404: '0.7.8+build.189',
|
11404: '0.7.8+build.189',
|
||||||
11502: '0.7.8+build.189',
|
11502: '0.7.8+build.189',
|
||||||
|
11600: '0.8.6+build.200',
|
||||||
][mcVersion]
|
][mcVersion]
|
||||||
modCompile 'net.fabricmc.fabric-api:fabric-api:' + [
|
modCompile 'net.fabricmc.fabric-api:fabric-api:' + [
|
||||||
11404: '0.4.3+build.247-1.14',
|
11404: '0.4.3+build.247-1.14',
|
||||||
11502: '0.5.1+build.294-1.15',
|
11502: '0.5.1+build.294-1.15',
|
||||||
|
11600: '0.11.2+build.351-1.16',
|
||||||
][mcVersion]
|
][mcVersion]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -288,7 +297,11 @@ dependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (FABRIC) {
|
if (FABRIC) {
|
||||||
modCompile 'io.github.prospector.modmenu:ModMenu:1.6.2-92'
|
if (mcVersion >= 11600) {
|
||||||
|
modCompile 'io.github.prospector:modmenu:1.11.8+build.13'
|
||||||
|
} else {
|
||||||
|
modCompile 'io.github.prospector.modmenu:ModMenu:1.6.2-92'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
annotationProcessor 'org.projectlombok:lombok:1.18.12'
|
annotationProcessor 'org.projectlombok:lombok:1.18.12'
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
net.minecraft.client.util.math.MatrixStack de.johni0702.minecraft.gui.versions.MatrixStack
|
||||||
net.minecraft.client.render.entity.EntityRenderer shouldRender() isVisible()
|
net.minecraft.client.render.entity.EntityRenderer shouldRender() isVisible()
|
||||||
net.minecraft.client.render.GameRenderer renderWorld() renderCenter()
|
net.minecraft.client.render.GameRenderer renderWorld() renderCenter()
|
||||||
net.minecraft.entity.LivingEntity serverX field_6224
|
net.minecraft.entity.LivingEntity serverX field_6224
|
||||||
|
|||||||
Reference in New Issue
Block a user