Scaffold the emote library with a Stonecutter Fabric mod and tester

- core/: Minecraft-independent animation model (Bone, BoneTransform with
  bend fields, Pose, Animation, AnimationPlayer) with JUnit tests.
- src/main: Fabric mod built for 1.21.4-1.21.11 with Stonecutter on
  Mojang mappings. Samples each player's pose into its render state and
  applies it at the end of HumanoidModel.setupAnim (armor follows too).
- src/testmod: dev-only tester with /emotes play|stop|info and a mixin
  audit on startup.
- Publishing to the saturnclientmc Gitea Maven registry as
  org.saturnclient:emotes-core and emotes-fabric:<v>+<mc>.

Loom is pinned to 1.17 because 1.18 needs a Java 25 JVM.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-09-26 19:05:06 +02:00
co-authored by claude
parent dda96c4acf
commit 8641fc0afe
31 changed files with 1303 additions and 22 deletions
+38
View File
@@ -0,0 +1,38 @@
plugins {
`java-library`
`maven-publish`
}
group = "org.saturnclient"
version = rootProject.property("mod.version") as String
repositories {
mavenCentral()
}
dependencies {
testImplementation(platform("org.junit:junit-bom:5.13.4"))
testImplementation("org.junit.jupiter:junit-jupiter")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
java {
// Kept at 21 so it runs on every supported Minecraft version.
toolchain.languageVersion = JavaLanguageVersion.of(21)
withSourcesJar()
}
tasks.test {
useJUnitPlatform()
}
publishing {
publications {
create<MavenPublication>("maven") {
artifactId = "emotes-core"
from(components["java"])
}
}
}
apply(from = rootProject.file("gradle/gitea.gradle.kts"))