Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
45a73c9
Skip the shared sources and JSpecify in placeholder loader modules
jaymar921 Nov 2, 2026
49b8f14
Add the Fabric 1.19.4 placeholder build
jaymar921 Nov 2, 2026
0c74ec6
Pin the Fabric and Java versions for the Minecraft 1.19.4 placeholder
jaymar921 Nov 2, 2026
a6048fd
Add the Fabric 1.19.4 placeholder entry point that only logs
jaymar921 Nov 2, 2026
b66b812
Add the Fabric 1.19.4 placeholder mod metadata
jaymar921 Nov 2, 2026
f6eea48
Add the Fabric 1.20.2 placeholder build
jaymar921 Nov 2, 2026
4c25cf2
Pin the Fabric and Java versions for the Minecraft 1.20.2 placeholder
jaymar921 Nov 2, 2026
ac36544
Add the Fabric 1.20.2 placeholder entry point that only logs
jaymar921 Nov 2, 2026
71c6776
Add the Fabric 1.20.2 placeholder mod metadata
jaymar921 Nov 2, 2026
c787856
Add the Fabric 1.20.6 placeholder build
jaymar921 Nov 2, 2026
bf39681
Pin the Fabric and Java versions for the Minecraft 1.20.6 placeholder
jaymar921 Nov 2, 2026
747f8b0
Add the Fabric 1.20.6 placeholder entry point that only logs
jaymar921 Nov 2, 2026
04267d4
Add the Fabric 1.20.6 placeholder mod metadata
jaymar921 Nov 2, 2026
9047bcc
Add the Fabric 1.21.11 placeholder build
jaymar921 Nov 2, 2026
7f84461
Pin the Fabric and Java versions for the Minecraft 1.21.11 placeholder
jaymar921 Nov 2, 2026
4bb518c
Add the Fabric 1.21.11 placeholder entry point that only logs
jaymar921 Nov 2, 2026
a6b8369
Add the Fabric 1.21.11 placeholder mod metadata
jaymar921 Nov 2, 2026
7f46ef5
Add the Fabric 1.21.5 placeholder build
jaymar921 Nov 2, 2026
250d3de
Pin the Fabric and Java versions for the Minecraft 1.21.5 placeholder
jaymar921 Nov 2, 2026
e32f830
Add the Fabric 1.21.5 placeholder entry point that only logs
jaymar921 Nov 2, 2026
b3ab56b
Add the Fabric 1.21.5 placeholder mod metadata
jaymar921 Nov 2, 2026
20ca14e
Add the Fabric 26.1 placeholder build
jaymar921 Nov 2, 2026
14d6466
Pin the Fabric and Java versions for the Minecraft 26.1 placeholder
jaymar921 Nov 2, 2026
9733c79
Add the Fabric 26.1 placeholder entry point that only logs
jaymar921 Nov 2, 2026
4b732bd
Add the Fabric 26.1 placeholder mod metadata
jaymar921 Nov 2, 2026
e53e7c2
Add the Fabric 26.2 placeholder build
jaymar921 Nov 2, 2026
9dee57e
Pin the Fabric and Java versions for the Minecraft 26.2 placeholder
jaymar921 Nov 2, 2026
865c01a
Add the Fabric 26.2 placeholder entry point that only logs
jaymar921 Nov 2, 2026
9313763
Add the Fabric 26.2 placeholder mod metadata
jaymar921 Nov 2, 2026
21b0478
Add the Forge 1.19.4 placeholder build
jaymar921 Nov 2, 2026
d0c1ef4
Pin the Forge and Java versions for the Minecraft 1.19.4 placeholder
jaymar921 Nov 2, 2026
bc4e366
Add the Forge 1.19.4 placeholder entry point that only logs
jaymar921 Nov 2, 2026
142b075
Add the Forge 1.19.4 placeholder mod metadata
jaymar921 Nov 2, 2026
d961fc8
Add the Forge 1.20.2 placeholder build
jaymar921 Nov 2, 2026
5629240
Pin the Forge and Java versions for the Minecraft 1.20.2 placeholder
jaymar921 Nov 2, 2026
3f6ac9a
Add the Forge 1.20.2 placeholder entry point that only logs
jaymar921 Nov 2, 2026
cfc8116
Add the Forge 1.20.2 placeholder mod metadata
jaymar921 Nov 2, 2026
10616a5
Add the Forge 1.20.6 placeholder build
jaymar921 Nov 2, 2026
4b539ab
Pin the Forge and Java versions for the Minecraft 1.20.6 placeholder
jaymar921 Nov 2, 2026
cb2daeb
Add the Forge 1.20.6 placeholder entry point that only logs
jaymar921 Nov 2, 2026
59d0abf
Add the Forge 1.20.6 placeholder mod metadata
jaymar921 Nov 2, 2026
af51260
Add the Forge 1.21.11 placeholder build
jaymar921 Nov 2, 2026
121ce4b
Pin the Forge and Java versions for the Minecraft 1.21.11 placeholder
jaymar921 Nov 2, 2026
6cec94e
Add the Forge 1.21.11 placeholder entry point that only logs
jaymar921 Nov 2, 2026
1ca4278
Add the Forge 1.21.11 placeholder mod metadata
jaymar921 Nov 2, 2026
009dd8d
Add the Forge 1.21.5 placeholder build
jaymar921 Nov 2, 2026
ca9282d
Pin the Forge and Java versions for the Minecraft 1.21.5 placeholder
jaymar921 Nov 2, 2026
335d0aa
Add the Forge 1.21.5 placeholder entry point that only logs
jaymar921 Nov 2, 2026
96749aa
Add the Forge 1.21.5 placeholder mod metadata
jaymar921 Nov 2, 2026
72123a1
Add the Forge 26.1 placeholder build
jaymar921 Nov 2, 2026
4f0175f
Pin the Forge and Java versions for the Minecraft 26.1 placeholder
jaymar921 Nov 2, 2026
765a6dd
Add the Forge 26.1 placeholder entry point that only logs
jaymar921 Nov 2, 2026
bef3091
Add the Forge 26.1 placeholder mod metadata
jaymar921 Nov 2, 2026
c5c2333
Add the Forge 26.2 placeholder build
jaymar921 Nov 2, 2026
ee45b81
Pin the Forge and Java versions for the Minecraft 26.2 placeholder
jaymar921 Nov 2, 2026
3395325
Add the Forge 26.2 placeholder entry point that only logs
jaymar921 Nov 2, 2026
8c7c54d
Add the Forge 26.2 placeholder mod metadata
jaymar921 Nov 2, 2026
40bd4d4
Add the NeoForge 1.20.6 placeholder build
jaymar921 Nov 2, 2026
9549430
Pin the NeoForge and Java versions for the Minecraft 1.20.6 placeholder
jaymar921 Nov 2, 2026
d36a0bf
Add the NeoForge 1.20.6 placeholder entry point that only logs
jaymar921 Nov 2, 2026
6fd9954
Add the NeoForge 1.20.6 placeholder mod metadata
jaymar921 Nov 2, 2026
47d2610
Add the NeoForge 1.21.11 placeholder build
jaymar921 Nov 2, 2026
be672b1
Pin the NeoForge and Java versions for the Minecraft 1.21.11 placeholder
jaymar921 Nov 2, 2026
99f9a68
Add the NeoForge 1.21.11 placeholder entry point that only logs
jaymar921 Nov 2, 2026
279b3ce
Add the NeoForge 1.21.11 placeholder mod metadata
jaymar921 Nov 2, 2026
74e61d1
Add the NeoForge 1.21.5 placeholder build
jaymar921 Nov 2, 2026
5260761
Pin the NeoForge and Java versions for the Minecraft 1.21.5 placeholder
jaymar921 Nov 2, 2026
83f6872
Add the NeoForge 1.21.5 placeholder entry point that only logs
jaymar921 Nov 2, 2026
f49f1d0
Add the NeoForge 1.21.5 placeholder mod metadata
jaymar921 Nov 2, 2026
9c338c2
Add the NeoForge 26.1 placeholder build
jaymar921 Nov 2, 2026
dc37eb9
Pin the NeoForge and Java versions for the Minecraft 26.1 placeholder
jaymar921 Nov 2, 2026
abd1848
Add the NeoForge 26.1 placeholder entry point that only logs
jaymar921 Nov 2, 2026
941b471
Add the NeoForge 26.1 placeholder mod metadata
jaymar921 Nov 2, 2026
fbc6946
Add the NeoForge 26.2 placeholder build
jaymar921 Nov 2, 2026
e853d4f
Pin the NeoForge and Java versions for the Minecraft 26.2 placeholder
jaymar921 Nov 2, 2026
cfecdf3
Add the NeoForge 26.2 placeholder entry point that only logs
jaymar921 Nov 2, 2026
78ca073
Add the NeoForge 26.2 placeholder mod metadata
jaymar921 Nov 2, 2026
d179bc0
Note the placeholder modules and the new version list in the changelog
jaymar921 Nov 2, 2026
8e3eb0b
List the versions 1.1.0 ships on in the README status
jaymar921 Nov 2, 2026
0b2fabe
Describe the placeholder modules and drop the 1.21.1 freeze from the …
jaymar921 Nov 2, 2026
7baa7e8
Document the placeholder modules and the per-version toolchains
jaymar921 Nov 2, 2026
3066511
Rewrite the supported versions and phase 13 for the release list
jaymar921 Nov 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,21 @@ All notable changes to this project are documented here. The format follows
[Semantic Versioning](https://semver.org/). Pre-releases (`1.0.0-alpha.N`) mark the phases on the
way to 1.0.0; see [docs/ROADMAP.md](docs/ROADMAP.md).

## [Unreleased]

### Added

- Placeholder loader modules for every supported version that is not ported yet: Forge, NeoForge
and Fabric on 26.2, 26.1, 1.21.11, 1.21.5 and 1.20.6, and Forge and Fabric on 1.20.2 and 1.19.4.
Each downloads its loader and only logs at startup; none of them is built by default or shipped
in a beta. See docs/DEVELOPMENT.md.

### Changed

- The supported version list for final releases is now 26.3, 26.2, 26.1, 1.21.11, 1.21.5, 1.21.1,
and 1.20.6 on Forge, NeoForge and Fabric, and 1.20.2 and 1.19.4 on Forge and Fabric (25 jars). 1.20.1
is no longer planned, and older versions are no longer frozen after 1.1.0.

## [1.1.0-beta.6] - 2026-11-01

Phase 10 of the road to 1.1.0: the rest of the equipment. Betas are not uploaded to CurseForge,
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ textures and sounds load unchanged.
> **Status:** on the way to 1.1.0, now at phase 10 (`1.1.0-beta.6`). Every helicopter, plane,
> tank, car and ground vehicle can be placed, crewed and driven with the original handling, all
> 229 weapons fire, and the scripted HUDs, fuel, the vehicle screen and all of the original's
> equipment are in, down to UAV stations, the drafting table and the team manager. Betas 4 to 8
> ship the Forge 26.3 jar only; every loader and Minecraft version comes back for 1.1.0. See the
> equipment are in, down to UAV stations, the drafting table and the team manager. Betas ship the
> Forge 26.3 jar only; 1.1.0 ships on Forge and Fabric for every version from 1.19.4 to 26.3, and
> on NeoForge from 1.20.6 (see [supported versions](docs/ROADMAP.md#supported-versions)). See the
> [roadmap](docs/ROADMAP.md).

## Showcase video
Expand Down
11 changes: 8 additions & 3 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ loader. The top layer is a thin module per loader and Minecraft version, which c
lower layers together with its own glue into one jar. See
[DEVELOPMENT.md](DEVELOPMENT.md#three-layers).

Only 26.3 and 1.21.1 have the middle layer so far. The other supported versions have placeholder
loader modules (`scaffold=true`) that compile neither lower layer: just an entry point that logs,
against that version's loader and toolchain. Porting a version means adding its
`minecraft-<version>` folder, copying the loader glue in and dropping the flag.

The shared code reaches the loader in two ways only:

- **`Platform`**, installed by the loader module before anything else runs: the game and config
Expand Down Expand Up @@ -78,9 +83,9 @@ NeoForge rolls the camera the other way round from Forge, so its mixin negates t

### Minecraft 1.21.1

`minecraft-1.21.1` is a copy of `minecraft-26.3` ported back, so the two read side by side. After
1.1.0 it is frozen (see [supported versions](ROADMAP.md#supported-versions)), so the copy is not
kept in step by hand beyond that. What differs:
`minecraft-1.21.1` is a copy of `minecraft-26.3` ported back, so the two read side by side. During
the betas it is not kept in step; each final release brings it, and every other
[supported version](ROADMAP.md#supported-versions), up to date again. What differs:

- **Rendering.** 1.21.1 has no render states or submit step. Each renderer fills the same state
object itself at the start of `render` and draws straight into the `MultiBufferSource`, so
Expand Down
40 changes: 34 additions & 6 deletions docs/DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,21 @@

| Tool | Version | Notes |
|------|---------|-------|
| JDK | 25 (and 21 for the 1.21.1 modules) | Gradle provisions them through the Foojay resolver if none is installed. |
| JDK | 25 (21 for 1.20.6 to 1.21.11, 17 for 1.19.4 and 1.20.2) | Gradle provisions them through the Foojay resolver if none is installed. |
| Gradle | 9.8.2 | Use the wrapper (`./gradlew`). Loom 1.19 needs 9.8. |
| ForgeGradle | 7.x | Forge modules. Sets up Minecraft through the Mavenizer on first build. |
| ModDevGradle | 2.0.x | NeoForge modules. |
| Fabric Loom | 1.19 | Fabric modules: `net.fabricmc.fabric-loom` for 26.x, `-remap` for 1.21.1. |
| Fabric Loom | 1.19 | Fabric modules: `net.fabricmc.fabric-loom` for 26.x, `-remap` for 1.21.11 and older. |
| Forge | 66.1.0 for Minecraft 26.3 | |
| NeoForge | 26.3.0.99 for Minecraft 26.3 | |
| Fabric | Loader 0.20.1, Fabric API 0.165.0+26.3 | |
| Forge | 52.1.20 for Minecraft 1.21.1 | Built with ForgeGradle 7 and the official mappings. |
| NeoForge | 21.1.265 for Minecraft 1.21.1 | |
| Fabric | Fabric API 0.116.17+1.21.1 | Loom remaps the jar, which is obfuscated on 1.21.1. |

All three use Mojang's official names, so the shared code reads the same on every loader.
All three use Mojang's official names, so the shared code reads the same on every loader. The
loader versions of the [placeholder modules](#placeholder-modules) are in their own
`gradle.properties`.

The first build downloads and decompiles Minecraft once per loader, which takes a few minutes.
Avoid running a second Gradle build (for example an IDE import) while that is in progress: both
Expand All @@ -37,9 +39,9 @@ wait for the other process to finish and build again.

Shared properties live in the root `gradle.properties`: `mod_version`, the mod metadata, the list
of loader modules (`platforms`) and the library versions `common` compiles against. Each loader
module has its own `gradle.properties` with its loader, Minecraft and Java versions. During betas
4 to 8, `platforms` lists only `forge-26.3`, so CI and the release build one jar; the other modules
stay in the repository and come back to the list for 1.1.0 (roadmap phase 13).
module has its own `gradle.properties` with its loader, Minecraft and Java versions. During the
betas, `platforms` lists only `forge-26.3`, so CI and the release build one jar; the other modules
stay in the repository and come back to the list for each final release (roadmap phase 13).
`mods.toml`, `neoforge.mods.toml`, `fabric.mod.json` and `pack.mcmeta` are filled in from them
at build time. What every loader module shares (source folders, jar contents, manifest, file
names) is in `gradle/loader.gradle`.
Expand All @@ -59,6 +61,7 @@ neoforge-26.3/ NeoForge glue, plus a camera mixin
fabric-26.3/ Fabric glue, plus mixins for what Fabric API has no event for
minecraft-1.21.1/ the same shared code, backported to Minecraft 1.21.1
forge-1.21.1/, neoforge-1.21.1/, fabric-1.21.1/ the loader glue for 1.21.1
<loader>-<version>/ placeholders for the other supported versions (see below)
gradle/loader.gradle what every loader module shares
docs/ documentation and content format guides
.github/workflows CI and release pipelines
Expand Down Expand Up @@ -98,6 +101,31 @@ to all three loader modules, so the IDE shows it under whichever it picked; it c
of them on the command line. After pulling the split, re-import the Gradle project; the old
`forge-26.3` run configurations still work, the NeoForge and Fabric ones are new.

### Placeholder modules

Every [supported version](ROADMAP.md#supported-versions) has a loader module, but only 26.3 and
1.21.1 are ported. The other 19 (`forge-`, `neoforge-` and `fabric-` for 26.2, 26.1, 1.21.11,
1.21.5 and 1.20.6, plus `forge-` and `fabric-` for 1.20.2 and 1.19.4) are placeholders: each pins
its loader, mappings and Java version, and holds only an entry point that logs a line at startup
and the mod metadata. Their `gradle.properties` sets `scaffold=true`, which tells
`gradle/loader.gradle` to leave out `common` and `minecraft-<version>`, so they build before that
code has been ported to their version.

They are not in `platforms`, so CI and the betas never build them. Build or run one by passing
the list on the command line:

```
./gradlew :forge-1.20.2:build -Pplatforms=forge-1.20.2
./gradlew :fabric-1.19.4:runServer -Pplatforms=fabric-1.19.4 # runs from ./run-1.19.4
```

Porting a version for a final release: add `minecraft-<version>` (copied from the nearest ported
version), copy the loader glue from the ported module of the same loader, remove `scaffold=true`
and add the module to `platforms`.

There is no `neoforge-1.20.2`: ModDevGradle needs a "moddev bundle" that NeoForge 20.2 does not
publish, so NeoForge support starts at 1.20.6, the next supported version.

`Mod/` holds the original `MC1.7.10_mcheli_1.0.3.zip`. It is git-ignored. Download it from the
[MCHeli CurseForge page](https://www.curseforge.com/minecraft/mc-mods/mcheli-minecraft-helicopter-mod/files)
and put it there: `runClient` and `runServer` import it into `run/mcheli/imported` through the
Expand Down
72 changes: 40 additions & 32 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ tagged pre-release that installs and runs on its own.
| 3 | `1.0.0-alpha.3` | Weapons and combat | Implemented, in-game test in progress |
| 4 | `1.0.0-beta.1` | HUD and polish | Done |
| | `1.0.0` | Release: code-only jar | Released |
| 5-13 | `1.1.0-beta.1` to `beta.9` | Content packs, NeoForge and Fabric, 1.21.1, equipment, workshop, 1.20.1 ([plan](#road-to-110)) | In progress |
| 5-13 | `1.1.0-beta.1` to `beta.9` | Content packs, NeoForge and Fabric, equipment, workshop, every release version from 1.19.4 to 26.3 ([plan](#road-to-110)) | In progress |
| | `1.1.0` | Release on CurseForge | Planned |

## Phase 1: foundation and flyable helicopters
Expand Down Expand Up @@ -139,35 +139,40 @@ Rules that hold for every beta:
| 10 | `1.1.0-beta.6` | The rest of the equipment (Forge 26.3 only) | Released |
| 11 | `1.1.0-beta.7` | Workshop: model, parts and tuning (Forge 26.3 only) | Planned |
| 12 | `1.1.0-beta.8` | Workshop: textures, sounds and sharing (Forge 26.3 only) | Planned |
| 13 | `1.1.0-beta.9` | Every loader, 1.21.1 and 1.20.1 | Planned |
| 13 | `1.1.0-beta.9` | Every loader on every supported version, 1.19.4 to 26.3 | Planned |
| | `1.1.0` | Release on CurseForge | Planned |

The order is deliberate. The registry and the source split come first because everything else
sits on them. Content packs come before the workshop, since the workshop's output is a pack.
The loader split and 1.21.1 come right after packs, while the code is still close to 1.0.0;
from then on each feature is built once in shared code and only its Minecraft glue is written per
version and loader. Betas 4 to 8 build only the Forge 26.3 jar, since six modules on three
toolchains made every build slow; phase 13 writes the glue for the rest, adds 1.20.1 and ships
version and loader. Betas build only the Forge 26.3 jar, since many modules on three toolchains
made every build slow; phase 13 writes the glue for every other version and loader and ships
every jar again.

### Supported versions

MCHeli stopped at Minecraft 1.7.10. 1.1.0 is the bridge back: it runs on the versions most
players and modpacks are on today, so anyone can pick the mod up again, and then follows the
latest Minecraft.

| Minecraft | Also runs on | Java | Forge | NeoForge | Fabric |
|-----------|--------------|------|-------|----------|--------|
| 26.3 | | 25 | yes | yes | yes |
| 1.21.1 | 1.21 | 21 | yes | yes | yes |
| 1.20.1 | 1.20 | 17 | yes | the Forge jar (NeoForge 1.20.1 is a Forge fork) | yes |

Each major version gets its most played minor rather than its last one (1.20.6 and 1.21.11 have
few players). Nothing below 1.20.

**After 1.1.0, the 1.20.1 and 1.21.1 builds are frozen.** They get no further fixes or features;
development continues on the latest Minecraft version only, and players are expected to move
up with it.
MCHeli stopped at Minecraft 1.7.10. Final releases (1.1.0, 1.2.0 and so on) run on a wide range
of versions, so players and modpacks can pick the mod up wherever they are. Betas are Forge 26.3
only.

| Minecraft | Java | Forge | NeoForge | Fabric |
|-----------|------|-------|----------|--------|
| 26.3 | 25 | yes | yes | yes |
| 26.2 | 25 | yes | yes | yes |
| 26.1 | 25 | yes | yes | yes |
| 1.21.11 | 21 | yes | yes | yes |
| 1.21.5 | 21 | yes | yes | yes |
| 1.21.1 | 21 | yes | yes | yes |
| 1.20.6 | 21 | yes | yes | yes |
| 1.20.2 | 17 | yes | no | yes |
| 1.19.4 | 17 | yes | no | yes |

That is 25 jars per final release. NeoForge starts at 1.20.6 (ModDevGradle, which builds the
NeoForge jars, cannot set up NeoForge 1.20.2), and 1.19.4 is the oldest version.
Older versions are not frozen: every final release ships on the whole list again. Every pair
already has a Gradle module; the ones not ported yet are placeholders that only load and log
(see [DEVELOPMENT.md](DEVELOPMENT.md#placeholder-modules)).

## Phase 5: groundwork (`1.1.0-beta.1`)

Expand Down Expand Up @@ -290,21 +295,24 @@ built here syncs to other players with no extra work.
- [ ] Package browser, author credits shown in game
- [ ] Operator approval before a player's new vehicle goes live on a server

## Phase 13: every loader, 1.21.1 and 1.20.1 (`1.1.0-beta.9`)
## Phase 13: every loader on every supported version (`1.1.0-beta.9`)

Betas 4 to 8 ship only the Forge 26.3 jar, to keep builds fast. This phase brings the features
added since beta.3 to NeoForge, Fabric and 1.21.1, and adds 1.20.1, the largest modpack version
and the furthest from 26.3. All jars ship again from here on.

- [ ] Every module back in `platforms`; phases 8 to 12 ported to NeoForge and Fabric on 26.3 and
to all three loaders on 1.21.1
added since beta.3 to NeoForge, Fabric and 1.21.1, and ports the mod to the rest of the
[supported versions](#supported-versions), down to 1.19.4. All 25 jars ship from here on.

- [x] A Gradle module for every version and loader pair, the missing ones as placeholders that
download their loader and only load and log
- [ ] Every module in `platforms`; phases 8 to 12 ported to NeoForge and Fabric on 26.3 and to all
three loaders on 1.21.1
- [ ] `minecraft-26.2`, `minecraft-26.1`, `minecraft-1.21.11`, `minecraft-1.21.5`,
`minecraft-1.20.6`, `minecraft-1.20.2` and `minecraft-1.19.4`, each replacing its
placeholder modules with real glue
- [ ] `common` compiles for Java 17 (no pattern matching `switch`, no `SequencedCollection`
methods)
- [ ] 1.20.1 on Forge and Fabric. NeoForge's 1.20.1 is a fork of Forge 47, so the Forge jar is
tested there instead of built twice
- [ ] Vehicle items keep their vehicle in NBT, since data components only arrived in 1.20.5
- [ ] Rendering, networking and registration for 1.20.1
- [ ] Legacy importer and content packs checked on 1.20.1
- [ ] Vehicle items keep their vehicle in NBT on 1.20.2 and 1.19.4, since data components only
arrived in 1.20.5
- [ ] Legacy importer and content packs checked on every version
- [ ] The phase 7 smoke tests for every jar

## 1.1.0 release
Expand All @@ -314,7 +322,7 @@ No new features after beta.9; a `1.1.0-rc.N` follows only if beta.9 testing find
- [ ] Every phase checklist done on every supported Minecraft version
- [ ] A 1.0.0 world and the beta worlds load with their vehicles and items intact
- [ ] A pack made in the workshop on one version loads on every other supported version
- [ ] Tag `v1.1.0` in both repositories; upload one CurseForge file per Minecraft version, with
- [ ] Tag `v1.1.0` in both repositories; upload one CurseForge file per Minecraft version and loader, with
the player-facing changelog from `docs/CURSEFORGE.md`

## Open decisions
Expand Down
27 changes: 27 additions & 0 deletions fabric-1.19.4/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
plugins {
id 'java'
id 'idea'
id 'eclipse'
id 'net.fabricmc.fabric-loom-remap'
}

apply from: rootProject.file('gradle/loader.gradle')

loom {
runs {
configureEach {
runDir = "../run-${minecraft_version}"
}
server {
programArgs '--nogui'
}
}
}

dependencies {
minecraft "com.mojang:minecraft:${minecraft_version}"
// 1.19.4 is obfuscated; Mojang's names keep the code the same as on Forge and NeoForge.
mappings loom.officialMojangMappings()
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}"
}
9 changes: 9 additions & 0 deletions fabric-1.19.4/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Minecraft 1.19.4 on Fabric (placeholder until the port, see docs/DEVELOPMENT.md)
loader=fabric
minecraft_version=1.19.4
minecraft_version_range=~1.19.4
fabric_loader_version=0.20.1
loader_version_range=>=0.16.0
fabric_api_version=0.87.2+1.19.4
java_version=17
scaffold=true
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.jnhprojects.mcheli.fabric;

import net.fabricmc.api.ModInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* Placeholder entry point for Minecraft 1.19.4. It only proves that the module builds and loads;
* the Fabric glue from fabric-26.3 replaces it when this version is ported for a final release.
*/
public final class McheliFabric implements ModInitializer {

private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli");

@Override
public void onInitialize() {
LOGGER.info("MCHeli Rework placeholder loaded on Fabric for Minecraft 1.19.4; no content yet");
}
}
25 changes: 25 additions & 0 deletions fabric-1.19.4/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"schemaVersion": 1,
"id": "${mod_id}",
"version": "${mod_version}",
"name": "${mod_name}",
"description": "Helicopters, planes, tanks and vehicles for modern Minecraft. This build is a placeholder: the port to this Minecraft version is not done yet. A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the MCHeli CurseForge page into the \"mcheli\" folder of the game directory.",
"authors": ["JayMar921 (rework)", "EMB4 (original author)", "Fureniku (CurseForge maintainer)"],
"contact": {
"homepage": "https://github.com/JnH-Projects/MCHeli-Rework-Forge",
"issues": "https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues",
"sources": "https://github.com/JnH-Projects/MCHeli-Rework-Forge"
},
"license": "LicenseRef-MCHeli-Rework-1.0",
"icon": "mcheli_logo.png",
"environment": "*",
"entrypoints": {
"main": ["com.jnhprojects.mcheli.fabric.McheliFabric"]
},
"depends": {
"fabricloader": "${loader_version_range}",
"fabric-api": "*",
"minecraft": "${minecraft_version_range}",
"java": ">=${java_version}"
}
}
27 changes: 27 additions & 0 deletions fabric-1.20.2/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
plugins {
id 'java'
id 'idea'
id 'eclipse'
id 'net.fabricmc.fabric-loom-remap'
}

apply from: rootProject.file('gradle/loader.gradle')

loom {
runs {
configureEach {
runDir = "../run-${minecraft_version}"
}
server {
programArgs '--nogui'
}
}
}

dependencies {
minecraft "com.mojang:minecraft:${minecraft_version}"
// 1.20.2 is obfuscated; Mojang's names keep the code the same as on Forge and NeoForge.
mappings loom.officialMojangMappings()
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}"
}
9 changes: 9 additions & 0 deletions fabric-1.20.2/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Minecraft 1.20.2 on Fabric (placeholder until the port, see docs/DEVELOPMENT.md)
loader=fabric
minecraft_version=1.20.2
minecraft_version_range=~1.20.2
fabric_loader_version=0.20.1
loader_version_range=>=0.16.0
fabric_api_version=0.91.6+1.20.2
java_version=17
scaffold=true
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.jnhprojects.mcheli.fabric;

import net.fabricmc.api.ModInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* Placeholder entry point for Minecraft 1.20.2. It only proves that the module builds and loads;
* the Fabric glue from fabric-26.3 replaces it when this version is ported for a final release.
*/
public final class McheliFabric implements ModInitializer {

private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli");

@Override
public void onInitialize() {
LOGGER.info("MCHeli Rework placeholder loaded on Fabric for Minecraft 1.20.2; no content yet");
}
}
Loading
Loading