From ef4d86629a00a9f76c48b987228a7713e3ef3315 Mon Sep 17 00:00:00 2001 From: ferriarnus <61201275+ferriarnus@users.noreply.github.com> Date: Mon, 1 Apr 2024 00:37:23 +0200 Subject: [PATCH] 1.20.1 --- build.gradle | 26 +++++++++++-------- gradle.properties | 8 +++--- settings.gradle | 2 +- .../java/me/cortex/voxy/ClientEvents.java | 18 +++++++++++++ src/main/java/me/cortex/voxy/MixyStub.java | 13 ++++++---- src/main/java/me/cortex/voxy/VoxyStub.java | 2 +- src/main/java/me/cortex/voxy/client/Voxy.java | 14 ++++++---- .../cortex/voxy/client/config/VoxyConfig.java | 2 +- .../voxy/client/core/ViewportSelector.java | 2 +- .../voxy/client/core/model/ModelManager.java | 9 ++++--- .../client/core/model/ModelTextureBakery.java | 4 +-- .../core/rendering/post/PostProcessing.java | 2 +- .../voxy/client/core/util/IrisUtil.java | 3 +-- .../mixin/minecraft/MixinMinecraftClient.java | 2 +- .../sodium/MixinDefaultChunkRenderer.java | 1 - .../client/saver/ContextSelectionSystem.java | 10 +++---- .../voxy/common/config/Serialization.java | 2 +- .../inmemory/MemoryStorageBackend.java | 3 ++- .../voxy/common/world/other/Mapper.java | 4 +-- src/main/resources/META-INF/mods.toml | 17 +++++------- src/main/resources/pack.mcmeta | 6 +++++ 21 files changed, 91 insertions(+), 59 deletions(-) create mode 100644 src/main/java/me/cortex/voxy/ClientEvents.java create mode 100644 src/main/resources/pack.mcmeta diff --git a/build.gradle b/build.gradle index 71a498e2..a28981ef 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ repositories { } maven { url "https://maven.shedaniel.me/" } maven { url "https://maven.terraformersmc.com/releases/" } - maven { url "https://maven.neoforged.net" } + maven { url "https://maven.minecraftforge.net" } maven { url "https://maven.blamejared.com/" } } @@ -34,7 +34,14 @@ processResources { } loom { + mixin.defaultRefmapName = "voxy.refmap.json" accessWidenerPath = file("src/main/resources/voxy.accesswidener") + + forge { + mixinConfigs = [ + "voxy.mixins.json" + ] + } } configurations { @@ -52,7 +59,7 @@ dependencies { it.mappings("net.fabricmc:yarn:${project.yarn_mappings}:v2") it.mappings file("mappings/yarnpatch.tiny") } - neoForge "net.neoforged:neoforge:${project.neoforge_version}" + forge "net.minecraftforge:forge:${project.minecraft_version}-${project.neoforge_version}" // modImplementation(fabricApi.module("fabric-api-base", project.fabric_version)) // modImplementation(fabricApi.module("fabric-rendering-fluids-v1", project.fabric_version)) @@ -63,22 +70,19 @@ dependencies { // modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" //TODO: this is to eventually not need sodium installed as atm its just used for parsing shaders - modRuntimeOnly "maven.modrinth:embeddium:0.3.9+mc1.20.4" - modCompileOnly "maven.modrinth:embeddium:0.3.9+mc1.20.4" + modRuntimeOnly "maven.modrinth:embeddium:0.3.11+mc1.20.1" + modCompileOnly "maven.modrinth:embeddium:0.3.11+mc1.20.1" //modRuntimeOnly "maven.modrinth:nvidium:0.2.6-beta" modCompileOnly "maven.modrinth:nvidium:0.2.6-beta" - modImplementation("maven.modrinth:cloth-config:13.0.121+neoforge") + modImplementation("maven.modrinth:cloth-config:11.1.118+forge") //modImplementation("maven.modrinth:modmenu:9.0.0") - modCompileOnly("maven.modrinth:iris:1.6.17+1.20.4") + modCompileOnly("maven.modrinth:iris:1.6.17+1.20.1") //modRuntimeOnly("maven.modrinth:iris:1.6.17+1.20.4") - modCompileOnly("maven.modrinth:starlight:1.1.3+1.20.4") + modCompileOnly("maven.modrinth:starlight:1.1.2+1.20") //modCompileOnly("maven.modrinth:immersiveportals:v5.1.7-mc1.20.4") - modCompileOnly("maven.modrinth:vivecraft:1.20.4-1.1.6-fabric") - - modCompileOnly("blusunrize.immersiveengineering:ImmersiveEngineering:1.20.4-10.0.1-pre.198") - //modRuntimeOnly("blusunrize.immersiveengineering:ImmersiveEngineering:1.20.4-10.0.1-pre.198") + modCompileOnly("maven.modrinth:vivecraft:1.20.1-1.1.7-forge") } diff --git a/gradle.properties b/gradle.properties index d6a35e58..01f97ac0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,8 +3,8 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://modmuss50.me/fabric.html -minecraft_version=1.20.4 -yarn_mappings=1.20.4+build.1 +minecraft_version=1.20.1 +yarn_mappings=1.20.2+build.1 loader_version=0.15.1 # Mod Properties @@ -14,5 +14,5 @@ archives_base_name = mixy fabric_version=0.91.1+1.20.4 -loom.platform=neoforge -neoforge_version=20.4.200 +loom.platform=forge +neoforge_version=47.1.3 diff --git a/settings.gradle b/settings.gradle index 5cfe2ad1..9f842eb2 100644 --- a/settings.gradle +++ b/settings.gradle @@ -4,7 +4,7 @@ pluginManagement { name = 'Fabric' url = 'https://maven.fabricmc.net/' } - maven { url "https://maven.neoforged.net" } + maven { url "https://maven.minecraftforge.net" } maven { url "https://maven.architectury.dev/" } mavenCentral() gradlePluginPortal() diff --git a/src/main/java/me/cortex/voxy/ClientEvents.java b/src/main/java/me/cortex/voxy/ClientEvents.java new file mode 100644 index 00000000..8381a430 --- /dev/null +++ b/src/main/java/me/cortex/voxy/ClientEvents.java @@ -0,0 +1,18 @@ +package me.cortex.voxy; + +import me.cortex.voxy.client.config.VoxyConfigScreenFactory; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.ConfigScreenHandler; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.lifecycle.FMLConstructModEvent; + +@Mod.EventBusSubscriber(value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.MOD, modid = "mixy") +public class ClientEvents { + + @SubscribeEvent + static void registerConfigScreen(FMLConstructModEvent event) { + ModLoadingContext.get().registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () -> new ConfigScreenHandler.ConfigScreenFactory(VoxyConfigScreenFactory.getModConfigScreenFactory())); + } +} diff --git a/src/main/java/me/cortex/voxy/MixyStub.java b/src/main/java/me/cortex/voxy/MixyStub.java index 924f3599..79bca4e7 100644 --- a/src/main/java/me/cortex/voxy/MixyStub.java +++ b/src/main/java/me/cortex/voxy/MixyStub.java @@ -1,16 +1,19 @@ package me.cortex.voxy; import me.cortex.voxy.client.config.VoxyConfigScreenFactory; -import net.neoforged.fml.ModContainer; -import net.neoforged.fml.common.Mod; -import net.neoforged.neoforge.client.ConfigScreenHandler; +import net.minecraftforge.client.ConfigScreenHandler; +import net.minecraftforge.fml.ModContainer; +import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; +import net.minecraftforge.fml.event.lifecycle.FMLConstructModEvent; @Mod(MixyStub.MODID) public class MixyStub { public static final String MODID = "mixy"; - public MixyStub(ModContainer container) { - container.registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () -> new ConfigScreenHandler.ConfigScreenFactory(VoxyConfigScreenFactory.getModConfigScreenFactory())); + public MixyStub() { + } } diff --git a/src/main/java/me/cortex/voxy/VoxyStub.java b/src/main/java/me/cortex/voxy/VoxyStub.java index c6ac2e3d..cd362032 100644 --- a/src/main/java/me/cortex/voxy/VoxyStub.java +++ b/src/main/java/me/cortex/voxy/VoxyStub.java @@ -1,6 +1,6 @@ package me.cortex.voxy; -import net.neoforged.fml.common.Mod; +import net.minecraftforge.fml.common.Mod; @Mod("voxy") public class VoxyStub { diff --git a/src/main/java/me/cortex/voxy/client/Voxy.java b/src/main/java/me/cortex/voxy/client/Voxy.java index 44ee1509..07f15b7c 100644 --- a/src/main/java/me/cortex/voxy/client/Voxy.java +++ b/src/main/java/me/cortex/voxy/client/Voxy.java @@ -1,15 +1,19 @@ package me.cortex.voxy.client; import me.cortex.voxy.MixyStub; +import me.cortex.voxy.client.config.VoxyConfigScreenFactory; import me.cortex.voxy.client.core.VoxelCore; import me.cortex.voxy.client.saver.ContextSelectionSystem; import me.cortex.voxy.client.terrain.WorldImportCommand; import net.minecraft.client.world.ClientWorld; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.fml.ModList; -import net.neoforged.fml.common.Mod; -import net.neoforged.neoforge.client.event.RegisterClientCommandsEvent; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.ConfigScreenHandler; +import net.minecraftforge.client.event.RegisterClientCommandsEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.lifecycle.FMLConstructModEvent; @Mod.EventBusSubscriber(value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.FORGE) public class Voxy { diff --git a/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java b/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java index 985fed09..502746fc 100644 --- a/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java +++ b/src/main/java/me/cortex/voxy/client/config/VoxyConfig.java @@ -3,7 +3,7 @@ import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import net.neoforged.fml.loading.FMLPaths; +import net.minecraftforge.fml.loading.FMLPaths; import org.lwjgl.opengl.GL; import java.io.FileReader; diff --git a/src/main/java/me/cortex/voxy/client/core/ViewportSelector.java b/src/main/java/me/cortex/voxy/client/core/ViewportSelector.java index 69eaa2b7..7c178380 100644 --- a/src/main/java/me/cortex/voxy/client/core/ViewportSelector.java +++ b/src/main/java/me/cortex/voxy/client/core/ViewportSelector.java @@ -2,7 +2,7 @@ import me.cortex.voxy.client.core.rendering.AbstractFarWorldRenderer; import me.cortex.voxy.client.core.rendering.Viewport; -import net.neoforged.fml.loading.LoadingModList; +import net.minecraftforge.fml.loading.LoadingModList; import org.vivecraft.client_vr.ClientDataHolderVR; import java.util.HashMap; diff --git a/src/main/java/me/cortex/voxy/client/core/model/ModelManager.java b/src/main/java/me/cortex/voxy/client/core/model/ModelManager.java index 3547718c..8727f259 100644 --- a/src/main/java/me/cortex/voxy/client/core/model/ModelManager.java +++ b/src/main/java/me/cortex/voxy/client/core/model/ModelManager.java @@ -33,8 +33,9 @@ import net.minecraft.world.biome.BiomeKeys; import net.minecraft.world.biome.ColorResolver; import net.minecraft.world.chunk.light.LightingProvider; -import net.neoforged.neoforge.client.ChunkRenderTypeSet; -import net.neoforged.neoforge.client.model.data.ModelData; +import net.minecraftforge.client.ChunkRenderTypeSet; +import net.minecraftforge.client.model.data.ModelData; +import net.minecraftforge.registries.ForgeRegistries; import org.jetbrains.annotations.Nullable; import org.lwjgl.system.MemoryUtil; @@ -195,7 +196,7 @@ public int addEntry(int blockId, BlockState blockState) { this.fluidStateLUT[modelId] = clientFluidStateId; } - var colourProvider = MinecraftClient.getInstance().getBlockColors().providers.get(blockState.getBlock()); + var colourProvider = MinecraftClient.getInstance().getBlockColors().providers.get(ForgeRegistries.BLOCKS.getDelegateOrThrow(blockState.getBlock())); var model = MinecraftClient.getInstance() .getBakedModelManager() .getBlockModels() @@ -392,7 +393,7 @@ public void addBiome(int id, Biome biome) { int i = 0; for (var entry : this.modelsRequiringBiomeColours) { - var colourProvider = MinecraftClient.getInstance().getBlockColors().providers.get(entry.getRight().getBlock()); + var colourProvider = MinecraftClient.getInstance().getBlockColors().providers.get(ForgeRegistries.BLOCKS.getDelegateOrThrow(entry.getRight().getBlock())); if (colourProvider == null) { throw new IllegalStateException(); } diff --git a/src/main/java/me/cortex/voxy/client/core/model/ModelTextureBakery.java b/src/main/java/me/cortex/voxy/client/core/model/ModelTextureBakery.java index ca876a67..9296a936 100644 --- a/src/main/java/me/cortex/voxy/client/core/model/ModelTextureBakery.java +++ b/src/main/java/me/cortex/voxy/client/core/model/ModelTextureBakery.java @@ -27,8 +27,8 @@ import net.minecraft.world.LightType; import net.minecraft.world.biome.ColorResolver; import net.minecraft.world.chunk.light.LightingProvider; -import net.neoforged.neoforge.client.ChunkRenderTypeSet; -import net.neoforged.neoforge.client.model.data.ModelData; +import net.minecraftforge.client.ChunkRenderTypeSet; +import net.minecraftforge.client.model.data.ModelData; import org.jetbrains.annotations.Nullable; import org.joml.Matrix4f; import org.lwjgl.opengl.GL11C; diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/post/PostProcessing.java b/src/main/java/me/cortex/voxy/client/core/rendering/post/PostProcessing.java index 76ce821b..932c080e 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/post/PostProcessing.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/post/PostProcessing.java @@ -66,7 +66,7 @@ public void setSize(int width, int height) { this.colour = new GlTexture().store(GL_RGBA8, 1, width, height); this.colourSSAO = new GlTexture().store(GL_RGBA8, 1, width, height); - this.depthStencil = new GlTexture().store(GL_DEPTH32F_STENCIL8, 1, width, height); // use instead of GL_DEPTH24_STENCIL8, as GL_DEPTH32F_STENCIL8 is used by forge + this.depthStencil = new GlTexture().store(GL_DEPTH24_STENCIL8, 1, width, height); glTextureParameterf(this.colour.id, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTextureParameterf(this.colour.id, GL_TEXTURE_MAG_FILTER, GL_NEAREST); diff --git a/src/main/java/me/cortex/voxy/client/core/util/IrisUtil.java b/src/main/java/me/cortex/voxy/client/core/util/IrisUtil.java index be076c85..7ca91004 100644 --- a/src/main/java/me/cortex/voxy/client/core/util/IrisUtil.java +++ b/src/main/java/me/cortex/voxy/client/core/util/IrisUtil.java @@ -1,8 +1,7 @@ package me.cortex.voxy.client.core.util; import net.coderbot.iris.pipeline.ShadowRenderer; -import net.neoforged.fml.ModList; -import net.neoforged.fml.loading.LoadingModList; +import net.minecraftforge.fml.loading.LoadingModList; public class IrisUtil { private static final boolean IRIS_INSTALLED = LoadingModList.get().getModFileById("iris") != null || LoadingModList.get().getModFileById("oculus") != null; diff --git a/src/main/java/me/cortex/voxy/client/mixin/minecraft/MixinMinecraftClient.java b/src/main/java/me/cortex/voxy/client/mixin/minecraft/MixinMinecraftClient.java index 8c3f0159..23d6cc20 100644 --- a/src/main/java/me/cortex/voxy/client/mixin/minecraft/MixinMinecraftClient.java +++ b/src/main/java/me/cortex/voxy/client/mixin/minecraft/MixinMinecraftClient.java @@ -9,7 +9,7 @@ @Mixin(MinecraftClient.class) public class MixinMinecraftClient { - @Inject(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/resource/PeriodicNotificationManager;(Lnet/minecraft/util/Identifier;Lit/unimi/dsi/fastutil/objects/Object2BooleanFunction;)V", shift = At.Shift.AFTER)) + //@Inject(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/resource/PeriodicNotificationManager;(Lnet/minecraft/util/Identifier;Lit/unimi/dsi/fastutil/objects/Object2BooleanFunction;)V", shift = At.Shift.AFTER)) private void injectRenderDoc(RunArgs args, CallbackInfo ci) { //System.load("C:\\Program Files\\RenderDoc\\renderdoc.dll"); } diff --git a/src/main/java/me/cortex/voxy/client/mixin/sodium/MixinDefaultChunkRenderer.java b/src/main/java/me/cortex/voxy/client/mixin/sodium/MixinDefaultChunkRenderer.java index 64cdbcf4..b3e01841 100644 --- a/src/main/java/me/cortex/voxy/client/mixin/sodium/MixinDefaultChunkRenderer.java +++ b/src/main/java/me/cortex/voxy/client/mixin/sodium/MixinDefaultChunkRenderer.java @@ -13,7 +13,6 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.util.math.MatrixStack; import org.joml.Matrix4f; -import org.spongepowered.asm.mixin.FabricUtil; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/me/cortex/voxy/client/saver/ContextSelectionSystem.java b/src/main/java/me/cortex/voxy/client/saver/ContextSelectionSystem.java index 9d997bd7..9466d48c 100644 --- a/src/main/java/me/cortex/voxy/client/saver/ContextSelectionSystem.java +++ b/src/main/java/me/cortex/voxy/client/saver/ContextSelectionSystem.java @@ -117,11 +117,11 @@ private static Path getBasePath(ClientWorld world) { System.err.println("Server info null"); basePath = basePath.resolve("UNKNOWN"); } else { - if (info.isRealm()) { - basePath = basePath.resolve("realms"); - } else { - basePath = basePath.resolve(info.address.replace(":", "_")); - } +// if (info.isRealm()) { +// basePath = basePath.resolve("realms"); +// } else { + basePath = basePath.resolve(info.address.replace(":", "_")); +// } } } } diff --git a/src/main/java/me/cortex/voxy/common/config/Serialization.java b/src/main/java/me/cortex/voxy/common/config/Serialization.java index ec9d7cbd..9d13a5aa 100644 --- a/src/main/java/me/cortex/voxy/common/config/Serialization.java +++ b/src/main/java/me/cortex/voxy/common/config/Serialization.java @@ -5,7 +5,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import me.cortex.voxy.MixyStub; -import net.neoforged.fml.loading.LoadingModList; +import net.minecraftforge.fml.loading.LoadingModList; import java.io.BufferedReader; import java.io.IOException; diff --git a/src/main/java/me/cortex/voxy/common/storage/inmemory/MemoryStorageBackend.java b/src/main/java/me/cortex/voxy/common/storage/inmemory/MemoryStorageBackend.java index 814105f3..4d7009ca 100644 --- a/src/main/java/me/cortex/voxy/common/storage/inmemory/MemoryStorageBackend.java +++ b/src/main/java/me/cortex/voxy/common/storage/inmemory/MemoryStorageBackend.java @@ -13,6 +13,7 @@ import org.lwjgl.system.MemoryUtil; import java.nio.ByteBuffer; +import java.util.stream.Stream; public class MemoryStorageBackend extends StorageBackend { private final Long2ObjectMap[] maps; @@ -103,7 +104,7 @@ public void flush() { @Override public void close() { - Streams.of(this.maps).map(Long2ObjectMap::values).flatMap(ObjectCollection::stream).forEach(MemoryUtil::memFree); + Stream.of(this.maps).map(Long2ObjectMap::values).flatMap(ObjectCollection::stream).forEach(MemoryUtil::memFree); this.idMappings.values().forEach(MemoryUtil::memFree); } diff --git a/src/main/java/me/cortex/voxy/common/world/other/Mapper.java b/src/main/java/me/cortex/voxy/common/world/other/Mapper.java index 2fd71f65..8d58f5f1 100644 --- a/src/main/java/me/cortex/voxy/common/world/other/Mapper.java +++ b/src/main/java/me/cortex/voxy/common/world/other/Mapper.java @@ -287,7 +287,7 @@ public byte[] serialize() { public static StateEntry deserialize(int id, byte[] data) { try { - var compound = NbtIo.readCompressed(new ByteArrayInputStream(data), NbtTagSizeTracker.ofUnlimitedBytes()); + var compound = NbtIo.readCompressed(new ByteArrayInputStream(data)); if (compound.getInt("id") != id) { throw new IllegalStateException("Encoded id != expected id"); } @@ -323,7 +323,7 @@ public byte[] serialize() { public static BiomeEntry deserialize(int id, byte[] data) { try { - var compound = NbtIo.readCompressed(new ByteArrayInputStream(data), NbtTagSizeTracker.ofUnlimitedBytes()); + var compound = NbtIo.readCompressed(new ByteArrayInputStream(data)); if (compound.getInt("id") != id) { throw new IllegalStateException("Encoded id != expected id"); } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 5e3166b7..b256f025 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -13,29 +13,26 @@ Far distance rendering mod utilising LoDs ''' [[dependencies.mixy]] -modId = "neoforge" -type="required" -versionRange = "[20.4.40-beta,)" +modId = "forge" +mandatory = true +versionRange = "[46,)" ordering = "NONE" side = "BOTH" [[dependencies.mixy]] modId = "minecraft" -type="required" -versionRange = "[1.20.4,1.20.5)" +mandatory = true +versionRange = "[1.20,1.20.1]" ordering = "NONE" side = "BOTH" [[dependencies.mixy]] modId = "embeddium" -type="required" -versionRange = "[0.2.2+mc1.20.4, )" +mandatory = true +versionRange = "[0.2.2+mc1.20.1, )" ordering = "NONE" side = "CLIENT" -[[mixins]] -config = "voxy.mixins.json" - #[[accessTransformers]] #file="META-INF/accesstransformer.cfg" diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta new file mode 100644 index 00000000..fd8b358e --- /dev/null +++ b/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "voxy resources", + "pack_format": 15 + } +} \ No newline at end of file