From 82920e570f24a407199b064c8f3e4afca09bb02a Mon Sep 17 00:00:00 2001 From: dfsek Date: Mon, 4 Jul 2022 20:54:07 -0700 Subject: [PATCH] add quilt platform implementation --- buildSrc/build.gradle.kts | 4 +- buildSrc/src/main/kotlin/DependencyConfig.kt | 20 ++- buildSrc/src/main/kotlin/Versions.kt | 6 + gradle.properties | 17 +- platforms/mixin-common/build.gradle.kts | 2 +- platforms/quilt/build.gradle.kts | 60 +++++++ .../com/dfsek/terra/quilt/PlatformImpl.java | 151 ++++++++++++++++++ .../com/dfsek/terra/quilt/QuiltAddon.java | 16 ++ .../dfsek/terra/quilt/QuiltEntryPoint.java | 76 +++++++++ .../mixin/lifecycle/MinecraftServerMixin.java | 32 ++++ .../mixin/lifecycle/NoiseConfigMixin.java | 31 ++++ .../quilt/mixin/lifecycle/RegistryMixin.java | 19 +++ .../client/MinecraftClientMixin.java | 40 +++++ .../quilt/mixin/lifecycle/package-info.java | 22 +++ .../lifecycle/server/ServerMainMixin.java | 39 +++++ .../com/dfsek/terra/quilt/util/BiomeUtil.java | 71 ++++++++ .../src/main/resources/assets/terra/icon.png | Bin 0 -> 129860 bytes .../resources/assets/terra/lang/en_us.json | 4 + .../quilt/src/main/resources/quilt.mod.json | 52 ++++++ .../main/resources/terra.quilt.mixins.json | 20 +++ settings.gradle.kts | 7 +- 21 files changed, 671 insertions(+), 18 deletions(-) create mode 100644 platforms/quilt/build.gradle.kts create mode 100644 platforms/quilt/src/main/java/com/dfsek/terra/quilt/PlatformImpl.java create mode 100644 platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltAddon.java create mode 100644 platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltEntryPoint.java create mode 100644 platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/MinecraftServerMixin.java create mode 100644 platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/NoiseConfigMixin.java create mode 100644 platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/RegistryMixin.java create mode 100644 platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/client/MinecraftClientMixin.java create mode 100644 platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/package-info.java create mode 100644 platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/server/ServerMainMixin.java create mode 100644 platforms/quilt/src/main/java/com/dfsek/terra/quilt/util/BiomeUtil.java create mode 100644 platforms/quilt/src/main/resources/assets/terra/icon.png create mode 100644 platforms/quilt/src/main/resources/assets/terra/lang/en_us.json create mode 100644 platforms/quilt/src/main/resources/quilt.mod.json create mode 100644 platforms/quilt/src/main/resources/terra.quilt.mixins.json diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 21036749f..d6fbe2a8f 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -15,7 +15,9 @@ buildscript { repositories { mavenCentral() gradlePluginPortal() - maven { url = uri("https://repo.codemc.org/repository/maven-public") } + maven("https://repo.codemc.org/repository/maven-public") { + name = "CodeMC" + } maven("https://papermc.io/repo/repository/maven-public/") { name = "PaperMC" } diff --git a/buildSrc/src/main/kotlin/DependencyConfig.kt b/buildSrc/src/main/kotlin/DependencyConfig.kt index a507eb96c..55f6f18b6 100644 --- a/buildSrc/src/main/kotlin/DependencyConfig.kt +++ b/buildSrc/src/main/kotlin/DependencyConfig.kt @@ -30,11 +30,21 @@ fun Project.configureDependencies() { repositories { mavenCentral() gradlePluginPortal() - maven("https://maven.fabricmc.net/") - maven("https://repo.codemc.org/repository/maven-public") - maven("https://repo.codemc.io/repository/nms/") - maven("https://papermc.io/repo/repository/maven-public/") - maven ( "https://files.minecraftforge.net/maven/" ) + maven("https://maven.fabricmc.net/") { + name = "FabricMC" + } + maven("https://repo.codemc.org/repository/maven-public") { + name = "CodeMC" + } + maven("https://papermc.io/repo/repository/maven-public/") { + name = "PaperMC" + } + maven ( "https://files.minecraftforge.net/maven/" ) { + name = "Forge" + } + maven ("https://maven.quiltmc.org/repository/release/") { + name = "Quilt" + } } dependencies { diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 78517707c..d5a77a8c4 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -25,6 +25,12 @@ object Versions { const val minotaur = "1.1.0" } + object Quilt { + const val quiltLoader = "0.17.0" + const val loom = "0.12.+" + const val fabricApi = "2.0.0-alpha.2+0.55.3-1.19" + } + object Mod { const val minecraft = "1.19" const val yarn = "$minecraft+build.1" diff --git a/gradle.properties b/gradle.properties index 62df22f83..35e42e00d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,11 @@ -# Magic options for more perf +# Project information +terra.description=A modern voxel world generation modding platform +terra.source=https://github.com/PolyhedralDev/Terra +terra.issues=https://github.com/PolyhedralDev/Terra/issues +terra.wiki=https://github.com/PolyhedralDev/Terra/wiki +terra.license=MIT + +# Gradle options org.gradle.jvmargs=-Xmx3072M -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC org.gradle.vfs.watch=true kapt.use.worker.api=true @@ -6,11 +13,3 @@ kapt.include.compile.classpath=false org.gradle.parallel=true org.gradle.caching=true org.gradle.warning.mode=all -#org.gradle.logging.level=info -#org.gradle.configureondemand=true -# Project information -terra.description=A modern voxel world generation modding platform -terra.source=https://github.com/PolyhedralDev/Terra -terra.issues=https://github.com/PolyhedralDev/Terra/issues -terra.wiki=https://github.com/PolyhedralDev/Terra/wiki -terra.license=GNU General Public License, version 3.0 \ No newline at end of file diff --git a/platforms/mixin-common/build.gradle.kts b/platforms/mixin-common/build.gradle.kts index 8646e8b39..47b720ca2 100644 --- a/platforms/mixin-common/build.gradle.kts +++ b/platforms/mixin-common/build.gradle.kts @@ -22,7 +22,7 @@ dependencies { } architectury { - common("fabric", "forge") + common("fabric", "forge", "quilt") minecraft = Versions.Mod.minecraft } diff --git a/platforms/quilt/build.gradle.kts b/platforms/quilt/build.gradle.kts new file mode 100644 index 000000000..5bfcf8099 --- /dev/null +++ b/platforms/quilt/build.gradle.kts @@ -0,0 +1,60 @@ +plugins { + id("org.quiltmc.loom") version Versions.Quilt.loom + id("architectury-plugin") version Versions.Mod.architectutyPlugin +} + + +configurations { + val common by creating + compileClasspath.get().extendsFrom(common) + runtimeClasspath.get().extendsFrom(common) +} + +dependencies { + shadedApi(project(":common:implementation:base")) + + "common"(project(path = ":platforms:mixin-common", configuration = "namedElements")) { isTransitive = false } + shaded(project(path = ":platforms:mixin-common", configuration = "transformProductionQuilt")) { isTransitive = false } + + minecraft("com.mojang:minecraft:${Versions.Mod.minecraft}") + mappings("net.fabricmc:yarn:${Versions.Mod.yarn}:v2") + + modImplementation("org.quiltmc:quilt-loader:${Versions.Quilt.quiltLoader}") + + modApi("org.quiltmc.quilted-fabric-api:quilted-fabric-api:${Versions.Quilt.fabricApi}") + + setOf("fabric-lifecycle-events-v1", "fabric-resource-loader-v0", "fabric-api-base", "fabric-command-api-v2", "fabric-networking-api-v1").forEach { apiModule -> + val module = fabricApi.module(apiModule, Versions.Fabric.fabricAPI) + modImplementation(module) + include(module) + } + + modImplementation("cloud.commandframework", "cloud-fabric", Versions.Libraries.cloud) + include("cloud.commandframework", "cloud-fabric", Versions.Libraries.cloud) +} + +loom { + accessWidenerPath.set(project(":platforms:mixin-common").file("terra.accesswidener")) + + mixin { + defaultRefmapName.set("terra.quilt.refmap.json") + } +} + + +addonDir(project.file("./run/config/Terra/addons"), tasks.named("configureLaunch").get()) + +tasks { + compileJava { + options.release.set(17) + } + + remapJar { + inputFile.set(shadowJar.get().archiveFile) + archiveFileName.set("${rootProject.name.capitalize()}-${project.version}.jar") + } + + processResources { + from(project(":platforms:mixin-common").file("terra.accesswidener")) + } +} diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/PlatformImpl.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/PlatformImpl.java new file mode 100644 index 000000000..958e61080 --- /dev/null +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/PlatformImpl.java @@ -0,0 +1,151 @@ +/* + * This file is part of Terra. + * + * Terra is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Terra is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Terra. If not, see . + */ + +package com.dfsek.terra.quilt; + +import ca.solostudios.strata.Versions; +import ca.solostudios.strata.parser.tokenizer.ParseException; +import ca.solostudios.strata.version.Version; +import net.minecraft.MinecraftVersion; +import net.minecraft.server.MinecraftServer; +import org.jetbrains.annotations.NotNull; +import org.quiltmc.loader.api.QuiltLoader; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import com.dfsek.terra.addon.EphemeralAddon; +import com.dfsek.terra.api.addon.BaseAddon; +import com.dfsek.terra.api.handle.ItemHandle; +import com.dfsek.terra.api.handle.WorldHandle; +import com.dfsek.terra.api.util.generic.Lazy; +import com.dfsek.terra.mod.CommonPlatform; +import com.dfsek.terra.mod.ModPlatform; +import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; +import com.dfsek.terra.mod.handle.MinecraftItemHandle; +import com.dfsek.terra.mod.handle.MinecraftWorldHandle; +import com.dfsek.terra.quilt.util.BiomeUtil; + + +public class PlatformImpl extends ModPlatform { + private static final Logger LOGGER = LoggerFactory.getLogger(PlatformImpl.class); + private final ItemHandle itemHandle = new MinecraftItemHandle(); + private final WorldHandle worldHandle = new MinecraftWorldHandle(); + private final Lazy dataFolder = Lazy.lazy(() -> new File(QuiltLoader.getConfigDir().toFile(), "Terra")); + private MinecraftServer server; + + public PlatformImpl() { + CommonPlatform.initialize(this); + load(); + } + + public void setServer(MinecraftServer server) { + this.server = server; + } + + @Override + public MinecraftServer getServer() { + return server; + } + + @Override + public boolean reload() { + getTerraConfig().load(this); + getRawConfigRegistry().clear(); + boolean succeed = getRawConfigRegistry().loadAll(this); + + + if(server != null) { + server.reloadResources(server.getDataPackManager().getNames()).exceptionally(throwable -> { + LOGGER.warn("Failed to execute reload", throwable); + return null; + }).join(); + BiomeUtil.registerBiomes(); + server.getWorlds().forEach(world -> { + if(world.getChunkManager().getChunkGenerator() instanceof MinecraftChunkGeneratorWrapper chunkGeneratorWrapper) { + getConfigRegistry().get(chunkGeneratorWrapper.getPack().getRegistryKey()).ifPresent(pack -> { + chunkGeneratorWrapper.setPack(pack); + LOGGER.info("Replaced pack in chunk generator for world {}", world); + }); + } + }); + } + return succeed; + } + + @Override + protected Iterable platformAddon() { + List addons = new ArrayList<>(); + + super.platformAddon().forEach(addons::add); + + String mcVersion = MinecraftVersion.CURRENT.getReleaseTarget(); + try { + addons.add(new EphemeralAddon(Versions.parseVersion(mcVersion), "minecraft")); + } catch(ParseException e) { + try { + addons.add(new EphemeralAddon(Versions.parseVersion(mcVersion + ".0"), "minecraft")); + } catch(ParseException ex) { + LOGGER.warn("Failed to parse Minecraft version", e); + } + } + + QuiltLoader.getAllMods().forEach(mod -> { + String id = mod.metadata().id(); + if(id.equals("terra") || id.equals("minecraft") || id.equals("java")) return; + try { + Version version = Versions.parseVersion(mod.metadata().version().raw()); + addons.add(new EphemeralAddon(version, "quilt:" + id)); + } catch(ParseException e) { + LOGGER.warn( + "Mod {}, version {} does not follow semantic versioning specification, Terra addons will be unable to depend on " + + "it.", + id, mod.metadata().version().raw()); + } + }); + + return addons; + } + + @Override + public @NotNull String platformName() { + return "Quilt"; + } + + @Override + public @NotNull WorldHandle getWorldHandle() { + return worldHandle; + } + + @Override + public @NotNull File getDataFolder() { + return dataFolder.value(); + } + + @Override + public @NotNull ItemHandle getItemHandle() { + return itemHandle; + } + + @Override + public BaseAddon getPlatformAddon() { + return new QuiltAddon(this); + } +} diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltAddon.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltAddon.java new file mode 100644 index 000000000..6a34eab74 --- /dev/null +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltAddon.java @@ -0,0 +1,16 @@ +package com.dfsek.terra.quilt; + +import com.dfsek.terra.mod.MinecraftAddon; +import com.dfsek.terra.mod.ModPlatform; + +public class QuiltAddon extends MinecraftAddon { + + public QuiltAddon(ModPlatform modPlatform) { + super(modPlatform); + } + + @Override + public String getID() { + return "terra-quilt"; + } +} \ No newline at end of file diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltEntryPoint.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltEntryPoint.java new file mode 100644 index 000000000..20adb8e3b --- /dev/null +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/QuiltEntryPoint.java @@ -0,0 +1,76 @@ +/* + * This file is part of Terra. + * + * Terra is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Terra is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Terra. If not, see . + */ + +package com.dfsek.terra.quilt; + +import cloud.commandframework.execution.CommandExecutionCoordinator; +import cloud.commandframework.fabric.FabricServerCommandManager; +import org.quiltmc.loader.api.ModContainer; +import org.quiltmc.qsl.base.api.entrypoint.ModInitializer; +import net.minecraft.server.command.ServerCommandSource; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.util.registry.Registry; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.dfsek.terra.api.command.CommandSender; +import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; +import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; +import com.dfsek.terra.quilt.util.BiomeUtil; +import com.dfsek.terra.mod.CommonPlatform; +import com.dfsek.terra.mod.data.Codecs; + + +public class QuiltEntryPoint implements ModInitializer { + private static final Logger logger = LoggerFactory.getLogger(QuiltEntryPoint.class); + + private static final PlatformImpl TERRA_PLUGIN = new PlatformImpl(); + + + public static PlatformImpl getPlatform() { + return TERRA_PLUGIN; + } + + public static void register() { // register the things + Registry.register(Registry.CHUNK_GENERATOR, new Identifier("terra:terra"), Codecs.MINECRAFT_CHUNK_GENERATOR_WRAPPER); + Registry.register(Registry.BIOME_SOURCE, new Identifier("terra:terra"), Codecs.TERRA_BIOME_SOURCE); + } + + public static void initialize() { + getPlatform().getEventManager().callEvent( + new PlatformInitializationEvent()); + BiomeUtil.registerBiomes(); + CommonPlatform.get().registerWorldTypes((id, preset) -> BuiltinRegistries.add(BuiltinRegistries.WORLD_PRESET, id, preset)); + } + + @Override + public void onInitialize(ModContainer container) { + logger.info("Initializing Terra Quilt mod..."); + + FabricServerCommandManager manager = new FabricServerCommandManager<>( + CommandExecutionCoordinator.simpleCoordinator(), + serverCommandSource -> (CommandSender) serverCommandSource, + commandSender -> (ServerCommandSource) commandSender + ); + + + manager.brigadierManager().setNativeNumberSuggestions(false); + + TERRA_PLUGIN.getEventManager().callEvent(new CommandRegistrationEvent(manager)); + } +} diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/MinecraftServerMixin.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/MinecraftServerMixin.java new file mode 100644 index 000000000..53277b18c --- /dev/null +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/MinecraftServerMixin.java @@ -0,0 +1,32 @@ +package com.dfsek.terra.quilt.mixin.lifecycle; + +import com.mojang.datafixers.DataFixer; +import net.minecraft.resource.ResourcePackManager; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.SaveLoader; +import net.minecraft.server.WorldGenerationProgressListenerFactory; +import net.minecraft.util.ApiServices; +import net.minecraft.world.level.storage.LevelStorage; +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; + +import java.net.Proxy; + +import com.dfsek.terra.quilt.QuiltEntryPoint; + + +@Mixin(MinecraftServer.class) +public class MinecraftServerMixin { + @Inject(method = "(Ljava/lang/Thread;Lnet/minecraft/world/level/storage/LevelStorage$Session;" + + "Lnet/minecraft/resource/ResourcePackManager;Lnet/minecraft/server/SaveLoader;Ljava/net/Proxy;" + + "Lcom/mojang/datafixers/DataFixer;Lnet/minecraft/util/ApiServices;" + + "Lnet/minecraft/server/WorldGenerationProgressListenerFactory;)V", + at = @At("RETURN")) + private void injectConstructor(Thread serverThread, LevelStorage.Session session, ResourcePackManager dataPackManager, + SaveLoader saveLoader, Proxy proxy, DataFixer dataFixer, ApiServices apiServices, + WorldGenerationProgressListenerFactory worldGenerationProgressListenerFactory, CallbackInfo ci) { + QuiltEntryPoint.getPlatform().setServer((MinecraftServer) (Object) this); + } +} diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/NoiseConfigMixin.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/NoiseConfigMixin.java new file mode 100644 index 000000000..6b863cca0 --- /dev/null +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/NoiseConfigMixin.java @@ -0,0 +1,31 @@ +package com.dfsek.terra.quilt.mixin.lifecycle; + +import net.minecraft.util.math.noise.DoublePerlinNoiseSampler; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.biome.source.util.MultiNoiseUtil.MultiNoiseSampler; +import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; +import net.minecraft.world.gen.noise.NoiseConfig; +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 com.dfsek.terra.mod.util.SeedHack; + + +/** + * Hack to map noise sampler to seeds + */ +@Mixin(NoiseConfig.class) +public class NoiseConfigMixin { + @Shadow + @Final + private MultiNoiseSampler multiNoiseSampler; + + @Inject(method = "(Lnet/minecraft/world/gen/chunk/ChunkGeneratorSettings;Lnet/minecraft/util/registry/Registry;J)V", at = @At("TAIL")) + private void mapMultiNoise(ChunkGeneratorSettings chunkGeneratorSettings, Registry noiseRegistry, long seed, CallbackInfo ci) { + SeedHack.register(multiNoiseSampler, seed); + } +} diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/RegistryMixin.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/RegistryMixin.java new file mode 100644 index 000000000..55d649d44 --- /dev/null +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/RegistryMixin.java @@ -0,0 +1,19 @@ +package com.dfsek.terra.quilt.mixin.lifecycle; + + +import com.dfsek.terra.quilt.QuiltEntryPoint; +import net.minecraft.util.registry.Registry; +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; + + +// Register Terra things to the builtin registries. +@Mixin(Registry.class) +public class RegistryMixin { + @Inject(method = "", at = @At("RETURN")) + private static void registerTerraGenerators(CallbackInfo ci) { + QuiltEntryPoint.register(); + } +} diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/client/MinecraftClientMixin.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/client/MinecraftClientMixin.java new file mode 100644 index 000000000..6556ba806 --- /dev/null +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/client/MinecraftClientMixin.java @@ -0,0 +1,40 @@ +/* + * This file is part of Terra. + * + * Terra is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Terra is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Terra. If not, see . + */ + +package com.dfsek.terra.quilt.mixin.lifecycle.client; + +import com.dfsek.terra.quilt.QuiltEntryPoint; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.RunArgs; +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(MinecraftClient.class) +public class MinecraftClientMixin { + @Inject(method = "", at = @At(value = "INVOKE", + target = "Lnet/minecraft/client/util/WindowProvider;createWindow" + + "(Lnet/minecraft/client/WindowSettings;Ljava/lang/String;Ljava/lang/String;)" + + "Lnet/minecraft/client/util/Window;", + // sorta arbitrary position, after mod init, before window opens + shift = At.Shift.BEFORE)) + public void injectConstructor(RunArgs args, CallbackInfo callbackInfo) { + QuiltEntryPoint.initialize(); + } +} diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/package-info.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/package-info.java new file mode 100644 index 000000000..23f9f63d2 --- /dev/null +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/package-info.java @@ -0,0 +1,22 @@ +/* + * This file is part of Terra. + * + * Terra is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Terra is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Terra. If not, see . + */ + +/** + * Mixins that inject behavior into the client/server lifecycle. + */ + +package com.dfsek.terra.quilt.mixin.lifecycle; \ No newline at end of file diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/server/ServerMainMixin.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/server/ServerMainMixin.java new file mode 100644 index 000000000..577e2cfe2 --- /dev/null +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/mixin/lifecycle/server/ServerMainMixin.java @@ -0,0 +1,39 @@ +/* + * This file is part of Terra. + * + * Terra is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Terra is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Terra. If not, see . + */ + +package com.dfsek.terra.quilt.mixin.lifecycle.server; + +import com.dfsek.terra.quilt.QuiltEntryPoint; +import net.minecraft.server.Main; +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(Main.class) +public class ServerMainMixin { + @Inject(method = "main([Ljava/lang/String;)V", + at = @At(value = "INVOKE", + target = "Lnet/minecraft/resource/ResourcePackManager;(Lnet/minecraft/resource/ResourceType;" + + "[Lnet/minecraft/resource/ResourcePackProvider;)V") + // after registry manager creation + ) + private static void injectConstructor(String[] args, CallbackInfo ci) { + QuiltEntryPoint.initialize(); + } +} diff --git a/platforms/quilt/src/main/java/com/dfsek/terra/quilt/util/BiomeUtil.java b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/util/BiomeUtil.java new file mode 100644 index 000000000..e26d08938 --- /dev/null +++ b/platforms/quilt/src/main/java/com/dfsek/terra/quilt/util/BiomeUtil.java @@ -0,0 +1,71 @@ +package com.dfsek.terra.quilt.util; + +import com.dfsek.terra.quilt.QuiltEntryPoint; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.util.registry.Registry; +import net.minecraft.util.registry.RegistryKey; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; + +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.mod.config.PreLoadCompatibilityOptions; +import com.dfsek.terra.mod.config.ProtoPlatformBiome; +import com.dfsek.terra.mod.util.MinecraftUtil; + + +public final class BiomeUtil { + private static final Logger logger = LoggerFactory.getLogger(BiomeUtil.class); + + private BiomeUtil() { + + } + + public static void registerBiomes() { + logger.info("Registering biomes..."); + QuiltEntryPoint.getPlatform().getConfigRegistry().forEach(pack -> { // Register all Terra biomes. + pack.getCheckedRegistry(Biome.class) + .forEach((id, biome) -> registerBiome(biome, pack, id)); + }); + MinecraftUtil.registerFlora(BuiltinRegistries.BIOME); + logger.info("Terra biomes registered."); + } + + /** + * Clones a Vanilla biome and injects Terra data to create a Terra-vanilla biome delegate. + * + * @param biome The Terra BiomeBuilder. + * @param pack The ConfigPack this biome belongs to. + */ + private static void registerBiome(Biome biome, ConfigPack pack, + com.dfsek.terra.api.registry.key.RegistryKey id) { + Registry registry = BuiltinRegistries.BIOME; + RegistryKey vanilla = ((ProtoPlatformBiome) biome.getPlatformBiome()).get(registry); + + + if(pack.getContext().get(PreLoadCompatibilityOptions.class).useVanillaBiomes()) { + ((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(vanilla); + } else { + net.minecraft.world.biome.Biome minecraftBiome = MinecraftUtil.createBiome(biome, registry.get(vanilla)); + + Identifier identifier = new Identifier("terra", MinecraftUtil.createBiomeID(pack, id)); + + if(registry.containsId(identifier)) { + ((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(MinecraftUtil.getEntry(registry, identifier) + .orElseThrow() + .getKey() + .orElseThrow()); + } else { + ((ProtoPlatformBiome) biome.getPlatformBiome()).setDelegate(BuiltinRegistries.add(registry, + MinecraftUtil.registerKey(identifier).getValue(), + minecraftBiome).getKey().orElseThrow()); + } + + MinecraftUtil.TERRA_BIOME_MAP.computeIfAbsent(vanilla.getValue(), i -> new ArrayList<>()).add(identifier); + } + } + +} diff --git a/platforms/quilt/src/main/resources/assets/terra/icon.png b/platforms/quilt/src/main/resources/assets/terra/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a8f458866a0d1cd397e5fa592ef1707a97722f1f GIT binary patch literal 129860 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%0DMHvKS|?`Q93A21D4 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

C7Im@Ow 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.17.0" + }, + { + "id": "java", + "version": ">=17" + }, + { + "id": "minecraft", + "version": "1.19.x" + }, + { + "id": "quilted_fabric_api", + "versions": ">=2.0.0-" + } + ] + }, + "mixin": [ + "terra.quilt.mixins.json", + "terra.common.mixins.json" + ], + "accessWidener": "terra.accesswidener" +} \ No newline at end of file diff --git a/platforms/quilt/src/main/resources/terra.quilt.mixins.json b/platforms/quilt/src/main/resources/terra.quilt.mixins.json new file mode 100644 index 000000000..ca92e0bf1 --- /dev/null +++ b/platforms/quilt/src/main/resources/terra.quilt.mixins.json @@ -0,0 +1,20 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "com.dfsek.terra.quilt.mixin", + "compatibilityLevel": "JAVA_17", + "mixins": [ + "lifecycle.MinecraftServerMixin", + "lifecycle.NoiseConfigMixin", + "lifecycle.RegistryMixin" + ], + "client": [ + "lifecycle.client.MinecraftClientMixin" + ], + "server": [ + "lifecycle.server.ServerMainMixin" + ], + "injectors": { + "defaultRequire": 1 + } +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index a8a8b3644..7a1cdc8a0 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -28,11 +28,14 @@ pluginManagement { maven("https://maven.fabricmc.net") { name = "Fabric Maven" } - maven ( "https://maven.architectury.dev/" ) { + maven("https://maven.architectury.dev/") { name = "Architectury Maven" } - maven ( "https://files.minecraftforge.net/maven/" ) { + maven("https://files.minecraftforge.net/maven/") { name = "Forge Maven" } + maven("https://maven.quiltmc.org/repository/release/") { + name = "Quilt" + } } }