-
Notifications
You must be signed in to change notification settings - Fork 0
Building
- JDK 25
- Git
git clone https://github.com/the-real-ltcg/multicore-magic.git
cd multicore-magic
JAVA_HOME=<path to JDK 25> ./gradlew buildBuilds both versions. Jars are written to fabric-26.2/build/libs/ and fabric-26.1/build/libs/.
To build just one: ./gradlew :fabric-26.2:build or ./gradlew :fabric-26.1:build.
On Windows (PowerShell):
$env:JAVA_HOME = "C:\Program Files\Eclipse Adoptium\jdk-25.0.3.9-hotspot"
.\gradlew.bat buildJAVA_HOME=<path to JDK 25> ./gradlew :fabric-26.2:runClient
# or
JAVA_HOME=<path to JDK 25> ./gradlew :fabric-26.1:runClientThis launches an unauthenticated dev-environment client with the mod (and Fabric API / Mod Menu / Cloth Config) already loaded, useful for quick manual testing without building a jar each time.
Two buildable Gradle modules, fabric-26.2 and fabric-26.1, share almost all of their source
from a common fabric/ folder (this is not a Gradle subproject, just a shared source directory
each module points its sourceSets at):
fabric/src/main/java/com/ltcg/multicoremagic/
MulticoreMagic.java client entrypoint + commands
MulticoreMagicConfig.java JSON config (Gson)
ChunkBuilderThreadPool.java the dedicated, resizable thread pool
MulticoreMagicModMenu.java Mod Menu / Cloth Config screen
fabric/src/main/resources/
fabric.mod.json
multicoremagic.mixins.json
META-INF/neoforge.mods.toml NeoForge/Launchpad placeholder
fabric-26.2/
build.gradle 26.2-specific dependency versions
src/main/java/.../mixin/LevelRendererMixin.java targets invalidateCompiledGeometry(...)
fabric-26.1/
build.gradle 26.1.2-specific dependency versions
src/main/java/.../mixin/LevelRendererMixin.java targets allChanged()
The one thing that isn't shared is the mixin: Mojang renamed the method this mod hooks into
between versions (allChanged() on 26.1.2 → invalidateCompiledGeometry(ClientLevel, Options, Camera, BlockColors) on 26.2), verified directly against both real deobfuscated client jars with
javap, not assumed. Both versions redirect the exact same Util.backgroundExecutor() call site
inside that method, so the mixin body is otherwise identical — only the method = "..." target
string differs. Since both per-version classes share the same package and class name
(com.ltcg.multicoremagic.mixin.LevelRendererMixin), the shared multicoremagic.mixins.json
doesn't need to know which version it's running on.
Built with non-remapping Fabric Loom (fabric-loom 1.15-SNAPSHOT) — both Minecraft versions
ship with official Mojang mappings directly, so mod code and mixins are written against real
Mojang class and method names, not Yarn intermediary names.