From 527562549b727e9e4bba4fb0f099e8217af6470b Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Mon, 30 Mar 2020 18:08:01 +0200 Subject: [PATCH] Update 1.14.4 yarn --- jGui | 2 +- .../mixin/MixinShaderRenderGlobal.java | 4 +- .../java/com/replaymod/core/ReplayMod.java | 33 +++----- .../replaymod/core/mixin/MixinMinecraft.java | 6 +- .../replaymod/core/mixin/TimerAccessor.java | 4 +- .../replaymod/core/utils/Restrictions.java | 2 +- .../com/replaymod/core/versions/MCVer.java | 18 ++-- .../playeroverview/PlayerOverviewGui.java | 2 +- .../replaymod/extras/urischeme/UriScheme.java | 4 +- .../extras/youtube/GuiYoutubeUpload.java | 2 +- .../handler/RecordingEventHandler.java | 24 +++--- .../mixin/MixinDownloadingPackFinder.java | 4 +- .../mixin/MixinNetHandlerLoginClient.java | 4 +- .../mixin/MixinNetHandlerPlayClient.java | 4 +- .../recording/mixin/MixinRenderGlobal.java | 2 +- .../mixin/SPacketSpawnMobAccessor.java | 2 +- .../mixin/SPacketSpawnPlayerAccessor.java | 2 +- .../recording/packet/PacketListener.java | 16 ++-- .../packet/ResourcePackRecorder.java | 20 ++--- .../com/replaymod/render/RenderSettings.java | 4 +- .../render/blend/BlendMeshBuilder.java | 4 +- .../render/blend/exporters/ChunkExporter.java | 22 ++--- .../render/blend/exporters/ItemExporter.java | 2 +- .../exporters/ModelRendererExporter.java | 14 ++-- .../blend/exporters/ParticlesExporter.java | 2 +- ...ntainerLocalRenderInformationAccessor.java | 8 -- .../blend/mixin/MixinModelRenderer.java | 8 +- .../blend/mixin/MixinRenderLivingBase.java | 8 +- .../render/capturer/OpenGlFrameCapturer.java | 10 +-- .../render/gui/GuiVideoRenderer.java | 2 +- .../hooks/ChunkLoadingRenderGlobal.java | 12 +-- .../mixin/ChunkRenderDispatcherAccessor.java | 4 +- .../render/mixin/MixinRenderGlobal.java | 14 ++-- .../render/mixin/WorldRendererAccessor.java | 10 +-- .../render/rendering/VideoRenderer.java | 6 +- .../replaymod/replay/FullReplaySender.java | 82 +++++++++---------- .../replaymod/replay/InputReplayTimer.java | 2 +- .../replaymod/replay/QuickReplaySender.java | 4 +- .../com/replaymod/replay/ReplayHandler.java | 14 ++-- .../replaymod/replay/camera/CameraEntity.java | 14 ++-- .../camera/SpectatorCameraController.java | 6 +- .../mixin/FirstPersonRendererAccessor.java | 4 +- .../replay/mixin/MixinKeyboardListener.java | 2 +- .../replay/mixin/MixinRenderItem.java | 6 +- .../replay/mixin/MixinRenderLivingBase.java | 8 +- .../MixinTileEntityEndPortalRenderer.java | 6 +- .../replay/mixin/MixinViewFrustum.java | 4 +- versions/common.gradle | 2 +- 48 files changed, 214 insertions(+), 225 deletions(-) mode change 100755 => 100644 src/main/java/com/replaymod/replay/ReplayHandler.java diff --git a/jGui b/jGui index 6f8e8bfe..b485a7b0 160000 --- a/jGui +++ b/jGui @@ -1 +1 @@ -Subproject commit 6f8e8bfe0bd156ab51daf472e059b223ea7c69a8 +Subproject commit b485a7b078d7d3c739517c2769adb31507356513 diff --git a/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderRenderGlobal.java b/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderRenderGlobal.java index 75bdac75..094dcb52 100644 --- a/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderRenderGlobal.java +++ b/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderRenderGlobal.java @@ -24,7 +24,7 @@ public abstract class MixinShaderRenderGlobal { private final MinecraftClient mc = MinecraftClient.getInstance(); @Shadow - public boolean terrainUpdateNecessary; + public boolean needsTerrainUpdate; @Inject(method = "setUpTerrain", at = @At("HEAD"), cancellable = true) public void replayModCompat_setupTerrain( @@ -51,7 +51,7 @@ public abstract class MixinShaderRenderGlobal { // set it to false manually to exit the loop imposed by MixinRenderGlobal#replayModRender_setupTerrain. try { if ((boolean) ShaderReflection.shaders_isShadowPass.get(null) == true) { - this.terrainUpdateNecessary = false; + this.needsTerrainUpdate = false; } } catch (IllegalAccessException ignore) {} diff --git a/src/main/java/com/replaymod/core/ReplayMod.java b/src/main/java/com/replaymod/core/ReplayMod.java index 6c7f2979..7fdb4495 100755 --- a/src/main/java/com/replaymod/core/ReplayMod.java +++ b/src/main/java/com/replaymod/core/ReplayMod.java @@ -33,9 +33,9 @@ import org.apache.commons.io.FileUtils; //#if MC>=11400 import net.minecraft.client.options.Option; -import net.minecraft.resource.ResourcePackCreator; -import net.minecraft.resource.ResourcePackContainer; -import net.minecraft.util.NonBlockingThreadExecutor; +import net.minecraft.resource.ResourcePackProvider; +import net.minecraft.resource.ResourcePackProfile; +import net.minecraft.util.thread.ReentrantThreadExecutor; //#endif //#if FABRIC>=1 @@ -263,10 +263,10 @@ public class ReplayMod implements } }; //#if MC>=11400 - mc.getResourcePackContainerManager().addCreator(new ResourcePackCreator() { + mc.getResourcePackManager().registerProvider(new ResourcePackProvider() { @Override - public void registerContainer(Map map, ResourcePackContainer.Factory factory) { - map.put("jgui", ResourcePackContainer.of("jgui", true, () -> jGuiResourcePack, factory, ResourcePackContainer.InsertionPosition.BOTTOM)); + public void register(Map map, ResourcePackProfile.Factory factory) { + map.put("jgui", ResourcePackProfile.of("jgui", true, () -> jGuiResourcePack, factory, ResourcePackProfile.InsertionPosition.BOTTOM)); } }); //#else @@ -389,7 +389,7 @@ public class ReplayMod implements if (mc.isOnThread()) { runnable.run(); } else { - executor.executeFuture(() -> { + executor.submit(() -> { runnable.run(); return null; }).get(30, TimeUnit.SECONDS); @@ -439,7 +439,7 @@ public class ReplayMod implements // stuff submitted via runLater is actually always run (e.g. recording might not be fully stopped because parts // of that are run via runLater and stopping the recording happens right around the time MC clears the queue). // Luckily, that's also the version where MC pulled out the executor implementation, so we can just spin up our own. - public static class ReplayModExecutor extends NonBlockingThreadExecutor { + public static class ReplayModExecutor extends ReentrantThreadExecutor { private final Thread mcThread = Thread.currentThread(); // Fail-fast in case we ever switch to async loading and forget to change this // (except for fabric 1.15+ because it loads the mod before the client thread is set) @@ -452,12 +452,12 @@ public class ReplayMod implements } @Override - protected Runnable prepareRunnable(Runnable runnable) { + protected Runnable createTask(Runnable runnable) { return runnable; } @Override - protected boolean canRun(Runnable runnable) { + protected boolean canExecute(Runnable runnable) { return true; } @@ -466,16 +466,9 @@ public class ReplayMod implements return mcThread; } - //#if FABRIC>=1 && MC<11500 @Override - public void send(Runnable runnable) { - method_18858(runnable); - } - //#endif - - @Override - public void executeTaskQueue() { - super.executeTaskQueue(); + public void runTasks() { + super.runTasks(); } } public final ReplayModExecutor executor = new ReplayModExecutor("Client/ReplayMod"); @@ -493,7 +486,7 @@ public class ReplayMod implements } }); } else { - executor.method_18858(() -> { + executor.send(() -> { inRunLater = true; try { runnable.run(); diff --git a/src/main/java/com/replaymod/core/mixin/MixinMinecraft.java b/src/main/java/com/replaymod/core/mixin/MixinMinecraft.java index bd640717..62682744 100644 --- a/src/main/java/com/replaymod/core/mixin/MixinMinecraft.java +++ b/src/main/java/com/replaymod/core/mixin/MixinMinecraft.java @@ -20,13 +20,13 @@ import com.replaymod.core.events.PreRenderCallback; import java.io.IOException; //#if MC>=11400 -import net.minecraft.util.NonBlockingThreadExecutor; +import net.minecraft.util.thread.ReentrantThreadExecutor; //#endif @Mixin(MinecraftClient.class) public abstract class MixinMinecraft //#if MC>=11400 - extends NonBlockingThreadExecutor + extends ReentrantThreadExecutor //#endif implements MCVer.MinecraftMethodAccessor { //#if MC>=11400 @@ -44,7 +44,7 @@ public abstract class MixinMinecraft //#if MC>=11400 @Override public void replayModExecuteTaskQueue() { - executeTaskQueue(); + runTasks(); } //#endif diff --git a/src/main/java/com/replaymod/core/mixin/TimerAccessor.java b/src/main/java/com/replaymod/core/mixin/TimerAccessor.java index 288eed4e..0f10f261 100644 --- a/src/main/java/com/replaymod/core/mixin/TimerAccessor.java +++ b/src/main/java/com/replaymod/core/mixin/TimerAccessor.java @@ -12,9 +12,9 @@ public interface TimerAccessor { void setLastSyncSysClock(long value); //#if MC>=11200 - @Accessor("timeScale") + @Accessor("tickTime") float getTickLength(); - @Accessor("timeScale") + @Accessor("tickTime") void setTickLength(float value); //#else //$$ @Accessor diff --git a/src/main/java/com/replaymod/core/utils/Restrictions.java b/src/main/java/com/replaymod/core/utils/Restrictions.java index 16cf6074..b47ff239 100644 --- a/src/main/java/com/replaymod/core/utils/Restrictions.java +++ b/src/main/java/com/replaymod/core/utils/Restrictions.java @@ -1,6 +1,6 @@ package com.replaymod.core.utils; -import net.minecraft.client.network.packet.CustomPayloadS2CPacket; +import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; import net.minecraft.util.PacketByteBuf; //#if MC>=10904 import net.minecraft.util.Identifier; diff --git a/src/main/java/com/replaymod/core/versions/MCVer.java b/src/main/java/com/replaymod/core/versions/MCVer.java index 335b0f4a..9c2433e4 100644 --- a/src/main/java/com/replaymod/core/versions/MCVer.java +++ b/src/main/java/com/replaymod/core/versions/MCVer.java @@ -11,13 +11,13 @@ import net.minecraft.client.world.ClientWorld; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.model.Box; -import net.minecraft.client.model.Cuboid; +import net.minecraft.client.model.ModelPart; import net.minecraft.util.crash.CrashReportSection; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.PacketByteBuf; import net.minecraft.util.Identifier; -import net.minecraft.util.SystemUtil; +import net.minecraft.util.Util; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; import net.minecraft.world.chunk.WorldChunk; @@ -362,7 +362,7 @@ public class MCVer { } @SuppressWarnings("unchecked") - public static List cubeList(Cuboid modelRenderer) { + public static List cubeList(ModelPart modelRenderer) { //#if MC>=11500 //$$ return new ArrayList<>(); // FIXME 1.15 //#else @@ -465,7 +465,7 @@ public class MCVer { //#if MC>=10800 public static BufferBuilder Tessellator_getBufferBuilder() { - return Tessellator.getInstance().getBufferBuilder(); + return Tessellator.getInstance().getBuffer(); } //#else //$$ public static Tessellator Tessellator_getBufferBuilder() { @@ -495,7 +495,7 @@ public class MCVer { Tessellator_getBufferBuilder().begin( mode //#if MC>=10809 - , VertexFormats.POSITION_UV + , VertexFormats.POSITION_TEXTURE //#endif ); } @@ -512,7 +512,7 @@ public class MCVer { Tessellator_getBufferBuilder().begin( mode //#if MC>=10809 - , VertexFormats.POSITION_UV_COLOR + , VertexFormats.POSITION_TEXTURE_COLOR //#endif ); } @@ -609,7 +609,7 @@ public class MCVer { public static long milliTime() { //#if MC>=11400 - return SystemUtil.getMeasuringTimeMs(); + return Util.getMeasuringTimeMs(); //#else //$$ return Minecraft.getSystemTime(); //#endif @@ -648,7 +648,7 @@ public class MCVer { public static void openFile(File file) { //#if MC>=11400 - SystemUtil.getOperatingSystem().open(file); + Util.getOperatingSystem().open(file); //#else //$$ String path = file.getAbsolutePath(); //$$ @@ -679,7 +679,7 @@ public class MCVer { public static void openURL(URI url) { //#if MC>=11400 //#if MC>=11400 - SystemUtil.getOperatingSystem().open(url); + Util.getOperatingSystem().open(url); //#else //$$ Util.getOSType().openURI(url); //#endif diff --git a/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java b/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java index e2a59104..4f45c9d0 100644 --- a/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java +++ b/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java @@ -102,7 +102,7 @@ public class PlayerOverviewGui extends GuiScreen implements Closeable { renderer.bindTexture(texture); renderer.drawTexturedRect(0, 0, 8, 8, 16, 16, 8, 8, 64, 64); //#if MC>=10809 - if (p.isSkinOverlayVisible(PlayerModelPart.HAT)) { + if (p.isPartVisible(PlayerModelPart.HAT)) { //#else //#if MC>=10800 //$$ if (p.func_175148_a(EnumPlayerModelParts.HAT)) { diff --git a/src/main/java/com/replaymod/extras/urischeme/UriScheme.java b/src/main/java/com/replaymod/extras/urischeme/UriScheme.java index ee4e941a..559e2ca3 100644 --- a/src/main/java/com/replaymod/extras/urischeme/UriScheme.java +++ b/src/main/java/com/replaymod/extras/urischeme/UriScheme.java @@ -1,6 +1,6 @@ package com.replaymod.extras.urischeme; -import net.minecraft.util.SystemUtil; +import net.minecraft.util.Util; import javax.swing.*; import java.io.*; @@ -70,7 +70,7 @@ public abstract class UriScheme { } public static UriScheme create() { - switch (SystemUtil.getOperatingSystem()) { + switch (Util.getOperatingSystem()) { case LINUX: return new LinuxUriScheme(); case WINDOWS: diff --git a/src/main/java/com/replaymod/extras/youtube/GuiYoutubeUpload.java b/src/main/java/com/replaymod/extras/youtube/GuiYoutubeUpload.java index ab008f53..2de4bd1b 100644 --- a/src/main/java/com/replaymod/extras/youtube/GuiYoutubeUpload.java +++ b/src/main/java/com/replaymod/extras/youtube/GuiYoutubeUpload.java @@ -27,7 +27,7 @@ import net.minecraft.client.resource.language.I18n; import org.apache.commons.io.IOUtils; //#if MC>=11400 -import net.minecraft.util.SystemUtil; +import net.minecraft.util.Util; //#else //$$ import org.lwjgl.Sys; //#endif diff --git a/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java b/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java index d4d31106..7219380a 100755 --- a/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java +++ b/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java @@ -5,15 +5,15 @@ import com.replaymod.recording.packet.PacketListener; import de.johni0702.minecraft.gui.utils.EventRegistrations; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.client.network.packet.BlockBreakingProgressS2CPacket; -import net.minecraft.client.network.packet.EntityAnimationS2CPacket; -import net.minecraft.client.network.packet.EntityAttachS2CPacket; -import net.minecraft.client.network.packet.EntityEquipmentUpdateS2CPacket; -import net.minecraft.client.network.packet.EntityPositionS2CPacket; -import net.minecraft.client.network.packet.EntityS2CPacket; -import net.minecraft.client.network.packet.EntitySetHeadYawS2CPacket; -import net.minecraft.client.network.packet.EntityVelocityUpdateS2CPacket; -import net.minecraft.client.network.packet.PlayerSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.BlockBreakingProgressS2CPacket; +import net.minecraft.network.packet.s2c.play.EntityAnimationS2CPacket; +import net.minecraft.network.packet.s2c.play.EntityAttachS2CPacket; +import net.minecraft.network.packet.s2c.play.EntityEquipmentUpdateS2CPacket; +import net.minecraft.network.packet.s2c.play.EntityPositionS2CPacket; +import net.minecraft.network.packet.s2c.play.EntityS2CPacket; +import net.minecraft.network.packet.s2c.play.EntitySetHeadYawS2CPacket; +import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerSpawnS2CPacket; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.network.Packet; @@ -38,9 +38,9 @@ import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; //#if MC>=10904 import com.replaymod.recording.mixin.EntityLivingBaseAccessor; -import net.minecraft.client.network.packet.EntityTrackerUpdateS2CPacket; -import net.minecraft.client.network.packet.PlaySoundS2CPacket; -import net.minecraft.client.network.packet.WorldEventS2CPacket; +import net.minecraft.network.packet.s2c.play.EntityTrackerUpdateS2CPacket; +import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket; +import net.minecraft.network.packet.s2c.play.WorldEventS2CPacket; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.data.DataTracker; import net.minecraft.util.Hand; diff --git a/src/main/java/com/replaymod/recording/mixin/MixinDownloadingPackFinder.java b/src/main/java/com/replaymod/recording/mixin/MixinDownloadingPackFinder.java index e549d32e..f02aa19e 100644 --- a/src/main/java/com/replaymod/recording/mixin/MixinDownloadingPackFinder.java +++ b/src/main/java/com/replaymod/recording/mixin/MixinDownloadingPackFinder.java @@ -3,7 +3,7 @@ package com.replaymod.recording.mixin; import com.replaymod.recording.packet.ResourcePackRecorder; import de.johni0702.minecraft.gui.utils.Consumer; -import net.minecraft.client.resource.ClientResourcePackCreator; +import net.minecraft.client.resource.ClientBuiltinResourcePackProvider; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -19,7 +19,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; //$$ import java.util.Map; //#endif -@Mixin(ClientResourcePackCreator.class) +@Mixin(ClientBuiltinResourcePackProvider.class) public abstract class MixinDownloadingPackFinder implements ResourcePackRecorder.IDownloadingPackFinder { private Consumer requestCallback; diff --git a/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerLoginClient.java b/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerLoginClient.java index c5ef4d67..54cf8e67 100644 --- a/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerLoginClient.java +++ b/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerLoginClient.java @@ -13,8 +13,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import com.replaymod.core.versions.MCVer; import com.replaymod.recording.handler.RecordingEventHandler.RecordingEventSender; import net.minecraft.network.Packet; -import net.minecraft.client.network.packet.LoginQueryRequestS2CPacket; -import net.minecraft.client.network.packet.LoginSuccessS2CPacket; +import net.minecraft.network.packet.s2c.login.LoginQueryRequestS2CPacket; +import net.minecraft.network.packet.s2c.login.LoginSuccessS2CPacket; //#else //$$ import net.minecraftforge.fml.common.network.FMLNetworkEvent; //#endif diff --git a/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java b/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java index 7ef10cd2..997bdb11 100644 --- a/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java +++ b/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java @@ -4,7 +4,7 @@ import com.replaymod.core.versions.MCVer; import com.replaymod.recording.handler.RecordingEventHandler; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.client.network.packet.PlayerRespawnS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerRespawnS2CPacket; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -18,7 +18,7 @@ import com.replaymod.replaystudio.protocol.packets.PacketPlayerListEntry; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import net.minecraft.util.PacketByteBuf; -import net.minecraft.client.network.packet.PlayerListS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerListS2CPacket; import net.minecraft.client.network.PlayerListEntry; import java.io.IOException; diff --git a/src/main/java/com/replaymod/recording/mixin/MixinRenderGlobal.java b/src/main/java/com/replaymod/recording/mixin/MixinRenderGlobal.java index eb0950ed..3da5048f 100644 --- a/src/main/java/com/replaymod/recording/mixin/MixinRenderGlobal.java +++ b/src/main/java/com/replaymod/recording/mixin/MixinRenderGlobal.java @@ -27,7 +27,7 @@ public abstract class MixinRenderGlobal implements RecordingEventHandler.Recordi } //#if MC>=10800 - @Inject(method = "setBlockBreakingProgress", at = @At("HEAD")) + @Inject(method = "setBlockBreakingInfo", at = @At("HEAD")) //#else //$$ @Inject(method = "destroyBlockPartially", at = @At("HEAD")) //#endif diff --git a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java index a518467b..53200062 100644 --- a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java +++ b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java @@ -1,7 +1,7 @@ package com.replaymod.recording.mixin; import net.minecraft.entity.data.DataTracker; -import net.minecraft.client.network.packet.MobSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.MobSpawnS2CPacket; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java index dde911ff..f79cf310 100644 --- a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java +++ b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java @@ -1,7 +1,7 @@ package com.replaymod.recording.mixin; import net.minecraft.entity.data.DataTracker; -import net.minecraft.client.network.packet.PlayerSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerSpawnS2CPacket; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; diff --git a/src/main/java/com/replaymod/recording/packet/PacketListener.java b/src/main/java/com/replaymod/recording/packet/PacketListener.java index 45d06fa4..69f36078 100755 --- a/src/main/java/com/replaymod/recording/packet/PacketListener.java +++ b/src/main/java/com/replaymod/recording/packet/PacketListener.java @@ -23,11 +23,11 @@ import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.packet.CustomPayloadS2CPacket; -import net.minecraft.client.network.packet.DisconnectS2CPacket; -import net.minecraft.client.network.packet.ItemPickupAnimationS2CPacket; -import net.minecraft.client.network.packet.MobSpawnS2CPacket; -import net.minecraft.client.network.packet.PlayerSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; +import net.minecraft.network.packet.s2c.play.DisconnectS2CPacket; +import net.minecraft.network.packet.s2c.play.ItemPickupAnimationS2CPacket; +import net.minecraft.network.packet.s2c.play.MobSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerSpawnS2CPacket; import net.minecraft.entity.Entity; import net.minecraft.entity.data.DataTracker; import net.minecraft.network.NetworkState; @@ -39,7 +39,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; //#if MC>=11400 -import net.minecraft.client.network.packet.LoginSuccessS2CPacket; +import net.minecraft.network.packet.s2c.login.LoginSuccessS2CPacket; //#else //$$ import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; //#endif @@ -53,8 +53,8 @@ import net.minecraft.client.network.packet.LoginSuccessS2CPacket; //#if MC<10904 //$$ import net.minecraft.network.play.server.S46PacketSetCompressionLevel; //#endif -import net.minecraft.client.network.packet.LoginCompressionS2CPacket; -import net.minecraft.client.network.packet.ResourcePackSendS2CPacket; +import net.minecraft.network.packet.s2c.login.LoginCompressionS2CPacket; +import net.minecraft.network.packet.s2c.play.ResourcePackSendS2CPacket; import net.minecraft.network.NetworkSide; //#endif diff --git a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java index 9d42001e..6c28c388 100644 --- a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java +++ b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java @@ -5,9 +5,9 @@ import com.google.common.io.Files; import com.replaymod.replaystudio.replay.ReplayFile; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ConfirmScreen; -import net.minecraft.client.options.ServerEntry; +import net.minecraft.client.network.ServerInfo; import net.minecraft.client.options.ServerList; -import net.minecraft.client.resource.ClientResourcePackCreator; +import net.minecraft.client.resource.ClientBuiltinResourcePackProvider; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -26,9 +26,9 @@ import de.johni0702.minecraft.gui.utils.Consumer; //#endif //#if MC>=10800 -import net.minecraft.server.network.packet.ResourcePackStatusC2SPacket; -import net.minecraft.server.network.packet.ResourcePackStatusC2SPacket.Status; -import net.minecraft.client.network.packet.ResourcePackSendS2CPacket; +import net.minecraft.network.packet.c2s.play.ResourcePackStatusC2SPacket; +import net.minecraft.network.packet.c2s.play.ResourcePackStatusC2SPacket.Status; +import net.minecraft.network.packet.s2c.play.ResourcePackSendS2CPacket; //#endif //#if MC>=10800 @@ -135,11 +135,11 @@ public class ResourcePackRecorder { netManager.send(makeStatusPacket(hash, Status.FAILED_DOWNLOAD)); } } else { - final ServerEntry serverData = mc.getCurrentServerEntry(); - if (serverData != null && serverData.getResourcePack() == ServerEntry.ResourcePackState.ENABLED) { + final ServerInfo serverData = mc.getCurrentServerEntry(); + if (serverData != null && serverData.getResourcePack() == ServerInfo.ResourcePackState.ENABLED) { netManager.send(makeStatusPacket(hash, Status.ACCEPTED)); downloadResourcePackFuture(requestId, url, hash); - } else if (serverData != null && serverData.getResourcePack() != ServerEntry.ResourcePackState.PROMPT) { + } else if (serverData != null && serverData.getResourcePack() != ServerInfo.ResourcePackState.PROMPT) { netManager.send(makeStatusPacket(hash, Status.DECLINED)); } else { // Lambdas MUST NOT be used with methods that need re-obfuscation in FG prior to 2.2 (will result in AbstractMethodError) @@ -152,7 +152,7 @@ public class ResourcePackRecorder { //$$ public void confirmClicked(boolean result, int id) { //#endif if (serverData != null) { - serverData.setResourcePackState(result ? ServerEntry.ResourcePackState.ENABLED : ServerEntry.ResourcePackState.DISABLED); + serverData.setResourcePackState(result ? ServerInfo.ResourcePackState.ENABLED : ServerInfo.ResourcePackState.DISABLED); } if (result) { netManager.send(makeStatusPacket(hash, Status.ACCEPTED)); @@ -188,7 +188,7 @@ public class ResourcePackRecorder { //$$ ListenableFuture //#endif downloadResourcePack(final int requestId, String url, String hash) { - ClientResourcePackCreator packFinder = mc.getResourcePackDownloader(); + ClientBuiltinResourcePackProvider packFinder = mc.getResourcePackDownloader(); ((IDownloadingPackFinder) packFinder).setRequestCallback(file -> recordResourcePack(file, requestId)); return packFinder.download(url, hash); } diff --git a/src/main/java/com/replaymod/render/RenderSettings.java b/src/main/java/com/replaymod/render/RenderSettings.java index 7432aa30..e64a72dc 100644 --- a/src/main/java/com/replaymod/render/RenderSettings.java +++ b/src/main/java/com/replaymod/render/RenderSettings.java @@ -6,7 +6,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.Getter; import net.minecraft.client.resource.language.I18n; -import net.minecraft.util.SystemUtil; +import net.minecraft.util.Util; import java.io.File; import java.util.Arrays; @@ -173,7 +173,7 @@ public class RenderSettings { } private static String findFFmpeg() { - switch (SystemUtil.getOperatingSystem()) { + switch (Util.getOperatingSystem()) { case WINDOWS: // Allow windows users to unpack the ffmpeg archive into a sub-folder of their .minecraft folder File inDotMinecraft = new File(MCVer.getMinecraft().runDirectory, "ffmpeg/bin/ffmpeg.exe"); diff --git a/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java b/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java index 2f6f0ae9..6587a11c 100644 --- a/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java +++ b/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java @@ -110,7 +110,7 @@ public class BlendMeshBuilder throw new IllegalStateException("Not building!"); } else { if (!wellBehaved) { - Tessellator.getInstance().getBufferBuilder().end(); + Tessellator.getInstance().getBuffer().end(); } //#if MC<10809 @@ -168,7 +168,7 @@ public class BlendMeshBuilder int posOffset = -1, colorOffset = -1, uvOffset = -1; int index = 0; //#if MC>=11500 - int elementOffset = 0; + //$$ int elementOffset = 0; //#endif for (VertexFormatElement element : getElements(vertexFormat)) { //#if MC>=11500 diff --git a/src/main/java/com/replaymod/render/blend/exporters/ChunkExporter.java b/src/main/java/com/replaymod/render/blend/exporters/ChunkExporter.java index e1a4d10f..28f9aeba 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ChunkExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ChunkExporter.java @@ -18,13 +18,13 @@ import com.mojang.blaze3d.platform.GLX; import net.minecraft.client.render.chunk.ChunkRenderData; import net.minecraft.client.render.chunk.ChunkRenderer; import net.minecraft.client.render.VertexFormats; -import net.minecraft.client.gl.GlBuffer; +import net.minecraft.client.gl.VertexBuffer; import org.apache.commons.lang3.tuple.Pair; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL15; //#if MC>=10904 -import net.minecraft.block.BlockRenderLayer; +import net.minecraft.client.render.RenderLayer; import net.minecraft.util.math.BlockPos; //#else //$$ import net.minecraft.util.BlockPos; @@ -42,8 +42,8 @@ import java.util.Map; public class ChunkExporter implements Exporter { private final Map chunkObjects = new HashMap<>(); //#if MC>=10904 - private final Map> chunkLayerObjects = new HashMap<>(); - private final List> chunks = new ArrayList<>(); + private final Map> chunkLayerObjects = new HashMap<>(); + private final List> chunks = new ArrayList<>(); //#else //$$ private final Map> chunkLayerObjects = new HashMap<>(); //$$ private final List> chunks = new ArrayList<>(); @@ -53,7 +53,7 @@ public class ChunkExporter implements Exporter { public void addChunkUpdate(ChunkRenderer chunk, ChunkRenderData compiledChunk) { //#if MC>=10904 - for (BlockRenderLayer layer : BlockRenderLayer.values()) { + for (RenderLayer layer : RenderLayer.values()) { //#else //$$ for (EnumWorldBlockLayer layer : EnumWorldBlockLayer.values()) { //#endif @@ -98,8 +98,8 @@ public class ChunkExporter implements Exporter { @Override public void postFrame(int frame) throws IOException { //#if MC>=10904 - for (Pair pair : chunks) { - BlockRenderLayer layer = pair.getRight(); + for (Pair pair : chunks) { + RenderLayer layer = pair.getRight(); //#else //$$ for (Pair pair : chunks) { //$$ EnumWorldBlockLayer layer = pair.getRight(); @@ -114,7 +114,7 @@ public class ChunkExporter implements Exporter { DObject layerObject = buildChunkLayerObject(chunkObject, chunk, layer); if (layerObject == null) continue; //#if MC>=10904 - Map layerObjects + Map layerObjects //#else //$$ Map layerObjects //#endif @@ -145,11 +145,11 @@ public class ChunkExporter implements Exporter { private DObject buildChunkLayerObject(DObject chunkObject, ChunkRenderer renderChunk, //#if MC>=10904 - BlockRenderLayer layer) { + RenderLayer layer) { //#else //$$ EnumWorldBlockLayer layer) { //#endif - GlBuffer vertexBuffer = renderChunk.getGlBuffer(layer.ordinal()); + VertexBuffer vertexBuffer = renderChunk.getGlBuffer(layer.ordinal()); if (vertexBuffer == null) return null; DObject layerObject = new DObject(buildChunkLayerMesh(vertexBuffer)); @@ -158,7 +158,7 @@ public class ChunkExporter implements Exporter { return layerObject; } - private DMesh buildChunkLayerMesh(GlBuffer vertexBuffer) { + private DMesh buildChunkLayerMesh(VertexBuffer vertexBuffer) { vertexBuffer.bind(); int size = GL15.glGetBufferParameteri(GLX.GL_ARRAY_BUFFER, GL15.GL_BUFFER_SIZE); ByteBuffer byteBuffer = GlAllocationUtils.allocateByteBuffer(size); diff --git a/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java b/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java index 0610a8fb..bb882b3a 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java @@ -86,7 +86,7 @@ public class ItemExporter implements Exporter { BlendMeshBuilder builder = new BlendMeshBuilder(mesh); builder.setWellBehaved(true); //#if MC>=10809 - builder.begin(GL11.GL_QUADS, VertexFormats.POSITION_COLOR_UV_NORMAL); + builder.begin(GL11.GL_QUADS, VertexFormats.POSITION_COLOR_TEXTURE_LIGHT_NORMAL); //#else //$$ builder.startDrawingQuads(); //$$ builder.setVertexFormat(DefaultVertexFormats.ITEM); diff --git a/src/main/java/com/replaymod/render/blend/exporters/ModelRendererExporter.java b/src/main/java/com/replaymod/render/blend/exporters/ModelRendererExporter.java index 01201c90..a1ddb62e 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ModelRendererExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ModelRendererExporter.java @@ -9,7 +9,7 @@ import org.lwjgl.opengl.GL11; //#if MC>=11400 import net.minecraft.client.model.Box; -import net.minecraft.client.model.Cuboid; +import net.minecraft.client.model.ModelPart; //#else //$$ import net.minecraft.client.model.ModelBox; //$$ import net.minecraft.client.model.ModelRenderer; @@ -31,7 +31,7 @@ public class ModelRendererExporter implements Exporter { public void setup() throws IOException { } - public void preRenderModel(Cuboid model, float scale) { + public void preRenderModel(ModelPart model, float scale) { DObject object = getObjectForModel(model, scale); renderState.pushObject(object); renderState.pushModelView(); @@ -53,7 +53,7 @@ public class ModelRendererExporter implements Exporter { renderState.pop(); } - private DObject getObjectForModel(Cuboid model, float scale) { + private DObject getObjectForModel(ModelPart model, float scale) { int frame = renderState.getFrame(); DObject parent = renderState.peekObject(); DObject object = null; @@ -78,7 +78,7 @@ public class ModelRendererExporter implements Exporter { return object; } - private static DMesh generateMesh(Cuboid model, float scale) { + private static DMesh generateMesh(ModelPart model, float scale) { DMesh mesh = new DMesh(); BlendMeshBuilder builder = new BlendMeshBuilder(mesh); for (Box box : cubeList(model)) { @@ -93,17 +93,17 @@ public class ModelRendererExporter implements Exporter { } private static class ModelBasedDObject extends DObject { - private final Cuboid model; + private final ModelPart model; private final float scale; private boolean valid; - public ModelBasedDObject(Cuboid model, float scale) { + public ModelBasedDObject(ModelPart model, float scale) { super(generateMesh(model, scale)); this.model = model; this.scale = scale; } - public boolean isBasedOn(Cuboid model, float scale) { + public boolean isBasedOn(ModelPart model, float scale) { return this.model == model && Math.abs(this.scale - scale) < 1e-4; } diff --git a/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java b/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java index d5db02f9..0063b68f 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java @@ -169,7 +169,7 @@ public class ParticlesExporter implements Exporter { builder.setReverseOffset(offset); builder.setWellBehaved(true); //#if MC>=10809 - builder.begin(7, VertexFormats.POSITION_UV_COLOR_LMAP); + builder.begin(7, VertexFormats.POSITION_TEXTURE_COLOR_LIGHT); //#else //$$ builder.startDrawingQuads(); //#endif diff --git a/src/main/java/com/replaymod/render/blend/mixin/ContainerLocalRenderInformationAccessor.java b/src/main/java/com/replaymod/render/blend/mixin/ContainerLocalRenderInformationAccessor.java index 1d866111..267a3e37 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/ContainerLocalRenderInformationAccessor.java +++ b/src/main/java/com/replaymod/render/blend/mixin/ContainerLocalRenderInformationAccessor.java @@ -5,15 +5,7 @@ import net.minecraft.client.render.chunk.ChunkRenderer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -//#if MC>=11400 @Mixin(targets = "net.minecraft.client.render.WorldRenderer$ChunkInfo") -//#else -//#if MC>=11400 -//$$ @Mixin(targets = "net/minecraft/client/renderer/WorldRenderer$ContainerLocalRenderInformation") -//#else -//$$ @Mixin(targets = "net/minecraft/client/renderer/RenderGlobal$ContainerLocalRenderInformation") -//#endif -//#endif public interface ContainerLocalRenderInformationAccessor { //#if MC>=11500 //$$ @Accessor("chunk") diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinModelRenderer.java b/src/main/java/com/replaymod/render/blend/mixin/MixinModelRenderer.java index 10345b18..cc4f0daf 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinModelRenderer.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinModelRenderer.java @@ -10,18 +10,18 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; //#if MC>=11400 -import net.minecraft.client.model.Cuboid; +import net.minecraft.client.model.ModelPart; //#else //$$ import net.minecraft.client.model.ModelRenderer; //#endif -@Mixin(Cuboid.class) +@Mixin(ModelPart.class) public abstract class MixinModelRenderer { @Inject(method = "render", at = @At("HEAD")) public void preRender(float scale, CallbackInfo ci) { BlendState blendState = BlendState.getState(); if (blendState != null) { - blendState.get(ModelRendererExporter.class).preRenderModel((Cuboid)(Object)this, scale); + blendState.get(ModelRendererExporter.class).preRenderModel((ModelPart)(Object)this, scale); } } @@ -29,7 +29,7 @@ public abstract class MixinModelRenderer { public void preRenderWithRotation(float scale, CallbackInfo ci) { BlendState blendState = BlendState.getState(); if (blendState != null) { - blendState.get(ModelRendererExporter.class).preRenderModel((Cuboid)(Object)this, scale); + blendState.get(ModelRendererExporter.class).preRenderModel((ModelPart)(Object)this, scale); } } diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java index 7cd0097e..b32893a3 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java @@ -21,10 +21,14 @@ import net.minecraft.client.render.entity.LivingEntityRenderer; //$$ @Mixin(RendererLivingEntity.class) //#endif public abstract class MixinRenderLivingBase { + //#if MC>=11500 + //$$ @Inject(method = "render(Lnet/minecraft/entity/LivingEntity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At( + //#else //#if FABRIC>=1 - @Inject(method = "method_4054", at = @At( + @Inject(method = "render(Lnet/minecraft/entity/LivingEntity;DDDFF)V", at = @At( //#else //$$ @Inject(method = "doRender(Lnet/minecraft/entity/LivingEntity;DDDFF)V", at = @At( + //#endif //#endif value = "INVOKE", //#if MC>=10904 @@ -34,7 +38,7 @@ public abstract class MixinRenderLivingBase { //#endif shift = At.Shift.AFTER )) - private void recordModelMatrix(LivingEntity entity, double x, double y, double z, float entityYaw, float partialTicks, CallbackInfo ci) { + private void recordModelMatrix(CallbackInfo ci) { BlendState blendState = BlendState.getState(); if (blendState != null) { blendState.get(EntityExporter.class).postEntityLivingSetup(); diff --git a/src/main/java/com/replaymod/render/capturer/OpenGlFrameCapturer.java b/src/main/java/com/replaymod/render/capturer/OpenGlFrameCapturer.java index 20d3b7c6..a9d687ab 100644 --- a/src/main/java/com/replaymod/render/capturer/OpenGlFrameCapturer.java +++ b/src/main/java/com/replaymod/render/capturer/OpenGlFrameCapturer.java @@ -9,7 +9,7 @@ import de.johni0702.minecraft.gui.utils.lwjgl.Dimension; import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension; import de.johni0702.minecraft.gui.utils.lwjgl.WritableDimension; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gl.GlFramebuffer; +import net.minecraft.client.gl.Framebuffer; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; @@ -34,7 +34,7 @@ public abstract class OpenGlFrameCapturer=11400 - GlFramebuffer fb = mc.getFramebuffer(); - if (fb.viewWidth != width || fb.viewHeight != height) { + Framebuffer fb = mc.getFramebuffer(); + if (fb.viewportWidth != width || fb.viewportHeight != height) { fb.resize(width, height //#if MC>=11400 , false diff --git a/src/main/java/com/replaymod/render/gui/GuiVideoRenderer.java b/src/main/java/com/replaymod/render/gui/GuiVideoRenderer.java index d10e5256..3b2b2cdd 100644 --- a/src/main/java/com/replaymod/render/gui/GuiVideoRenderer.java +++ b/src/main/java/com/replaymod/render/gui/GuiVideoRenderer.java @@ -289,7 +289,7 @@ public class GuiVideoRenderer extends GuiScreen implements Tickable { buffer.get(); // alpha //#if MC>=11400 int value = 0xff << 24 | b << 16 | g << 8 | r; - data.setPixelRGBA(x, y, value); // actually takes ABGR, not RGBA + data.setPixelRgba(x, y, value); // actually takes ABGR, not RGBA //#else //$$ int value = 0xff << 24 | r << 16 | g << 8 | b; //$$ data[y * width + x] = value; diff --git a/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java b/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java index 02bee899..4e008f6d 100644 --- a/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java +++ b/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java @@ -5,9 +5,9 @@ package com.replaymod.render.hooks; import com.replaymod.render.mixin.ChunkRenderDispatcherAccessor; import com.replaymod.render.mixin.WorldRendererAccessor; import com.replaymod.render.utils.JailingQueue; -import net.minecraft.client.render.chunk.BlockLayeredBufferBuilder; +import net.minecraft.client.render.chunk.BlockBufferBuilderStorage; import net.minecraft.client.render.WorldRenderer; -import net.minecraft.client.render.chunk.ChunkBatcher; +import net.minecraft.client.render.chunk.ChunkBuilder; import net.minecraft.client.render.chunk.ChunkRenderTask; import net.minecraft.client.render.chunk.ChunkRenderWorker; import net.minecraft.client.render.chunk.ChunkRenderer; @@ -30,7 +30,7 @@ public class ChunkLoadingRenderGlobal { //#else //$$ private final RenderGlobal hooked; //#endif - private ChunkBatcher renderDispatcher; + private ChunkBuilder renderDispatcher; //#if MC>=11400 private JailingQueue workerJailingQueue; //#else @@ -52,7 +52,7 @@ public class ChunkLoadingRenderGlobal { setup(((WorldRendererAccessor) renderGlobal).getRenderDispatcher()); } - public void updateRenderDispatcher(ChunkBatcher renderDispatcher) { + public void updateRenderDispatcher(ChunkBuilder renderDispatcher) { if (this.renderDispatcher != null) { workerJailingQueue.freeAll(); this.renderDispatcher = null; @@ -62,9 +62,9 @@ public class ChunkLoadingRenderGlobal { } } - private void setup(ChunkBatcher renderDispatcher) { + private void setup(ChunkBuilder renderDispatcher) { this.renderDispatcher = renderDispatcher; - this.renderWorker = (ChunkRenderWorkerAccessor) new ChunkRenderWorker(renderDispatcher, new BlockLayeredBufferBuilder()); + this.renderWorker = (ChunkRenderWorkerAccessor) new ChunkRenderWorker(renderDispatcher, new BlockBufferBuilderStorage()); ChunkRenderDispatcherAccessor renderDispatcherAcc = (ChunkRenderDispatcherAccessor) renderDispatcher; int workerThreads = renderDispatcherAcc.getListThreadedWorkers().size(); diff --git a/src/main/java/com/replaymod/render/mixin/ChunkRenderDispatcherAccessor.java b/src/main/java/com/replaymod/render/mixin/ChunkRenderDispatcherAccessor.java index 458441fb..8f0dee19 100644 --- a/src/main/java/com/replaymod/render/mixin/ChunkRenderDispatcherAccessor.java +++ b/src/main/java/com/replaymod/render/mixin/ChunkRenderDispatcherAccessor.java @@ -1,7 +1,7 @@ //#if MC>=10800 && MC<11500 package com.replaymod.render.mixin; -import net.minecraft.client.render.chunk.ChunkBatcher; +import net.minecraft.client.render.chunk.ChunkBuilder; import net.minecraft.client.render.chunk.ChunkRenderTask; import net.minecraft.client.render.chunk.ChunkRenderWorker; import org.spongepowered.asm.mixin.Mixin; @@ -14,7 +14,7 @@ import java.util.concurrent.PriorityBlockingQueue; //$$ import java.util.concurrent.BlockingQueue; //#endif -@Mixin(ChunkBatcher.class) +@Mixin(ChunkBuilder.class) public interface ChunkRenderDispatcherAccessor { @Accessor("workers") List getListThreadedWorkers(); diff --git a/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java b/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java index fa1507bc..a564e17f 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java +++ b/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java @@ -2,7 +2,7 @@ package com.replaymod.render.mixin; import com.replaymod.render.hooks.ChunkLoadingRenderGlobal; -import net.minecraft.client.render.chunk.ChunkBatcher; +import net.minecraft.client.render.chunk.ChunkBuilder; import net.minecraft.client.render.VisibleRegion; import net.minecraft.entity.Entity; import org.spongepowered.asm.mixin.Mixin; @@ -37,10 +37,10 @@ public abstract class MixinRenderGlobal { private boolean replayModRender_passThroughSetupTerrain; @Shadow - public boolean terrainUpdateNecessary; + public boolean needsTerrainUpdate; @Shadow - public ChunkBatcher chunkBatcher; + public ChunkBuilder chunkBuilder; @Shadow public abstract void setUpTerrain( @@ -90,9 +90,9 @@ public abstract class MixinRenderGlobal { playerSpectator ); replayModRender_hook.updateChunks(); - } while (this.terrainUpdateNecessary); + } while (this.needsTerrainUpdate); - this.terrainUpdateNecessary = true; + this.needsTerrainUpdate = true; replayModRender_passThroughSetupTerrain = false; ci.cancel(); @@ -118,7 +118,7 @@ public abstract class MixinRenderGlobal { // Prior to 1.9.4, MC always uses the same ChunkRenderDispatcher instance //#if MC>=10904 - @Inject(method = "setWorld", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/chunk/ChunkBatcher;stop()V")) + @Inject(method = "setWorld", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/chunk/ChunkBuilder;stop()V")) private void stopWorkerThreadsAndChunkLoadingRenderGlobal(CallbackInfo ci) { if (replayModRender_hook != null) { replayModRender_hook.updateRenderDispatcher(null); @@ -129,7 +129,7 @@ public abstract class MixinRenderGlobal { @Inject(method = "reload", at = @At(value = "RETURN")) private void setupChunkLoadingRenderGlobal(CallbackInfo ci) { if (replayModRender_hook != null) { - replayModRender_hook.updateRenderDispatcher(this.chunkBatcher); + replayModRender_hook.updateRenderDispatcher(this.chunkBuilder); } } } diff --git a/src/main/java/com/replaymod/render/mixin/WorldRendererAccessor.java b/src/main/java/com/replaymod/render/mixin/WorldRendererAccessor.java index 347363e6..88995114 100644 --- a/src/main/java/com/replaymod/render/mixin/WorldRendererAccessor.java +++ b/src/main/java/com/replaymod/render/mixin/WorldRendererAccessor.java @@ -7,7 +7,7 @@ import org.spongepowered.asm.mixin.gen.Accessor; import java.util.Set; //#if MC>=10800 -import net.minecraft.client.render.chunk.ChunkBatcher; +import net.minecraft.client.render.chunk.ChunkBuilder; import net.minecraft.client.render.chunk.ChunkRenderer; //#endif @@ -18,13 +18,13 @@ public interface WorldRendererAccessor { void setRenderEntitiesStartupCounter(int value); //#if MC>=10800 - @Accessor("chunkBatcher") - ChunkBatcher getRenderDispatcher(); + @Accessor("chunkBuilder") + ChunkBuilder getRenderDispatcher(); - @Accessor("terrainUpdateNecessary") + @Accessor("needsTerrainUpdate") void setDisplayListEntitiesDirty(boolean value); - @Accessor("chunkRenderers") + @Accessor("chunksToRebuild") Set getChunksToUpdate(); //#endif //#endif diff --git a/src/main/java/com/replaymod/render/rendering/VideoRenderer.java b/src/main/java/com/replaymod/render/rendering/VideoRenderer.java index 537f03fa..a91b97ce 100644 --- a/src/main/java/com/replaymod/render/rendering/VideoRenderer.java +++ b/src/main/java/com/replaymod/render/rendering/VideoRenderer.java @@ -27,7 +27,7 @@ import de.johni0702.minecraft.gui.utils.lwjgl.Dimension; import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension; import net.minecraft.client.MinecraftClient; import com.mojang.blaze3d.platform.GLX; -import net.minecraft.client.gl.GlFramebuffer; +import net.minecraft.client.gl.Framebuffer; import net.minecraft.util.crash.CrashException; import net.minecraft.sound.SoundCategory; import net.minecraft.client.render.RenderTickCounter; @@ -103,7 +103,7 @@ public class VideoRenderer implements RenderInfo { private boolean cancelled; private volatile Throwable failureCause; - private GlFramebuffer guiFramebuffer; + private Framebuffer guiFramebuffer; private int displayWidth, displayHeight; public VideoRenderer(RenderSettings settings, ReplayHandler replayHandler, Timeline timeline) throws IOException { @@ -319,7 +319,7 @@ public class VideoRenderer implements RenderInfo { //#endif // Set up our own framebuffer to render the GUI to - guiFramebuffer = new GlFramebuffer(displayWidth, displayHeight, true + guiFramebuffer = new Framebuffer(displayWidth, displayHeight, true //#if MC>=11400 , false //#endif diff --git a/src/main/java/com/replaymod/replay/FullReplaySender.java b/src/main/java/com/replaymod/replay/FullReplaySender.java index 21f92016..19298ed6 100755 --- a/src/main/java/com/replaymod/replay/FullReplaySender.java +++ b/src/main/java/com/replaymod/replay/FullReplaySender.java @@ -27,31 +27,31 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.network.NetworkState; import net.minecraft.network.Packet; import net.minecraft.util.PacketByteBuf; -import net.minecraft.client.network.packet.ChatMessageS2CPacket; -import net.minecraft.client.network.packet.CustomPayloadS2CPacket; -import net.minecraft.client.network.packet.DisconnectS2CPacket; -import net.minecraft.client.network.packet.EntitiesDestroyS2CPacket; -import net.minecraft.client.network.packet.EntitySpawnGlobalS2CPacket; -import net.minecraft.client.network.packet.EntitySpawnS2CPacket; -import net.minecraft.client.network.packet.ExperienceBarUpdateS2CPacket; -import net.minecraft.client.network.packet.ExperienceOrbSpawnS2CPacket; -import net.minecraft.client.network.packet.GameJoinS2CPacket; -import net.minecraft.client.network.packet.GameStateChangeS2CPacket; -import net.minecraft.client.network.packet.GuiCloseS2CPacket; -import net.minecraft.client.network.packet.GuiOpenS2CPacket; -import net.minecraft.client.network.packet.GuiSlotUpdateS2CPacket; -import net.minecraft.client.network.packet.GuiUpdateS2CPacket; -import net.minecraft.client.network.packet.HealthUpdateS2CPacket; -import net.minecraft.client.network.packet.LoginSuccessS2CPacket; -import net.minecraft.client.network.packet.MobSpawnS2CPacket; -import net.minecraft.client.network.packet.PaintingSpawnS2CPacket; -import net.minecraft.client.network.packet.ParticleS2CPacket; -import net.minecraft.client.network.packet.PlayerAbilitiesS2CPacket; -import net.minecraft.client.network.packet.PlayerPositionLookS2CPacket; -import net.minecraft.client.network.packet.PlayerRespawnS2CPacket; -import net.minecraft.client.network.packet.PlayerSpawnS2CPacket; -import net.minecraft.client.network.packet.SignEditorOpenS2CPacket; -import net.minecraft.client.network.packet.StatisticsS2CPacket; +import net.minecraft.network.packet.s2c.play.ChatMessageS2CPacket; +import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; +import net.minecraft.network.packet.s2c.play.DisconnectS2CPacket; +import net.minecraft.network.packet.s2c.play.EntitiesDestroyS2CPacket; +import net.minecraft.network.packet.s2c.play.EntitySpawnGlobalS2CPacket; +import net.minecraft.network.packet.s2c.play.EntitySpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.ExperienceBarUpdateS2CPacket; +import net.minecraft.network.packet.s2c.play.ExperienceOrbSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.GameJoinS2CPacket; +import net.minecraft.network.packet.s2c.play.GameStateChangeS2CPacket; +import net.minecraft.network.packet.s2c.play.CloseContainerS2CPacket; +import net.minecraft.network.packet.s2c.play.OpenHorseContainerS2CPacket; +import net.minecraft.network.packet.s2c.play.ContainerSlotUpdateS2CPacket; +import net.minecraft.network.packet.s2c.play.ContainerPropertyUpdateS2CPacket; +import net.minecraft.network.packet.s2c.play.HealthUpdateS2CPacket; +import net.minecraft.network.packet.s2c.login.LoginSuccessS2CPacket; +import net.minecraft.network.packet.s2c.play.MobSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.PaintingSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.ParticleS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerAbilitiesS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerRespawnS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.SignEditorOpenS2CPacket; +import net.minecraft.network.packet.s2c.play.StatisticsS2CPacket; import net.minecraft.text.Text; import net.minecraft.world.World; import net.minecraft.world.chunk.ChunkProvider; @@ -66,9 +66,9 @@ import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; //#endif //#if MC>=11400 -import net.minecraft.class_4463; -import net.minecraft.client.network.packet.OpenContainerPacket; -import net.minecraft.client.network.packet.OpenWrittenBookS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerActionResponseS2CPacket; +import net.minecraft.network.packet.s2c.play.OpenContainerS2CPacket; +import net.minecraft.network.packet.s2c.play.OpenWrittenBookS2CPacket; import net.minecraft.entity.EntityType; import net.minecraft.text.TranslatableText; //#else @@ -92,9 +92,9 @@ import net.minecraft.util.Identifier; //#if MC>=11200 import com.replaymod.core.utils.WrappedTimer; -import net.minecraft.client.network.packet.AdvancementUpdateS2CPacket; -import net.minecraft.client.network.packet.SelectAdvancementTabS2CPacket; -import net.minecraft.client.network.packet.SynchronizeRecipesS2CPacket; +import net.minecraft.network.packet.s2c.play.AdvancementUpdateS2CPacket; +import net.minecraft.network.packet.s2c.play.SelectAdvancementTabS2CPacket; +import net.minecraft.network.packet.s2c.play.SynchronizeRecipesS2CPacket; //#endif //#if MC>=11002 import net.minecraft.world.GameMode; @@ -103,15 +103,15 @@ import net.minecraft.world.GameMode; //#endif //#if MC>=10904 -import net.minecraft.client.network.packet.UnloadChunkS2CPacket; +import net.minecraft.network.packet.s2c.play.UnloadChunkS2CPacket; //#else //$$ import net.minecraft.network.play.server.S21PacketChunkData; //#endif //#if MC>=10800 -import net.minecraft.client.network.packet.ResourcePackSendS2CPacket; -import net.minecraft.client.network.packet.SetCameraEntityS2CPacket; -import net.minecraft.client.network.packet.TitleS2CPacket; +import net.minecraft.network.packet.s2c.play.ResourcePackSendS2CPacket; +import net.minecraft.network.packet.s2c.play.SetCameraEntityS2CPacket; +import net.minecraft.network.packet.s2c.play.TitleS2CPacket; import net.minecraft.network.NetworkSide; //#else //$$ import org.apache.commons.io.Charsets; @@ -137,11 +137,11 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend */ private static final List BAD_PACKETS = Arrays.asList( //#if MC>=11404 - class_4463.class, // PlayerActionAckPacket + PlayerActionResponseS2CPacket.class, //#endif //#if MC>=11400 OpenWrittenBookS2CPacket.class, - OpenContainerPacket.class, + OpenContainerS2CPacket.class, //#endif //#if MC>=11200 SynchronizeRecipesS2CPacket.class, @@ -153,10 +153,10 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend TitleS2CPacket.class, //#endif HealthUpdateS2CPacket.class, - GuiOpenS2CPacket.class, - GuiCloseS2CPacket.class, - GuiSlotUpdateS2CPacket.class, - GuiUpdateS2CPacket.class, + OpenHorseContainerS2CPacket.class, + CloseContainerS2CPacket.class, + ContainerSlotUpdateS2CPacket.class, + ContainerPropertyUpdateS2CPacket.class, SignEditorOpenS2CPacket.class, StatisticsS2CPacket.class, ExperienceBarUpdateS2CPacket.class, diff --git a/src/main/java/com/replaymod/replay/InputReplayTimer.java b/src/main/java/com/replaymod/replay/InputReplayTimer.java index 48309357..9d8dc4bc 100644 --- a/src/main/java/com/replaymod/replay/InputReplayTimer.java +++ b/src/main/java/com/replaymod/replay/InputReplayTimer.java @@ -69,7 +69,7 @@ public class InputReplayTimer extends WrappedTimer { //#endif //#if MC>=11400 - ReplayMod.instance.executor.executeTaskQueue(); + ReplayMod.instance.executor.runTasks(); //#endif // If we are in a replay, we have to manually process key and mouse events as the diff --git a/src/main/java/com/replaymod/replay/QuickReplaySender.java b/src/main/java/com/replaymod/replay/QuickReplaySender.java index 00da8ff0..70a859e5 100644 --- a/src/main/java/com/replaymod/replay/QuickReplaySender.java +++ b/src/main/java/com/replaymod/replay/QuickReplaySender.java @@ -18,8 +18,8 @@ import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerAdapter; import io.netty.channel.ChannelHandlerContext; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.packet.PlayerPositionLookS2CPacket; -import net.minecraft.client.network.packet.PlayerRespawnS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerRespawnS2CPacket; import net.minecraft.network.NetworkState; import net.minecraft.network.NetworkSide; import net.minecraft.network.Packet; diff --git a/src/main/java/com/replaymod/replay/ReplayHandler.java b/src/main/java/com/replaymod/replay/ReplayHandler.java old mode 100755 new mode 100644 index 3663c118..7e3781e4 --- a/src/main/java/com/replaymod/replay/ReplayHandler.java +++ b/src/main/java/com/replaymod/replay/ReplayHandler.java @@ -538,9 +538,9 @@ public class ReplayHandler { // Update all entity positions (especially prev/lastTick values) for (Entity entity : loadedEntityList(mc.world)) { skipTeleportInterpolation(entity); - entity.prevRenderX = entity.prevX = Entity_getX(entity); - entity.prevRenderY = entity.prevY = Entity_getY(entity); - entity.prevRenderZ = entity.prevZ = Entity_getZ(entity); + entity.lastRenderX = entity.prevX = Entity_getX(entity); + entity.lastRenderY = entity.prevY = Entity_getY(entity); + entity.lastRenderZ = entity.prevZ = Entity_getZ(entity); entity.prevYaw = entity.yaw; entity.prevPitch = entity.pitch; } @@ -694,9 +694,9 @@ public class ReplayHandler { //#endif for (Entity entity : loadedEntityList(mc.world)) { skipTeleportInterpolation(entity); - entity.prevRenderX = entity.prevX = Entity_getX(entity); - entity.prevRenderY = entity.prevY = Entity_getY(entity); - entity.prevRenderZ = entity.prevZ = Entity_getZ(entity); + entity.lastRenderX = entity.prevX = Entity_getX(entity); + entity.lastRenderY = entity.prevY = Entity_getY(entity); + entity.lastRenderZ = entity.prevZ = Entity_getZ(entity); entity.prevYaw = entity.yaw; entity.prevPitch = entity.pitch; } @@ -724,7 +724,7 @@ public class ReplayHandler { if (entity instanceof LivingEntity && !(entity instanceof CameraEntity)) { LivingEntity e = (LivingEntity) entity; EntityLivingBaseAccessor ea = (EntityLivingBaseAccessor) e; - e.setPosition(ea.getInterpTargetX(), ea.getInterpTargetY(), ea.getInterpTargetZ()); + e.updatePosition(ea.getInterpTargetX(), ea.getInterpTargetY(), ea.getInterpTargetZ()); e.yaw = (float) ea.getInterpTargetYaw(); e.pitch = (float) ea.getInterpTargetPitch(); } diff --git a/src/main/java/com/replaymod/replay/camera/CameraEntity.java b/src/main/java/com/replaymod/replay/camera/CameraEntity.java index a1ab8355..39520c18 100755 --- a/src/main/java/com/replaymod/replay/camera/CameraEntity.java +++ b/src/main/java/com/replaymod/replay/camera/CameraEntity.java @@ -179,9 +179,9 @@ public class CameraEntity * @param z Z coordinate */ public void setCameraPosition(double x, double y, double z) { - this.prevRenderX = this.prevX = x; - this.prevRenderY = this.prevY = y; - this.prevRenderZ = this.prevZ = z; + this.lastRenderX = this.prevX = x; + this.lastRenderY = this.prevY = y; + this.lastRenderZ = this.prevZ = z; Entity_setPos(this, x, y, z); updateBoundingBox(); } @@ -226,9 +226,9 @@ public class CameraEntity Entity_setPos(this, Entity_getX(to), Entity_getY(to), Entity_getZ(to)); this.yaw = to.yaw; this.pitch = to.pitch; - this.prevRenderX = to.prevRenderX; - this.prevRenderY = to.prevRenderY + yOffset; - this.prevRenderZ = to.prevRenderZ; + this.lastRenderX = to.lastRenderX; + this.lastRenderY = to.lastRenderY + yOffset; + this.lastRenderZ = to.lastRenderZ; updateBoundingBox(); } @@ -375,7 +375,7 @@ public class CameraEntity //#if MC>=11400 @Override - public boolean shouldRenderFrom(double double_1, double double_2, double double_3) { + public boolean shouldRender(double double_1, double double_2, double double_3) { return false; // never render the camera otherwise it'd be visible e.g. in 3rd-person or with shaders } //#else diff --git a/src/main/java/com/replaymod/replay/camera/SpectatorCameraController.java b/src/main/java/com/replaymod/replay/camera/SpectatorCameraController.java index b00bcd5e..c235f510 100644 --- a/src/main/java/com/replaymod/replay/camera/SpectatorCameraController.java +++ b/src/main/java/com/replaymod/replay/camera/SpectatorCameraController.java @@ -57,9 +57,9 @@ public class SpectatorCameraController implements CameraController { if (view instanceof PlayerEntity) { PlayerEntity viewPlayer = (PlayerEntity) view; //#if MC>=11400 - camera.setEquippedStack(EquipmentSlot.HEAD, viewPlayer.getEquippedStack(EquipmentSlot.HEAD)); - camera.setEquippedStack(EquipmentSlot.MAINHAND, viewPlayer.getEquippedStack(EquipmentSlot.MAINHAND)); - camera.setEquippedStack(EquipmentSlot.OFFHAND, viewPlayer.getEquippedStack(EquipmentSlot.OFFHAND)); + camera.equipStack(EquipmentSlot.HEAD, viewPlayer.getEquippedStack(EquipmentSlot.HEAD)); + camera.equipStack(EquipmentSlot.MAINHAND, viewPlayer.getEquippedStack(EquipmentSlot.MAINHAND)); + camera.equipStack(EquipmentSlot.OFFHAND, viewPlayer.getEquippedStack(EquipmentSlot.OFFHAND)); //#else //$$ camera.inventory = viewPlayer.inventory; //#endif diff --git a/src/main/java/com/replaymod/replay/mixin/FirstPersonRendererAccessor.java b/src/main/java/com/replaymod/replay/mixin/FirstPersonRendererAccessor.java index c93c98ef..de4dd282 100644 --- a/src/main/java/com/replaymod/replay/mixin/FirstPersonRendererAccessor.java +++ b/src/main/java/com/replaymod/replay/mixin/FirstPersonRendererAccessor.java @@ -1,11 +1,11 @@ package com.replaymod.replay.mixin; -import net.minecraft.client.render.FirstPersonRenderer; +import net.minecraft.client.render.item.HeldItemRenderer; import net.minecraft.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -@Mixin(FirstPersonRenderer.class) +@Mixin(HeldItemRenderer.class) public interface FirstPersonRendererAccessor { //#if MC>=10904 @Accessor("mainHand") diff --git a/src/main/java/com/replaymod/replay/mixin/MixinKeyboardListener.java b/src/main/java/com/replaymod/replay/mixin/MixinKeyboardListener.java index c230c5b3..864b9f2c 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinKeyboardListener.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinKeyboardListener.java @@ -28,7 +28,7 @@ public abstract class MixinKeyboardListener { at = @At( value = "INVOKE", //#if MC>=11400 - target = "Lnet/minecraft/client/util/ScreenshotUtils;method_1659(Ljava/io/File;IILnet/minecraft/client/gl/GlFramebuffer;Ljava/util/function/Consumer;)V" + target = "Lnet/minecraft/client/util/ScreenshotUtils;method_1659(Ljava/io/File;IILnet/minecraft/client/gl/Framebuffer;Ljava/util/function/Consumer;)V" //#else //#if MC>=11400 //$$ target = "Lnet/minecraft/util/ScreenShotHelper;saveScreenshot(Ljava/io/File;IILnet/minecraft/client/shader/Framebuffer;Ljava/util/function/Consumer;)V" diff --git a/src/main/java/com/replaymod/replay/mixin/MixinRenderItem.java b/src/main/java/com/replaymod/replay/mixin/MixinRenderItem.java index 678cc74a..81d87af1 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinRenderItem.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinRenderItem.java @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; //#if MC>=11400 -import net.minecraft.util.SystemUtil; +import net.minecraft.util.Util; //#else //$$ import net.minecraft.client.Minecraft; //#endif @@ -17,7 +17,7 @@ import net.minecraft.util.SystemUtil; public class MixinRenderItem { //#if MC>=11400 //#if MC>=11400 - @Redirect(method = "renderGlint", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/SystemUtil;getMeasuringTimeMs()J")) + @Redirect(method = "renderGlint", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;getMeasuringTimeMs()J")) //#else //$$ @Redirect(method = "renderEffect", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;milliTime()J")) //#endif @@ -31,7 +31,7 @@ public class MixinRenderItem { return replayHandler.getReplaySender().currentTimeStamp(); } //#if MC>=11400 - return SystemUtil.getMeasuringTimeMs(); + return Util.getMeasuringTimeMs(); //#else //$$ return Minecraft.getSystemTime(); //#endif diff --git a/src/main/java/com/replaymod/replay/mixin/MixinRenderLivingBase.java b/src/main/java/com/replaymod/replay/mixin/MixinRenderLivingBase.java index 02c83659..370a9cb5 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinRenderLivingBase.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinRenderLivingBase.java @@ -24,7 +24,7 @@ import static com.replaymod.core.versions.MCVer.*; //#endif public abstract class MixinRenderLivingBase { //#if FABRIC>=1 - @Inject(method = "method_4055", at = @At("HEAD"), cancellable = true) + @Inject(method = "hasLabel", at = @At("HEAD"), cancellable = true) //#else //$$ @Inject(method = "canRenderName(Lnet/minecraft/entity/LivingEntity;)Z", at = @At("HEAD"), cancellable = true) //#endif @@ -36,17 +36,17 @@ public abstract class MixinRenderLivingBase { } @Redirect( - method = "render", + method = "render(Lnet/minecraft/entity/LivingEntity;FFFFFF)V", at = @At( value = "INVOKE", //#if MC>=11400 - target = "Lnet/minecraft/entity/LivingEntity;canSeePlayer(Lnet/minecraft/entity/player/PlayerEntity;)Z" + target = "Lnet/minecraft/entity/LivingEntity;isInvisibleTo(Lnet/minecraft/entity/player/PlayerEntity;)Z" //#else //$$ target = "Lnet/minecraft/entity/EntityLivingBase;isInvisibleToPlayer(Lnet/minecraft/entity/player/EntityPlayer;)Z" //#endif ) ) private boolean replayModReplay_shouldInvisibleNotBeRendered(LivingEntity entity, PlayerEntity thePlayer) { - return thePlayer instanceof CameraEntity || entity.canSeePlayer(thePlayer); + return thePlayer instanceof CameraEntity || entity.isInvisibleTo(thePlayer); } } diff --git a/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java b/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java index d3243867..86d9aef4 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java @@ -8,7 +8,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; //#if MC>=11400 -import net.minecraft.util.SystemUtil; +import net.minecraft.util.Util; //#else //$$ import net.minecraft.client.Minecraft; //#endif @@ -16,7 +16,7 @@ import net.minecraft.util.SystemUtil; @Mixin(EndPortalBlockEntityRenderer.class) public class MixinTileEntityEndPortalRenderer { //#if MC>=11400 - @Redirect(method = "method_3591", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/SystemUtil;getMeasuringTimeMs()J")) + @Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;getMeasuringTimeMs()J")) //#else //#if MC>=11200 //$$ @Redirect(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntityEndPortal;DDDFIF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J")) @@ -38,7 +38,7 @@ public class MixinTileEntityEndPortalRenderer { return replayHandler.getReplaySender().currentTimeStamp(); } //#if MC>=11400 - return SystemUtil.getMeasuringTimeMs(); + return Util.getMeasuringTimeMs(); //#else //$$ return Minecraft.getSystemTime(); //#endif diff --git a/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java b/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java index 3f9fbe2c..1320bb10 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java @@ -1,14 +1,14 @@ //#if MC>=10800 package com.replaymod.replay.mixin; -import net.minecraft.client.render.ChunkRenderDispatcher; +import net.minecraft.client.render.BuiltChunkStorage; import net.minecraft.client.render.chunk.ChunkRenderer; import net.minecraft.util.math.BlockPos; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; -@Mixin(ChunkRenderDispatcher.class) +@Mixin(BuiltChunkStorage.class) public abstract class MixinViewFrustum { @Redirect( method = "updateCameraPosition", diff --git a/versions/common.gradle b/versions/common.gradle index 80323690..3bf29ffa 100644 --- a/versions/common.gradle +++ b/versions/common.gradle @@ -217,7 +217,7 @@ dependencies { 11502: '1.15.2', ][mcVersion] mappings 'net.fabricmc:yarn:' + [ - 11404: '1.14.4+build.1', + 11404: '1.14.4+build.16', 11502: '1.15.2+build.14', ][mcVersion] modCompile 'net.fabricmc:fabric-loader:' + [