Port to MC 1.18-rc4
This commit is contained in:
12
build.gradle
12
build.gradle
@@ -108,9 +108,9 @@ preprocess {
|
|||||||
|
|
||||||
def mcVersionStr = "${(int)(mcVersion/10000)}.${(int)(mcVersion/100)%100}" + (mcVersion%100==0 ? '' : ".${mcVersion%100}")
|
def mcVersionStr = "${(int)(mcVersion/10000)}.${(int)(mcVersion/100)%100}" + (mcVersion%100==0 ? '' : ".${mcVersion%100}")
|
||||||
|
|
||||||
sourceCompatibility = targetCompatibility = mcVersion >= 11700 ? 16 : 1.8
|
sourceCompatibility = targetCompatibility = mcVersion >= 11800 ? 17 : mcVersion >= 11700 ? 16 : 1.8
|
||||||
tasks.withType(JavaCompile).configureEach {
|
tasks.withType(JavaCompile).configureEach {
|
||||||
options.release = mcVersion >= 11700 ? 16 : 8
|
options.release = mcVersion >= 11800 ? 17 : mcVersion >= 11700 ? 16 : 8
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mcVersion >= 11400) {
|
if (mcVersion >= 11400) {
|
||||||
@@ -243,7 +243,7 @@ dependencies {
|
|||||||
11604: '1.16.4',
|
11604: '1.16.4',
|
||||||
11700: '1.17',
|
11700: '1.17',
|
||||||
11701: '1.17.1',
|
11701: '1.17.1',
|
||||||
11800: '1.18-pre1',
|
11800: '1.18-rc4',
|
||||||
][mcVersion]
|
][mcVersion]
|
||||||
mappings 'net.fabricmc:yarn:' + [
|
mappings 'net.fabricmc:yarn:' + [
|
||||||
11404: '1.14.4+build.16',
|
11404: '1.14.4+build.16',
|
||||||
@@ -253,7 +253,7 @@ dependencies {
|
|||||||
11604: '1.16.4+build.6:v2',
|
11604: '1.16.4+build.6:v2',
|
||||||
11700: '1.17+build.13:v2',
|
11700: '1.17+build.13:v2',
|
||||||
11701: '1.17.1+build.29:v2',
|
11701: '1.17.1+build.29:v2',
|
||||||
11800: '1.18-pre1+build.5:v2',
|
11800: '1.18-rc4+build.1:v2',
|
||||||
][mcVersion]
|
][mcVersion]
|
||||||
modImplementation 'net.fabricmc:fabric-loader:0.12.5'
|
modImplementation 'net.fabricmc:fabric-loader:0.12.5'
|
||||||
def fabricApiVersion = [
|
def fabricApiVersion = [
|
||||||
@@ -264,7 +264,7 @@ dependencies {
|
|||||||
11604: '0.25.1+build.416-1.16',
|
11604: '0.25.1+build.416-1.16',
|
||||||
11700: '0.36.0+1.17',
|
11700: '0.36.0+1.17',
|
||||||
11701: '0.37.1+1.17',
|
11701: '0.37.1+1.17',
|
||||||
11800: '0.42.2+1.18',
|
11800: '0.43.1+1.18',
|
||||||
][mcVersion]
|
][mcVersion]
|
||||||
def fabricApiModules = [
|
def fabricApiModules = [
|
||||||
"api-base",
|
"api-base",
|
||||||
@@ -335,7 +335,7 @@ dependencies {
|
|||||||
|
|
||||||
shadow 'com.github.ReplayMod.JavaBlend:2.79.0:a0696f8'
|
shadow 'com.github.ReplayMod.JavaBlend:2.79.0:a0696f8'
|
||||||
|
|
||||||
shadow "com.github.ReplayMod:ReplayStudio:a5a92b6", shadeExclusions
|
shadow "com.github.ReplayMod:ReplayStudio:69b1296", shadeExclusions
|
||||||
|
|
||||||
implementation(FABRIC ? dependencies.project(path: jGui.path, configuration: "namedElements") : jGui) {
|
implementation(FABRIC ? dependencies.project(path: jGui.path, configuration: "namedElements") : jGui) {
|
||||||
transitive = false // FG 1.2 puts all MC deps into the compile configuration and we don't want to shade those
|
transitive = false // FG 1.2 puts all MC deps into the compile configuration and we don't want to shade those
|
||||||
|
|||||||
2
jGui
2
jGui
Submodule jGui updated: de380210d7...37b1273be4
@@ -10,6 +10,10 @@ import org.spongepowered.asm.mixin.gen.Accessor;
|
|||||||
|
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
|
|
||||||
|
//#if MC>=11800
|
||||||
|
//$$ import java.util.function.Supplier;
|
||||||
|
//#endif
|
||||||
|
|
||||||
//#if MC>=11400
|
//#if MC>=11400
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
//#endif
|
//#endif
|
||||||
@@ -49,7 +53,11 @@ public interface MinecraftAccessor {
|
|||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
@Accessor("crashReport")
|
@Accessor("crashReport")
|
||||||
|
//#if MC>=11800
|
||||||
|
//$$ Supplier<CrashReport> getCrashReporter();
|
||||||
|
//#else
|
||||||
CrashReport getCrashReporter();
|
CrashReport getCrashReporter();
|
||||||
|
//#endif
|
||||||
|
|
||||||
//#if MC<11400
|
//#if MC<11400
|
||||||
//$$ @Accessor
|
//$$ @Accessor
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.replaymod.core.versions;
|
|||||||
import com.google.common.util.concurrent.FutureCallback;
|
import com.google.common.util.concurrent.FutureCallback;
|
||||||
import com.google.common.util.concurrent.Futures;
|
import com.google.common.util.concurrent.Futures;
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
|
import com.replaymod.core.mixin.MinecraftAccessor;
|
||||||
import com.replaymod.gradle.remap.Pattern;
|
import com.replaymod.gradle.remap.Pattern;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.options.KeyBinding;
|
import net.minecraft.client.options.KeyBinding;
|
||||||
@@ -13,6 +14,8 @@ import net.minecraft.client.render.Tessellator;
|
|||||||
import net.minecraft.client.render.entity.EntityRenderDispatcher;
|
import net.minecraft.client.render.entity.EntityRenderDispatcher;
|
||||||
import net.minecraft.client.sound.PositionedSoundInstance;
|
import net.minecraft.client.sound.PositionedSoundInstance;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
|
import net.minecraft.util.crash.CrashException;
|
||||||
|
import net.minecraft.util.crash.CrashReport;
|
||||||
import net.minecraft.util.crash.CrashReportSection;
|
import net.minecraft.util.crash.CrashReportSection;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
@@ -542,4 +545,22 @@ class Patterns {
|
|||||||
Futures.addCallback(future, callback);
|
Futures.addCallback(future, callback);
|
||||||
//#endif
|
//#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Pattern
|
||||||
|
private static void setCrashReport(MinecraftClient mc, CrashReport report) {
|
||||||
|
//#if MC>=11800
|
||||||
|
//$$ mc.setCrashReportSupplier(() -> report);
|
||||||
|
//#else
|
||||||
|
mc.setCrashReport(report);
|
||||||
|
//#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
@Pattern
|
||||||
|
private static CrashException crashReportToException(MinecraftClient mc) {
|
||||||
|
//#if MC>=11800
|
||||||
|
//$$ return new CrashException(((MinecraftAccessor) mc).getCrashReporter().get());
|
||||||
|
//#else
|
||||||
|
return new CrashException(((MinecraftAccessor) mc).getCrashReporter());
|
||||||
|
//#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.replaymod.extras.playeroverview;
|
package com.replaymod.extras.playeroverview;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import com.replaymod.core.ReplayMod;
|
import com.replaymod.core.ReplayMod;
|
||||||
import com.replaymod.core.events.PreRenderHandCallback;
|
import com.replaymod.core.events.PreRenderHandCallback;
|
||||||
import com.replaymod.core.utils.Utils;
|
import com.replaymod.core.utils.Utils;
|
||||||
@@ -10,6 +9,7 @@ import com.replaymod.replay.ReplayModReplay;
|
|||||||
import com.replaymod.replay.camera.CameraEntity;
|
import com.replaymod.replay.camera.CameraEntity;
|
||||||
import com.replaymod.replay.events.ReplayClosedCallback;
|
import com.replaymod.replay.events.ReplayClosedCallback;
|
||||||
import com.replaymod.replay.events.ReplayOpenedCallback;
|
import com.replaymod.replay.events.ReplayOpenedCallback;
|
||||||
|
import com.replaymod.replaystudio.lib.guava.base.Optional;
|
||||||
import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.replaymod.render.utils;
|
package com.replaymod.render.utils;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.google.gson.TypeAdapter;
|
import com.google.gson.TypeAdapter;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.google.gson.stream.JsonReader;
|
import com.google.gson.stream.JsonReader;
|
||||||
import com.google.gson.stream.JsonWriter;
|
import com.google.gson.stream.JsonWriter;
|
||||||
import com.replaymod.render.RenderSettings;
|
import com.replaymod.render.RenderSettings;
|
||||||
|
import com.replaymod.replaystudio.lib.guava.base.Optional;
|
||||||
import com.replaymod.replaystudio.pathing.PathingRegistry;
|
import com.replaymod.replaystudio.pathing.PathingRegistry;
|
||||||
import com.replaymod.replaystudio.pathing.path.Timeline;
|
import com.replaymod.replaystudio.pathing.path.Timeline;
|
||||||
import com.replaymod.replaystudio.pathing.serialize.TimelineSerialization;
|
import com.replaymod.replaystudio.pathing.serialize.TimelineSerialization;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import net.minecraft.client.render.GameRenderer;
|
|||||||
import net.minecraft.client.render.LightmapTextureManager;
|
import net.minecraft.client.render.LightmapTextureManager;
|
||||||
import net.minecraft.client.render.WorldRenderer;
|
import net.minecraft.client.render.WorldRenderer;
|
||||||
import net.minecraft.client.render.chunk.ChunkBuilder;
|
import net.minecraft.client.render.chunk.ChunkBuilder;
|
||||||
|
import net.minecraft.client.render.chunk.ChunkRendererRegionBuilder;
|
||||||
import net.minecraft.client.util.math.MatrixStack;
|
import net.minecraft.client.util.math.MatrixStack;
|
||||||
import net.minecraft.util.math.Matrix4f;
|
import net.minecraft.util.math.Matrix4f;
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
@@ -45,11 +46,11 @@ public abstract class Mixin_ForceChunkLoading implements IForceChunkLoading {
|
|||||||
|
|
||||||
@Shadow @Final private MinecraftClient client;
|
@Shadow @Final private MinecraftClient client;
|
||||||
|
|
||||||
@Shadow @Final private ObjectArrayList<ChunkInfoAccessor> field_34807;
|
@Shadow @Final private ObjectArrayList<ChunkInfoAccessor> chunkInfos;
|
||||||
|
|
||||||
@Shadow private boolean field_34810;
|
@Shadow private boolean field_34810;
|
||||||
|
|
||||||
@Shadow @Final private BlockingQueue<ChunkBuilder.BuiltChunk> field_34816;
|
@Shadow @Final private BlockingQueue<ChunkBuilder.BuiltChunk> builtChunks;
|
||||||
|
|
||||||
@Shadow private Future<?> field_34808;
|
@Shadow private Future<?> field_34808;
|
||||||
|
|
||||||
@@ -64,6 +65,8 @@ public abstract class Mixin_ForceChunkLoading implements IForceChunkLoading {
|
|||||||
|
|
||||||
assert this.client.player != null;
|
assert this.client.player != null;
|
||||||
|
|
||||||
|
ChunkRendererRegionBuilder chunkRendererRegionBuilder = new ChunkRendererRegionBuilder();
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// Determine which chunks shall be visible
|
// Determine which chunks shall be visible
|
||||||
setupTerrain(camera, this.frustum, this.capturedFrustum != null, this.client.player.isSpectator());
|
setupTerrain(camera, this.frustum, this.capturedFrustum != null, this.client.player.isSpectator());
|
||||||
@@ -84,14 +87,14 @@ public abstract class Mixin_ForceChunkLoading implements IForceChunkLoading {
|
|||||||
|
|
||||||
// Schedule all chunks which need rebuilding (we schedule even important rebuilds because we wait for
|
// 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)
|
// all of them anyway and this way we can take advantage of threading)
|
||||||
for (ChunkInfoAccessor chunkInfo : this.field_34807) {
|
for (ChunkInfoAccessor chunkInfo : this.chunkInfos) {
|
||||||
ChunkBuilder.BuiltChunk builtChunk = chunkInfo.getChunk();
|
ChunkBuilder.BuiltChunk builtChunk = chunkInfo.getChunk();
|
||||||
if (!builtChunk.needsRebuild()) {
|
if (!builtChunk.needsRebuild()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// MC sometimes schedules invalid chunks when you're outside of loaded chunks (e.g. y > 256)
|
// MC sometimes schedules invalid chunks when you're outside of loaded chunks (e.g. y > 256)
|
||||||
if (builtChunk.shouldBuild()) {
|
if (builtChunk.shouldBuild()) {
|
||||||
builtChunk.scheduleRebuild(this.chunkBuilder);
|
builtChunk.scheduleRebuild(this.chunkBuilder, chunkRendererRegionBuilder);
|
||||||
}
|
}
|
||||||
builtChunk.cancelRebuild();
|
builtChunk.cancelRebuild();
|
||||||
}
|
}
|
||||||
@@ -100,6 +103,6 @@ public abstract class Mixin_ForceChunkLoading implements IForceChunkLoading {
|
|||||||
this.field_34810 |= ((ForceChunkLoadingHook.IBlockOnChunkRebuilds) this.chunkBuilder).uploadEverythingBlocking();
|
this.field_34810 |= ((ForceChunkLoadingHook.IBlockOnChunkRebuilds) this.chunkBuilder).uploadEverythingBlocking();
|
||||||
|
|
||||||
// Repeat until no more updates are needed
|
// Repeat until no more updates are needed
|
||||||
} while (this.field_34810 || !this.field_34816.isEmpty());
|
} while (this.field_34810 || !this.builtChunks.isEmpty());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user