Phase 0: scaffold Gradle multi-project mod skeleton
common/ (shared source) plus three leaf modules: forge-1_12_2 (primary, Enigmatica 2 target) and forge-1_7_10 both build via anatawa12's Gradle-7-compatible ForgeGradle 1.2/2.3 forks (verified: both leaves build clean on Gradle 7.6 / JDK 8). neoforge-26_1 is structurally scaffolded but excluded from the default build pending its own toolchain in Phase 10.
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
# common
|
||||
|
||||
Loader-agnostic Java: protocol types, config model, and the interfaces each leaf module
|
||||
(`forge-1_7_10`, `forge-1_12_2`, `neoforge-26_1`) implements against its own Minecraft/Forge
|
||||
API generation.
|
||||
|
||||
This module is **not** consumed as a compiled binary dependency. The legacy leaves (1.7.10,
|
||||
1.12.2) target Java 8; `neoforge-26_1` targets a modern JDK. To avoid cross-version binary
|
||||
compatibility issues, each leaf module adds `common/src/main/java` directly to its own source
|
||||
set (see the `sourceSets.main.java.srcDirs` line in each leaf's `build.gradle`) and compiles it
|
||||
itself, once per leaf, against its own toolchain. Keep this module free of any
|
||||
Minecraft/Forge/NeoForge API usage — it must compile standalone under plain `javac`.
|
||||
|
||||
## Layout
|
||||
|
||||
- `protocol/` — wire types shared with the backend (delta events, chat/waypoint payloads, link
|
||||
request/response). Mirrors the WS protocol described in the root plan.
|
||||
- `config/` — the common config model (backend URL, server token, tracking/reconciliation
|
||||
intervals) each leaf loads via its own loader-specific config system.
|
||||
Reference in New Issue
Block a user