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,48 @@
|
||||
# MCMapper-Mod
|
||||
|
||||
Thin, version-independent Forge/NeoForge client for [MCMapper-Backend](https://git.octoturge.com/octoturge/MCMapper-Backend).
|
||||
Streams delta block updates out to the backend instead of rendering the map on the MC server
|
||||
itself (the Bluemap/Dynmap resource problem this project exists to avoid). Full architecture
|
||||
and phased delivery plan lives in the backend repo's planning docs / was tracked during design
|
||||
in Claude Code's plan mode.
|
||||
|
||||
## Repo layout
|
||||
|
||||
- `common/` — loader-agnostic Java: protocol types, config model, and the interfaces
|
||||
(`ChunkAdapter`, `ChatBridge`, `BackendConnection`) each leaf implements. Not a compiled
|
||||
dependency — pulled in as source per leaf (see `common/README.md`).
|
||||
- `forge-1_12_2/` — **primary leaf**, MC 1.12.2 Forge. First implemented; this is the actual
|
||||
driving use case (an Enigmatica 2 modpack server). Builds with legacy ForgeGradle 2.3 via
|
||||
anatawa12's Gradle-7-compatible fork (see `THIRD_PARTY_NOTICES.md`).
|
||||
- `forge-1_7_10/` — MC 1.7.10 Forge. Second priority. Builds with legacy ForgeGradle 1.2, same
|
||||
fork family, one Forge-tooling generation further back.
|
||||
- `neoforge-26_1/` — MC 26.1.2 (NeoForge, assumed). Lowest MVP priority. Structurally scaffolded,
|
||||
not yet wired into the default build (see `settings.gradle`).
|
||||
|
||||
## Version targets and priority
|
||||
|
||||
1. **MC 1.12.2 Forge** — highest priority (Enigmatica 2)
|
||||
2. **MC 1.7.10 Forge** — also a priority
|
||||
3. **MC 26.1.2** — lowest of the three MVP targets
|
||||
|
||||
Fabric support is an explicit future phase, not part of the MVP.
|
||||
|
||||
## Building
|
||||
|
||||
Both legacy leaves share one root build, on Gradle 7.6 / JDK 8 (pinned via
|
||||
`org.gradle.java.home` in `gradle.properties` — see `settings.gradle` for why):
|
||||
|
||||
```
|
||||
./gradlew :forge-1_12_2:build
|
||||
./gradlew :forge-1_7_10:build
|
||||
```
|
||||
|
||||
The first build downloads Minecraft/Forge artifacts and MCP mappings from Forge's Maven and can
|
||||
take a while / needs network access. `neoforge-26_1` is not yet buildable from the root — it
|
||||
needs Gradle 8+ and JDK 17+ (ModDevGradle), incompatible with the legacy leaves' toolchain
|
||||
within one Gradle invocation; see `settings.gradle`'s comment for the workaround until Phase 10
|
||||
gives it a proper isolated build.
|
||||
|
||||
## Attribution
|
||||
|
||||
See `THIRD_PARTY_NOTICES.md`.
|
||||
Reference in New Issue
Block a user