2023-03-15 21:52:13 +00:00
|
|
|
# SPDX-FileCopyrightText: 2022 The CC: Tweaked Developers
|
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: MPL-2.0
|
|
|
|
|
2022-10-21 22:10:18 +00:00
|
|
|
[versions]
|
2022-10-22 20:09:08 +00:00
|
|
|
|
|
|
|
# Minecraft
|
|
|
|
# MC version is specified in gradle.properties, as we need that in settings.gradle.
|
2023-03-14 18:41:31 +00:00
|
|
|
# Remember to update corresponding versions in fabric.mod.json/mods.toml
|
2023-08-05 09:36:37 +00:00
|
|
|
fabric-api = "0.86.1+1.20.1"
|
2023-06-08 08:48:37 +00:00
|
|
|
fabric-loader = "0.14.21"
|
2023-07-07 09:18:16 +00:00
|
|
|
forge = "47.1.0"
|
2023-12-19 18:12:21 +00:00
|
|
|
forgeSpi = "7.0.1"
|
2022-11-10 19:32:13 +00:00
|
|
|
mixin = "0.8.5"
|
2023-08-31 18:14:37 +00:00
|
|
|
parchment = "2023.08.20"
|
|
|
|
parchmentMc = "1.20.1"
|
2022-10-22 20:09:08 +00:00
|
|
|
|
2023-12-19 18:12:21 +00:00
|
|
|
# Core dependencies (these versions are tied to the version Minecraft uses)
|
2022-12-15 17:53:50 +00:00
|
|
|
fastutil = "8.5.9"
|
|
|
|
guava = "31.1-jre"
|
2023-12-19 18:12:21 +00:00
|
|
|
netty = "4.1.82.Final"
|
|
|
|
slf4j = "2.0.1"
|
|
|
|
|
|
|
|
# Core dependencies (independent of Minecraft)
|
|
|
|
asm = "9.6"
|
|
|
|
autoService = "1.1.1"
|
|
|
|
checkerFramework = "3.42.0"
|
|
|
|
cobalt = "0.8.1"
|
|
|
|
commonsCli = "1.6.0"
|
|
|
|
jetbrainsAnnotations = "24.1.0"
|
2022-11-04 21:41:59 +00:00
|
|
|
jsr305 = "3.0.2"
|
2023-03-29 08:30:29 +00:00
|
|
|
jzlib = "1.1.3"
|
2023-12-19 18:12:21 +00:00
|
|
|
kotlin = "1.9.21"
|
|
|
|
kotlin-coroutines = "1.7.3"
|
2023-08-31 18:14:37 +00:00
|
|
|
nightConfig = "3.6.7"
|
2022-10-21 22:10:18 +00:00
|
|
|
|
2022-11-08 16:43:27 +00:00
|
|
|
# Minecraft mods
|
2023-07-10 19:50:32 +00:00
|
|
|
emi = "1.0.8+1.20.1"
|
2023-08-27 18:08:59 +00:00
|
|
|
fabricPermissions = "0.3.20230723"
|
2023-07-10 19:50:32 +00:00
|
|
|
iris = "1.6.4+1.20"
|
|
|
|
jei = "15.2.0.22"
|
|
|
|
modmenu = "7.1.0"
|
2023-08-27 23:04:46 +00:00
|
|
|
moreRed = "4.0.0.4"
|
2022-11-08 16:43:27 +00:00
|
|
|
oculus = "1.2.5"
|
2023-07-10 19:50:32 +00:00
|
|
|
rei = "12.0.626"
|
2022-11-18 23:57:25 +00:00
|
|
|
rubidium = "0.6.1"
|
2023-07-10 19:50:32 +00:00
|
|
|
sodium = "mc1.20-0.4.10"
|
2022-11-08 16:43:27 +00:00
|
|
|
|
2022-10-21 22:10:18 +00:00
|
|
|
# Testing
|
|
|
|
hamcrest = "2.2"
|
2023-12-19 18:12:21 +00:00
|
|
|
jqwik = "1.8.2"
|
|
|
|
junit = "5.10.1"
|
2022-10-21 22:10:18 +00:00
|
|
|
|
2022-10-22 16:47:39 +00:00
|
|
|
# Build tools
|
2023-11-22 18:20:15 +00:00
|
|
|
cctJavadoc = "1.8.2"
|
2023-12-19 18:12:21 +00:00
|
|
|
checkstyle = "10.12.6"
|
2023-06-10 07:55:07 +00:00
|
|
|
curseForgeGradle = "1.0.14"
|
2023-12-19 18:12:21 +00:00
|
|
|
errorProne-core = "2.23.0"
|
2023-08-31 18:14:37 +00:00
|
|
|
errorProne-plugin = "3.1.0"
|
2023-12-19 18:12:21 +00:00
|
|
|
fabric-loom = "1.3.9"
|
2023-07-05 19:57:56 +00:00
|
|
|
forgeGradle = "6.0.8"
|
2023-12-19 18:12:21 +00:00
|
|
|
githubRelease = "2.5.2"
|
|
|
|
gradleVersions = "0.50.0"
|
2023-08-31 18:14:37 +00:00
|
|
|
ideaExt = "1.1.7"
|
2023-10-03 08:19:19 +00:00
|
|
|
illuaminate = "0.1.0-44-g9ee0055"
|
2022-10-22 20:09:08 +00:00
|
|
|
librarian = "1.+"
|
2023-12-19 18:12:21 +00:00
|
|
|
lwjgl = "3.3.3"
|
2022-10-22 20:09:08 +00:00
|
|
|
minotaur = "2.+"
|
2023-12-19 18:12:21 +00:00
|
|
|
mixinGradle = "0.7.38"
|
2022-11-06 10:28:49 +00:00
|
|
|
nullAway = "0.9.9"
|
2023-12-19 18:12:21 +00:00
|
|
|
spotless = "6.23.3"
|
2023-03-14 18:41:31 +00:00
|
|
|
taskTree = "2.1.1"
|
2023-11-15 13:12:31 +00:00
|
|
|
teavm = "0.10.0-SQUID.2"
|
2022-11-06 15:07:13 +00:00
|
|
|
vanillaGradle = "0.2.1-SNAPSHOT"
|
2023-12-19 18:12:21 +00:00
|
|
|
versionCatalogUpdate = "0.8.1"
|
2023-08-31 18:14:37 +00:00
|
|
|
vineflower = "1.11.0"
|
2022-10-22 16:47:39 +00:00
|
|
|
|
2022-10-21 22:10:18 +00:00
|
|
|
[libraries]
|
2022-11-08 16:43:27 +00:00
|
|
|
# Normal dependencies
|
2022-11-04 21:41:59 +00:00
|
|
|
asm = { module = "org.ow2.asm:asm", version.ref = "asm" }
|
2023-10-03 08:19:19 +00:00
|
|
|
asm-commons = { module = "org.ow2.asm:asm-commons", version.ref = "asm" }
|
2022-10-21 22:10:18 +00:00
|
|
|
autoService = { module = "com.google.auto.service:auto-service", version.ref = "autoService" }
|
2022-11-04 21:41:59 +00:00
|
|
|
checkerFramework = { module = "org.checkerframework:checker-qual", version.ref = "checkerFramework" }
|
2023-11-08 18:42:17 +00:00
|
|
|
cobalt = { module = "cc.tweaked:cobalt", version.ref = "cobalt" }
|
Add a standalone CC:T UI
Does it count as an emulator when it's official? I hope not, as this'd
make it my fourth or fifth emulator at this point.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Developing/debugging CraftOS is a massive pain to do inside Minecraft,
as any change to resources requires a compile+hot swap cycle (and
sometimes a `/reload` in-game). As such, it's often more convenient to
spin up an emulator, pointing it to load the ROM from CC:T's sources.
However, this isn't practical when also making changes to the Java
classes. In this case, we either need to go in-game, or build a custom
version of CCEmuX.
This commit offers an alternative option: we now have our own emulator,
which allows us to hot swap both Lua and Java to our heart's content.
Most of the code here is based on our monitor TBO renderer. We probably
could share some more of this, but there's not really a good place for
it - feels a bit weird just to chuck it in :core.
This is *not* a general-purpose emulator. It's limited in a lot of
ways (won't launch on Mac[^1], no support for multiple computers) - just
stick to what's there already.
[^1]: We require OpenGL 4.5 due to our use of DSA.
2023-10-28 16:55:56 +00:00
|
|
|
commonsCli = { module = "commons-cli:commons-cli", version.ref = "commonsCli" }
|
2022-11-04 21:41:59 +00:00
|
|
|
fastutil = { module = "it.unimi.dsi:fastutil", version.ref = "fastutil" }
|
2022-11-10 00:03:09 +00:00
|
|
|
forgeSpi = { module = "net.minecraftforge:forgespi", version.ref = "forgeSpi" }
|
2022-11-04 21:41:59 +00:00
|
|
|
guava = { module = "com.google.guava:guava", version.ref = "guava" }
|
2022-10-21 22:50:44 +00:00
|
|
|
jetbrainsAnnotations = { module = "org.jetbrains:annotations", version.ref = "jetbrainsAnnotations" }
|
2022-11-04 21:41:59 +00:00
|
|
|
jsr305 = { module = "com.google.code.findbugs:jsr305", version.ref = "jsr305" }
|
2023-03-29 08:30:29 +00:00
|
|
|
jzlib = { module = "com.jcraft:jzlib", version.ref = "jzlib" }
|
2022-10-21 22:10:18 +00:00
|
|
|
kotlin-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlin-coroutines" }
|
2023-03-29 08:30:29 +00:00
|
|
|
kotlin-platform = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "kotlin" }
|
2023-01-17 19:33:49 +00:00
|
|
|
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
|
2022-11-04 21:41:59 +00:00
|
|
|
netty-http = { module = "io.netty:netty-codec-http", version.ref = "netty" }
|
2023-06-06 18:58:24 +00:00
|
|
|
netty-socks = { module = "io.netty:netty-codec-socks", version.ref = "netty" }
|
|
|
|
netty-proxy = { module = "io.netty:netty-handler-proxy", version.ref = "netty" }
|
2022-11-09 23:58:56 +00:00
|
|
|
nightConfig-core = { module = "com.electronwill.night-config:core", version.ref = "nightConfig" }
|
|
|
|
nightConfig-toml = { module = "com.electronwill.night-config:toml", version.ref = "nightConfig" }
|
2022-11-04 21:41:59 +00:00
|
|
|
slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
|
2022-10-21 22:10:18 +00:00
|
|
|
|
2022-11-08 16:43:27 +00:00
|
|
|
# Minecraft mods
|
2022-11-10 19:32:13 +00:00
|
|
|
fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-api" }
|
|
|
|
fabric-loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric-loader" }
|
2023-10-26 21:06:40 +00:00
|
|
|
fabric-junit = { module = "net.fabricmc:fabric-loader-junit", version.ref = "fabric-loader" }
|
2023-08-27 11:15:55 +00:00
|
|
|
fabricPermissions = { module = "me.lucko:fabric-permissions-api", version.ref = "fabricPermissions" }
|
2023-07-10 19:31:06 +00:00
|
|
|
emi = { module = "dev.emi:emi-xplat-mojmap", version.ref = "emi" }
|
2022-11-10 19:32:13 +00:00
|
|
|
iris = { module = "maven.modrinth:iris", version.ref = "iris" }
|
2023-07-10 19:50:32 +00:00
|
|
|
jei-api = { module = "mezz.jei:jei-1.20.1-common-api", version.ref = "jei" }
|
|
|
|
jei-fabric = { module = "mezz.jei:jei-1.20.1-fabric", version.ref = "jei" }
|
|
|
|
jei-forge = { module = "mezz.jei:jei-1.20.1-forge", version.ref = "jei" }
|
2022-11-09 23:58:56 +00:00
|
|
|
mixin = { module = "org.spongepowered:mixin", version.ref = "mixin" }
|
2022-11-20 13:00:43 +00:00
|
|
|
modmenu = { module = "com.terraformersmc:modmenu", version.ref = "modmenu" }
|
2023-08-27 23:04:46 +00:00
|
|
|
moreRed = { module = "commoble.morered:morered-1.20.1", version.ref = "moreRed" }
|
2022-11-08 16:43:27 +00:00
|
|
|
oculus = { module = "maven.modrinth:oculus", version.ref = "oculus" }
|
2022-11-10 19:32:13 +00:00
|
|
|
rei-api = { module = "me.shedaniel:RoughlyEnoughItems-api", version.ref = "rei" }
|
|
|
|
rei-builtin = { module = "me.shedaniel:RoughlyEnoughItems-default-plugin", version.ref = "rei" }
|
|
|
|
rei-fabric = { module = "me.shedaniel:RoughlyEnoughItems-fabric", version.ref = "rei" }
|
2022-11-18 23:57:25 +00:00
|
|
|
rubidium = { module = "maven.modrinth:rubidium", version.ref = "rubidium" }
|
|
|
|
sodium = { module = "maven.modrinth:sodium", version.ref = "sodium" }
|
2022-11-08 16:43:27 +00:00
|
|
|
|
2022-10-21 22:10:18 +00:00
|
|
|
# Testing
|
|
|
|
hamcrest = { module = "org.hamcrest:hamcrest", version.ref = "hamcrest" }
|
|
|
|
jqwik-api = { module = "net.jqwik:jqwik-api", version.ref = "jqwik" }
|
|
|
|
jqwik-engine = { module = "net.jqwik:jqwik-engine", version.ref = "jqwik" }
|
|
|
|
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }
|
|
|
|
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" }
|
|
|
|
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit" }
|
2022-12-15 17:53:50 +00:00
|
|
|
slf4j-simple = { module = "org.slf4j:slf4j-simple", version.ref = "slf4j" }
|
2022-10-21 22:10:18 +00:00
|
|
|
|
Add a standalone CC:T UI
Does it count as an emulator when it's official? I hope not, as this'd
make it my fourth or fifth emulator at this point.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Developing/debugging CraftOS is a massive pain to do inside Minecraft,
as any change to resources requires a compile+hot swap cycle (and
sometimes a `/reload` in-game). As such, it's often more convenient to
spin up an emulator, pointing it to load the ROM from CC:T's sources.
However, this isn't practical when also making changes to the Java
classes. In this case, we either need to go in-game, or build a custom
version of CCEmuX.
This commit offers an alternative option: we now have our own emulator,
which allows us to hot swap both Lua and Java to our heart's content.
Most of the code here is based on our monitor TBO renderer. We probably
could share some more of this, but there's not really a good place for
it - feels a bit weird just to chuck it in :core.
This is *not* a general-purpose emulator. It's limited in a lot of
ways (won't launch on Mac[^1], no support for multiple computers) - just
stick to what's there already.
[^1]: We require OpenGL 4.5 due to our use of DSA.
2023-10-28 16:55:56 +00:00
|
|
|
# LWJGL
|
|
|
|
lwjgl-bom = { module = "org.lwjgl:lwjgl-bom", version.ref = "lwjgl" }
|
|
|
|
lwjgl-core = { module = "org.lwjgl:lwjgl" }
|
|
|
|
lwjgl-opengl = { module = "org.lwjgl:lwjgl-opengl" }
|
|
|
|
lwjgl-glfw = { module = "org.lwjgl:lwjgl-glfw" }
|
|
|
|
|
2022-10-22 19:47:47 +00:00
|
|
|
# Build tools
|
2022-10-22 20:09:08 +00:00
|
|
|
cctJavadoc = { module = "cc.tweaked:cct-javadoc", version.ref = "cctJavadoc" }
|
2022-10-22 19:47:47 +00:00
|
|
|
checkstyle = { module = "com.puppycrawl.tools:checkstyle", version.ref = "checkstyle" }
|
2023-03-15 23:20:07 +00:00
|
|
|
curseForgeGradle = { module = "net.darkhax.curseforgegradle:CurseForgeGradle", version.ref = "curseForgeGradle" }
|
2022-11-06 10:28:49 +00:00
|
|
|
errorProne-annotations = { module = "com.google.errorprone:error_prone_annotations", version.ref = "errorProne-core" }
|
|
|
|
errorProne-api = { module = "com.google.errorprone:error_prone_check_api", version.ref = "errorProne-core" }
|
|
|
|
errorProne-core = { module = "com.google.errorprone:error_prone_core", version.ref = "errorProne-core" }
|
|
|
|
errorProne-plugin = { module = "net.ltgt.gradle:gradle-errorprone-plugin", version.ref = "errorProne-plugin" }
|
|
|
|
errorProne-testHelpers = { module = "com.google.errorprone:error_prone_test_helpers", version.ref = "errorProne-core" }
|
2022-11-10 19:32:13 +00:00
|
|
|
fabric-loom = { module = "net.fabricmc:fabric-loom", version.ref = "fabric-loom" }
|
2022-11-06 15:07:13 +00:00
|
|
|
forgeGradle = { module = "net.minecraftforge.gradle:ForgeGradle", version.ref = "forgeGradle" }
|
2023-10-26 21:06:40 +00:00
|
|
|
ideaExt = { module = "gradle.plugin.org.jetbrains.gradle.plugin.idea-ext:gradle-idea-ext", version.ref = "ideaExt" }
|
2022-10-29 17:17:02 +00:00
|
|
|
kotlin-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
|
2022-11-06 15:07:13 +00:00
|
|
|
librarian = { module = "org.parchmentmc:librarian", version.ref = "librarian" }
|
2023-03-15 23:20:07 +00:00
|
|
|
minotaur = { module = "com.modrinth.minotaur:Minotaur", version.ref = "minotaur" }
|
2022-11-06 10:28:49 +00:00
|
|
|
nullAway = { module = "com.uber.nullaway:nullaway", version.ref = "nullAway" }
|
2022-10-22 16:47:39 +00:00
|
|
|
spotless = { module = "com.diffplug.spotless:spotless-plugin-gradle", version.ref = "spotless" }
|
2023-10-03 08:19:19 +00:00
|
|
|
teavm-classlib = { module = "org.teavm:teavm-classlib", version.ref = "teavm" }
|
|
|
|
teavm-jso = { module = "org.teavm:teavm-jso", version.ref = "teavm" }
|
|
|
|
teavm-jso-apis = { module = "org.teavm:teavm-jso-apis", version.ref = "teavm" }
|
|
|
|
teavm-jso-impl = { module = "org.teavm:teavm-jso-impl", version.ref = "teavm" }
|
|
|
|
teavm-metaprogramming-api = { module = "org.teavm:teavm-metaprogramming-api", version.ref = "teavm" }
|
|
|
|
teavm-metaprogramming-impl = { module = "org.teavm:teavm-metaprogramming-impl", version.ref = "teavm" }
|
|
|
|
teavm-platform = { module = "org.teavm:teavm-platform", version.ref = "teavm" }
|
|
|
|
teavm-tooling = { module = "org.teavm:teavm-tooling", version.ref = "teavm" }
|
2022-11-06 15:07:13 +00:00
|
|
|
vanillaGradle = { module = "org.spongepowered:vanillagradle", version.ref = "vanillaGradle" }
|
2023-08-31 18:14:37 +00:00
|
|
|
vineflower = { module = "io.github.juuxel:loom-vineflower", version.ref = "vineflower" }
|
2022-10-22 16:47:39 +00:00
|
|
|
|
2022-10-22 20:09:08 +00:00
|
|
|
[plugins]
|
|
|
|
forgeGradle = { id = "net.minecraftforge.gradle", version.ref = "forgeGradle" }
|
2022-11-06 10:28:49 +00:00
|
|
|
githubRelease = { id = "com.github.breadmoirai.github-release", version.ref = "githubRelease" }
|
2023-12-19 18:12:21 +00:00
|
|
|
gradleVersions = { id = "com.github.ben-manes.versions", version.ref = "gradleVersions" }
|
2022-11-06 10:28:49 +00:00
|
|
|
kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
2022-10-22 20:09:08 +00:00
|
|
|
librarian = { id = "org.parchmentmc.librarian.forgegradle", version.ref = "librarian" }
|
2022-11-06 10:28:49 +00:00
|
|
|
mixinGradle = { id = "org.spongepowered.mixin", version.ref = "mixinGradle" }
|
|
|
|
taskTree = { id = "com.dorongold.task-tree", version.ref = "taskTree" }
|
2023-12-19 18:12:21 +00:00
|
|
|
versionCatalogUpdate = { id = "nl.littlerobots.version-catalog-update", version.ref = "versionCatalogUpdate" }
|
2022-10-22 20:09:08 +00:00
|
|
|
|
2022-10-21 22:10:18 +00:00
|
|
|
[bundles]
|
2023-10-03 08:19:19 +00:00
|
|
|
annotations = ["jsr305", "checkerFramework", "jetbrainsAnnotations"]
|
2022-10-21 22:10:18 +00:00
|
|
|
kotlin = ["kotlin-stdlib", "kotlin-coroutines"]
|
|
|
|
|
2022-11-08 16:43:27 +00:00
|
|
|
# Minecraft
|
2023-03-14 22:47:34 +00:00
|
|
|
externalMods-common = ["jei-api", "nightConfig-core", "nightConfig-toml"]
|
2023-08-27 23:04:46 +00:00
|
|
|
externalMods-forge-compile = ["moreRed", "oculus", "jei-api"]
|
2023-07-10 19:50:32 +00:00
|
|
|
externalMods-forge-runtime = ["jei-forge"]
|
2023-03-14 22:47:34 +00:00
|
|
|
externalMods-fabric = ["nightConfig-core", "nightConfig-toml"]
|
2023-08-27 11:15:55 +00:00
|
|
|
externalMods-fabric-compile = ["fabricPermissions", "iris", "jei-api", "rei-api", "rei-builtin"]
|
2023-07-10 19:50:32 +00:00
|
|
|
externalMods-fabric-runtime = ["jei-fabric", "modmenu"]
|
2022-11-08 16:43:27 +00:00
|
|
|
|
2022-10-21 22:10:18 +00:00
|
|
|
# Testing
|
|
|
|
test = ["junit-jupiter-api", "junit-jupiter-params", "hamcrest", "jqwik-api"]
|
|
|
|
testRuntime = ["junit-jupiter-engine", "jqwik-engine"]
|
2023-10-03 08:19:19 +00:00
|
|
|
|
|
|
|
# Build tools
|
2023-12-19 18:12:21 +00:00
|
|
|
teavm-api = ["teavm-jso", "teavm-jso-apis", "teavm-platform", "teavm-classlib", "teavm-metaprogramming-api"]
|
|
|
|
teavm-tooling = ["teavm-tooling", "teavm-metaprogramming-impl", "teavm-jso-impl"]
|