From b119d2d127b91af1d89839b90837336dea6779a1 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Mon, 6 Apr 2020 12:35:56 +0200 Subject: [PATCH] `./gradlew :1.15.2:setCoreVersion` Also `./gradlew :jGui:1.15.2:setCoreVersion`. --- jGui | 2 +- .../mixin/MixinShaderEntityRenderer.java | 2 +- .../shaders/mixin/MixinShaderRenderChunk.java | 4 +- .../mixin/MixinShaderRenderGlobal.java | 10 +- .../java/com/replaymod/core/ReplayMod.java | 2 +- .../core/events/PostRenderWorldCallback.java | 10 +- .../core/mixin/MixinGameRenderer.java | 10 +- .../core/mixin/MixinModResourcePackUtil.java | 2 +- .../core/versions/LangResourcePack.java | 2 +- .../com/replaymod/core/versions/MCVer.java | 58 ++-- .../ScreenshotRenderer.java | 2 +- .../playeroverview/mixin/MixinRender.java | 2 +- .../mixin/IntegratedServerAccessor.java | 4 +- .../mixin/SPacketSpawnMobAccessor.java | 8 +- .../mixin/SPacketSpawnPlayerAccessor.java | 8 +- .../recording/packet/PacketListener.java | 58 ++-- .../render/blend/BlendMeshBuilder.java | 16 +- .../replaymod/render/blend/BlendState.java | 4 +- .../render/blend/exporters/ChunkExporter.java | 290 +++++++++--------- .../render/blend/exporters/ItemExporter.java | 10 +- .../exporters/ModelRendererExporter.java | 20 +- .../blend/exporters/ParticlesExporter.java | 10 +- ...ntainerLocalRenderInformationAccessor.java | 24 +- .../blend/mixin/MixinChunkRenderWorker.java | 52 ++-- .../blend/mixin/MixinEffectRenderer.java | 82 ++--- .../blend/mixin/MixinModelRenderer.java | 132 ++++---- .../render/blend/mixin/MixinRenderGlobal.java | 68 ++-- .../render/blend/mixin/MixinRenderItem.java | 12 +- .../blend/mixin/MixinRenderLivingBase.java | 8 +- .../blend/mixin/MixinRenderManager.java | 36 +-- .../MixinTileEntityRendererDispatcher.java | 66 ++-- .../blend/mixin/WorldRendererAccessor.java | 26 +- .../render/capturer/ODSFrameCapturer.java | 14 +- .../render/capturer/OpenGlFrameCapturer.java | 2 +- .../render/gui/GuiRenderSettings.java | 6 +- .../hooks/ChunkLoadingRenderGlobal.java | 172 +++++------ .../render/hooks/EntityRendererHandler.java | 6 +- .../mixin/ChunkRenderDispatcherAccessor.java | 42 +-- .../render/mixin/MixinChunkRenderWorker.java | 30 +- .../render/mixin/MixinEntityRenderer.java | 126 ++++---- .../render/mixin/MixinFogRenderer.java | 2 +- .../replaymod/render/mixin/MixinFrustum.java | 4 +- .../render/mixin/MixinParticleManager.java | 134 ++++---- .../replaymod/render/mixin/MixinRender.java | 4 +- .../render/mixin/MixinRenderManager.java | 36 +-- .../mixin/Mixin_BlockOnChunkRebuilds.java | 214 ++++++------- .../render/mixin/Mixin_ChromaKeyForceSky.java | 12 +- .../render/mixin/Mixin_CubicRotation.java | 32 +- .../render/mixin/Mixin_ForceChunkLoading.java | 260 ++++++++-------- .../Mixin_SkipBlockOutlinesDuringRender.java | 2 +- .../render/mixin/WorldRendererAccessor.java | 26 +- .../render/rendering/VideoRenderer.java | 36 +-- .../replaymod/replay/FullReplaySender.java | 6 +- .../com/replaymod/replay/NoGuiScreenshot.java | 8 +- .../replaymod/replay/QuickReplaySender.java | 16 +- .../com/replaymod/replay/ReplayHandler.java | 26 +- .../mixin/EntityLivingBaseAccessor.java | 10 +- .../replaymod/replay/mixin/MixinCamera.java | 60 ++-- .../replay/mixin/MixinGuiSpectator.java | 2 +- .../replay/mixin/MixinKeyboardListener.java | 2 +- .../replay/mixin/MixinRenderArrow.java | 12 +- .../replay/mixin/MixinRenderItem.java | 8 +- .../MixinTileEntityEndPortalRenderer.java | 10 +- .../replay/mixin/MixinViewFrustum.java | 12 +- .../preview/PathPreviewRenderer.java | 24 +- .../assets/replaymod/shader/ods.frag | 10 +- .../assets/replaymod/shader/ods.vert | 8 +- .../mixins.render.blend.replaymod.json | 12 +- .../resources/mixins.render.replaymod.json | 6 +- versions/mainProject | 2 +- 70 files changed, 1217 insertions(+), 1217 deletions(-) diff --git a/jGui b/jGui index b485a7b0..2e29d62e 160000 --- a/jGui +++ b/jGui @@ -1 +1 @@ -Subproject commit b485a7b078d7d3c739517c2769adb31507356513 +Subproject commit 2e29d62e59f4f2cd664b9c4d68e88d3e20ea0490 diff --git a/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderEntityRenderer.java b/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderEntityRenderer.java index 1665aeee..fe9263a1 100644 --- a/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderEntityRenderer.java +++ b/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderEntityRenderer.java @@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; public abstract class MixinShaderEntityRenderer { //#if MC>=11400 - @Inject(method = "renderCenter", at = @At("HEAD")) + @Inject(method = "renderWorld", at = @At("HEAD")) //#else //#if MC>=11400 //$$ @Inject(method = "updateCameraAndRender(FJ)V", at = @At("HEAD")) diff --git a/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderRenderChunk.java b/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderRenderChunk.java index 7396b8d4..4d544576 100644 --- a/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderRenderChunk.java +++ b/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderRenderChunk.java @@ -9,9 +9,9 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; //#if MC>=11500 -//$$ @Mixin(net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk.class) +@Mixin(net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk.class) //#else -@Mixin(net.minecraft.client.render.chunk.ChunkRenderer.class) +//$$ @Mixin(net.minecraft.client.render.chunk.ChunkRenderer.class) //#endif public abstract class MixinShaderRenderChunk { 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 407614d1..62f34abf 100644 --- a/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderRenderGlobal.java +++ b/src/main/java/com/replaymod/compat/shaders/mixin/MixinShaderRenderGlobal.java @@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; //#if MC>=11500 //#else -import net.minecraft.client.render.VisibleRegion; +//$$ import net.minecraft.client.render.VisibleRegion; //#endif //#if MC>=11400 @@ -31,7 +31,7 @@ public abstract class MixinShaderRenderGlobal { @Shadow public boolean needsTerrainUpdate; - @Inject(method = "setUpTerrain", at = @At("HEAD"), cancellable = true) + @Inject(method = "setupTerrain", at = @At("HEAD"), cancellable = true) public void replayModCompat_setupTerrain( //#if MC>=11400 Camera viewEntity, @@ -44,10 +44,10 @@ public abstract class MixinShaderRenderGlobal { //#endif //#endif //#if MC>=11500 - //$$ Frustum camera, - //$$ boolean skipUpdate, + Frustum camera, + boolean skipUpdate, //#else - VisibleRegion camera, + //$$ VisibleRegion camera, //#endif int frameCount, boolean playerSpectator, diff --git a/src/main/java/com/replaymod/core/ReplayMod.java b/src/main/java/com/replaymod/core/ReplayMod.java index d11bae29..9e6710cc 100644 --- a/src/main/java/com/replaymod/core/ReplayMod.java +++ b/src/main/java/com/replaymod/core/ReplayMod.java @@ -445,7 +445,7 @@ public class ReplayMod implements // 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) //#if FABRIC<1 || MC<11500 - { if (!MinecraftClient.getInstance().isOnThread()) throw new RuntimeException(); } + //$$ { if (!MinecraftClient.getInstance().isOnThread()) throw new RuntimeException(); } //#endif private ReplayModExecutor(String string_1) { diff --git a/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java b/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java index 6e8b5cc8..9e8cb335 100644 --- a/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java +++ b/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java @@ -4,20 +4,20 @@ package com.replaymod.core.events; import de.johni0702.minecraft.gui.utils.Event; //#if MC>=11500 -//$$ import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.MatrixStack; //#endif public interface PostRenderWorldCallback { Event EVENT = Event.create((listeners) -> //#if MC>=11500 - //$$ (MatrixStack matrixStack) -> { + (MatrixStack matrixStack) -> { //#else - () -> { + //$$ () -> { //#endif for (PostRenderWorldCallback listener : listeners) { listener.postRenderWorld( //#if MC>=11500 - //$$ matrixStack + matrixStack //#endif ); } @@ -26,7 +26,7 @@ public interface PostRenderWorldCallback { void postRenderWorld( //#if MC>=11500 - //$$ MatrixStack matrixStack + MatrixStack matrixStack //#endif ); } diff --git a/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java b/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java index 1073b9d7..aefceb3b 100644 --- a/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java +++ b/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java @@ -11,13 +11,13 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; //#if MC>=11500 -//$$ import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.MatrixStack; //#endif @Mixin(GameRenderer.class) public class MixinGameRenderer { @Inject( - method = "renderCenter", + method = "renderWorld", at = @At( value = "FIELD", target = "Lnet/minecraft/client/render/GameRenderer;renderHand:Z" @@ -27,12 +27,12 @@ public class MixinGameRenderer { float partialTicks, long nanoTime, //#if MC>=11500 - //$$ MatrixStack matrixStack, + MatrixStack matrixStack, //#endif CallbackInfo ci) { PostRenderWorldCallback.EVENT.invoker().postRenderWorld( //#if MC>=11500 - //$$ matrixStack + matrixStack //#endif ); } @@ -40,7 +40,7 @@ public class MixinGameRenderer { @Inject(method = "renderHand", at = @At("HEAD"), cancellable = true) private void preRenderHand( //#if MC>=11500 - //$$ MatrixStack matrixStack, + MatrixStack matrixStack, //#endif Camera camera, float partialTicks, diff --git a/src/main/java/com/replaymod/core/mixin/MixinModResourcePackUtil.java b/src/main/java/com/replaymod/core/mixin/MixinModResourcePackUtil.java index f44e1071..6d3d4b7c 100644 --- a/src/main/java/com/replaymod/core/mixin/MixinModResourcePackUtil.java +++ b/src/main/java/com/replaymod/core/mixin/MixinModResourcePackUtil.java @@ -4,7 +4,7 @@ package com.replaymod.core.mixin; import com.replaymod.core.ReplayMod; import com.replaymod.core.versions.LangResourcePack; import net.fabricmc.fabric.api.resource.ModResourcePack; -import net.fabricmc.fabric.impl.resources.ModResourcePackUtil; +import net.fabricmc.fabric.impl.resource.loader.ModResourcePackUtil; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; import net.minecraft.resource.ResourcePack; diff --git a/src/main/java/com/replaymod/core/versions/LangResourcePack.java b/src/main/java/com/replaymod/core/versions/LangResourcePack.java index 1d8d6607..b8992829 100644 --- a/src/main/java/com/replaymod/core/versions/LangResourcePack.java +++ b/src/main/java/com/replaymod/core/versions/LangResourcePack.java @@ -140,7 +140,7 @@ public class LangResourcePack extends AbstractFileResourcePack { public Collection findResources( ResourceType resourcePackType, //#if MC>=11500 - //$$ String namespace, + String namespace, //#endif String path, int maxDepth, diff --git a/src/main/java/com/replaymod/core/versions/MCVer.java b/src/main/java/com/replaymod/core/versions/MCVer.java index a4c918e0..80c165f5 100644 --- a/src/main/java/com/replaymod/core/versions/MCVer.java +++ b/src/main/java/com/replaymod/core/versions/MCVer.java @@ -24,10 +24,10 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; //#if MC>=11500 -//$$ import net.minecraft.client.model.ModelPart.Cuboid; -//$$ import java.util.ArrayList; +import net.minecraft.client.model.ModelPart.Cuboid; +import java.util.ArrayList; //#else -import net.minecraft.client.model.Box; +//$$ import net.minecraft.client.model.Box; //#endif //#if MC>=11400 @@ -88,7 +88,7 @@ import com.mojang.blaze3d.platform.GlStateManager; import net.minecraft.client.render.VertexFormat; import net.minecraft.client.render.VertexFormatElement; //#if MC<11500 -import net.minecraft.client.render.chunk.ChunkRenderTask; +//$$ import net.minecraft.client.render.chunk.ChunkRenderTask; //#endif //#else //$$ import com.replaymod.core.mixin.ResourcePackRepositoryAccessor; @@ -172,35 +172,35 @@ public class MCVer { public static double Entity_getX(Entity entity) { //#if MC>=11500 - //$$ return entity.getX(); + return entity.getX(); //#else - return entity.x; + //$$ return entity.x; //#endif } public static double Entity_getY(Entity entity) { //#if MC>=11500 - //$$ return entity.getY(); + return entity.getY(); //#else - return entity.y; + //$$ return entity.y; //#endif } public static double Entity_getZ(Entity entity) { //#if MC>=11500 - //$$ return entity.getZ(); + return entity.getZ(); //#else - return entity.z; + //$$ return entity.z; //#endif } public static void Entity_setPos(Entity entity, double x, double y, double z) { //#if MC>=11500 - //$$ entity.setPos(x, y, z); + entity.setPos(x, y, z); //#else - entity.x = x; - entity.y = y; - entity.z = z; + //$$ entity.x = x; + //$$ entity.y = y; + //$$ entity.z = z; //#endif } @@ -368,13 +368,13 @@ public class MCVer { @SuppressWarnings("unchecked") //#if MC>=11500 - //$$ public static List cubeList(ModelPart modelRenderer) { - //$$ return new ArrayList<>(); // FIXME 1.15 - //$$ } - //#else - public static List cubeList(ModelPart modelRenderer) { - return modelRenderer.boxes; + public static List cubeList(ModelPart modelRenderer) { + return new ArrayList<>(); // FIXME 1.15 } + //#else + //$$ public static List cubeList(ModelPart modelRenderer) { + //$$ return modelRenderer.boxes; + //$$ } //#endif @SuppressWarnings("unchecked") @@ -397,9 +397,9 @@ public class MCVer { //#if MC>=11400 public static Window getWindow(MinecraftClient mc) { //#if MC>=11500 - //$$ return mc.getWindow(); + return mc.getWindow(); //#else - return mc.window; + //$$ return mc.window; //#endif } //#endif @@ -609,9 +609,9 @@ public class MCVer { } //#if MC>=10800 && MC<11500 - public interface ChunkRenderWorkerAccessor { - void doRunTask(ChunkRenderTask task) throws InterruptedException; - } + //$$ public interface ChunkRenderWorkerAccessor { + //$$ void doRunTask(ChunkRenderTask task) throws InterruptedException; + //$$ } //#endif public static long milliTime() { @@ -624,10 +624,10 @@ public class MCVer { public static void bindTexture(Identifier texture) { //#if MC>=11500 - //$$ getMinecraft().getTextureManager().bindTexture(texture); + getMinecraft().getTextureManager().bindTexture(texture); //#else //#if MC>=11400 - getMinecraft().getTextureManager().bindTexture(texture); + //$$ getMinecraft().getTextureManager().bindTexture(texture); //#else //$$ getMinecraft().renderEngine.bindTexture(texture); //#endif @@ -822,10 +822,10 @@ public class MCVer { public static boolean isKeyDown(int keyCode) { //#if MC>=11500 - //$$ return InputUtil.isKeyPressed(getMinecraft().getWindow().getHandle(), keyCode); + return InputUtil.isKeyPressed(getMinecraft().getWindow().getHandle(), keyCode); //#else //#if MC>=11400 - return InputUtil.isKeyPressed(getMinecraft().window.getHandle(), keyCode); + //$$ return InputUtil.isKeyPressed(getMinecraft().window.getHandle(), keyCode); //#else //#if MC>=11400 //$$ return InputMappings.isKeyDown(keyCode); diff --git a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java index ecc3cd73..61324505 100644 --- a/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java +++ b/src/main/java/com/replaymod/extras/advancedscreenshots/ScreenshotRenderer.java @@ -72,7 +72,7 @@ public class ScreenshotRenderer implements RenderInfo { //#endif ); //#if MC>=11500 - //$$ mc.gameRenderer.onResized(displayWidthBefore, displayHeightBefore); + mc.gameRenderer.onResized(displayWidthBefore, displayHeightBefore); //#endif //#else //$$ mc.resize(displayWidthBefore, displayHeightBefore); diff --git a/src/main/java/com/replaymod/extras/playeroverview/mixin/MixinRender.java b/src/main/java/com/replaymod/extras/playeroverview/mixin/MixinRender.java index 1196d2a4..70196dbc 100644 --- a/src/main/java/com/replaymod/extras/playeroverview/mixin/MixinRender.java +++ b/src/main/java/com/replaymod/extras/playeroverview/mixin/MixinRender.java @@ -34,7 +34,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(value = EntityRenderer.class, priority = 1200) public abstract class MixinRender { //#if MC>=10800 - @Inject(method = "isVisible", at=@At("HEAD"), cancellable = true) + @Inject(method = "shouldRender", at=@At("HEAD"), cancellable = true) public void replayModExtras_isPlayerHidden(Entity entity, @Coerce Object camera, double camX, double camY, double camZ, CallbackInfoReturnable ci) { ReplayModExtras.instance.get(PlayerOverview.class).ifPresent(playerOverview -> { if (entity instanceof PlayerEntity) { diff --git a/src/main/java/com/replaymod/recording/mixin/IntegratedServerAccessor.java b/src/main/java/com/replaymod/recording/mixin/IntegratedServerAccessor.java index 21d831d7..38e69f93 100644 --- a/src/main/java/com/replaymod/recording/mixin/IntegratedServerAccessor.java +++ b/src/main/java/com/replaymod/recording/mixin/IntegratedServerAccessor.java @@ -8,9 +8,9 @@ import org.spongepowered.asm.mixin.gen.Accessor; public interface IntegratedServerAccessor { // TODO probably https://github.com/ReplayMod/remap/issues/10 //#if MC>=11500 - //$$ @Accessor("paused") + @Accessor("paused") //#else - @Accessor("field_5524") + //$$ @Accessor("field_5524") //#endif boolean isGamePaused(); } diff --git a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java index 53200062..78b66335 100644 --- a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java +++ b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnMobAccessor.java @@ -8,9 +8,9 @@ import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(MobSpawnS2CPacket.class) public interface SPacketSpawnMobAccessor { //#if MC<11500 - @Accessor("dataTracker") - DataTracker getDataManager(); - @Accessor("dataTracker") - void setDataManager(DataTracker value); + //$$ @Accessor("dataTracker") + //$$ DataTracker getDataManager(); + //$$ @Accessor("dataTracker") + //$$ void setDataManager(DataTracker value); //#endif } diff --git a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java index f79cf310..73f7f667 100644 --- a/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java +++ b/src/main/java/com/replaymod/recording/mixin/SPacketSpawnPlayerAccessor.java @@ -8,9 +8,9 @@ import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(PlayerSpawnS2CPacket.class) public interface SPacketSpawnPlayerAccessor { //#if MC<11500 - @Accessor("dataTracker") - DataTracker getDataManager(); - @Accessor("dataTracker") - void setDataManager(DataTracker value); + //$$ @Accessor("dataTracker") + //$$ DataTracker getDataManager(); + //$$ @Accessor("dataTracker") + //$$ void setDataManager(DataTracker value); //#endif } diff --git a/src/main/java/com/replaymod/recording/packet/PacketListener.java b/src/main/java/com/replaymod/recording/packet/PacketListener.java index 69f36078..2fb03ed8 100644 --- a/src/main/java/com/replaymod/recording/packet/PacketListener.java +++ b/src/main/java/com/replaymod/recording/packet/PacketListener.java @@ -326,49 +326,49 @@ public class PacketListener extends ChannelInboundHandlerAdapter { @SuppressWarnings("unchecked") private byte[] getPacketData(Packet packet) throws Exception { //#if MC<11500 - if (packet instanceof MobSpawnS2CPacket) { - MobSpawnS2CPacket p = (MobSpawnS2CPacket) packet; - SPacketSpawnMobAccessor pa = (SPacketSpawnMobAccessor) p; - if (pa.getDataManager() == null) { - pa.setDataManager(new DataTracker(null)); - if (p.getTrackedValues() != null) { - Set seen = new HashSet<>(); + //$$ if (packet instanceof MobSpawnS2CPacket) { + //$$ MobSpawnS2CPacket p = (MobSpawnS2CPacket) packet; + //$$ SPacketSpawnMobAccessor pa = (SPacketSpawnMobAccessor) p; + //$$ if (pa.getDataManager() == null) { + //$$ pa.setDataManager(new DataTracker(null)); + //$$ if (p.getTrackedValues() != null) { + //$$ Set seen = new HashSet<>(); //#if MC>=10904 - for (DataTracker.Entry entry : Lists.reverse(p.getTrackedValues())) { - if (!seen.add(entry.getData().getId())) continue; - DataManager_set(pa.getDataManager(), entry); - } + //$$ for (DataTracker.Entry entry : Lists.reverse(p.getTrackedValues())) { + //$$ if (!seen.add(entry.getData().getId())) continue; + //$$ DataManager_set(pa.getDataManager(), entry); + //$$ } //#else //$$ for(DataWatcher.WatchableObject wo : Lists.reverse((List) p.func_149027_c())) { //$$ if (!seen.add(wo.getDataValueId())) continue; //$$ pa.getDataManager().addObject(wo.getDataValueId(), wo.getObject()); //$$ } //#endif - } - } - } - - if (packet instanceof PlayerSpawnS2CPacket) { - PlayerSpawnS2CPacket p = (PlayerSpawnS2CPacket) packet; - SPacketSpawnPlayerAccessor pa = (SPacketSpawnPlayerAccessor) p; - if (pa.getDataManager() == null) { - pa.setDataManager(new DataTracker(null)); - if (p.getTrackedValues() != null) { - Set seen = new HashSet<>(); + //$$ } + //$$ } + //$$ } + //$$ + //$$ if (packet instanceof PlayerSpawnS2CPacket) { + //$$ PlayerSpawnS2CPacket p = (PlayerSpawnS2CPacket) packet; + //$$ SPacketSpawnPlayerAccessor pa = (SPacketSpawnPlayerAccessor) p; + //$$ if (pa.getDataManager() == null) { + //$$ pa.setDataManager(new DataTracker(null)); + //$$ if (p.getTrackedValues() != null) { + //$$ Set seen = new HashSet<>(); //#if MC>=10904 - for (DataTracker.Entry entry : Lists.reverse(p.getTrackedValues())) { - if (!seen.add(entry.getData().getId())) continue; - DataManager_set(pa.getDataManager(), entry); - } + //$$ for (DataTracker.Entry entry : Lists.reverse(p.getTrackedValues())) { + //$$ if (!seen.add(entry.getData().getId())) continue; + //$$ DataManager_set(pa.getDataManager(), entry); + //$$ } //#else //$$ for(DataWatcher.WatchableObject wo : Lists.reverse((List) p.func_148944_c())) { //$$ if (!seen.add(wo.getDataValueId())) continue; //$$ pa.getDataManager().addObject(wo.getDataValueId(), wo.getObject()); //$$ } //#endif - } - } - } + //$$ } + //$$ } + //$$ } //#endif //#if MC>=10800 diff --git a/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java b/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java index 6587a11c..ebf38b75 100644 --- a/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java +++ b/src/main/java/com/replaymod/render/blend/BlendMeshBuilder.java @@ -12,7 +12,7 @@ import net.minecraft.client.render.VertexFormatElement; import org.lwjgl.opengl.GL11; //#if MC>=11500 -//$$ import com.mojang.datafixers.util.Pair; +import com.mojang.datafixers.util.Pair; //#endif //#if MC>=10904 @@ -140,10 +140,10 @@ public class BlendMeshBuilder //$$ public static DMesh addBufferToMesh(WorldRenderer bufferBuilder, DMesh mesh, Vector3f vertOffset) { //#endif //#if MC>=11500 - //$$ Pair data = bufferBuilder.popData(); - //$$ return addBufferToMesh(data.getSecond(), data.getFirst().getMode(), data.getFirst().getVertexFormat(), mesh, vertOffset); + Pair data = bufferBuilder.popData(); + return addBufferToMesh(data.getSecond(), data.getFirst().getMode(), data.getFirst().getVertexFormat(), mesh, vertOffset); //#else - return addBufferToMesh(bufferBuilder.getByteBuffer(), bufferBuilder.getDrawMode(), bufferBuilder.getVertexFormat(), mesh, vertOffset); + //$$ return addBufferToMesh(bufferBuilder.getByteBuffer(), bufferBuilder.getDrawMode(), bufferBuilder.getVertexFormat(), mesh, vertOffset); //#endif } @@ -168,15 +168,15 @@ 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 - //$$ int offset = elementOffset; - //$$ elementOffset += element.getSize(); + int offset = elementOffset; + elementOffset += element.getSize(); //#else //#if MC>=10809 - int offset = vertexFormat.getElementOffset(index); + //$$ int offset = vertexFormat.getElementOffset(index); //#else //$$ int offset = element.getOffset(); //#endif diff --git a/src/main/java/com/replaymod/render/blend/BlendState.java b/src/main/java/com/replaymod/render/blend/BlendState.java index 5d2d2a7b..0b3333b7 100644 --- a/src/main/java/com/replaymod/render/blend/BlendState.java +++ b/src/main/java/com/replaymod/render/blend/BlendState.java @@ -5,7 +5,7 @@ import com.replaymod.render.blend.data.Serializer; //#if MC>=10800 // FIXME 1.15 //#if MC<11500 -import com.replaymod.render.blend.exporters.ChunkExporter; +//$$ import com.replaymod.render.blend.exporters.ChunkExporter; //#endif import com.replaymod.render.blend.exporters.EntityExporter; import com.replaymod.render.blend.exporters.ItemExporter; @@ -58,7 +58,7 @@ public class BlendState implements Exporter { register(renderState); // FIXME 1.15 //#if MC<11500 - register(new ChunkExporter()); + //$$ register(new ChunkExporter()); //#endif register(new EntityExporter(renderState)); register(new TileEntityExporter(renderState)); 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 28f9aeba..b744aa9a 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ChunkExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ChunkExporter.java @@ -1,175 +1,175 @@ // FIXME 1.15 //#if MC>=10800 && MC<11500 -package com.replaymod.render.blend.exporters; - -import com.replaymod.core.versions.MCVer; -import com.replaymod.render.blend.BlendMeshBuilder; -import com.replaymod.render.blend.BlendState; -import com.replaymod.render.blend.Exporter; -import com.replaymod.render.blend.data.DMesh; -import com.replaymod.render.blend.data.DObject; -import com.replaymod.render.blend.mixin.ContainerLocalRenderInformationAccessor; -import com.replaymod.render.blend.mixin.WorldRendererAccessor; -import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.texture.SpriteAtlasTexture; -import net.minecraft.client.util.GlAllocationUtils; -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.VertexBuffer; -import org.apache.commons.lang3.tuple.Pair; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL15; - +//$$ package com.replaymod.render.blend.exporters; +//$$ +//$$ import com.replaymod.core.versions.MCVer; +//$$ import com.replaymod.render.blend.BlendMeshBuilder; +//$$ import com.replaymod.render.blend.BlendState; +//$$ import com.replaymod.render.blend.Exporter; +//$$ import com.replaymod.render.blend.data.DMesh; +//$$ import com.replaymod.render.blend.data.DObject; +//$$ import com.replaymod.render.blend.mixin.ContainerLocalRenderInformationAccessor; +//$$ import com.replaymod.render.blend.mixin.WorldRendererAccessor; +//$$ import de.johni0702.minecraft.gui.utils.lwjgl.vector.Vector3f; +//$$ import net.minecraft.client.MinecraftClient; +//$$ import net.minecraft.client.texture.SpriteAtlasTexture; +//$$ import net.minecraft.client.util.GlAllocationUtils; +//$$ 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.VertexBuffer; +//$$ import org.apache.commons.lang3.tuple.Pair; +//$$ import org.lwjgl.opengl.GL11; +//$$ import org.lwjgl.opengl.GL15; +//$$ //#if MC>=10904 -import net.minecraft.client.render.RenderLayer; -import net.minecraft.util.math.BlockPos; +//$$ import net.minecraft.client.render.RenderLayer; +//$$ import net.minecraft.util.math.BlockPos; //#else //$$ import net.minecraft.util.BlockPos; //$$ import net.minecraft.util.EnumWorldBlockLayer; //#endif - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.EnumMap; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class ChunkExporter implements Exporter { - private final Map chunkObjects = new HashMap<>(); +//$$ +//$$ import java.io.IOException; +//$$ import java.nio.ByteBuffer; +//$$ import java.util.ArrayList; +//$$ import java.util.EnumMap; +//$$ import java.util.HashMap; +//$$ import java.util.List; +//$$ 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<>(); //#endif - private DObject chunksObject; - private int frame; - - public void addChunkUpdate(ChunkRenderer chunk, ChunkRenderData compiledChunk) { +//$$ private DObject chunksObject; +//$$ private int frame; +//$$ +//$$ public void addChunkUpdate(ChunkRenderer chunk, ChunkRenderData compiledChunk) { //#if MC>=10904 - for (RenderLayer layer : RenderLayer.values()) { + //$$ for (RenderLayer layer : RenderLayer.values()) { //#else //$$ for (EnumWorldBlockLayer layer : EnumWorldBlockLayer.values()) { //#endif - if (compiledChunk == null || compiledChunk.isBufferInitialized(layer)) { - chunks.add(Pair.of(chunk, layer)); - } - } - } - - @Override - public void setup() throws IOException { - - MinecraftClient mc = MCVer.getMinecraft(); - @SuppressWarnings("unchecked") - List renderInfos = ((WorldRendererAccessor) mc.worldRenderer).getRenderInfos(); - for (ContainerLocalRenderInformationAccessor renderInfo : renderInfos) { - ChunkRenderer renderChunk = renderInfo.getRenderChunk(); - ChunkRenderData compiledChunk = renderChunk.getData(); - if (!compiledChunk.isEmpty()) { - addChunkUpdate(renderChunk, null); - } - } - - chunksObject = new DObject(DObject.Type.OB_EMPTY); - chunksObject.id.name = "Chunks"; - chunksObject.layers = 1 << 1; - BlendState.getState().getScene().base.add(chunksObject); - } - - @Override - public void tearDown() throws IOException { - chunks.clear(); - chunkObjects.clear(); - chunksObject = null; - } - - @Override - public void preFrame(int frame) throws IOException { - this.frame = frame; - } - - @Override - public void postFrame(int frame) throws IOException { +//$$ if (compiledChunk == null || compiledChunk.isBufferInitialized(layer)) { +//$$ chunks.add(Pair.of(chunk, layer)); +//$$ } +//$$ } +//$$ } +//$$ +//$$ @Override +//$$ public void setup() throws IOException { +//$$ +//$$ MinecraftClient mc = MCVer.getMinecraft(); +//$$ @SuppressWarnings("unchecked") +//$$ List renderInfos = ((WorldRendererAccessor) mc.worldRenderer).getRenderInfos(); +//$$ for (ContainerLocalRenderInformationAccessor renderInfo : renderInfos) { +//$$ ChunkRenderer renderChunk = renderInfo.getRenderChunk(); +//$$ ChunkRenderData compiledChunk = renderChunk.getData(); +//$$ if (!compiledChunk.isEmpty()) { +//$$ addChunkUpdate(renderChunk, null); +//$$ } +//$$ } +//$$ +//$$ chunksObject = new DObject(DObject.Type.OB_EMPTY); +//$$ chunksObject.id.name = "Chunks"; +//$$ chunksObject.layers = 1 << 1; +//$$ BlendState.getState().getScene().base.add(chunksObject); +//$$ } +//$$ +//$$ @Override +//$$ public void tearDown() throws IOException { +//$$ chunks.clear(); +//$$ chunkObjects.clear(); +//$$ chunksObject = null; +//$$ } +//$$ +//$$ @Override +//$$ public void preFrame(int frame) throws IOException { +//$$ this.frame = frame; +//$$ } +//$$ +//$$ @Override +//$$ public void postFrame(int frame) throws IOException { //#if MC>=10904 - for (Pair pair : chunks) { - RenderLayer layer = pair.getRight(); + //$$ for (Pair pair : chunks) { + //$$ RenderLayer layer = pair.getRight(); //#else //$$ for (Pair pair : chunks) { //$$ EnumWorldBlockLayer layer = pair.getRight(); //#endif - ChunkRenderer chunk = pair.getLeft(); - DObject chunkObject = chunkObjects.get(chunk.getOrigin()); - if (chunkObject == null) { - chunkObject = buildChunkObject(chunk); - chunkObjects.put(chunk.getOrigin(), chunkObject); - chunkLayerObjects.put(chunk.getOrigin(), new EnumMap<>(layer.getDeclaringClass())); - } - DObject layerObject = buildChunkLayerObject(chunkObject, chunk, layer); - if (layerObject == null) continue; +//$$ ChunkRenderer chunk = pair.getLeft(); +//$$ DObject chunkObject = chunkObjects.get(chunk.getOrigin()); +//$$ if (chunkObject == null) { +//$$ chunkObject = buildChunkObject(chunk); +//$$ chunkObjects.put(chunk.getOrigin(), chunkObject); +//$$ chunkLayerObjects.put(chunk.getOrigin(), new EnumMap<>(layer.getDeclaringClass())); +//$$ } +//$$ DObject layerObject = buildChunkLayerObject(chunkObject, chunk, layer); +//$$ if (layerObject == null) continue; //#if MC>=10904 - Map layerObjects + //$$ Map layerObjects //#else //$$ Map layerObjects //#endif - = chunkLayerObjects.get(chunk.getOrigin()); - DObject oldLayerObject = layerObjects.get(layer); - if (oldLayerObject != null) { - oldLayerObject.keyframe("hide", 0, frame, 1f); - } - if (frame > 0) { - layerObject.keyframe("hide", 0, frame - 1, 1f); - layerObject.keyframe("hide", 0, frame, 0f); - } else { - layerObject.keyframe("hide", 0, frame, 0f); - } - layerObjects.put(layer, layerObject); - } - chunks.clear(); - } - - private DObject buildChunkObject(ChunkRenderer renderChunk) { - BlockPos pos = renderChunk.getOrigin(); - DObject chunkObject = new DObject(DObject.Type.OB_EMPTY); - chunkObject.setParent(chunksObject); - chunkObject.id.name = "Chunk[" + pos.getX()/16 + "/" + pos.getY()/16 + "/" + pos.getZ()/16 + "]"; - chunkObject.loc = new Vector3f(pos.getX(), -pos.getZ(), pos.getY()); - return chunkObject; - } - - private DObject buildChunkLayerObject(DObject chunkObject, ChunkRenderer renderChunk, +//$$ = chunkLayerObjects.get(chunk.getOrigin()); +//$$ DObject oldLayerObject = layerObjects.get(layer); +//$$ if (oldLayerObject != null) { +//$$ oldLayerObject.keyframe("hide", 0, frame, 1f); +//$$ } +//$$ if (frame > 0) { +//$$ layerObject.keyframe("hide", 0, frame - 1, 1f); +//$$ layerObject.keyframe("hide", 0, frame, 0f); +//$$ } else { +//$$ layerObject.keyframe("hide", 0, frame, 0f); +//$$ } +//$$ layerObjects.put(layer, layerObject); +//$$ } +//$$ chunks.clear(); +//$$ } +//$$ +//$$ private DObject buildChunkObject(ChunkRenderer renderChunk) { +//$$ BlockPos pos = renderChunk.getOrigin(); +//$$ DObject chunkObject = new DObject(DObject.Type.OB_EMPTY); +//$$ chunkObject.setParent(chunksObject); +//$$ chunkObject.id.name = "Chunk[" + pos.getX()/16 + "/" + pos.getY()/16 + "/" + pos.getZ()/16 + "]"; +//$$ chunkObject.loc = new Vector3f(pos.getX(), -pos.getZ(), pos.getY()); +//$$ return chunkObject; +//$$ } +//$$ +//$$ private DObject buildChunkLayerObject(DObject chunkObject, ChunkRenderer renderChunk, //#if MC>=10904 - RenderLayer layer) { + //$$ RenderLayer layer) { //#else //$$ EnumWorldBlockLayer layer) { //#endif - VertexBuffer vertexBuffer = renderChunk.getGlBuffer(layer.ordinal()); - if (vertexBuffer == null) return null; - - DObject layerObject = new DObject(buildChunkLayerMesh(vertexBuffer)); - layerObject.setParent(chunkObject); - layerObject.id.name = chunkObject.id.name + " - " + layer + " - Frame " + frame; - return layerObject; - } - - private DMesh buildChunkLayerMesh(VertexBuffer vertexBuffer) { - vertexBuffer.bind(); - int size = GL15.glGetBufferParameteri(GLX.GL_ARRAY_BUFFER, GL15.GL_BUFFER_SIZE); - ByteBuffer byteBuffer = GlAllocationUtils.allocateByteBuffer(size); - GL15.glGetBufferSubData(GLX.GL_ARRAY_BUFFER, 0, byteBuffer); - vertexBuffer.unbind(); - - MCVer.getMinecraft().getTextureManager().bindTexture(SpriteAtlasTexture.BLOCK_ATLAS_TEX); - - return BlendMeshBuilder.addBufferToMesh(byteBuffer, GL11.GL_QUADS, VertexFormats.POSITION_COLOR_UV_LMAP, null, null); - } - - private static final int STRIDE = 28; -} +//$$ VertexBuffer vertexBuffer = renderChunk.getGlBuffer(layer.ordinal()); +//$$ if (vertexBuffer == null) return null; +//$$ +//$$ DObject layerObject = new DObject(buildChunkLayerMesh(vertexBuffer)); +//$$ layerObject.setParent(chunkObject); +//$$ layerObject.id.name = chunkObject.id.name + " - " + layer + " - Frame " + frame; +//$$ return layerObject; +//$$ } +//$$ +//$$ private DMesh buildChunkLayerMesh(VertexBuffer vertexBuffer) { +//$$ vertexBuffer.bind(); +//$$ int size = GL15.glGetBufferParameteri(GLX.GL_ARRAY_BUFFER, GL15.GL_BUFFER_SIZE); +//$$ ByteBuffer byteBuffer = GlAllocationUtils.allocateByteBuffer(size); +//$$ GL15.glGetBufferSubData(GLX.GL_ARRAY_BUFFER, 0, byteBuffer); +//$$ vertexBuffer.unbind(); +//$$ +//$$ MCVer.getMinecraft().getTextureManager().bindTexture(SpriteAtlasTexture.BLOCK_ATLAS_TEX); +//$$ +//$$ return BlendMeshBuilder.addBufferToMesh(byteBuffer, GL11.GL_QUADS, VertexFormats.POSITION_COLOR_UV_LMAP, null, null); +//$$ } +//$$ +//$$ private static final int STRIDE = 28; +//$$ } //#endif 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 bb882b3a..b25b6556 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ItemExporter.java @@ -125,13 +125,13 @@ public class ItemExporter implements Exporter { //#endif : 0xffffffff; //#if MC>=11500 - //$$ // FIXME 1.15 + // FIXME 1.15 //#else //#if MC>=11400 - buffer.putVertexData(quad.getVertexData()); - buffer.setQuadColor(color); - Vec3i vec3i_1 = quad.getFace().getVector(); - buffer.postNormal(vec3i_1.getX(), vec3i_1.getY(), vec3i_1.getZ()); + //$$ buffer.putVertexData(quad.getVertexData()); + //$$ buffer.setQuadColor(color); + //$$ Vec3i vec3i_1 = quad.getFace().getVector(); + //$$ buffer.postNormal(vec3i_1.getX(), vec3i_1.getY(), vec3i_1.getZ()); //#else //$$ LightUtil.renderQuadColor(buffer, quad, color); //#endif 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 7e59280c..909e7c6e 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ModelRendererExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ModelRendererExporter.java @@ -9,9 +9,9 @@ import org.lwjgl.opengl.GL11; //#if MC>=11400 //#if MC>=11500 -//$$ import net.minecraft.client.model.ModelPart.Cuboid; +import net.minecraft.client.model.ModelPart.Cuboid; //#else -import net.minecraft.client.model.Box; +//$$ import net.minecraft.client.model.Box; //#endif import net.minecraft.client.model.ModelPart; //#else @@ -72,9 +72,9 @@ public class ModelRendererExporter implements Exporter { if (object == null) { object = new ModelBasedDObject(model, scale); //#if MC>=11500 - //$$ object.id.name = "???"; // FIXME 1.15 can we somehow nicely derive this? + object.id.name = "???"; // FIXME 1.15 can we somehow nicely derive this? //#else - object.id.name = model.name; + //$$ object.id.name = model.name; //#endif object.setParent(parent); } @@ -86,13 +86,13 @@ public class ModelRendererExporter implements Exporter { DMesh mesh = new DMesh(); BlendMeshBuilder builder = new BlendMeshBuilder(mesh); //#if MC>=11500 - //$$ for (Cuboid box : cubeList(model)) { - //$$ // FIXME 1.15 - //$$ } - //#else - for (Box box : cubeList(model)) { - box.render(builder, scale); + for (Cuboid box : cubeList(model)) { + // FIXME 1.15 } + //#else + //$$ for (Box box : cubeList(model)) { + //$$ box.render(builder, scale); + //$$ } //#endif builder.maybeFinishDrawing(); return mesh; 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 0063b68f..3cf2fb1a 100644 --- a/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java +++ b/src/main/java/com/replaymod/render/blend/exporters/ParticlesExporter.java @@ -117,11 +117,11 @@ public class ParticlesExporter implements Exporter { double dy = acc.getPrevPosY() + (acc.getPosY() - acc.getPrevPosY()) * renderPartialTicks; double dz = acc.getPrevPosZ() + (acc.getPosZ() - acc.getPrevPosZ()) * renderPartialTicks; //#if MC>=11500 - //$$ // FIXME 1.15 is this still required? + // FIXME 1.15 is this still required? //#else - dx -= Particle.cameraX; - dy -= Particle.cameraY; - dz -= Particle.cameraZ; + //$$ dx -= Particle.cameraX; + //$$ dy -= Particle.cameraY; + //$$ dz -= Particle.cameraZ; //#endif Vector3f offset = new Vector3f((float) dx, (float) dy, (float) dz); Matrix4f.translate(offset, modelView, modelView); @@ -182,7 +182,7 @@ public class ParticlesExporter implements Exporter { //#endif 0 //#if MC<11500 - , 1, 1, 0, 0, 0 + //$$ , 1, 1, 0, 0, 0 //#endif ); //#else 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 d9212017..0368da9a 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/ContainerLocalRenderInformationAccessor.java +++ b/src/main/java/com/replaymod/render/blend/mixin/ContainerLocalRenderInformationAccessor.java @@ -1,27 +1,27 @@ //#if MC>=10800 && MC<11500 -package com.replaymod.render.blend.mixin; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - +//$$ package com.replaymod.render.blend.mixin; +//$$ +//$$ import org.spongepowered.asm.mixin.Mixin; +//$$ import org.spongepowered.asm.mixin.gen.Accessor; +//$$ //#if MC>=11500 //$$ import net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk; //#else -import net.minecraft.client.render.chunk.ChunkRenderer; +//$$ import net.minecraft.client.render.chunk.ChunkRenderer; //#endif - -@Mixin(targets = "net.minecraft.client.render.WorldRenderer$ChunkInfo") -public interface ContainerLocalRenderInformationAccessor { +//$$ +//$$ @Mixin(targets = "net.minecraft.client.render.WorldRenderer$ChunkInfo") +//$$ public interface ContainerLocalRenderInformationAccessor { //#if MC>=11500 //$$ @Accessor("chunk") //$$ BuiltChunk getRenderChunk(); //#else //#if MC>=11400 - @Accessor("renderer") + //$$ @Accessor("renderer") //#else //$$ @Accessor //#endif - ChunkRenderer getRenderChunk(); + //$$ ChunkRenderer getRenderChunk(); //#endif -} +//$$ } //#endif diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinChunkRenderWorker.java b/src/main/java/com/replaymod/render/blend/mixin/MixinChunkRenderWorker.java index 821f5190..0243772a 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinChunkRenderWorker.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinChunkRenderWorker.java @@ -1,35 +1,35 @@ // FIXME 1.15 //#if MC>=10800 && MC<11500 -package com.replaymod.render.blend.mixin; - -import com.replaymod.render.blend.BlendState; -import com.replaymod.render.blend.exporters.ChunkExporter; -import net.minecraft.client.render.chunk.ChunkRenderWorker; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - +//$$ package com.replaymod.render.blend.mixin; +//$$ +//$$ import com.replaymod.render.blend.BlendState; +//$$ import com.replaymod.render.blend.exporters.ChunkExporter; +//$$ import net.minecraft.client.render.chunk.ChunkRenderWorker; +//$$ import org.spongepowered.asm.mixin.Mixin; +//$$ import org.spongepowered.asm.mixin.injection.At; +//$$ import org.spongepowered.asm.mixin.injection.Inject; +//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +//$$ //#if MC>=11400 -import net.minecraft.client.render.chunk.ChunkRenderTask; +//$$ import net.minecraft.client.render.chunk.ChunkRenderTask; //#else //$$ import net.minecraft.client.renderer.chunk.ChunkCompileTaskGenerator; //#endif - -@Mixin(ChunkRenderWorker.class) -public abstract class MixinChunkRenderWorker { - - @Inject(method = "runTask", at = @At("RETURN")) +//$$ +//$$ @Mixin(ChunkRenderWorker.class) +//$$ public abstract class MixinChunkRenderWorker { +//$$ +//$$ @Inject(method = "runTask", at = @At("RETURN")) //#if MC>=11400 - public void afterChunkUpdate(ChunkRenderTask task, CallbackInfo ci) { - BlendState blendState = BlendState.getState(); - if (blendState != null) { - if (task.getStage() == ChunkRenderTask.Stage.DONE - && task.getMode() == ChunkRenderTask.Mode.REBUILD_CHUNK) { - blendState.get(ChunkExporter.class).addChunkUpdate(task.getChunkRenderer(), task.getRenderData()); - } - } - } + //$$ public void afterChunkUpdate(ChunkRenderTask task, CallbackInfo ci) { + //$$ BlendState blendState = BlendState.getState(); + //$$ if (blendState != null) { + //$$ if (task.getStage() == ChunkRenderTask.Stage.DONE + //$$ && task.getMode() == ChunkRenderTask.Mode.REBUILD_CHUNK) { + //$$ blendState.get(ChunkExporter.class).addChunkUpdate(task.getChunkRenderer(), task.getRenderData()); + //$$ } + //$$ } + //$$ } //#else //$$ public void afterChunkUpdate(ChunkCompileTaskGenerator task, CallbackInfo ci) { //$$ BlendState blendState = BlendState.getState(); @@ -41,5 +41,5 @@ public abstract class MixinChunkRenderWorker { //$$ } //$$ } //#endif -} +//$$ } //#endif diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinEffectRenderer.java b/src/main/java/com/replaymod/render/blend/mixin/MixinEffectRenderer.java index 6512a91f..566449ca 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinEffectRenderer.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinEffectRenderer.java @@ -1,64 +1,64 @@ //#if MC>=10800 && MC<11500 -package com.replaymod.render.blend.mixin; - -import com.replaymod.render.blend.BlendState; -import com.replaymod.render.blend.exporters.ParticlesExporter; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - +//$$ package com.replaymod.render.blend.mixin; +//$$ +//$$ import com.replaymod.render.blend.BlendState; +//$$ import com.replaymod.render.blend.exporters.ParticlesExporter; +//$$ import org.spongepowered.asm.mixin.Mixin; +//$$ import org.spongepowered.asm.mixin.injection.At; +//$$ import org.spongepowered.asm.mixin.injection.Inject; +//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +//$$ //#if MC>=11400 -import net.minecraft.client.render.Camera; +//$$ import net.minecraft.client.render.Camera; //#else //$$ import net.minecraft.entity.Entity; //#endif - +//$$ //#if MC>=10904 -import net.minecraft.client.particle.ParticleManager; +//$$ import net.minecraft.client.particle.ParticleManager; //#else //$$ import net.minecraft.client.particle.EffectRenderer; //#endif - +//$$ //#if MC>=10904 -@Mixin(ParticleManager.class) +//$$ @Mixin(ParticleManager.class) //#else //$$ @Mixin(EffectRenderer.class) //#endif -public abstract class MixinEffectRenderer { - - @Inject(method = "renderParticles", at = @At("HEAD")) - private void preRender( +//$$ public abstract class MixinEffectRenderer { +//$$ +//$$ @Inject(method = "renderParticles", at = @At("HEAD")) +//$$ private void preRender( //#if MC>=11400 - Camera view, + //$$ Camera view, //#else //$$ Entity view, //#endif - float renderPartialTicks, - CallbackInfo ci - ) { - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(ParticlesExporter.class).preParticlesRender(false); - } - } - - @Inject(method = "renderParticles", at = @At("RETURN")) - private void postRender( +//$$ float renderPartialTicks, +//$$ CallbackInfo ci +//$$ ) { +//$$ BlendState blendState = BlendState.getState(); +//$$ if (blendState != null) { +//$$ blendState.get(ParticlesExporter.class).preParticlesRender(false); +//$$ } +//$$ } +//$$ +//$$ @Inject(method = "renderParticles", at = @At("RETURN")) +//$$ private void postRender( //#if MC>=11400 - Camera view, + //$$ Camera view, //#else //$$ Entity view, //#endif - float renderPartialTicks, - CallbackInfo ci - ) { - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(ParticlesExporter.class).postParticlesRender(); - } - } - +//$$ float renderPartialTicks, +//$$ CallbackInfo ci +//$$ ) { +//$$ BlendState blendState = BlendState.getState(); +//$$ if (blendState != null) { +//$$ blendState.get(ParticlesExporter.class).postParticlesRender(); +//$$ } +//$$ } +//$$ //#if MC<11400 //$$ @Inject(method = "renderLitParticles", at = @At("HEAD")) //$$ public void preLitRender(Entity view, float renderPartialTicks, CallbackInfo ci) { @@ -76,5 +76,5 @@ public abstract class MixinEffectRenderer { //$$ } //$$ } //#endif -} +//$$ } //#endif 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 cc4f0daf..5ea692c3 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinModelRenderer.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinModelRenderer.java @@ -1,73 +1,73 @@ // FIXME 1.15 //#if MC>=10800 && MC<11500 -package com.replaymod.render.blend.mixin; - -import com.replaymod.render.blend.BlendState; -import com.replaymod.render.blend.exporters.ModelRendererExporter; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - +//$$ package com.replaymod.render.blend.mixin; +//$$ +//$$ import com.replaymod.render.blend.BlendState; +//$$ import com.replaymod.render.blend.exporters.ModelRendererExporter; +//$$ import org.spongepowered.asm.mixin.Mixin; +//$$ import org.spongepowered.asm.mixin.injection.At; +//$$ import org.spongepowered.asm.mixin.injection.Inject; +//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +//$$ //#if MC>=11400 -import net.minecraft.client.model.ModelPart; +//$$ import net.minecraft.client.model.ModelPart; //#else //$$ import net.minecraft.client.model.ModelRenderer; //#endif - -@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((ModelPart)(Object)this, scale); - } - } - - @Inject(method = "method_2852", at = @At("HEAD")) - public void preRenderWithRotation(float scale, CallbackInfo ci) { - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(ModelRendererExporter.class).preRenderModel((ModelPart)(Object)this, scale); - } - } - - @Inject(method = "render", at = @At("RETURN")) - public void postRender(float scale, CallbackInfo ci) { - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(ModelRendererExporter.class).postRenderModel(); - } - } - - @Inject(method = "method_2852", at = @At("RETURN")) - public void postRenderWithRotation(float scale, CallbackInfo ci) { - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(ModelRendererExporter.class).postRenderModel(); - } - } - - @Inject(method = "render", - at = @At(value = "INVOKE", - target = "Lcom/mojang/blaze3d/platform/GlStateManager;callList(I)V"), - expect = 3) - public void onRender(float scale, CallbackInfo ci) { - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(ModelRendererExporter.class).onRenderModel(); - } - } - - @Inject(method = "method_2852", - at = @At(value = "INVOKE", - target = "Lcom/mojang/blaze3d/platform/GlStateManager;callList(I)V")) - public void onRenderWithRotation(float scale, CallbackInfo ci) { - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(ModelRendererExporter.class).onRenderModel(); - } - } -} +//$$ +//$$ @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((ModelPart)(Object)this, scale); +//$$ } +//$$ } +//$$ +//$$ @Inject(method = "method_2852", at = @At("HEAD")) +//$$ public void preRenderWithRotation(float scale, CallbackInfo ci) { +//$$ BlendState blendState = BlendState.getState(); +//$$ if (blendState != null) { +//$$ blendState.get(ModelRendererExporter.class).preRenderModel((ModelPart)(Object)this, scale); +//$$ } +//$$ } +//$$ +//$$ @Inject(method = "render", at = @At("RETURN")) +//$$ public void postRender(float scale, CallbackInfo ci) { +//$$ BlendState blendState = BlendState.getState(); +//$$ if (blendState != null) { +//$$ blendState.get(ModelRendererExporter.class).postRenderModel(); +//$$ } +//$$ } +//$$ +//$$ @Inject(method = "method_2852", at = @At("RETURN")) +//$$ public void postRenderWithRotation(float scale, CallbackInfo ci) { +//$$ BlendState blendState = BlendState.getState(); +//$$ if (blendState != null) { +//$$ blendState.get(ModelRendererExporter.class).postRenderModel(); +//$$ } +//$$ } +//$$ +//$$ @Inject(method = "render", +//$$ at = @At(value = "INVOKE", +//$$ target = "Lcom/mojang/blaze3d/platform/GlStateManager;callList(I)V"), +//$$ expect = 3) +//$$ public void onRender(float scale, CallbackInfo ci) { +//$$ BlendState blendState = BlendState.getState(); +//$$ if (blendState != null) { +//$$ blendState.get(ModelRendererExporter.class).onRenderModel(); +//$$ } +//$$ } +//$$ +//$$ @Inject(method = "method_2852", +//$$ at = @At(value = "INVOKE", +//$$ target = "Lcom/mojang/blaze3d/platform/GlStateManager;callList(I)V")) +//$$ public void onRenderWithRotation(float scale, CallbackInfo ci) { +//$$ BlendState blendState = BlendState.getState(); +//$$ if (blendState != null) { +//$$ blendState.get(ModelRendererExporter.class).onRenderModel(); +//$$ } +//$$ } +//$$ } //#endif diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java index 8118118c..af495f1d 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderGlobal.java @@ -10,9 +10,9 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; //#if MC>=11500 -//$$ import net.minecraft.client.render.Frustum; +import net.minecraft.client.render.Frustum; //#else -import net.minecraft.client.render.VisibleRegion; +//$$ import net.minecraft.client.render.VisibleRegion; //#endif //#if MC>=11400 @@ -37,12 +37,12 @@ public abstract class MixinRenderGlobal { // FIXME wither skull ._. mojang pls //#if MC>=11500 - //$$ @Inject(method = "renderEntity", at = @At("HEAD")) + @Inject(method = "renderEntity", at = @At("HEAD")) //#else - @Inject(method = "renderEntities", - at = @At(value = "INVOKE", + //$$ @Inject(method = "renderEntities", + //$$ at = @At(value = "INVOKE", //#if MC>=10904 - target = "Lnet/minecraft/client/render/entity/EntityRenderDispatcher;render(Lnet/minecraft/entity/Entity;FZ)V")) + //$$ target = "Lnet/minecraft/client/render/entity/EntityRenderDispatcher;render(Lnet/minecraft/entity/Entity;FZ)V")) //#else //$$ target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)Z")) //#endif @@ -55,16 +55,16 @@ public abstract class MixinRenderGlobal { } //#if MC>=11500 - //$$ @Inject(method = "renderEntity", at = @At("RETURN")) + @Inject(method = "renderEntity", at = @At("RETURN")) //#else - @Inject(method = "renderEntities", - at = @At(value = "INVOKE", + //$$ @Inject(method = "renderEntities", + //$$ at = @At(value = "INVOKE", //#if MC>=10904 - target = "Lnet/minecraft/client/render/entity/EntityRenderDispatcher;render(Lnet/minecraft/entity/Entity;FZ)V", + //$$ target = "Lnet/minecraft/client/render/entity/EntityRenderDispatcher;render(Lnet/minecraft/entity/Entity;FZ)V", //#else //$$ target = "Lnet/minecraft/client/renderer/entity/RenderManager;renderEntitySimple(Lnet/minecraft/entity/Entity;F)Z", //#endif - shift = At.Shift.AFTER)) + //$$ shift = At.Shift.AFTER)) //#endif private void postEntityRender(CallbackInfo ci) { BlendState blendState = BlendState.getState(); @@ -74,38 +74,38 @@ public abstract class MixinRenderGlobal { } //#if MC>=11500 - //$$ // FIXME + // FIXME //#else - @Inject(method = "renderEntities", at = @At( - value = "INVOKE", + //$$ @Inject(method = "renderEntities", at = @At( + //$$ value = "INVOKE", //#if MC>=11400 - target = "Lnet/minecraft/client/render/block/entity/BlockEntityRenderDispatcher;render(Lnet/minecraft/block/entity/BlockEntity;FI)V" + //$$ target = "Lnet/minecraft/client/render/block/entity/BlockEntityRenderDispatcher;render(Lnet/minecraft/block/entity/BlockEntity;FI)V" //#else //$$ target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;renderTileEntity(Lnet/minecraft/tileentity/TileEntity;FI)V" //#endif - )) - private void preTileEntityRender(CallbackInfo ci) { - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(TileEntityExporter.class).preTileEntitiesRender(); - } - } - - @Inject(method = "renderEntities", at = @At( - value = "INVOKE", + //$$ )) + //$$ private void preTileEntityRender(CallbackInfo ci) { + //$$ BlendState blendState = BlendState.getState(); + //$$ if (blendState != null) { + //$$ blendState.get(TileEntityExporter.class).preTileEntitiesRender(); + //$$ } + //$$ } + //$$ + //$$ @Inject(method = "renderEntities", at = @At( + //$$ value = "INVOKE", //#if MC>=11400 - target = "Lnet/minecraft/client/render/block/entity/BlockEntityRenderDispatcher;render(Lnet/minecraft/block/entity/BlockEntity;FI)V", + //$$ target = "Lnet/minecraft/client/render/block/entity/BlockEntityRenderDispatcher;render(Lnet/minecraft/block/entity/BlockEntity;FI)V", //#else //$$ target = "Lnet/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher;renderTileEntity(Lnet/minecraft/tileentity/TileEntity;FI)V", //#endif - shift = At.Shift.AFTER - )) - private void postTileEntityRender(CallbackInfo ci) { - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(TileEntityExporter.class).postTileEntitiesRender(); - } - } + //$$ shift = At.Shift.AFTER + //$$ )) + //$$ private void postTileEntityRender(CallbackInfo ci) { + //$$ BlendState blendState = BlendState.getState(); + //$$ if (blendState != null) { + //$$ blendState.get(TileEntityExporter.class).postTileEntitiesRender(); + //$$ } + //$$ } //#endif } //#endif diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderItem.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderItem.java index cbf68f05..cf41e5e2 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderItem.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderItem.java @@ -10,8 +10,8 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; //#if MC>=11500 -//$$ import net.minecraft.client.render.VertexConsumer; -//$$ import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.util.math.MatrixStack; //#endif //#if MC>=11400 @@ -34,11 +34,11 @@ import net.minecraft.client.render.model.BakedModel; //#endif public abstract class MixinRenderItem { //#if MC>=11500 - //$$ @Inject(method = "renderBakedItemModel", at = @At("HEAD")) - //$$ private void onRenderModel(BakedModel model, ItemStack stack, int int_1, int int_2, MatrixStack matrixStack_1, VertexConsumer vertexConsumer_1, CallbackInfo ci) { + @Inject(method = "renderBakedItemModel", at = @At("HEAD")) + private void onRenderModel(BakedModel model, ItemStack stack, int int_1, int int_2, MatrixStack matrixStack_1, VertexConsumer vertexConsumer_1, CallbackInfo ci) { //#else //#if MC>=11400 - @Inject(method = "renderItemModel", at = @At("HEAD")) + //$$ @Inject(method = "renderItemModel", at = @At("HEAD")) //#else //#if MC>=11400 //$$ @Inject(method = "renderModel(Lnet/minecraft/client/renderer/model/IBakedModel;Lnet/minecraft/item/ItemStack;)V", @@ -53,7 +53,7 @@ public abstract class MixinRenderItem { //#endif //#endif //#endif - private void onRenderModel(BakedModel model, ItemStack stack, CallbackInfo ci) { + //$$ private void onRenderModel(BakedModel model, ItemStack stack, CallbackInfo ci) { //#endif BlendState blendState = BlendState.getState(); if (blendState != null) { 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 64f63ec5..acbd7f11 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderLivingBase.java @@ -21,20 +21,20 @@ import net.minecraft.client.render.entity.LivingEntityRenderer; //#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( + @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 = "render(Lnet/minecraft/entity/LivingEntity;DDDFF)V", 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>=11500 - //$$ target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scale(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/client/util/math/MatrixStack;F)V", + target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scale(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/client/util/math/MatrixStack;F)V", //#else //#if MC>=10904 - target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scaleAndTranslate(Lnet/minecraft/entity/LivingEntity;F)F", + //$$ target = "Lnet/minecraft/client/render/entity/LivingEntityRenderer;scaleAndTranslate(Lnet/minecraft/entity/LivingEntity;F)F", //#else //$$ target = "Lnet/minecraft/client/renderer/entity/RendererLivingEntity;preRenderCallback(Lnet/minecraft/entity/EntityLivingBase;F)V", //#endif diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java index a6572915..57764995 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinRenderManager.java @@ -10,8 +10,8 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; //#if MC>=11500 -//$$ import net.minecraft.client.render.VertexConsumerProvider; -//$$ import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.util.math.MatrixStack; //#endif //#if MC>=10904 @@ -25,10 +25,10 @@ public abstract class MixinRenderManager { @Inject( //#if MC>=11500 - //$$ method = "render", + method = "render", //#else //#if MC>=11400 && FABRIC>=1 - method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V", + //$$ method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V", //#else //#if MC>=11400 //$$ method = "renderEntity", @@ -39,17 +39,17 @@ public abstract class MixinRenderManager { //#endif at = @At(value = "INVOKE", //#if MC>=11500 - //$$ target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V")) + target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V")) //#else - target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;DDDFF)V")) + //$$ target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;DDDFF)V")) //#endif public void preRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, //#if MC>=11500 - //$$ MatrixStack matrixStack, - //$$ VertexConsumerProvider vertexConsumerProvider, - //$$ int int_1, + MatrixStack matrixStack, + VertexConsumerProvider vertexConsumerProvider, + int int_1, //#else - boolean box, + //$$ boolean box, //#endif //#if MC>=10904 CallbackInfo ci) { @@ -64,10 +64,10 @@ public abstract class MixinRenderManager { @Inject( //#if MC>=11500 - //$$ method = "render", + method = "render", //#else //#if MC>=11400 - method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V", + //$$ method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V", //#else //#if MC>=11400 //$$ method = "renderEntity", @@ -78,18 +78,18 @@ public abstract class MixinRenderManager { //#endif at = @At(value = "INVOKE", //#if MC>=11500 - //$$ target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", + target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", //#else - target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;DDDFF)V", + //$$ target = "Lnet/minecraft/client/render/entity/EntityRenderer;render(Lnet/minecraft/entity/Entity;DDDFF)V", //#endif shift = At.Shift.AFTER)) public void postRender(Entity entity, double x, double y, double z, float yaw, float renderPartialTicks, //#if MC>=11500 - //$$ MatrixStack matrixStack, - //$$ VertexConsumerProvider vertexConsumerProvider, - //$$ int int_1, + MatrixStack matrixStack, + VertexConsumerProvider vertexConsumerProvider, + int int_1, //#else - boolean box, + //$$ boolean box, //#endif //#if MC>=10904 CallbackInfo ci) { diff --git a/src/main/java/com/replaymod/render/blend/mixin/MixinTileEntityRendererDispatcher.java b/src/main/java/com/replaymod/render/blend/mixin/MixinTileEntityRendererDispatcher.java index 3bc2d4f4..1a01b2da 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/MixinTileEntityRendererDispatcher.java +++ b/src/main/java/com/replaymod/render/blend/mixin/MixinTileEntityRendererDispatcher.java @@ -1,29 +1,29 @@ // FIXME 1.15 //#if MC>=10800 && MC<11500 -package com.replaymod.render.blend.mixin; - -import com.replaymod.render.blend.BlendState; -import com.replaymod.render.blend.exporters.TileEntityExporter; -import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; -import net.minecraft.block.entity.BlockEntity; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(BlockEntityRenderDispatcher.class) -public abstract class MixinTileEntityRendererDispatcher { - +//$$ package com.replaymod.render.blend.mixin; +//$$ +//$$ import com.replaymod.render.blend.BlendState; +//$$ import com.replaymod.render.blend.exporters.TileEntityExporter; +//$$ import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; +//$$ import net.minecraft.block.entity.BlockEntity; +//$$ import org.spongepowered.asm.mixin.Mixin; +//$$ import org.spongepowered.asm.mixin.injection.At; +//$$ import org.spongepowered.asm.mixin.injection.Inject; +//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +//$$ +//$$ @Mixin(BlockEntityRenderDispatcher.class) +//$$ public abstract class MixinTileEntityRendererDispatcher { +//$$ //#if MC>=11400 //#if MC>=11400 - @Inject(method = "renderEntity(Lnet/minecraft/block/entity/BlockEntity;DDDFIZ)V", - at = @At("HEAD")) + //$$ @Inject(method = "renderEntity(Lnet/minecraft/block/entity/BlockEntity;DDDFIZ)V", + //$$ at = @At("HEAD")) //#else //$$ @Inject(method = "render(Lnet/minecraft/tileentity/TileEntity;DDDFIZ)V", //$$ at = @At("HEAD")) //#endif - public void preRender(BlockEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) { - float alpha = 1; + //$$ public void preRender(BlockEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) { + //$$ float alpha = 1; //#else //#if MC>=11200 //$$ @Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFIF)V", @@ -36,21 +36,21 @@ public abstract class MixinTileEntityRendererDispatcher { //$$ float alpha = 1; //#endif //#endif - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(TileEntityExporter.class).preRender(tileEntity, x, y, z, renderPartialTicks, destroyStage, alpha); - } - } - +//$$ BlendState blendState = BlendState.getState(); +//$$ if (blendState != null) { +//$$ blendState.get(TileEntityExporter.class).preRender(tileEntity, x, y, z, renderPartialTicks, destroyStage, alpha); +//$$ } +//$$ } +//$$ //#if MC>=11400 //#if MC>=11400 - @Inject(method = "renderEntity(Lnet/minecraft/block/entity/BlockEntity;DDDFIZ)V", - at = @At("RETURN")) + //$$ @Inject(method = "renderEntity(Lnet/minecraft/block/entity/BlockEntity;DDDFIZ)V", + //$$ at = @At("RETURN")) //#else //$$ @Inject(method = "render(Lnet/minecraft/tileentity/TileEntity;DDDFIZ)V", //$$ at = @At("RETURN")) //#endif - public void postRender(BlockEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) { + //$$ public void postRender(BlockEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, boolean hasNoBlock, CallbackInfo ci) { //#else //#if MC>=11200 //$$ @Inject(method = "renderTileEntityAt(Lnet/minecraft/tileentity/TileEntity;DDDFIF)V", @@ -62,10 +62,10 @@ public abstract class MixinTileEntityRendererDispatcher { //$$ public void postRender(TileEntity tileEntity, double x, double y, double z, float renderPartialTicks, int destroyStage, CallbackInfo ci) { //#endif //#endif - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(TileEntityExporter.class).postRender(); - } - } -} +//$$ BlendState blendState = BlendState.getState(); +//$$ if (blendState != null) { +//$$ blendState.get(TileEntityExporter.class).postRender(); +//$$ } +//$$ } +//$$ } //#endif diff --git a/src/main/java/com/replaymod/render/blend/mixin/WorldRendererAccessor.java b/src/main/java/com/replaymod/render/blend/mixin/WorldRendererAccessor.java index 8972362b..75c5f846 100644 --- a/src/main/java/com/replaymod/render/blend/mixin/WorldRendererAccessor.java +++ b/src/main/java/com/replaymod/render/blend/mixin/WorldRendererAccessor.java @@ -1,16 +1,16 @@ // FIXME 1.15 //#if MC>=10800 && MC<11500 -package com.replaymod.render.blend.mixin; - -import net.minecraft.client.render.WorldRenderer; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import java.util.List; - -@Mixin(WorldRenderer.class) -public interface WorldRendererAccessor { - @Accessor("chunkInfos") - List getRenderInfos(); -} +//$$ package com.replaymod.render.blend.mixin; +//$$ +//$$ import net.minecraft.client.render.WorldRenderer; +//$$ import org.spongepowered.asm.mixin.Mixin; +//$$ import org.spongepowered.asm.mixin.gen.Accessor; +//$$ +//$$ import java.util.List; +//$$ +//$$ @Mixin(WorldRenderer.class) +//$$ public interface WorldRendererAccessor { +//$$ @Accessor("chunkInfos") +//$$ List getRenderInfos(); +//$$ } //#endif diff --git a/src/main/java/com/replaymod/render/capturer/ODSFrameCapturer.java b/src/main/java/com/replaymod/render/capturer/ODSFrameCapturer.java index 363f5d81..e0a3f1d4 100644 --- a/src/main/java/com/replaymod/render/capturer/ODSFrameCapturer.java +++ b/src/main/java/com/replaymod/render/capturer/ODSFrameCapturer.java @@ -81,21 +81,21 @@ public class ODSFrameCapturer implements FrameCapturer { shaderProgram.use(); setTexture("texture", 0); //#if MC>=11500 - //$$ setTexture("overlay", 1); - //$$ setTexture("lightMap", 2); + setTexture("overlay", 1); + setTexture("lightMap", 2); //#else - setTexture("lightMap", 1); + //$$ setTexture("lightMap", 1); //#endif renderStateEvents = new EventRegistrations(); Program.Uniform[] texture2DUniforms = new Program.Uniform[]{ shaderProgram.getUniformVariable("textureEnabled"), //#if MC>=11500 - //$$ shaderProgram.getUniformVariable("overlayEnabled"), - //$$ shaderProgram.getUniformVariable("lightMapEnabled"), - //#else - shaderProgram.getUniformVariable("lightMapEnabled"), shaderProgram.getUniformVariable("overlayEnabled"), + shaderProgram.getUniformVariable("lightMapEnabled"), + //#else + //$$ shaderProgram.getUniformVariable("lightMapEnabled"), + //$$ shaderProgram.getUniformVariable("overlayEnabled"), //#endif }; renderStateEvents.on(Texture2DStateCallback.EVENT, (id, enabled) -> { diff --git a/src/main/java/com/replaymod/render/capturer/OpenGlFrameCapturer.java b/src/main/java/com/replaymod/render/capturer/OpenGlFrameCapturer.java index 1759fdae..496b65d8 100644 --- a/src/main/java/com/replaymod/render/capturer/OpenGlFrameCapturer.java +++ b/src/main/java/com/replaymod/render/capturer/OpenGlFrameCapturer.java @@ -130,7 +130,7 @@ public abstract class OpenGlFrameCapturer=11500 - //$$ mc.gameRenderer.onResized(width, height); + mc.gameRenderer.onResized(width, height); //#endif //#else //$$ if (width != mc.displayWidth || height != mc.displayHeight) { diff --git a/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java b/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java index ae36c33f..4980f6f7 100644 --- a/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java +++ b/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java @@ -446,9 +446,9 @@ public class GuiRenderSettings extends GuiScreen implements Closeable { } //#if MC<10800 || MC>=11500 - //$$ if (method == RenderSettings.RenderMethod.BLEND) { - //$$ return "replaymod.gui.rendersettings.no_blend_on_1_7_10"; - //$$ } + if (method == RenderSettings.RenderMethod.BLEND) { + return "replaymod.gui.rendersettings.no_blend_on_1_7_10"; + } //#endif return null; diff --git a/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java b/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java index 25e6c3b4..f15097cf 100644 --- a/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java +++ b/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java @@ -7,16 +7,16 @@ import java.lang.reflect.Field; //#if MC>=11500 //#else -import com.replaymod.render.mixin.ChunkRenderDispatcherAccessor; -import com.replaymod.render.mixin.WorldRendererAccessor; -import com.replaymod.render.utils.JailingQueue; -import net.minecraft.client.render.chunk.BlockBufferBuilderStorage; -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; -import java.util.Iterator; -import static com.replaymod.core.versions.MCVer.*; +//$$ import com.replaymod.render.mixin.ChunkRenderDispatcherAccessor; +//$$ import com.replaymod.render.mixin.WorldRendererAccessor; +//$$ import com.replaymod.render.utils.JailingQueue; +//$$ import net.minecraft.client.render.chunk.BlockBufferBuilderStorage; +//$$ 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; +//$$ import java.util.Iterator; +//$$ import static com.replaymod.core.versions.MCVer.*; //#endif //#if MC>=10904 @@ -35,14 +35,14 @@ public class ChunkLoadingRenderGlobal { //#if MC>=11500 //#else - private ChunkBuilder renderDispatcher; + //$$ private ChunkBuilder renderDispatcher; //#if MC>=11400 - private JailingQueue workerJailingQueue; + //$$ private JailingQueue workerJailingQueue; //#else //$$ private JailingQueue workerJailingQueue; //#endif - private ChunkRenderWorkerAccessor renderWorker; - private int frame; + //$$ private ChunkRenderWorkerAccessor renderWorker; + //$$ private int frame; //#endif public ChunkLoadingRenderGlobal( @@ -55,10 +55,10 @@ public class ChunkLoadingRenderGlobal { this.hooked = renderGlobal; //#if MC>=11500 - //$$ install(); - //#else - setup(((WorldRendererAccessor) renderGlobal).getRenderDispatcher()); install(); + //#else + //$$ setup(((WorldRendererAccessor) renderGlobal).getRenderDispatcher()); + //$$ install(); //#endif } @@ -77,94 +77,94 @@ public class ChunkLoadingRenderGlobal { //#if MC>=11500 //#else - public void updateRenderDispatcher(ChunkBuilder renderDispatcher) { - if (this.renderDispatcher != null) { - workerJailingQueue.freeAll(); - this.renderDispatcher = null; - } - if (renderDispatcher != null) { - setup(renderDispatcher); - } - } - - private void setup(ChunkBuilder renderDispatcher) { - this.renderDispatcher = renderDispatcher; - this.renderWorker = (ChunkRenderWorkerAccessor) new ChunkRenderWorker(renderDispatcher, new BlockBufferBuilderStorage()); - ChunkRenderDispatcherAccessor renderDispatcherAcc = (ChunkRenderDispatcherAccessor) renderDispatcher; - - int workerThreads = renderDispatcherAcc.getListThreadedWorkers().size(); + //$$ public void updateRenderDispatcher(ChunkBuilder renderDispatcher) { + //$$ if (this.renderDispatcher != null) { + //$$ workerJailingQueue.freeAll(); + //$$ this.renderDispatcher = null; + //$$ } + //$$ if (renderDispatcher != null) { + //$$ setup(renderDispatcher); + //$$ } + //$$ } + //$$ + //$$ private void setup(ChunkBuilder renderDispatcher) { + //$$ this.renderDispatcher = renderDispatcher; + //$$ this.renderWorker = (ChunkRenderWorkerAccessor) new ChunkRenderWorker(renderDispatcher, new BlockBufferBuilderStorage()); + //$$ ChunkRenderDispatcherAccessor renderDispatcherAcc = (ChunkRenderDispatcherAccessor) renderDispatcher; + //$$ + //$$ int workerThreads = renderDispatcherAcc.getListThreadedWorkers().size(); //#if MC>=10904 - PriorityBlockingQueue queueChunkUpdates = renderDispatcherAcc.getQueueChunkUpdates(); + //$$ PriorityBlockingQueue queueChunkUpdates = renderDispatcherAcc.getQueueChunkUpdates(); //#else //$$ BlockingQueue queueChunkUpdates = renderDispatcherAcc.getQueueChunkUpdates(); //#endif - workerJailingQueue = new JailingQueue<>(queueChunkUpdates); - renderDispatcherAcc.setQueueChunkUpdates(workerJailingQueue); + //$$ workerJailingQueue = new JailingQueue<>(queueChunkUpdates); + //$$ renderDispatcherAcc.setQueueChunkUpdates(workerJailingQueue); //#if MC>=10904 - ChunkRenderTask element = new ChunkRenderTask( - null, - null, - 0 + //$$ ChunkRenderTask element = new ChunkRenderTask( + //$$ null, + //$$ null, + //$$ 0 //#if MC>=11400 - , null + //$$ , null //#endif - ); + //$$ ); //#else //$$ ChunkCompileTaskGenerator element = new ChunkCompileTaskGenerator(null, null); //#endif - element.cancel(); - for (int i = 0; i < workerThreads; i++) { - queueChunkUpdates.add(element); - } - - // Temporary workaround for dead lock, will be replaced by a new (ShaderMod compatible) mechanism later - //noinspection StatementWithEmptyBody - while (renderDispatcher.runTasksSync(0)) {} - - workerJailingQueue.jail(workerThreads); - renderDispatcherAcc.setQueueChunkUpdates(queueChunkUpdates); - } - - public void updateChunks() { - while (renderDispatcher.runTasksSync(0)) { - ((WorldRendererAccessor) hooked).setDisplayListEntitiesDirty(true); - } - + //$$ element.cancel(); + //$$ for (int i = 0; i < workerThreads; i++) { + //$$ queueChunkUpdates.add(element); + //$$ } + //$$ + //$$ // Temporary workaround for dead lock, will be replaced by a new (ShaderMod compatible) mechanism later + //$$ //noinspection StatementWithEmptyBody + //$$ while (renderDispatcher.runTasksSync(0)) {} + //$$ + //$$ workerJailingQueue.jail(workerThreads); + //$$ renderDispatcherAcc.setQueueChunkUpdates(queueChunkUpdates); + //$$ } + //$$ + //$$ public void updateChunks() { + //$$ while (renderDispatcher.runTasksSync(0)) { + //$$ ((WorldRendererAccessor) hooked).setDisplayListEntitiesDirty(true); + //$$ } + //$$ //#if MC>=10904 - PriorityBlockingQueue queueChunkUpdates; + //$$ PriorityBlockingQueue queueChunkUpdates; //#else //$$ BlockingQueue queueChunkUpdates; //#endif - queueChunkUpdates = ((ChunkRenderDispatcherAccessor) renderDispatcher).getQueueChunkUpdates(); - while (!queueChunkUpdates.isEmpty()) { - try { - renderWorker.doRunTask(queueChunkUpdates.poll()); - } catch (InterruptedException ignored) { } - } - - Iterator iterator = ((WorldRendererAccessor) hooked).getChunksToUpdate().iterator(); - while (iterator.hasNext()) { - ChunkRenderer renderchunk = iterator.next(); - - renderDispatcher.rebuildSync(renderchunk); - + //$$ queueChunkUpdates = ((ChunkRenderDispatcherAccessor) renderDispatcher).getQueueChunkUpdates(); + //$$ while (!queueChunkUpdates.isEmpty()) { + //$$ try { + //$$ renderWorker.doRunTask(queueChunkUpdates.poll()); + //$$ } catch (InterruptedException ignored) { } + //$$ } + //$$ + //$$ Iterator iterator = ((WorldRendererAccessor) hooked).getChunksToUpdate().iterator(); + //$$ while (iterator.hasNext()) { + //$$ ChunkRenderer renderchunk = iterator.next(); + //$$ + //$$ renderDispatcher.rebuildSync(renderchunk); + //$$ //#if MC>=10904 - renderchunk.unscheduleRebuild(); + //$$ renderchunk.unscheduleRebuild(); //#else //$$ renderchunk.setNeedsUpdate(false); //#endif - iterator.remove(); - } - } - - public int nextFrameId() { - return frame++; - } + //$$ iterator.remove(); + //$$ } + //$$ } + //$$ + //$$ public int nextFrameId() { + //$$ return frame++; + //$$ } //#endif public void uninstall() { //#if MC<11500 - workerJailingQueue.freeAll(); + //$$ workerJailingQueue.freeAll(); //#endif try { @@ -180,9 +180,9 @@ public class ChunkLoadingRenderGlobal { } //#if MC>=11500 - //$$ public interface IBlockOnChunkRebuilds { - //$$ boolean uploadEverythingBlocking(); - //$$ } + public interface IBlockOnChunkRebuilds { + boolean uploadEverythingBlocking(); + } //#endif } //#endif diff --git a/src/main/java/com/replaymod/render/hooks/EntityRendererHandler.java b/src/main/java/com/replaymod/render/hooks/EntityRendererHandler.java index 4fca9273..9d335a74 100644 --- a/src/main/java/com/replaymod/render/hooks/EntityRendererHandler.java +++ b/src/main/java/com/replaymod/render/hooks/EntityRendererHandler.java @@ -9,7 +9,7 @@ import lombok.Getter; import net.minecraft.client.MinecraftClient; //#if MC>=11500 -//$$ import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.MatrixStack; //#endif //#if MC>=11400 @@ -64,9 +64,9 @@ public class EntityRendererHandler implements WorldRenderer { if (mc.world != null && mc.player != null) { //#if MC>=11500 - //$$ mc.gameRenderer.renderWorld(partialTicks, finishTimeNano, new MatrixStack()); + mc.gameRenderer.renderWorld(partialTicks, finishTimeNano, new MatrixStack()); //#else - mc.gameRenderer.renderWorld(partialTicks, finishTimeNano); + //$$ mc.gameRenderer.renderWorld(partialTicks, finishTimeNano); //#endif } diff --git a/src/main/java/com/replaymod/render/mixin/ChunkRenderDispatcherAccessor.java b/src/main/java/com/replaymod/render/mixin/ChunkRenderDispatcherAccessor.java index 8f0dee19..2e1ed260 100644 --- a/src/main/java/com/replaymod/render/mixin/ChunkRenderDispatcherAccessor.java +++ b/src/main/java/com/replaymod/render/mixin/ChunkRenderDispatcherAccessor.java @@ -1,34 +1,34 @@ //#if MC>=10800 && MC<11500 -package com.replaymod.render.mixin; - -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; -import org.spongepowered.asm.mixin.gen.Accessor; - -import java.util.List; +//$$ package com.replaymod.render.mixin; +//$$ +//$$ 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; +//$$ import org.spongepowered.asm.mixin.gen.Accessor; +//$$ +//$$ import java.util.List; //#if MC>=10904 -import java.util.concurrent.PriorityBlockingQueue; +//$$ import java.util.concurrent.PriorityBlockingQueue; //#else //$$ import java.util.concurrent.BlockingQueue; //#endif - -@Mixin(ChunkBuilder.class) -public interface ChunkRenderDispatcherAccessor { - @Accessor("workers") - List getListThreadedWorkers(); - +//$$ +//$$ @Mixin(ChunkBuilder.class) +//$$ public interface ChunkRenderDispatcherAccessor { +//$$ @Accessor("workers") +//$$ List getListThreadedWorkers(); +//$$ //#if MC>=10904 - @Accessor("pendingChunks") - PriorityBlockingQueue getQueueChunkUpdates(); - @Accessor("pendingChunks") - void setQueueChunkUpdates(PriorityBlockingQueue value); + //$$ @Accessor("pendingChunks") + //$$ PriorityBlockingQueue getQueueChunkUpdates(); + //$$ @Accessor("pendingChunks") + //$$ void setQueueChunkUpdates(PriorityBlockingQueue value); //#else //$$ @Accessor //$$ BlockingQueue getQueueChunkUpdates(); //$$ @Accessor //$$ void setQueueChunkUpdates(BlockingQueue value); //#endif -} +//$$ } //#endif diff --git a/src/main/java/com/replaymod/render/mixin/MixinChunkRenderWorker.java b/src/main/java/com/replaymod/render/mixin/MixinChunkRenderWorker.java index 796a3c2c..aea88e0c 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinChunkRenderWorker.java +++ b/src/main/java/com/replaymod/render/mixin/MixinChunkRenderWorker.java @@ -1,19 +1,19 @@ package com.replaymod.render.mixin; //#if MC>=10800 && MC<11500 - -import com.replaymod.core.versions.MCVer; -import net.minecraft.client.render.chunk.ChunkRenderTask; -import net.minecraft.client.render.chunk.ChunkRenderWorker; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -@Mixin(ChunkRenderWorker.class) -public abstract class MixinChunkRenderWorker implements MCVer.ChunkRenderWorkerAccessor { - @Shadow abstract void runTask(ChunkRenderTask task) throws InterruptedException; - - public void doRunTask(ChunkRenderTask task) throws InterruptedException { - runTask(task); - } -} +//$$ +//$$ import com.replaymod.core.versions.MCVer; +//$$ import net.minecraft.client.render.chunk.ChunkRenderTask; +//$$ import net.minecraft.client.render.chunk.ChunkRenderWorker; +//$$ import org.spongepowered.asm.mixin.Mixin; +//$$ import org.spongepowered.asm.mixin.Shadow; +//$$ +//$$ @Mixin(ChunkRenderWorker.class) +//$$ public abstract class MixinChunkRenderWorker implements MCVer.ChunkRenderWorkerAccessor { +//$$ @Shadow abstract void runTask(ChunkRenderTask task) throws InterruptedException; +//$$ +//$$ public void doRunTask(ChunkRenderTask task) throws InterruptedException { +//$$ runTask(task); +//$$ } +//$$ } //#endif diff --git a/src/main/java/com/replaymod/render/mixin/MixinEntityRenderer.java b/src/main/java/com/replaymod/render/mixin/MixinEntityRenderer.java index b5ee92c4..503bde6a 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinEntityRenderer.java +++ b/src/main/java/com/replaymod/render/mixin/MixinEntityRenderer.java @@ -14,8 +14,8 @@ import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; //#if MC>=11500 -//$$ import net.minecraft.client.util.math.MatrixStack; -//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import net.minecraft.client.util.math.MatrixStack; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; //#endif //#if MC>=11400 @@ -98,7 +98,7 @@ public abstract class MixinEntityRenderer implements EntityRendererHandler.IEnti @Inject(method = "renderHand", at = @At("HEAD"), cancellable = true) private void replayModRender_renderSpectatorHand( //#if MC>=11500 - //$$ MatrixStack matrixStack, + MatrixStack matrixStack, //#endif //#if MC>=11400 Camera camera, @@ -140,76 +140,76 @@ public abstract class MixinEntityRenderer implements EntityRendererHandler.IEnti */ //#if MC>=11500 - //$$ @Inject(method = "method_22973", at = @At("RETURN"), cancellable = true) - //$$ private void replayModRender_setupStereoscopicProjection(CallbackInfoReturnable ci) { - //$$ if (replayModRender_getHandler() != null) { - //$$ Matrix4f offset; - //$$ if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.LEFT_EYE) { - //$$ offset = Matrix4f.translate(0.07f, 0, 0); - //$$ } else if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.RIGHT_EYE) { - //$$ offset = Matrix4f.translate(-0.07f, 0, 0); - //$$ } else { - //$$ return; - //$$ } - //$$ offset.multiply(ci.getReturnValue()); - //$$ ci.setReturnValue(offset); - //$$ } - //$$ } + @Inject(method = "method_22973", at = @At("RETURN"), cancellable = true) + private void replayModRender_setupStereoscopicProjection(CallbackInfoReturnable ci) { + if (replayModRender_getHandler() != null) { + Matrix4f offset; + if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.LEFT_EYE) { + offset = Matrix4f.translate(0.07f, 0, 0); + } else if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.RIGHT_EYE) { + offset = Matrix4f.translate(-0.07f, 0, 0); + } else { + return; + } + offset.multiply(ci.getReturnValue()); + ci.setReturnValue(offset); + } + } //#else //#if MC>=10800 - @Inject(method = "applyCameraTransformations", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/GlStateManager;loadIdentity()V", shift = At.Shift.AFTER, ordinal = 0)) + //$$ @Inject(method = "applyCameraTransformations", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/GlStateManager;loadIdentity()V", shift = At.Shift.AFTER, ordinal = 0)) //#else //$$ @Inject(method = "setupCameraTransform", at = @At(value = "INVOKE", target = "Lorg/lwjgl/opengl/GL11;glLoadIdentity()V", shift = At.Shift.AFTER, ordinal = 0, remap = false)) //#endif - private void replayModRender_setupStereoscopicProjection( - float partialTicks, + //$$ private void replayModRender_setupStereoscopicProjection( + //$$ float partialTicks, //#if MC<11400 //$$ int renderPass, //#endif - CallbackInfo ci - ) { - if (replayModRender_getHandler() != null) { - if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.LEFT_EYE) { - GL11.glTranslatef(0.07f, 0, 0); - } else if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.RIGHT_EYE) { - GL11.glTranslatef(-0.07f, 0, 0); - } - } - } - //#endif - - //#if MC>=11500 - //$$ @Inject(method = "renderWorld", at = @At("HEAD")) - //$$ private void replayModRender_setupStereoscopicProjection(float partialTicks, long frameStartNano, MatrixStack matrixStack, CallbackInfo ci) { + //$$ CallbackInfo ci + //$$ ) { //$$ if (replayModRender_getHandler() != null) { //$$ if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.LEFT_EYE) { - //$$ matrixStack.translate(0.1, 0, 0); + //$$ GL11.glTranslatef(0.07f, 0, 0); //$$ } else if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.RIGHT_EYE) { - //$$ matrixStack.translate(-0.1, 0, 0); + //$$ GL11.glTranslatef(-0.07f, 0, 0); //$$ } //$$ } //$$ } - //#else - //#if MC>=10800 - @Inject(method = "applyCameraTransformations", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/GlStateManager;loadIdentity()V", shift = At.Shift.AFTER, ordinal = 1)) - //#else - //$$ @Inject(method = "setupCameraTransform", at = @At(value = "INVOKE", target = "Lorg/lwjgl/opengl/GL11;glLoadIdentity()V", shift = At.Shift.AFTER, ordinal = 1, remap = false)) //#endif - private void replayModRender_setupStereoscopicModelView( - float partialTicks, - //#if MC<11400 - //$$ int renderPass, - //#endif - CallbackInfo ci - ) { + + //#if MC>=11500 + @Inject(method = "renderWorld", at = @At("HEAD")) + private void replayModRender_setupStereoscopicProjection(float partialTicks, long frameStartNano, MatrixStack matrixStack, CallbackInfo ci) { if (replayModRender_getHandler() != null) { if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.LEFT_EYE) { - GL11.glTranslatef(0.1f, 0, 0); + matrixStack.translate(0.1, 0, 0); } else if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.RIGHT_EYE) { - GL11.glTranslatef(-0.1f, 0, 0); + matrixStack.translate(-0.1, 0, 0); } } } + //#else + //#if MC>=10800 + //$$ @Inject(method = "applyCameraTransformations", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/GlStateManager;loadIdentity()V", shift = At.Shift.AFTER, ordinal = 1)) + //#else + //$$ @Inject(method = "setupCameraTransform", at = @At(value = "INVOKE", target = "Lorg/lwjgl/opengl/GL11;glLoadIdentity()V", shift = At.Shift.AFTER, ordinal = 1, remap = false)) + //#endif + //$$ private void replayModRender_setupStereoscopicModelView( + //$$ float partialTicks, + //#if MC<11400 + //$$ int renderPass, + //#endif + //$$ CallbackInfo ci + //$$ ) { + //$$ if (replayModRender_getHandler() != null) { + //$$ if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.LEFT_EYE) { + //$$ GL11.glTranslatef(0.1f, 0, 0); + //$$ } else if (replayModRender_getHandler().data == StereoscopicOpenGlFrameCapturer.Data.RIGHT_EYE) { + //$$ GL11.glTranslatef(-0.1f, 0, 0); + //$$ } + //$$ } + //$$ } //#endif /* @@ -217,25 +217,25 @@ public abstract class MixinEntityRenderer implements EntityRendererHandler.IEnti */ //#if MC>=11400 - @Redirect(method = "applyCameraTransformations", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/Matrix4f;method_4929(DFFF)Lnet/minecraft/client/util/math/Matrix4f;")) + @Redirect(method = "method_22973", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/Matrix4f;viewboxMatrix(DFFF)Lnet/minecraft/client/util/math/Matrix4f;")) private Matrix4f replayModRender_perspective$0(double fovY, float aspect, float zNear, float zFar) { return replayModRender_perspective((float) fovY, aspect, zNear, zFar); } //#if MC<11500 //#if MC>=11400 - @Redirect(method = "renderCenter", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/Matrix4f;method_4929(DFFF)Lnet/minecraft/client/util/math/Matrix4f;")) + //$$ @Redirect(method = "renderCenter", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/Matrix4f;method_4929(DFFF)Lnet/minecraft/client/util/math/Matrix4f;")) //#else //$$ @Redirect(method = "updateCameraAndRender(FJ)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/Matrix4f;perspective(DFFF)Lnet/minecraft/client/renderer/Matrix4f;")) //#endif - private Matrix4f replayModRender_perspective$1(double fovY, float aspect, float zNear, float zFar) { - return replayModRender_perspective((float) fovY, aspect, zNear, zFar); - } - - @Redirect(method = "renderAboveClouds", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/Matrix4f;method_4929(DFFF)Lnet/minecraft/client/util/math/Matrix4f;")) - private Matrix4f replayModRender_perspective$2(double fovY, float aspect, float zNear, float zFar) { - return replayModRender_perspective((float) fovY, aspect, zNear, zFar); - } + //$$ private Matrix4f replayModRender_perspective$1(double fovY, float aspect, float zNear, float zFar) { + //$$ return replayModRender_perspective((float) fovY, aspect, zNear, zFar); + //$$ } + //$$ + //$$ @Redirect(method = "renderAboveClouds", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/Matrix4f;method_4929(DFFF)Lnet/minecraft/client/util/math/Matrix4f;")) + //$$ private Matrix4f replayModRender_perspective$2(double fovY, float aspect, float zNear, float zFar) { + //$$ return replayModRender_perspective((float) fovY, aspect, zNear, zFar); + //$$ } //#endif private Matrix4f replayModRender_perspective(float fovY, float aspect, float zNear, float zFar) { @@ -243,7 +243,7 @@ public abstract class MixinEntityRenderer implements EntityRendererHandler.IEnti fovY = 90; aspect = 1; } - return Matrix4f.method_4929(fovY, aspect, zNear, zFar); + return Matrix4f.viewboxMatrix(fovY, aspect, zNear, zFar); } //#else //$$ @Redirect(method = "setupCameraTransform", at = @At(value = "INVOKE", target = "Lorg/lwjgl/util/glu/Project;gluPerspective(FFFF)V", remap = false)) diff --git a/src/main/java/com/replaymod/render/mixin/MixinFogRenderer.java b/src/main/java/com/replaymod/render/mixin/MixinFogRenderer.java index 37173147..8249e6c8 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinFogRenderer.java +++ b/src/main/java/com/replaymod/render/mixin/MixinFogRenderer.java @@ -18,7 +18,7 @@ public abstract class MixinFogRenderer { @Inject(method = "applyFog", at = @At("HEAD"), cancellable = true) private //#if MC>=11500 - //$$ static + static //#endif void replayModRender_onSetupFog(CallbackInfo ci) { EntityRendererHandler handler = diff --git a/src/main/java/com/replaymod/render/mixin/MixinFrustum.java b/src/main/java/com/replaymod/render/mixin/MixinFrustum.java index 8d3793b6..c23ac874 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinFrustum.java +++ b/src/main/java/com/replaymod/render/mixin/MixinFrustum.java @@ -20,9 +20,9 @@ import net.minecraft.client.render.Frustum; //#endif public abstract class MixinFrustum { //#if MC>=11500 - //$$ @Inject(method = "isAnyCornerVisible", at = @At("HEAD"), cancellable = true) + @Inject(method = "isAnyCornerVisible", at = @At("HEAD"), cancellable = true) //#else - @Inject(method = "intersects", at = @At("HEAD"), cancellable = true) + //$$ @Inject(method = "intersects", at = @At("HEAD"), cancellable = true) //#endif public void intersects(CallbackInfoReturnable ci) { EntityRendererHandler handler = ((EntityRendererHandler.IEntityRenderer) MCVer.getMinecraft().gameRenderer).replayModRender_getHandler(); diff --git a/src/main/java/com/replaymod/render/mixin/MixinParticleManager.java b/src/main/java/com/replaymod/render/mixin/MixinParticleManager.java index 6b0fbac9..bcc41c16 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinParticleManager.java +++ b/src/main/java/com/replaymod/render/mixin/MixinParticleManager.java @@ -13,11 +13,11 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; //#if MC>=11500 -//$$ import net.minecraft.client.render.VertexConsumer; -//$$ import net.minecraft.util.math.Quaternion; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.util.math.Quaternion; //#else -import com.replaymod.render.blend.mixin.ParticleAccessor; -import net.minecraft.client.render.BufferBuilder; +//$$ import com.replaymod.render.blend.mixin.ParticleAccessor; +//$$ import net.minecraft.client.render.BufferBuilder; //#endif //#if MC>=11400 @@ -29,40 +29,40 @@ import net.minecraft.client.render.Camera; @Mixin(ParticleManager.class) public abstract class MixinParticleManager { //#if MC>=11500 - //$$ @Redirect(method = "renderParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/Particle;buildGeometry(Lnet/minecraft/client/render/VertexConsumer;Lnet/minecraft/client/render/Camera;F)V")) - //$$ private void buildOrientedGeometry(Particle particle, VertexConsumer vertexConsumer, Camera camera, float partialTicks) { - //$$ EntityRendererHandler handler = ((EntityRendererHandler.IEntityRenderer) MCVer.getMinecraft().gameRenderer).replayModRender_getHandler(); - //$$ if (handler == null || !handler.omnidirectional) { - //$$ buildGeometry(particle, vertexConsumer, camera, partialTicks); - //$$ } else { - //$$ Quaternion rotation = camera.getRotation(); - //$$ Quaternion org = rotation.copy(); - //$$ try { - //$$ Vec3d from = new Vec3d(0, 0, 1); - //$$ Vec3d to = MCVer.getPosition(particle, partialTicks).subtract(camera.getPos()).normalize(); - //$$ Vec3d axis = from.crossProduct(to); - //$$ rotation.set((float) axis.x, (float) axis.y, (float) axis.z, (float) (1 + from.dotProduct(to))); - //$$ rotation.normalize(); - //$$ - //$$ buildGeometry(particle, vertexConsumer, camera, partialTicks); - //$$ } finally { - //$$ rotation.set(org.getA(), org.getB(), org.getC(), org.getD()); - //$$ } - //$$ } - //$$ } - //$$ - //$$ private void buildGeometry(Particle particle, VertexConsumer vertexConsumer, Camera camera, float partialTicks) { - //$$ BlendState blendState = BlendState.getState(); - //$$ if (blendState != null) { - //$$ blendState.get(ParticlesExporter.class).onRender(particle, partialTicks); - //$$ } - //$$ particle.buildGeometry(vertexConsumer, camera, partialTicks); - //$$ } + @Redirect(method = "renderParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/Particle;buildGeometry(Lnet/minecraft/client/render/VertexConsumer;Lnet/minecraft/client/render/Camera;F)V")) + private void buildOrientedGeometry(Particle particle, VertexConsumer vertexConsumer, Camera camera, float partialTicks) { + EntityRendererHandler handler = ((EntityRendererHandler.IEntityRenderer) MCVer.getMinecraft().gameRenderer).replayModRender_getHandler(); + if (handler == null || !handler.omnidirectional) { + buildGeometry(particle, vertexConsumer, camera, partialTicks); + } else { + Quaternion rotation = camera.getRotation(); + Quaternion org = rotation.copy(); + try { + Vec3d from = new Vec3d(0, 0, 1); + Vec3d to = MCVer.getPosition(particle, partialTicks).subtract(camera.getPos()).normalize(); + Vec3d axis = from.crossProduct(to); + rotation.set((float) axis.x, (float) axis.y, (float) axis.z, (float) (1 + from.dotProduct(to))); + rotation.normalize(); + + buildGeometry(particle, vertexConsumer, camera, partialTicks); + } finally { + rotation.set(org.getA(), org.getB(), org.getC(), org.getD()); + } + } + } + + private void buildGeometry(Particle particle, VertexConsumer vertexConsumer, Camera camera, float partialTicks) { + BlendState blendState = BlendState.getState(); + if (blendState != null) { + blendState.get(ParticlesExporter.class).onRender(particle, partialTicks); + } + particle.buildGeometry(vertexConsumer, camera, partialTicks); + } //#else //#if MC>=11200 //#if MC>=11400 - @Redirect(method = "renderParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/Particle;buildGeometry(Lnet/minecraft/client/render/BufferBuilder;Lnet/minecraft/client/render/Camera;FFFFFF)V")) - private void renderNormalParticle(Particle particle, BufferBuilder vertexBuffer, Camera view, float partialTicks, + //$$ @Redirect(method = "renderParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/Particle;buildGeometry(Lnet/minecraft/client/render/BufferBuilder;Lnet/minecraft/client/render/Camera;FFFFFF)V")) + //$$ private void renderNormalParticle(Particle particle, BufferBuilder vertexBuffer, Camera view, float partialTicks, //#else //$$ @Redirect(method = "renderParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/Particle;renderParticle(Lnet/minecraft/client/renderer/BufferBuilder;Lnet/minecraft/entity/Entity;FFFFFF)V")) //$$ private void renderNormalParticle(Particle particle, BufferBuilder vertexBuffer, Entity view, float partialTicks, @@ -71,11 +71,11 @@ public abstract class MixinParticleManager { //$$ @Redirect(method = "renderParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/Particle;renderParticle(Lnet/minecraft/client/renderer/VertexBuffer;Lnet/minecraft/entity/Entity;FFFFFF)V")) //$$ private void renderNormalParticle(Particle particle, VertexBuffer vertexBuffer, Entity view, float partialTicks, //#endif - float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) { - renderParticle(particle, vertexBuffer, view, partialTicks, rotX, rotXZ, rotZ, rotYZ, rotXY); - } - - // Seems to be gone by 1.14 + //$$ float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) { + //$$ renderParticle(particle, vertexBuffer, view, partialTicks, rotX, rotXZ, rotZ, rotYZ, rotXY); + //$$ } + //$$ + //$$ // Seems to be gone by 1.14 //#if MC<11400 //#if MC>=11200 //$$ @Redirect(method = "renderLitParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/Particle;renderParticle(Lnet/minecraft/client/renderer/BufferBuilder;Lnet/minecraft/entity/Entity;FFFFFF)V")) @@ -88,41 +88,41 @@ public abstract class MixinParticleManager { //$$ renderParticle(particle, vertexBuffer, view, partialTicks, rotX, rotXZ, rotZ, rotYZ, rotXY); //$$ } //#endif - - private void renderParticle(Particle particle, - BufferBuilder vertexBuffer, + //$$ + //$$ private void renderParticle(Particle particle, + //$$ BufferBuilder vertexBuffer, //#if MC>=11400 - Camera view, + //$$ Camera view, //#else //$$ Entity view, //#endif - float partialTicks, - float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) { - EntityRendererHandler handler = ((EntityRendererHandler.IEntityRenderer) MCVer.getMinecraft().gameRenderer).replayModRender_getHandler(); - if (handler != null && handler.omnidirectional) { - // Align all particles towards the camera + //$$ float partialTicks, + //$$ float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) { + //$$ EntityRendererHandler handler = ((EntityRendererHandler.IEntityRenderer) MCVer.getMinecraft().gameRenderer).replayModRender_getHandler(); + //$$ if (handler != null && handler.omnidirectional) { + //$$ // Align all particles towards the camera //#if MC>=11400 - Vec3d pos = view.getPos(); + //$$ Vec3d pos = view.getPos(); //#else //$$ Vec3d pos = new Vec3d(view.posX, view.posY, view.posZ); //#endif - Vec3d d = MCVer.getPosition(particle, partialTicks).subtract(pos); - double pitch = -Math.atan2(d.y, Math.sqrt(d.x * d.x + d.z * d.z)); - double yaw = -Math.atan2(d.x, d.z); - - rotX = (float) Math.cos(yaw); - rotZ = (float) Math.sin(yaw); - rotXZ = (float) Math.cos(pitch); - - rotYZ = (float) (-rotZ * Math.sin(pitch)); - rotXY = (float) (rotX * Math.sin(pitch)); - } - BlendState blendState = BlendState.getState(); - if (blendState != null) { - blendState.get(ParticlesExporter.class).onRender(particle, partialTicks); - } - particle.buildGeometry(vertexBuffer, view, partialTicks, rotX, rotXZ, rotZ, rotYZ, rotXY); - } + //$$ Vec3d d = MCVer.getPosition(particle, partialTicks).subtract(pos); + //$$ double pitch = -Math.atan2(d.y, Math.sqrt(d.x * d.x + d.z * d.z)); + //$$ double yaw = -Math.atan2(d.x, d.z); + //$$ + //$$ rotX = (float) Math.cos(yaw); + //$$ rotZ = (float) Math.sin(yaw); + //$$ rotXZ = (float) Math.cos(pitch); + //$$ + //$$ rotYZ = (float) (-rotZ * Math.sin(pitch)); + //$$ rotXY = (float) (rotX * Math.sin(pitch)); + //$$ } + //$$ BlendState blendState = BlendState.getState(); + //$$ if (blendState != null) { + //$$ blendState.get(ParticlesExporter.class).onRender(particle, partialTicks); + //$$ } + //$$ particle.buildGeometry(vertexBuffer, view, partialTicks, rotX, rotXZ, rotZ, rotYZ, rotXY); + //$$ } //#endif } //#endif diff --git a/src/main/java/com/replaymod/render/mixin/MixinRender.java b/src/main/java/com/replaymod/render/mixin/MixinRender.java index b2fbae6a..39473e39 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinRender.java +++ b/src/main/java/com/replaymod/render/mixin/MixinRender.java @@ -11,10 +11,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(EntityRenderer.class) public abstract class MixinRender { //#if MC>=11500 - //$$ @Inject(method = "renderLabelIfPresent", at = @At("HEAD"), cancellable = true) + @Inject(method = "renderLabelIfPresent", at = @At("HEAD"), cancellable = true) //#else //#if MC>=11400 - @Inject(method = "renderLabel(Lnet/minecraft/entity/Entity;Ljava/lang/String;DDDI)V", at = @At("HEAD"), cancellable = true) + //$$ @Inject(method = "renderLabel(Lnet/minecraft/entity/Entity;Ljava/lang/String;DDDI)V", at = @At("HEAD"), cancellable = true) //#else //$$ @Inject(method = "renderLivingLabel", at = @At("HEAD"), cancellable = true) //#endif diff --git a/src/main/java/com/replaymod/render/mixin/MixinRenderManager.java b/src/main/java/com/replaymod/render/mixin/MixinRenderManager.java index 72233d4f..c824b26d 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinRenderManager.java +++ b/src/main/java/com/replaymod/render/mixin/MixinRenderManager.java @@ -10,10 +10,10 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; //#if MC>=11500 -//$$ import net.minecraft.client.render.VertexConsumerProvider; -//$$ import net.minecraft.client.util.math.MatrixStack; -//$$ import net.minecraft.client.util.math.Vector3f; -//$$ import net.minecraft.util.math.Quaternion; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.Vector3f; +import net.minecraft.util.math.Quaternion; //#endif //#if MC>=10904 @@ -25,17 +25,17 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(EntityRenderDispatcher.class) public abstract class MixinRenderManager { //#if MC>=11500 - //$$ @Shadow private Quaternion rotation; + @Shadow private Quaternion rotation; //#else - @Shadow private float cameraPitch; - @Shadow private float cameraYaw; + //$$ @Shadow private float cameraPitch; + //$$ @Shadow private float cameraYaw; //#endif //#if MC>=11500 - //$$ @Inject(method = "render", at = @At("HEAD")) + @Inject(method = "render", at = @At("HEAD")) //#else //#if MC>=11400 && FABRIC>=1 - @Inject(method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V", at = @At("HEAD")) + //$$ @Inject(method = "render(Lnet/minecraft/entity/Entity;DDDFFZ)V", at = @At("HEAD")) //#else //#if MC>=11400 //$$ @Inject(method = "renderEntity", at = @At("HEAD")) @@ -47,11 +47,11 @@ public abstract class MixinRenderManager { //#if MC>=10904 private void replayModRender_reorientForCubicRendering(Entity entity, double dx, double dy, double dz, float iDoNotKnow, float partialTicks, //#if MC>=11500 - //$$ MatrixStack matrixStack, - //$$ VertexConsumerProvider vertexConsumerProvider, - //$$ int int_1, + MatrixStack matrixStack, + VertexConsumerProvider vertexConsumerProvider, + int int_1, //#else - boolean iDoNotCare, + //$$ boolean iDoNotCare, //#endif CallbackInfo ci) { //#else @@ -62,12 +62,12 @@ public abstract class MixinRenderManager { double pitch = -Math.atan2(dy, Math.sqrt(dx * dx + dz * dz)); double yaw = -Math.atan2(dx, dz); //#if MC>=11500 - //$$ this.rotation = new Quaternion(0.0F, 0.0F, 0.0F, 1.0F); - //$$ this.rotation.hamiltonProduct(Vector3f.POSITIVE_Y.getDegreesQuaternion((float) -yaw)); - //$$ this.rotation.hamiltonProduct(Vector3f.POSITIVE_X.getDegreesQuaternion((float) pitch)); + this.rotation = new Quaternion(0.0F, 0.0F, 0.0F, 1.0F); + this.rotation.hamiltonProduct(Vector3f.POSITIVE_Y.getDegreesQuaternion((float) -yaw)); + this.rotation.hamiltonProduct(Vector3f.POSITIVE_X.getDegreesQuaternion((float) pitch)); //#else - this.cameraPitch = (float) Math.toDegrees(pitch); - this.cameraYaw = (float) Math.toDegrees(yaw); + //$$ this.cameraPitch = (float) Math.toDegrees(pitch); + //$$ this.cameraYaw = (float) Math.toDegrees(yaw); //#endif } } diff --git a/src/main/java/com/replaymod/render/mixin/Mixin_BlockOnChunkRebuilds.java b/src/main/java/com/replaymod/render/mixin/Mixin_BlockOnChunkRebuilds.java index df5d5cd0..5364df8b 100644 --- a/src/main/java/com/replaymod/render/mixin/Mixin_BlockOnChunkRebuilds.java +++ b/src/main/java/com/replaymod/render/mixin/Mixin_BlockOnChunkRebuilds.java @@ -1,111 +1,111 @@ package com.replaymod.render.mixin; //#if MC>=11500 -//$$ import com.replaymod.render.hooks.ChunkLoadingRenderGlobal; -//$$ import net.minecraft.client.render.chunk.BlockBufferBuilderStorage; -//$$ import net.minecraft.client.render.chunk.ChunkBuilder; -//$$ import net.minecraft.util.thread.TaskExecutor; -//$$ import org.spongepowered.asm.mixin.Final; -//$$ import org.spongepowered.asm.mixin.Mixin; -//$$ import org.spongepowered.asm.mixin.Shadow; -//$$ import org.spongepowered.asm.mixin.injection.At; -//$$ import org.spongepowered.asm.mixin.injection.Inject; -//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -//$$ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -//$$ -//$$ import java.util.Queue; -//$$ import java.util.concurrent.CompletableFuture; -//$$ import java.util.concurrent.locks.Condition; -//$$ import java.util.concurrent.locks.Lock; -//$$ import java.util.concurrent.locks.ReentrantLock; -//$$ -//$$ @Mixin(ChunkBuilder.class) -//$$ public abstract class Mixin_BlockOnChunkRebuilds implements ChunkLoadingRenderGlobal.IBlockOnChunkRebuilds { -//$$ @Shadow @Final private Queue threadBuffers; -//$$ -//$$ @Shadow public abstract boolean upload(); -//$$ -//$$ @Shadow @Final private TaskExecutor mailbox; -//$$ -//$$ @Shadow protected abstract void scheduleRunTasks(); -//$$ -//$$ @Shadow @Final private Queue uploadQueue; -//$$ private final Lock waitingForWorkLock = new ReentrantLock(); -//$$ private final Condition newWork = waitingForWorkLock.newCondition(); -//$$ private volatile boolean allDone; -//$$ -//$$ private int totalBufferCount; -//$$ -//$$ @Inject(method = "", at = @At("RETURN")) -//$$ private void rememberTotalThreads(CallbackInfo ci) { -//$$ this.totalBufferCount = this.threadBuffers.size(); -//$$ } -//$$ -//$$ @Inject(method = "scheduleRunTasks", at = @At("RETURN")) -//$$ private void notifyMainThreadIfEverythingIsDone(CallbackInfo ci) { -//$$ if (this.threadBuffers.size() == this.totalBufferCount) { -//$$ // Looks like we're done, better notify the main thread in case the previous task didn't generate an upload -//$$ this.waitingForWorkLock.lock(); -//$$ try { -//$$ this.allDone = true; -//$$ this.newWork.signalAll(); -//$$ } finally { -//$$ this.waitingForWorkLock.unlock(); -//$$ } -//$$ } else { -//$$ this.allDone = false; -//$$ } -//$$ } -//$$ -//$$ @Inject(method = "scheduleUpload", at = @At("RETURN")) -//$$ private void notifyMainThreadOfNewUpload(CallbackInfoReturnable> ci) { -//$$ this.waitingForWorkLock.lock(); -//$$ try { -//$$ this.newWork.signal(); -//$$ } finally { -//$$ this.waitingForWorkLock.unlock(); -//$$ } -//$$ } -//$$ -//$$ private boolean waitForMainThreadWork() { -//$$ boolean allDone = this.mailbox.ask(reply -> () -> { -//$$ scheduleRunTasks(); -//$$ reply.send(this.threadBuffers.size() == this.totalBufferCount); -//$$ }).join(); -//$$ -//$$ if (allDone) { -//$$ return true; -//$$ } else { -//$$ this.waitingForWorkLock.lock(); -//$$ try { -//$$ while (true) { -//$$ if (this.allDone) { -//$$ return true; -//$$ } else if (!this.uploadQueue.isEmpty()) { -//$$ return false; -//$$ } else { -//$$ this.newWork.awaitUninterruptibly(); -//$$ } -//$$ } -//$$ } finally { -//$$ this.waitingForWorkLock.unlock(); -//$$ } -//$$ } -//$$ } -//$$ -//$$ @Override -//$$ public boolean uploadEverythingBlocking() { -//$$ boolean anything = false; -//$$ -//$$ boolean allChunksBuilt; -//$$ do { -//$$ allChunksBuilt = waitForMainThreadWork(); -//$$ while (upload()) { -//$$ anything = true; -//$$ } -//$$ } while (!allChunksBuilt); -//$$ -//$$ return anything; -//$$ } -//$$ } +import com.replaymod.render.hooks.ChunkLoadingRenderGlobal; +import net.minecraft.client.render.chunk.BlockBufferBuilderStorage; +import net.minecraft.client.render.chunk.ChunkBuilder; +import net.minecraft.util.thread.TaskExecutor; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Queue; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +@Mixin(ChunkBuilder.class) +public abstract class Mixin_BlockOnChunkRebuilds implements ChunkLoadingRenderGlobal.IBlockOnChunkRebuilds { + @Shadow @Final private Queue threadBuffers; + + @Shadow public abstract boolean upload(); + + @Shadow @Final private TaskExecutor mailbox; + + @Shadow protected abstract void scheduleRunTasks(); + + @Shadow @Final private Queue uploadQueue; + private final Lock waitingForWorkLock = new ReentrantLock(); + private final Condition newWork = waitingForWorkLock.newCondition(); + private volatile boolean allDone; + + private int totalBufferCount; + + @Inject(method = "", at = @At("RETURN")) + private void rememberTotalThreads(CallbackInfo ci) { + this.totalBufferCount = this.threadBuffers.size(); + } + + @Inject(method = "scheduleRunTasks", at = @At("RETURN")) + private void notifyMainThreadIfEverythingIsDone(CallbackInfo ci) { + if (this.threadBuffers.size() == this.totalBufferCount) { + // Looks like we're done, better notify the main thread in case the previous task didn't generate an upload + this.waitingForWorkLock.lock(); + try { + this.allDone = true; + this.newWork.signalAll(); + } finally { + this.waitingForWorkLock.unlock(); + } + } else { + this.allDone = false; + } + } + + @Inject(method = "scheduleUpload", at = @At("RETURN")) + private void notifyMainThreadOfNewUpload(CallbackInfoReturnable> ci) { + this.waitingForWorkLock.lock(); + try { + this.newWork.signal(); + } finally { + this.waitingForWorkLock.unlock(); + } + } + + private boolean waitForMainThreadWork() { + boolean allDone = this.mailbox.ask(reply -> () -> { + scheduleRunTasks(); + reply.send(this.threadBuffers.size() == this.totalBufferCount); + }).join(); + + if (allDone) { + return true; + } else { + this.waitingForWorkLock.lock(); + try { + while (true) { + if (this.allDone) { + return true; + } else if (!this.uploadQueue.isEmpty()) { + return false; + } else { + this.newWork.awaitUninterruptibly(); + } + } + } finally { + this.waitingForWorkLock.unlock(); + } + } + } + + @Override + public boolean uploadEverythingBlocking() { + boolean anything = false; + + boolean allChunksBuilt; + do { + allChunksBuilt = waitForMainThreadWork(); + while (upload()) { + anything = true; + } + } while (!allChunksBuilt); + + return anything; + } +} //#endif diff --git a/src/main/java/com/replaymod/render/mixin/Mixin_ChromaKeyForceSky.java b/src/main/java/com/replaymod/render/mixin/Mixin_ChromaKeyForceSky.java index b20b6920..e4cfdd6f 100644 --- a/src/main/java/com/replaymod/render/mixin/Mixin_ChromaKeyForceSky.java +++ b/src/main/java/com/replaymod/render/mixin/Mixin_ChromaKeyForceSky.java @@ -10,9 +10,9 @@ import org.spongepowered.asm.mixin.injection.Constant; import org.spongepowered.asm.mixin.injection.ModifyConstant; //#if MC>=11500 -//$$ import net.minecraft.client.render.WorldRenderer; +import net.minecraft.client.render.WorldRenderer; //#else -import net.minecraft.client.render.GameRenderer; +//$$ import net.minecraft.client.render.GameRenderer; //#endif /** @@ -20,17 +20,17 @@ import net.minecraft.client.render.GameRenderer; * at 4 or greater. */ //#if MC>=11500 -//$$ @Mixin(WorldRenderer.class) +@Mixin(WorldRenderer.class) //#else -@Mixin(GameRenderer.class) +//$$ @Mixin(GameRenderer.class) //#endif public abstract class Mixin_ChromaKeyForceSky { @Shadow @Final private MinecraftClient client; //#if MC>=11500 - //$$ @ModifyConstant(method = "render", constant = @Constant(intValue = 4)) + @ModifyConstant(method = "render", constant = @Constant(intValue = 4)) //#else - @ModifyConstant(method = "renderCenter", constant = @Constant(intValue = 4)) + //$$ @ModifyConstant(method = "renderCenter", constant = @Constant(intValue = 4)) //#endif private int forceSkyWhenChromaKeying(int value) { EntityRendererHandler handler = ((EntityRendererHandler.IEntityRenderer) this.client.gameRenderer).replayModRender_getHandler(); diff --git a/src/main/java/com/replaymod/render/mixin/Mixin_CubicRotation.java b/src/main/java/com/replaymod/render/mixin/Mixin_CubicRotation.java index 27397948..089d41fc 100644 --- a/src/main/java/com/replaymod/render/mixin/Mixin_CubicRotation.java +++ b/src/main/java/com/replaymod/render/mixin/Mixin_CubicRotation.java @@ -8,19 +8,19 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; //#if MC>=11500 -//$$ import net.minecraft.client.util.math.MatrixStack; -//$$ import net.minecraft.client.util.math.Vector3f; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.Vector3f; //#else -import org.lwjgl.opengl.GL11; +//$$ import org.lwjgl.opengl.GL11; //#endif import static com.replaymod.core.versions.MCVer.getMinecraft; //#if MC>=11500 -//$$ @Mixin(value = net.minecraft.client.render.GameRenderer.class) +@Mixin(value = net.minecraft.client.render.GameRenderer.class) //#else //#if MC>=11400 -@Mixin(value = net.minecraft.client.render.Camera.class) +//$$ @Mixin(value = net.minecraft.client.render.Camera.class) //#else //$$ @Mixin(value = net.minecraft.client.renderer.EntityRenderer.class) //#endif @@ -31,19 +31,19 @@ public abstract class Mixin_CubicRotation { } //#if MC>=11500 - //$$ @Inject(method = "renderWorld", at = @At("HEAD")) + @Inject(method = "renderWorld", at = @At("HEAD")) //#else //#if MC>=11400 - @Inject(method = "update", at = @At("HEAD")) + //$$ @Inject(method = "update", at = @At("HEAD")) //#else //$$ @Inject(method = "orientCamera", at = @At("HEAD")) //#endif //#endif private void replayModRender_setupCubicFrameRotation( //#if MC>=11500 - //$$ float partialTicks, - //$$ long frameStartNano, - //$$ MatrixStack matrixStack, + float partialTicks, + long frameStartNano, + MatrixStack matrixStack, //#endif CallbackInfo ci ) { @@ -79,20 +79,20 @@ public abstract class Mixin_CubicRotation { break; } //#if MC>=11500 - //$$ matrixStack.multiply(new Vector3f(x, y, 0).getDegreesQuaternion(angle)); + matrixStack.multiply(new Vector3f(x, y, 0).getDegreesQuaternion(angle)); //#else - GL11.glRotatef(angle, x, y, 0); + //$$ GL11.glRotatef(angle, x, y, 0); //#endif } //#if MC<11500 - if (getHandler() != null && getHandler().omnidirectional) { - // Minecraft goes back a little so we have to revert that + //$$ if (getHandler() != null && getHandler().omnidirectional) { + //$$ // Minecraft goes back a little so we have to revert that //#if MC>=11400 - GL11.glTranslatef(0.0F, 0.0F, -0.05F); + //$$ GL11.glTranslatef(0.0F, 0.0F, -0.05F); //#else //$$ GL11.glTranslatef(0.0F, 0.0F, 0.1F); //#endif - } + //$$ } //#endif } } diff --git a/src/main/java/com/replaymod/render/mixin/Mixin_ForceChunkLoading.java b/src/main/java/com/replaymod/render/mixin/Mixin_ForceChunkLoading.java index 16cc9214..332a88fa 100644 --- a/src/main/java/com/replaymod/render/mixin/Mixin_ForceChunkLoading.java +++ b/src/main/java/com/replaymod/render/mixin/Mixin_ForceChunkLoading.java @@ -12,14 +12,14 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; //#if MC>=11500 -//$$ import java.util.Set; +import java.util.Set; //#else -import net.minecraft.client.render.VisibleRegion; -import net.minecraft.entity.Entity; +//$$ import net.minecraft.client.render.VisibleRegion; +//$$ import net.minecraft.entity.Entity; //#endif //#if MC>=11400 && MC<11500 -import net.minecraft.client.render.Camera; +//$$ import net.minecraft.client.render.Camera; //#endif //#if MC>=11400 @@ -43,118 +43,118 @@ public abstract class Mixin_ForceChunkLoading { public ChunkLoadingRenderGlobal replayModRender_hook; //#if MC>=11500 - //$$ @Shadow private Set chunksToRebuild; - //$$ - //$$ @Shadow private ChunkBuilder chunkBuilder; - //$$ - //$$ @Shadow private boolean needsTerrainUpdate; - //$$ - //$$ @Shadow public abstract void scheduleTerrainUpdate(); - //$$ - //$$ @Shadow protected abstract void setupTerrain(Camera camera_1, Frustum frustum_1, boolean boolean_1, int int_1, boolean boolean_2); - //$$ - //$$ @Shadow private int frame; - //$$ - //$$ private boolean passThrough; - //$$ @Inject(method = "setupTerrain", at = @At("HEAD"), cancellable = true) - //$$ private void forceAllChunks(Camera camera_1, Frustum frustum_1, boolean boolean_1, int int_1, boolean boolean_2, CallbackInfo ci) { - //$$ if (replayModRender_hook == null) { - //$$ return; - //$$ } - //$$ if (passThrough) { - //$$ return; - //$$ } - //$$ ci.cancel(); - //$$ - //$$ passThrough = true; - //$$ try { - //$$ do { - //$$ // Determine which chunks shall be visible - //$$ setupTerrain(camera_1, frustum_1, boolean_1, frame++, boolean_2); - //$$ - //$$ // Schedule all chunks which need rebuilding (we schedule even important rebuilds because we wait for - //$$ // all of them anyway and this way we can take advantage of threading) - //$$ for (ChunkBuilder.BuiltChunk builtChunk : this.chunksToRebuild) { - //$$ builtChunk.scheduleRebuild(this.chunkBuilder); - //$$ builtChunk.cancelRebuild(); - //$$ } - //$$ this.chunksToRebuild.clear(); - //$$ - //$$ // Upload all chunks - //$$ this.needsTerrainUpdate |= ((ChunkLoadingRenderGlobal.IBlockOnChunkRebuilds) this.chunkBuilder).uploadEverythingBlocking(); - //$$ - //$$ // Repeat until no more updates are needed - //$$ } while (this.needsTerrainUpdate); - //$$ } finally { - //$$ passThrough = false; - //$$ } - //$$ } - //#else - private boolean replayModRender_passThroughSetupTerrain; + @Shadow private Set chunksToRebuild; - @Shadow - public boolean needsTerrainUpdate; + @Shadow private ChunkBuilder chunkBuilder; - @Shadow - public ChunkBuilder chunkBuilder; + @Shadow private boolean needsTerrainUpdate; - @Shadow - public abstract void setUpTerrain( - //#if MC>=11400 - Camera viewEntity, - //#else - //$$ Entity viewEntity, - //#if MC>=11400 - //$$ float partialTicks, - //#else - //$$ double partialTicks, - //#endif - //#endif - VisibleRegion camera, - int frameCount, - boolean playerSpectator - ); + @Shadow public abstract void scheduleTerrainUpdate(); - @Inject(method = "setUpTerrain", at = @At("HEAD"), cancellable = true) - private void replayModRender_setupTerrain( - //#if MC>=11400 - Camera viewEntity, - //#else - //$$ Entity viewEntity, - //#if MC>=11400 - //$$ float partialTicks, - //#else - //$$ double partialTicks, - //#endif - //#endif - VisibleRegion camera, - int frameCount, - boolean playerSpectator, - CallbackInfo ci - ) { - if (replayModRender_hook != null && !replayModRender_passThroughSetupTerrain) { - replayModRender_passThroughSetupTerrain = true; + @Shadow protected abstract void setupTerrain(Camera camera_1, Frustum frustum_1, boolean boolean_1, int int_1, boolean boolean_2); + @Shadow private int frame; + + private boolean passThrough; + @Inject(method = "setupTerrain", at = @At("HEAD"), cancellable = true) + private void forceAllChunks(Camera camera_1, Frustum frustum_1, boolean boolean_1, int int_1, boolean boolean_2, CallbackInfo ci) { + if (replayModRender_hook == null) { + return; + } + if (passThrough) { + return; + } + ci.cancel(); + + passThrough = true; + try { do { - setUpTerrain( - viewEntity, + // Determine which chunks shall be visible + setupTerrain(camera_1, frustum_1, boolean_1, frame++, boolean_2); + + // Schedule all chunks which need rebuilding (we schedule even important rebuilds because we wait for + // all of them anyway and this way we can take advantage of threading) + for (ChunkBuilder.BuiltChunk builtChunk : this.chunksToRebuild) { + builtChunk.scheduleRebuild(this.chunkBuilder); + builtChunk.cancelRebuild(); + } + this.chunksToRebuild.clear(); + + // Upload all chunks + this.needsTerrainUpdate |= ((ChunkLoadingRenderGlobal.IBlockOnChunkRebuilds) this.chunkBuilder).uploadEverythingBlocking(); + + // Repeat until no more updates are needed + } while (this.needsTerrainUpdate); + } finally { + passThrough = false; + } + } + //#else + //$$ private boolean replayModRender_passThroughSetupTerrain; + //$$ + //$$ @Shadow + //$$ public boolean needsTerrainUpdate; + //$$ + //$$ @Shadow + //$$ public ChunkBuilder chunkBuilder; + //$$ + //$$ @Shadow + //$$ public abstract void setUpTerrain( + //#if MC>=11400 + //$$ Camera viewEntity, + //#else + //$$ Entity viewEntity, + //#if MC>=11400 + //$$ float partialTicks, + //#else + //$$ double partialTicks, + //#endif + //#endif + //$$ VisibleRegion camera, + //$$ int frameCount, + //$$ boolean playerSpectator + //$$ ); + //$$ + //$$ @Inject(method = "setUpTerrain", at = @At("HEAD"), cancellable = true) + //$$ private void replayModRender_setupTerrain( + //#if MC>=11400 + //$$ Camera viewEntity, + //#else + //$$ Entity viewEntity, + //#if MC>=11400 + //$$ float partialTicks, + //#else + //$$ double partialTicks, + //#endif + //#endif + //$$ VisibleRegion camera, + //$$ int frameCount, + //$$ boolean playerSpectator, + //$$ CallbackInfo ci + //$$ ) { + //$$ if (replayModRender_hook != null && !replayModRender_passThroughSetupTerrain) { + //$$ replayModRender_passThroughSetupTerrain = true; + //$$ + //$$ do { + //$$ setUpTerrain( + //$$ viewEntity, //#if MC<11400 //$$ partialTicks, //#endif - camera, - replayModRender_hook.nextFrameId(), - playerSpectator - ); - replayModRender_hook.updateChunks(); - } while (this.needsTerrainUpdate); - - this.needsTerrainUpdate = true; - - replayModRender_passThroughSetupTerrain = false; - ci.cancel(); - } - } - + //$$ camera, + //$$ replayModRender_hook.nextFrameId(), + //$$ playerSpectator + //$$ ); + //$$ replayModRender_hook.updateChunks(); + //$$ } while (this.needsTerrainUpdate); + //$$ + //$$ this.needsTerrainUpdate = true; + //$$ + //$$ replayModRender_passThroughSetupTerrain = false; + //$$ ci.cancel(); + //$$ } + //$$ } + //$$ //#if MC<10904 //$$ @Inject(method = "isPositionInRenderChunk", at = @At("HEAD"), cancellable = true) //$$ public void replayModRender_isPositionInRenderChunk(BlockPos pos, RenderChunk chunk, CallbackInfoReturnable ci) { @@ -163,31 +163,31 @@ public abstract class Mixin_ForceChunkLoading { //$$ } //$$ } //#endif - - @Inject(method = "updateChunks", at = @At("HEAD"), cancellable = true) - public void replayModRender_updateChunks(long finishTimeNano, CallbackInfo ci) { - if (replayModRender_hook != null) { - replayModRender_hook.updateChunks(); - ci.cancel(); - } - } - - // Prior to 1.9.4, MC always uses the same ChunkRenderDispatcher instance + //$$ + //$$ @Inject(method = "updateChunks", at = @At("HEAD"), cancellable = true) + //$$ public void replayModRender_updateChunks(long finishTimeNano, CallbackInfo ci) { + //$$ if (replayModRender_hook != null) { + //$$ replayModRender_hook.updateChunks(); + //$$ ci.cancel(); + //$$ } + //$$ } + //$$ + //$$ // 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/ChunkBuilder;stop()V")) - private void stopWorkerThreadsAndChunkLoadingRenderGlobal(CallbackInfo ci) { - if (replayModRender_hook != null) { - replayModRender_hook.updateRenderDispatcher(null); - } - } + //$$ @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); + //$$ } + //$$ } //#endif - - @Inject(method = "reload", at = @At(value = "RETURN")) - private void setupChunkLoadingRenderGlobal(CallbackInfo ci) { - if (replayModRender_hook != null) { - replayModRender_hook.updateRenderDispatcher(this.chunkBuilder); - } - } + //$$ + //$$ @Inject(method = "reload", at = @At(value = "RETURN")) + //$$ private void setupChunkLoadingRenderGlobal(CallbackInfo ci) { + //$$ if (replayModRender_hook != null) { + //$$ replayModRender_hook.updateRenderDispatcher(this.chunkBuilder); + //$$ } + //$$ } //#endif } //#endif diff --git a/src/main/java/com/replaymod/render/mixin/Mixin_SkipBlockOutlinesDuringRender.java b/src/main/java/com/replaymod/render/mixin/Mixin_SkipBlockOutlinesDuringRender.java index d59e3f71..6d192f27 100644 --- a/src/main/java/com/replaymod/render/mixin/Mixin_SkipBlockOutlinesDuringRender.java +++ b/src/main/java/com/replaymod/render/mixin/Mixin_SkipBlockOutlinesDuringRender.java @@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; public abstract class Mixin_SkipBlockOutlinesDuringRender { @Shadow @Final private MinecraftClient client; - @Inject(method = "drawHighlightedBlockOutline", at = @At("HEAD"), cancellable = true) + @Inject(method = "drawBlockOutline", at = @At("HEAD"), cancellable = true) private void replayModRender_drawSelectionBox(CallbackInfo ci) { if (((EntityRendererHandler.IEntityRenderer) this.client.gameRenderer).replayModRender_getHandler() != null) { ci.cancel(); diff --git a/src/main/java/com/replaymod/render/mixin/WorldRendererAccessor.java b/src/main/java/com/replaymod/render/mixin/WorldRendererAccessor.java index 6119d440..0806f547 100644 --- a/src/main/java/com/replaymod/render/mixin/WorldRendererAccessor.java +++ b/src/main/java/com/replaymod/render/mixin/WorldRendererAccessor.java @@ -10,30 +10,30 @@ import java.util.Set; import net.minecraft.client.render.chunk.ChunkBuilder; //#if MC>=11500 -//$$ import net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk; +import net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk; //#else -import net.minecraft.client.render.chunk.ChunkRenderer; +//$$ import net.minecraft.client.render.chunk.ChunkRenderer; //#endif //#endif @Mixin(WorldRenderer.class) public interface WorldRendererAccessor { //#if MC<11500 - @Accessor("field_4076") - void setRenderEntitiesStartupCounter(int value); - + //$$ @Accessor("field_4076") + //$$ void setRenderEntitiesStartupCounter(int value); + //$$ //#if MC>=10800 - @Accessor("chunkBuilder") - ChunkBuilder getRenderDispatcher(); - - @Accessor("needsTerrainUpdate") - void setDisplayListEntitiesDirty(boolean value); - - @Accessor("chunksToRebuild") + //$$ @Accessor("chunkBuilder") + //$$ ChunkBuilder getRenderDispatcher(); + //$$ + //$$ @Accessor("needsTerrainUpdate") + //$$ void setDisplayListEntitiesDirty(boolean value); + //$$ + //$$ @Accessor("chunksToRebuild") //#if MC>=11500 //$$ Set getChunksToUpdate(); //#else - Set getChunksToUpdate(); + //$$ Set getChunksToUpdate(); //#endif //#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 7b2dcc8f..0e1a9026 100644 --- a/src/main/java/com/replaymod/render/rendering/VideoRenderer.java +++ b/src/main/java/com/replaymod/render/rendering/VideoRenderer.java @@ -33,9 +33,9 @@ import net.minecraft.sound.SoundCategory; import net.minecraft.client.render.RenderTickCounter; //#if MC>=11500 -//$$ import com.mojang.blaze3d.systems.RenderSystem; -//$$ import net.minecraft.client.util.Window; -//$$ import org.lwjgl.opengl.GL11; +import com.mojang.blaze3d.systems.RenderSystem; +import net.minecraft.client.util.Window; +import org.lwjgl.opengl.GL11; //#endif //#if MC>=11400 @@ -169,7 +169,7 @@ public class VideoRenderer implements RenderInfo { } //#if MC<11500 - ((WorldRendererAccessor) mc.worldRenderer).setRenderEntitiesStartupCounter(0); + //$$ ((WorldRendererAccessor) mc.worldRenderer).setRenderEntitiesStartupCounter(0); //#endif renderingPipeline.run(); @@ -377,7 +377,7 @@ public class VideoRenderer implements RenderInfo { acc.setFramebufferWidth(displayWidth); acc.setFramebufferHeight(displayHeight); //#if MC>=11500 - //$$ mc.gameRenderer.onResized(displayWidth, displayHeight); + mc.gameRenderer.onResized(displayWidth, displayHeight); //#endif //#else //$$ mc.resize(displayWidth, displayHeight); @@ -441,21 +441,21 @@ public class VideoRenderer implements RenderInfo { guiFramebuffer.beginWrite(true); //#if MC>=11500 - //$$ Window window = getWindow(mc); - //$$ RenderSystem.clear(256, MinecraftClient.IS_SYSTEM_MAC); - //$$ RenderSystem.matrixMode(GL11.GL_PROJECTION); - //$$ RenderSystem.loadIdentity(); - //$$ RenderSystem.ortho(0, window.getFramebufferWidth() / window.getScaleFactor(), window.getFramebufferHeight() / window.getScaleFactor(), 0, 1000, 3000); - //$$ RenderSystem.matrixMode(GL11.GL_MODELVIEW); - //$$ RenderSystem.loadIdentity(); - //$$ RenderSystem.translatef(0, 0, -2000); + Window window = getWindow(mc); + RenderSystem.clear(256, MinecraftClient.IS_SYSTEM_MAC); + RenderSystem.matrixMode(GL11.GL_PROJECTION); + RenderSystem.loadIdentity(); + RenderSystem.ortho(0, window.getFramebufferWidth() / window.getScaleFactor(), window.getFramebufferHeight() / window.getScaleFactor(), 0, 1000, 3000); + RenderSystem.matrixMode(GL11.GL_MODELVIEW); + RenderSystem.loadIdentity(); + RenderSystem.translatef(0, 0, -2000); //#else //#if MC>=11400 - getWindow(mc).method_4493( + //$$ getWindow(mc).method_4493( //#if MC>=11400 - false + //$$ false //#endif - ); + //$$ ); //#else //$$ mc.entityRenderer.setupOverlayRendering(); //#endif @@ -504,10 +504,10 @@ public class VideoRenderer implements RenderInfo { popMatrix(); //#if MC>=11500 - //$$ getWindow(mc).swapBuffers(); + getWindow(mc).swapBuffers(); //#else //#if MC>=11400 - getWindow(mc).setFullscreen(false); + //$$ getWindow(mc).setFullscreen(false); //#else //$$ // if not in high performance mode, update the gui size if screen size changed //$$ // otherwise just swap the progress gui to screen diff --git a/src/main/java/com/replaymod/replay/FullReplaySender.java b/src/main/java/com/replaymod/replay/FullReplaySender.java index 19298ed6..9947e74e 100644 --- a/src/main/java/com/replaymod/replay/FullReplaySender.java +++ b/src/main/java/com/replaymod/replay/FullReplaySender.java @@ -585,7 +585,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend entId, GameMode.SPECTATOR, //#if MC>=11500 - //$$ packet.getSeed(), + packet.getSeed(), //#endif false, packet.getDimension(), @@ -594,7 +594,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend packet.getChunkLoadDistance(), packet.hasReducedDebugInfo() //#if MC>=11500 - //$$ , packet.showsDeathScreen() + , packet.showsDeathScreen() //#endif ); //#else @@ -637,7 +637,7 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend p = new PlayerRespawnS2CPacket( respawn.getDimension(), //#if MC>=11500 - //$$ respawn.getSha256Seed(), + respawn.getSha256Seed(), //#endif respawn.getGeneratorType(), GameMode.SPECTATOR diff --git a/src/main/java/com/replaymod/replay/NoGuiScreenshot.java b/src/main/java/com/replaymod/replay/NoGuiScreenshot.java index 6821ee13..4057f02b 100644 --- a/src/main/java/com/replaymod/replay/NoGuiScreenshot.java +++ b/src/main/java/com/replaymod/replay/NoGuiScreenshot.java @@ -13,7 +13,7 @@ import com.mojang.blaze3d.platform.GlStateManager; import net.minecraft.client.util.ScreenshotUtils; //#if MC>=11500 -//$$ import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.MatrixStack; //#endif //#if MC>=11400 @@ -64,10 +64,10 @@ public class NoGuiScreenshot { GlStateManager.enableTexture(); //#if MC>=11500 - //$$ mc.gameRenderer.renderWorld(MCVer.getRenderPartialTicks(), System.nanoTime(), new MatrixStack()); + mc.gameRenderer.renderWorld(MCVer.getRenderPartialTicks(), System.nanoTime(), new MatrixStack()); //#else //#if MC>=11400 - mc.gameRenderer.renderWorld(MCVer.getRenderPartialTicks(), System.nanoTime()); + //$$ mc.gameRenderer.renderWorld(MCVer.getRenderPartialTicks(), System.nanoTime()); //#else //#if MC>=10809 //$$ mc.entityRenderer.updateCameraAndRender(MCVer.getRenderPartialTicks(), System.nanoTime()); @@ -94,7 +94,7 @@ public class NoGuiScreenshot { // Read it, create the screenshot and finish the future try { //#if MC>=11400 - Image image = new Image(ScreenshotUtils.method_1663(frameWidth, frameHeight, mc.getFramebuffer())); + Image image = new Image(ScreenshotUtils.takeScreenshot(frameWidth, frameHeight, mc.getFramebuffer())); //#else //$$ // We're using Minecraft's ScreenShotHelper even though it writes the screenshot to //$$ // disk for better maintainability diff --git a/src/main/java/com/replaymod/replay/QuickReplaySender.java b/src/main/java/com/replaymod/replay/QuickReplaySender.java index 70a859e5..e3124b18 100644 --- a/src/main/java/com/replaymod/replay/QuickReplaySender.java +++ b/src/main/java/com/replaymod/replay/QuickReplaySender.java @@ -99,14 +99,14 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe protected Packet decode(com.github.steveice10.netty.buffer.ByteBuf byteBuf) throws IOException { int packetId = new ByteBufNetInput(byteBuf).readVarInt(); //#if MC>=11500 - //$$ Packet mcPacket = NetworkState.PLAY.getPacketHandler(NetworkSide.CLIENTBOUND, packetId); + Packet mcPacket = NetworkState.PLAY.getPacketHandler(NetworkSide.CLIENTBOUND, packetId); //#else - Packet mcPacket; - try { - mcPacket = NetworkState.PLAY.getPacketHandler(NetworkSide.CLIENTBOUND, packetId); - } catch (IllegalAccessException | InstantiationException e) { - throw new IOException(e); - } + //$$ Packet mcPacket; + //$$ try { + //$$ mcPacket = NetworkState.PLAY.getPacketHandler(NetworkSide.CLIENTBOUND, packetId); + //$$ } catch (IllegalAccessException | InstantiationException e) { + //$$ throw new IOException(e); + //$$ } //#endif if (mcPacket != null) { int size = byteBuf.readableBytes(); @@ -196,7 +196,7 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe //$$ 0, //#endif //#if MC>=11500 - //$$ 0, + 0, //#endif //#if MC<11400 //$$ EnumDifficulty.NORMAL, diff --git a/src/main/java/com/replaymod/replay/ReplayHandler.java b/src/main/java/com/replaymod/replay/ReplayHandler.java index 7e3781e4..5ab78e59 100644 --- a/src/main/java/com/replaymod/replay/ReplayHandler.java +++ b/src/main/java/com/replaymod/replay/ReplayHandler.java @@ -37,8 +37,8 @@ import java.io.IOException; import java.util.*; //#if MC>=11500 -//$$ import com.mojang.blaze3d.systems.RenderSystem; -//$$ import org.lwjgl.opengl.GL11; +import com.mojang.blaze3d.systems.RenderSystem; +import org.lwjgl.opengl.GL11; //#endif //#if MC>=11400 @@ -622,17 +622,17 @@ public class ReplayHandler { enableTexture(); mc.getFramebuffer().beginWrite(true); //#if MC>=11500 - //$$ Window window = getWindow(mc); - //$$ RenderSystem.clear(256, MinecraftClient.IS_SYSTEM_MAC); - //$$ RenderSystem.matrixMode(GL11.GL_PROJECTION); - //$$ RenderSystem.loadIdentity(); - //$$ RenderSystem.ortho(0, window.getFramebufferWidth() / window.getScaleFactor(), window.getFramebufferHeight() / window.getScaleFactor(), 0, 1000, 3000); - //$$ RenderSystem.matrixMode(GL11.GL_MODELVIEW); - //$$ RenderSystem.loadIdentity(); - //$$ RenderSystem.translatef(0, 0, -2000); + Window window = getWindow(mc); + RenderSystem.clear(256, MinecraftClient.IS_SYSTEM_MAC); + RenderSystem.matrixMode(GL11.GL_PROJECTION); + RenderSystem.loadIdentity(); + RenderSystem.ortho(0, window.getFramebufferWidth() / window.getScaleFactor(), window.getFramebufferHeight() / window.getScaleFactor(), 0, 1000, 3000); + RenderSystem.matrixMode(GL11.GL_MODELVIEW); + RenderSystem.loadIdentity(); + RenderSystem.translatef(0, 0, -2000); //#else //#if MC>=11400 - getWindow(mc).method_4493(true); + //$$ getWindow(mc).method_4493(true); //#else //#if MC>=11400 //$$ mc.mainWindow.setupOverlayRendering(); @@ -666,10 +666,10 @@ public class ReplayHandler { popMatrix(); //#if MC>=11500 - //$$ getWindow(mc).swapBuffers(); + getWindow(mc).swapBuffers(); //#else //#if MC>=11400 - getWindow(mc).setFullscreen(true); + //$$ getWindow(mc).setFullscreen(true); //#else //$$ Display.update(); //#endif diff --git a/src/main/java/com/replaymod/replay/mixin/EntityLivingBaseAccessor.java b/src/main/java/com/replaymod/replay/mixin/EntityLivingBaseAccessor.java index 74b924c2..4e51c06a 100644 --- a/src/main/java/com/replaymod/replay/mixin/EntityLivingBaseAccessor.java +++ b/src/main/java/com/replaymod/replay/mixin/EntityLivingBaseAccessor.java @@ -7,15 +7,15 @@ import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(LivingEntity.class) public interface EntityLivingBaseAccessor { //#if MC>=11400 - @Accessor("field_6224") + @Accessor("serverX") double getInterpTargetX(); - @Accessor("field_6245") + @Accessor("serverY") double getInterpTargetY(); - @Accessor("field_6263") + @Accessor("serverZ") double getInterpTargetZ(); - @Accessor("field_6284") + @Accessor("serverYaw") double getInterpTargetYaw(); - @Accessor("field_6221") + @Accessor("serverPitch") double getInterpTargetPitch(); //#endif diff --git a/src/main/java/com/replaymod/replay/mixin/MixinCamera.java b/src/main/java/com/replaymod/replay/mixin/MixinCamera.java index a430afff..75c5f79c 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinCamera.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinCamera.java @@ -9,51 +9,51 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; //#if MC>=11500 -//$$ import net.minecraft.client.MinecraftClient; -//$$ import net.minecraft.client.util.math.MatrixStack; -//$$ import net.minecraft.client.util.math.Vector3f; -//$$ import org.spongepowered.asm.mixin.Final; -//$$ import org.spongepowered.asm.mixin.Shadow; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.Vector3f; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Shadow; //#else -import com.mojang.blaze3d.platform.GlStateManager; -import net.minecraft.world.BlockView; +//$$ import com.mojang.blaze3d.platform.GlStateManager; +//$$ import net.minecraft.world.BlockView; //#endif //#if MC>=11500 -//$$ @Mixin(net.minecraft.client.render.GameRenderer.class) +@Mixin(net.minecraft.client.render.GameRenderer.class) //#else -@Mixin(net.minecraft.client.render.Camera.class) +//$$ @Mixin(net.minecraft.client.render.Camera.class) //#endif public class MixinCamera { //#if MC>=11500 - //$$ @Shadow @Final private MinecraftClient client; - //$$ @Inject( - //$$ method = "renderWorld", - //$$ at = @At( - //$$ value = "INVOKE", - //$$ target = "Lnet/minecraft/client/render/Camera;getPitch()F" - //$$ ) - //$$ ) - //$$ private void applyRoll(float float_1, long long_1, MatrixStack matrixStack, CallbackInfo ci) { - //$$ Entity entity = this.client.getCameraEntity() == null ? this.client.player : this.client.getCameraEntity(); - //$$ if (entity instanceof CameraEntity) { - //$$ matrixStack.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(((CameraEntity) entity).roll)); - //$$ } - //$$ } - //#else + @Shadow @Final private MinecraftClient client; @Inject( - method = "update", + method = "renderWorld", at = @At( value = "INVOKE", - target = "Lcom/mojang/blaze3d/platform/GlStateManager;rotatef(FFFF)V", - ordinal = 0 + target = "Lnet/minecraft/client/render/Camera;getPitch()F" ) ) - private void applyRoll(BlockView blockView, Entity view, boolean boolean_1, boolean boolean_2, float float_1, CallbackInfo ci) { - if (view instanceof CameraEntity) { - GlStateManager.rotatef(((CameraEntity) view).roll, 0.0F, 0.0F, 1.0F); + private void applyRoll(float float_1, long long_1, MatrixStack matrixStack, CallbackInfo ci) { + Entity entity = this.client.getCameraEntity() == null ? this.client.player : this.client.getCameraEntity(); + if (entity instanceof CameraEntity) { + matrixStack.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(((CameraEntity) entity).roll)); } } + //#else + //$$ @Inject( + //$$ method = "update", + //$$ at = @At( + //$$ value = "INVOKE", + //$$ target = "Lcom/mojang/blaze3d/platform/GlStateManager;rotatef(FFFF)V", + //$$ ordinal = 0 + //$$ ) + //$$ ) + //$$ private void applyRoll(BlockView blockView, Entity view, boolean boolean_1, boolean boolean_2, float float_1, CallbackInfo ci) { + //$$ if (view instanceof CameraEntity) { + //$$ GlStateManager.rotatef(((CameraEntity) view).roll, 0.0F, 0.0F, 1.0F); + //$$ } + //$$ } //#endif } //#endif diff --git a/src/main/java/com/replaymod/replay/mixin/MixinGuiSpectator.java b/src/main/java/com/replaymod/replay/mixin/MixinGuiSpectator.java index 8a6bbf13..9d938f7e 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinGuiSpectator.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinGuiSpectator.java @@ -13,7 +13,7 @@ import static com.replaymod.core.versions.MCVer.*; @Mixin(SpectatorHud.class) public abstract class MixinGuiSpectator { //#if MC>=10904 - @Inject(method = "method_1976", at = @At("HEAD"), cancellable = true) + @Inject(method = "cycleSlot", at = @At("HEAD"), cancellable = true) //#else //$$ @Inject(method = "func_175260_a", at = @At("HEAD"), cancellable = true) //#endif diff --git a/src/main/java/com/replaymod/replay/mixin/MixinKeyboardListener.java b/src/main/java/com/replaymod/replay/mixin/MixinKeyboardListener.java index 864b9f2c..12caef5a 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/Framebuffer;Ljava/util/function/Consumer;)V" + target = "Lnet/minecraft/client/util/ScreenshotUtils;saveScreenshot(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/MixinRenderArrow.java b/src/main/java/com/replaymod/replay/mixin/MixinRenderArrow.java index c4a0931b..bc20c96e 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinRenderArrow.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinRenderArrow.java @@ -9,9 +9,9 @@ import net.minecraft.entity.Entity; import org.spongepowered.asm.mixin.Mixin; //#if MC>=11500 -//$$ import net.minecraft.client.render.Frustum; +import net.minecraft.client.render.Frustum; //#else -import net.minecraft.client.render.VisibleRegion; +//$$ import net.minecraft.client.render.VisibleRegion; //#endif @Mixin(ArrowEntityRenderer.class) @@ -22,15 +22,15 @@ public abstract class MixinRenderArrow extends EntityRenderer { @SuppressWarnings("unchecked") @Override - public boolean isVisible(Entity entity, + public boolean shouldRender(Entity entity, //#if MC>=11500 - //$$ Frustum camera, + Frustum camera, //#else - VisibleRegion camera, + //$$ VisibleRegion camera, //#endif double camX, double camY, double camZ) { // Force arrows to always render, otherwise they stop rendering when you get close to them - return ReplayModReplay.instance.getReplayHandler() != null || super.isVisible(entity, camera, camX, camY, camZ); + return ReplayModReplay.instance.getReplayHandler() != null || super.shouldRender(entity, camera, camX, camY, camZ); } } //#endif diff --git a/src/main/java/com/replaymod/replay/mixin/MixinRenderItem.java b/src/main/java/com/replaymod/replay/mixin/MixinRenderItem.java index 9ca4c385..63eb3563 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinRenderItem.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinRenderItem.java @@ -13,17 +13,17 @@ import net.minecraft.util.Util; //#endif //#if MC>=11500 -//$$ @Mixin(net.minecraft.client.render.RenderPhase.class) +@Mixin(net.minecraft.client.render.RenderPhase.class) //#else -@Mixin(net.minecraft.client.render.item.ItemRenderer.class) +//$$ @Mixin(net.minecraft.client.render.item.ItemRenderer.class) //#endif public class MixinRenderItem { //#if MC>=11400 //#if MC>=11500 - //$$ @Redirect(method = "setupGlintTexturing", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;getMeasuringTimeMs()J")) + @Redirect(method = "setupGlintTexturing", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;getMeasuringTimeMs()J")) //#else //#if MC>=11400 - @Redirect(method = "renderGlint", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;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 diff --git a/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java b/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java index 1ced8cea..9139c516 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java @@ -13,17 +13,17 @@ import net.minecraft.util.Util; //#endif //#if MC>=11500 -//$$ @Mixin(net.minecraft.client.render.RenderPhase.PortalTexturing.class) +@Mixin(net.minecraft.client.render.RenderPhase.PortalTexturing.class) //#else -@Mixin(net.minecraft.client.render.block.entity.EndPortalBlockEntityRenderer.class) +//$$ @Mixin(net.minecraft.client.render.block.entity.EndPortalBlockEntityRenderer.class) //#endif public class MixinTileEntityEndPortalRenderer { //#if MC>=11500 - //$$ @Redirect(method = "method_23557", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;getMeasuringTimeMs()J")) - //$$ static + @Redirect(method = "method_23557", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;getMeasuringTimeMs()J")) + static //#else //#if MC>=11400 - @Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Util;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")) diff --git a/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java b/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java index 424dc51d..ee60b762 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinViewFrustum.java @@ -8,9 +8,9 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; //#if MC>=11500 -//$$ import net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk; +import net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk; //#else -import net.minecraft.client.render.chunk.ChunkRenderer; +//$$ import net.minecraft.client.render.chunk.ChunkRenderer; //#endif @Mixin(BuiltChunkStorage.class) @@ -21,9 +21,9 @@ public abstract class MixinViewFrustum { value = "INVOKE", //#if MC>=10904 //#if MC>=11500 - //$$ target = "Lnet/minecraft/client/render/chunk/ChunkBuilder$BuiltChunk;setOrigin(III)V" + target = "Lnet/minecraft/client/render/chunk/ChunkBuilder$BuiltChunk;setOrigin(III)V" //#else - target = "Lnet/minecraft/client/render/chunk/ChunkRenderer;setOrigin(III)V" + //$$ target = "Lnet/minecraft/client/render/chunk/ChunkRenderer;setOrigin(III)V" //#endif //#else //$$ target = "Lnet/minecraft/client/renderer/chunk/RenderChunk;setPosition(Lnet/minecraft/util/BlockPos;)V" @@ -32,9 +32,9 @@ public abstract class MixinViewFrustum { ) private void replayModReplay_updatePositionAndMarkForUpdate( //#if MC>=11500 - //$$ BuiltChunk renderChunk, + BuiltChunk renderChunk, //#else - ChunkRenderer renderChunk, + //$$ ChunkRenderer renderChunk, //#endif //#if MC>=10904 int x, int y, int z diff --git a/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java b/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java index efe9a1f7..d4ff56cd 100644 --- a/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java +++ b/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java @@ -25,8 +25,8 @@ import org.apache.commons.lang3.tuple.Triple; import org.lwjgl.opengl.GL11; //#if MC>=11500 -//$$ import com.mojang.blaze3d.systems.RenderSystem; -//$$ import net.minecraft.client.util.math.MatrixStack; +import com.mojang.blaze3d.systems.RenderSystem; +import net.minecraft.client.util.math.MatrixStack; //#endif //#if FABRIC>=1 @@ -61,9 +61,9 @@ public class PathPreviewRenderer extends EventRegistrations { //#if FABRIC>=1 { on(PostRenderWorldCallback.EVENT, this::renderCameraPath); } //#if MC>=11500 - //$$ private void renderCameraPath(MatrixStack matrixStack) { + private void renderCameraPath(MatrixStack matrixStack) { //#else - private void renderCameraPath() { + //$$ private void renderCameraPath() { //#endif //#else //$$ @SubscribeEvent @@ -92,10 +92,10 @@ public class PathPreviewRenderer extends EventRegistrations { Triple viewPos = Triple.of( Entity_getX(view), //#if MC>=10800 && MC<11500 - // Eye height is subtracted to make path appear higher (at eye height) than it actually is (at foot height) - Entity_getY(view) - view.getStandingEyeHeight(), + //$$ // Eye height is subtracted to make path appear higher (at eye height) than it actually is (at foot height) + //$$ Entity_getY(view) - view.getStandingEyeHeight(), //#else - //$$ Entity_getY(view), + Entity_getY(view), //#endif Entity_getZ(view) ); @@ -107,7 +107,7 @@ public class PathPreviewRenderer extends EventRegistrations { GL11.glDisable(GL11.GL_TEXTURE_2D); //#if MC>=11500 - //$$ RenderSystem.multMatrix(matrixStack.peek().getModel()); + RenderSystem.multMatrix(matrixStack.peek().getModel()); //#endif for (PathSegment segment : path.getSegments()) { @@ -291,11 +291,11 @@ public class PathPreviewRenderer extends EventRegistrations { ); GL11.glNormal3f(0, 1, 0); //#if MC>=11500 - //$$ GL11.glRotatef(-getRenderManager().camera.getYaw(), 0, 1, 0); - //$$ GL11.glRotatef(getRenderManager().camera.getPitch(), 1, 0, 0); + GL11.glRotatef(-getRenderManager().camera.getYaw(), 0, 1, 0); + GL11.glRotatef(getRenderManager().camera.getPitch(), 1, 0, 0); //#else - GL11.glRotatef(-getRenderManager().cameraYaw, 0, 1, 0); - GL11.glRotatef(getRenderManager().cameraPitch, 1, 0, 0); + //$$ GL11.glRotatef(-getRenderManager().cameraYaw, 0, 1, 0); + //$$ GL11.glRotatef(getRenderManager().cameraPitch, 1, 0, 0); //#endif Tessellator_getInstance().draw(); diff --git a/src/main/resources/assets/replaymod/shader/ods.frag b/src/main/resources/assets/replaymod/shader/ods.frag index 77d66645..f17f8f8d 100644 --- a/src/main/resources/assets/replaymod/shader/ods.frag +++ b/src/main/resources/assets/replaymod/shader/ods.frag @@ -5,13 +5,13 @@ varying vec4 vertColor; varying vec4 textureCoord; varying vec4 lightMapCoord; //#if MC>=11500 -//$$ varying vec4 overlayCoords; +varying vec4 overlayCoords; //#endif uniform sampler2D texture; uniform sampler2D lightMap; //#if MC>=11500 -//$$ uniform sampler2D overlay; +uniform sampler2D overlay; //#endif uniform bool textureEnabled; @@ -26,10 +26,10 @@ void main() { } if (overlayEnabled) { //#if MC>=11500 - //$$ vec4 c = texture2D(overlay, overlayCoords.st); - //$$ color = vec4(mix(c.rgb, color.rgb, c.a), color.a); + vec4 c = texture2D(overlay, overlayCoords.st); + color = vec4(mix(c.rgb, color.rgb, c.a), color.a); //#else - color = vec4(mix(color.rgb, vec3(1, 0, 0), 0.3), color.a); + //$$ color = vec4(mix(color.rgb, vec3(1, 0, 0), 0.3), color.a); //#endif } if (lightMapEnabled) { diff --git a/src/main/resources/assets/replaymod/shader/ods.vert b/src/main/resources/assets/replaymod/shader/ods.vert index 11f3fd66..43160450 100644 --- a/src/main/resources/assets/replaymod/shader/ods.vert +++ b/src/main/resources/assets/replaymod/shader/ods.vert @@ -6,7 +6,7 @@ varying float vertId; varying vec4 textureCoord; varying vec4 lightMapCoord; //#if MC>=11500 -//$$ varying vec4 overlayCoords; +varying vec4 overlayCoords; //#endif uniform bool leftEye; @@ -70,10 +70,10 @@ void main() { // Misc. textureCoord = gl_TextureMatrix[0] * gl_MultiTexCoord0; //#if MC>=11500 - //$$ overlayCoords = gl_TextureMatrix[1] * gl_MultiTexCoord1; - //$$ lightMapCoord = gl_TextureMatrix[2] * gl_MultiTexCoord2; + overlayCoords = gl_TextureMatrix[1] * gl_MultiTexCoord1; + lightMapCoord = gl_TextureMatrix[2] * gl_MultiTexCoord2; //#else - lightMapCoord = gl_TextureMatrix[1] * gl_MultiTexCoord1; + //$$ lightMapCoord = gl_TextureMatrix[1] * gl_MultiTexCoord1; //#endif vertColor = gl_Color; gl_FogFragCoord = sqrt(position.x * position.x + position.y * position.y + position.z * position.z); diff --git a/src/main/resources/mixins.render.blend.replaymod.json b/src/main/resources/mixins.render.blend.replaymod.json index dac97af8..abf980ae 100644 --- a/src/main/resources/mixins.render.blend.replaymod.json +++ b/src/main/resources/mixins.render.blend.replaymod.json @@ -6,12 +6,12 @@ "client": [ //#if MC>=10800 //#if MC<11500 - "WorldRendererAccessor", - "MixinChunkRenderWorker", - "MixinEffectRenderer", - "MixinModelRenderer", - "MixinTileEntityRendererDispatcher", - "ContainerLocalRenderInformationAccessor", + //$$ "WorldRendererAccessor", + //$$ "MixinChunkRenderWorker", + //$$ "MixinEffectRenderer", + //$$ "MixinModelRenderer", + //$$ "MixinTileEntityRendererDispatcher", + //$$ "ContainerLocalRenderInformationAccessor", //#endif //#if MC<10904 //$$ "EntityAccessor", diff --git a/src/main/resources/mixins.render.replaymod.json b/src/main/resources/mixins.render.replaymod.json index 092ff79c..d63d0d23 100644 --- a/src/main/resources/mixins.render.replaymod.json +++ b/src/main/resources/mixins.render.replaymod.json @@ -10,9 +10,9 @@ "Mixin_SkipBlockOutlinesDuringRender", //#if MC>=10800 //#if MC>=11500 - //$$ "Mixin_BlockOnChunkRebuilds", + "Mixin_BlockOnChunkRebuilds", //#else - "ChunkRenderDispatcherAccessor", + //$$ "ChunkRenderDispatcherAccessor", //#endif "Mixin_ForceChunkLoading", //#endif @@ -38,7 +38,7 @@ "MixinRender", //#if MC>=10800 //#if MC<11500 - "MixinRenderGlobal", + //$$ "MixinRenderGlobal", //#endif //#else //$$ "MixinOpenGlHelper", diff --git a/versions/mainProject b/versions/mainProject index 6bd55113..4761f0e9 100644 --- a/versions/mainProject +++ b/versions/mainProject @@ -1 +1 @@ -1.14.4 \ No newline at end of file +1.15.2 \ No newline at end of file