Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
314 commits
Select commit Hold shift + click to select a range
40472a0
Move BombEntity to the shared 26.3 sources
jaymar921 Oct 29, 2026
cc156bd
Move BulletEntity to the shared 26.3 sources
jaymar921 Oct 29, 2026
9581c98
Move DispensedItemEntity to the shared 26.3 sources
jaymar921 Oct 29, 2026
0175c64
Move FlareEntity to the shared 26.3 sources
jaymar921 Oct 29, 2026
cf8ff8f
Move MarkerRocketEntity to the shared 26.3 sources
jaymar921 Oct 29, 2026
5a7792d
Move ProjectileEntity to the shared 26.3 sources
jaymar921 Oct 29, 2026
582904e
Move RocketEntity to the shared 26.3 sources
jaymar921 Oct 29, 2026
0bd3bfd
Move TorpedoEntity to the shared 26.3 sources
jaymar921 Oct 29, 2026
e92092f
Move TvMissileEntity to the shared 26.3 sources
jaymar921 Oct 29, 2026
e298cfc
Move AircraftItem to the shared 26.3 sources
jaymar921 Oct 29, 2026
b20902f
Move LegacyAircraftItem to the shared 26.3 sources
jaymar921 Oct 29, 2026
c73a6ea
Move BoardVehiclePacket to the shared sources as a custom payload
jaymar921 Oct 29, 2026
8c3eeb5
Move CrewActionPacket to the shared sources as a custom payload
jaymar921 Oct 29, 2026
753877f
Move ExplosionEffectPacket to the shared sources as a custom payload
jaymar921 Oct 29, 2026
576e56b
Move FireWeaponPacket to the shared sources as a custom payload
jaymar921 Oct 29, 2026
7be62f9
Move LockWarningPacket to the shared sources as a custom payload
jaymar921 Oct 29, 2026
8c5cf83
Move PackDataPacket to the shared sources as a custom payload
jaymar921 Oct 29, 2026
d46da44
Move PackListPacket to the shared sources as a custom payload
jaymar921 Oct 29, 2026
b43aee9
Move PackRequestPacket to the shared sources as a custom payload
jaymar921 Oct 29, 2026
eaa4f03
Move PackSync to the shared sources with plain login, logout and tick…
jaymar921 Oct 29, 2026
c04f06d
Move PilotStatePacket to the shared sources as a custom payload
jaymar921 Oct 29, 2026
d40425d
Move WeaponStatePacket to the shared sources as a custom payload
jaymar921 Oct 29, 2026
68710b1
Move GlowParticleOptions to the shared 26.3 sources
jaymar921 Oct 29, 2026
95b04e2
Move ModCreativeTabs to the shared sources and build tabs through the…
jaymar921 Oct 29, 2026
2f4b3de
Move ModDataComponents to the shared sources on Registration
jaymar921 Oct 29, 2026
75507b4
Move ModItems to the shared sources on Registration
jaymar921 Oct 29, 2026
01aca56
Move ModParticles to the shared sources on Registration
jaymar921 Oct 29, 2026
05e7b34
Move Combat to the shared sources and use the c:glass_panes tag
jaymar921 Oct 29, 2026
815d12a
Move ExplosionEffect to the shared 26.3 sources
jaymar921 Oct 29, 2026
b276a88
Move Explosions to the shared sources and read block resistance the v…
jaymar921 Oct 29, 2026
ae1f8cf
Move FlareDispenser to the shared 26.3 sources
jaymar921 Oct 29, 2026
ed2b815
Move Guidance to the shared 26.3 sources
jaymar921 Oct 29, 2026
b7896ae
Move LegacyItems to the shared 26.3 sources
jaymar921 Oct 29, 2026
7bf7eeb
Move ModDamageTypes to the shared 26.3 sources
jaymar921 Oct 29, 2026
14275c1
Move Resupply to the shared 26.3 sources
jaymar921 Oct 29, 2026
8c341e9
Move ServerFiring to the shared 26.3 sources
jaymar921 Oct 29, 2026
0ff76ab
Move Shot to the shared 26.3 sources
jaymar921 Oct 29, 2026
0a22945
Move VehicleWeapons to the shared 26.3 sources
jaymar921 Oct 29, 2026
d3f7223
Move WeaponSet to the shared 26.3 sources
jaymar921 Oct 29, 2026
d023795
Move assets/mcheli/items/helicopter.json to the shared 26.3 resources
jaymar921 Oct 29, 2026
23acafd
Move assets/mcheli/items/plane.json to the shared 26.3 resources
jaymar921 Oct 29, 2026
5aa4270
Move assets/mcheli/items/tank.json to the shared 26.3 resources
jaymar921 Oct 29, 2026
f89163c
Move assets/mcheli/items/vehicle.json to the shared 26.3 resources
jaymar921 Oct 29, 2026
0232fc1
Move assets/mcheli/particles/glow.json to the shared 26.3 resources
jaymar921 Oct 29, 2026
dff93cc
Move assets/mcheli/textures/particle/glow.png to the shared 26.3 reso…
jaymar921 Oct 29, 2026
c191b63
Move data/mcheli/damage_type/bullet.json to the shared 26.3 resources
jaymar921 Oct 29, 2026
59ed9b2
Move data/minecraft/tags/damage_type/is_projectile.json to the shared…
jaymar921 Oct 29, 2026
2545f8b
Move mcheli_logo.png to the shared 26.3 resources
jaymar921 Oct 29, 2026
0a47e22
Move pack.mcmeta to the shared 26.3 resources
jaymar921 Oct 29, 2026
e460ec8
Make MCHeli the loader-free core that every entry point initialises
jaymar921 Oct 29, 2026
f7b6bfc
Turn ClientSetup into ClientHooks, which the loader modules call from…
jaymar921 Oct 29, 2026
0a3d0e0
Split VehicleIngredient into shared matching and a wrapper per loader
jaymar921 Oct 29, 2026
a0cdfda
List the packets as payloads for every loader to register
jaymar921 Oct 29, 2026
838c532
Declare the entity types on Registration
jaymar921 Oct 29, 2026
9179440
Remove ModRecipes; the recipe book and ingredient moved to the hooks …
jaymar921 Oct 29, 2026
ca3ad8e
Add CommonHooks for the loader modules to call from server events
jaymar921 Oct 29, 2026
b5c762e
Add CameraAngles so the camera hook works without Forge's event
jaymar921 Oct 29, 2026
87d8971
Build the Forge module from the shared loader script
jaymar921 Oct 29, 2026
5ae417b
Name the loader in the Forge module properties
jaymar921 Oct 29, 2026
39f54e0
Use the loader version range for the Forge dependency
jaymar921 Oct 29, 2026
61d022b
Add the Forge entry point
jaymar921 Oct 29, 2026
59f8d8d
Add the Forge platform
jaymar921 Oct 29, 2026
5c78b60
Register the packets on a Forge payload channel
jaymar921 Oct 29, 2026
b798fb9
Add the Forge vehicle ingredient
jaymar921 Oct 29, 2026
8c41f19
Wire the Forge client events to the client hooks
jaymar921 Oct 29, 2026
a65111f
Add the NeoForge 26.3 module
jaymar921 Oct 29, 2026
a2d0acc
Add the NeoForge 26.3 module properties
jaymar921 Oct 29, 2026
858c23b
Add the NeoForge mod metadata
jaymar921 Oct 29, 2026
0a41c5f
Add the NeoForge mixin config
jaymar921 Oct 29, 2026
256dfd4
Add the NeoForge entry point
jaymar921 Oct 29, 2026
5931f9e
Add the NeoForge platform
jaymar921 Oct 29, 2026
7d94fac
Add the NeoForge vehicle ingredient
jaymar921 Oct 29, 2026
8905e1b
Wire the NeoForge client events to the client hooks
jaymar921 Oct 29, 2026
4c12d1e
Hook the camera where Forge fires its camera event on NeoForge
jaymar921 Oct 29, 2026
1032597
Reach NeoForge's camera rotation with roll
jaymar921 Oct 29, 2026
438bb73
Add the Fabric 26.3 module
jaymar921 Oct 29, 2026
013c768
Add the Fabric 26.3 module properties
jaymar921 Oct 29, 2026
2c6f0a5
Add the Fabric mod metadata
jaymar921 Oct 29, 2026
e469c40
Add the Fabric mixin config
jaymar921 Oct 29, 2026
2403e15
Add the Fabric entry point
jaymar921 Oct 29, 2026
95fef44
Add the Fabric client entry point
jaymar921 Oct 29, 2026
087a93e
Add the Fabric platform
jaymar921 Oct 29, 2026
da03a37
Add the Fabric vehicle ingredient
jaymar921 Oct 29, 2026
55f559c
Hook the camera, and hide the hand, where Forge does on Fabric
jaymar921 Oct 29, 2026
faa6e84
Give the vanilla camera a roll on Fabric
jaymar921 Oct 29, 2026
87e0e0a
Add the camera roll interface for Fabric
jaymar921 Oct 29, 2026
427b654
Take the use and pick block keys on Fabric
jaymar921 Oct 29, 2026
2c3f2fc
Tilt riders with their vehicle on Fabric
jaymar921 Oct 29, 2026
98d251c
Add the imported content pack to every pack repository on Fabric
jaymar921 Oct 29, 2026
b661574
Stream content pack sounds through Fabric's sound hook
jaymar921 Oct 29, 2026
9d868a6
Describe the loader layer, the hooks and the per-loader mixins
jaymar921 Oct 29, 2026
8d3c024
Document the three layers, the new toolchain and the loader run tasks
jaymar921 Oct 29, 2026
33af395
Add a smoke test for every jar and checks across loaders
jaymar921 Oct 29, 2026
46eae3c
Tick the phase 7 items done for 26.3
jaymar921 Oct 29, 2026
ffe4e5d
List NeoForge and Fabric in the requirements and install steps
jaymar921 Oct 29, 2026
715ddcd
Note the NeoForge and Fabric jars under Unreleased
jaymar921 Oct 29, 2026
2ef890f
Ignore the per-version run folders
jaymar921 Oct 30, 2026
c74e9b5
Build the Forge, NeoForge and Fabric modules for 1.21.1 too
jaymar921 Oct 30, 2026
d33a978
Put JSpecify on the compile classpath, which 1.21.1 does not ship
jaymar921 Oct 30, 2026
c06deb2
Add ImportTarget for the pack layout of each Minecraft version
jaymar921 Oct 30, 2026
b3d310b
Write 1.21.1 recipes with object ingredients and custom model data
jaymar921 Oct 30, 2026
00122ee
Import for a target version and write the 1.21.1 kind models and icon…
jaymar921 Oct 30, 2026
3d5946f
Test the recipe format of each import target
jaymar921 Oct 30, 2026
2f2ecfa
Import in the 26.x layout and record the target in the marker
jaymar921 Oct 30, 2026
73bdc82
Sort the RiderPose imports
jaymar921 Oct 30, 2026
f93c40b
Add ClientConfig to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
4352ec6
Read recipe ids the 1.21.1 way
jaymar921 Oct 30, 2026
5f9af1c
Add ContentPacks to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
11d9fc6
Add ContentReload to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
b6858b7
Import in the 1.21.1 layout and read the vehicle icon numbers
jaymar921 Oct 30, 2026
8a2051e
Add MCHeli to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
e88468d
Check permissions and hand out items the 1.21.1 way
jaymar921 Oct 30, 2026
942b43c
Add ModSounds to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
0c3ef1a
Add ServerConfig to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
9b3cc71
Add CameraAngles to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
4536ee8
Add ClientContentReload to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
e73acd9
Hand the rider hook the entity and the HUD hook GuiGraphics on 1.21.1
jaymar921 Oct 30, 2026
8f07b4f
Add ClientPacks to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
7727309
Read the movement keys from 1.21.1's player input
jaymar921 Oct 30, 2026
c73cca8
Name the key category with a translation key on 1.21.1
jaymar921 Oct 30, 2026
5c19a6d
Upload runtime textures the 1.21.1 way
jaymar921 Oct 30, 2026
ed3e4c4
Add VehiclePicker to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
4ebfc49
Read the camera and screen the 1.21.1 way
jaymar921 Oct 30, 2026
d25c7d7
Draw the weapon HUD with 1.21.1's GuiGraphics
jaymar921 Oct 30, 2026
7e49257
Draw HUD scripts with 1.21.1's GuiGraphics and pose stack
jaymar921 Oct 30, 2026
3d8abb1
Draw HUD scripts with 1.21.1's GuiGraphics
jaymar921 Oct 30, 2026
34ba906
Add HudScripts to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
3caa5f2
Read build height, time and rotation the 1.21.1 way
jaymar921 Oct 30, 2026
47fc1f1
Port the glow particle to 1.21.1's texture sheet particles
jaymar921 Oct 30, 2026
d35ae30
Draw the A-10 through 1.21.1's render call
jaymar921 Oct 30, 2026
5e41d86
Keep the vehicle render state as plain data on 1.21.1
jaymar921 Oct 30, 2026
778a88c
Draw vehicles through 1.21.1's render call and buffer source
jaymar921 Oct 30, 2026
a6f6873
Draw flare glows through 1.21.1's render call
jaymar921 Oct 30, 2026
057c853
Read texture alpha the 1.21.1 way
jaymar921 Oct 30, 2026
92285c9
Build the additive glow render and particle types for 1.21.1
jaymar921 Oct 30, 2026
c005034
Add MeshCache to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
fb37f06
Add MeshRenderer to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
4d9399b
Send vehicle parts to 1.21.1's buffer source
jaymar921 Oct 30, 2026
e448d17
Draw projectiles and tracers through 1.21.1's render call
jaymar921 Oct 30, 2026
cba8ee7
Tilt riders from the entity, which 1.21.1 hands the render hook
jaymar921 Oct 30, 2026
a74ece0
Add EngineSound to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
bed6656
Add EngineSoundPlayer to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
62b9983
Resolve and stream runtime sounds the 1.21.1 way
jaymar921 Oct 30, 2026
996fc53
Port vehicles to 1.21.1: Entity base, NBT saves, lerp, hurt and inter…
jaymar921 Oct 30, 2026
5dc9de1
Add AnimationState to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
2fd1712
Add ClientAccess to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
0b319b4
Add EngineSoundSource to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
71e92ee
Add GroundVehicleEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
fad9f74
Add HelicopterEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
9ac5db0
Add PartState to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
87f641f
Add PlaneEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
25d3419
Add TankEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
bd6543f
Add TerrainFollower to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
f6d4f31
Port the A-10 to 1.21.1's damage, save and rotation API
jaymar921 Oct 30, 2026
517d716
Add AAMissileEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
7f366d7
Add ASMissileEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
745e943
Add ATMissileEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
d743460
Add BombEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
6a154f7
Add BulletEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
3bdabdd
Read build height the 1.21.1 way
jaymar921 Oct 30, 2026
0780250
Port flares to 1.21.1's damage, save and placement API
jaymar921 Oct 30, 2026
5ffe634
Port marker rockets to 1.21.1's particles and damage API
jaymar921 Oct 30, 2026
6a6ba40
Port projectiles to 1.21.1's damage, save and spawn API
jaymar921 Oct 30, 2026
c53bdbc
Add RocketEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
04bd643
Add TorpedoEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
8a6e448
Add TvMissileEntity to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
2e5f4c0
Use 1.21.1's item use result and custom model data icons
jaymar921 Oct 30, 2026
ffc536c
Convert 1.0.0 items from 1.21.1's inventory tick
jaymar921 Oct 30, 2026
28041e1
List the vehicle stack for 1.21.1's ingredient display
jaymar921 Oct 30, 2026
ae62f1c
Board through interactAt on 1.21.1
jaymar921 Oct 30, 2026
a6968f5
Add CrewActionPacket to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
2dbb1bc
Add ExplosionEffectPacket to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
49aa0b6
Add FireWeaponPacket to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
639e57d
Add LockWarningPacket to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
3367636
Add ModNetwork to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
aca8c2a
Add PackDataPacket to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
3a9d980
Add PackListPacket to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
7f8d8a0
Add PackRequestPacket to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
48ff55c
Check the singleplayer owner and permissions the 1.21.1 way
jaymar921 Oct 30, 2026
a039b00
Add PilotStatePacket to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
a89eaf1
Add WeaponStatePacket to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
facc817
Read the glow colour as a plain int on 1.21.1
jaymar921 Oct 30, 2026
0de112a
Add Platform to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
8c5c3ac
Add Registered to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
7fff8ab
Add Registration to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
29f93b7
Add ModCreativeTabs to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
94bbe8e
Add ModDataComponents to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
dd567c4
Build entity types from a name on 1.21.1
jaymar921 Oct 30, 2026
7b6726d
Drop the item id on the properties, which 1.21.1 does not have
jaymar921 Oct 30, 2026
4c1705f
Add ModParticles to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
f96f0df
Deal weapon damage through 1.21.1's hurt
jaymar921 Oct 30, 2026
615454a
Add ExplosionEffect to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
43f3ecb
Read explosion exposure the 1.21.1 way
jaymar921 Oct 30, 2026
938fe7c
Create flares the 1.21.1 way
jaymar921 Oct 30, 2026
305576c
Add Guidance to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
fb8198f
Look up items the 1.21.1 way
jaymar921 Oct 30, 2026
b267c83
Add ModDamageTypes to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
158d7ce
Add Resupply to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
c4cfa70
Create projectiles the 1.21.1 way
jaymar921 Oct 30, 2026
75bd728
Add Shot to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
13c4d42
Build dust and item particles the 1.21.1 way
jaymar921 Oct 30, 2026
01aaa8d
Add WeaponSet to the shared 1.21.1 sources
jaymar921 Oct 30, 2026
cc1d733
Add assets/mcheli/particles/glow.json to the shared 1.21.1 resources
jaymar921 Oct 30, 2026
1d17388
Add assets/mcheli/textures/particle/glow.png to the shared 1.21.1 res…
jaymar921 Oct 30, 2026
472c9fe
Add data/mcheli/damage_type/bullet.json to the shared 1.21.1 resources
jaymar921 Oct 30, 2026
5938406
Add data/minecraft/tags/damage_type/is_projectile.json to the shared …
jaymar921 Oct 30, 2026
d8c2db9
Add mcheli_logo.png to the shared 1.21.1 resources
jaymar921 Oct 30, 2026
da2c5e4
Use the 1.21.1 pack formats in the mod's pack.mcmeta
jaymar921 Oct 30, 2026
d54a892
Add the forge 1.21.1 module
jaymar921 Oct 30, 2026
6260592
Add the forge 1.21.1 module properties
jaymar921 Oct 30, 2026
2a90b94
Add ForgeClient to the forge 1.21.1 module
jaymar921 Oct 30, 2026
9f4e013
Add ForgeNetwork to the forge 1.21.1 module
jaymar921 Oct 30, 2026
24c60f8
Add ForgePlatform to the forge 1.21.1 module
jaymar921 Oct 30, 2026
0a91181
Add ForgeVehicleIngredient to the forge 1.21.1 module
jaymar921 Oct 30, 2026
e844150
Add McheliForge to the forge 1.21.1 module
jaymar921 Oct 30, 2026
b7ff320
Add the forge 1.21.1 mod metadata
jaymar921 Oct 30, 2026
9c50ea6
Add the neoforge 1.21.1 module
jaymar921 Oct 30, 2026
34ada45
Add the neoforge 1.21.1 module properties
jaymar921 Oct 30, 2026
4382294
Add McheliNeoForge to the neoforge 1.21.1 module
jaymar921 Oct 30, 2026
fa9b716
Add NeoForgeClient to the neoforge 1.21.1 module
jaymar921 Oct 30, 2026
a389b91
Add NeoForgePlatform to the neoforge 1.21.1 module
jaymar921 Oct 30, 2026
47f891e
Add NeoForgeVehicleIngredient to the neoforge 1.21.1 module
jaymar921 Oct 30, 2026
a47a82f
Add CameraInvoker to the neoforge 1.21.1 module
jaymar921 Oct 30, 2026
1f4539c
Add GameRendererMixin to the neoforge 1.21.1 module
jaymar921 Oct 30, 2026
2837f7a
Add the neoforge 1.21.1 mod metadata
jaymar921 Oct 30, 2026
c9951cc
Add the neoforge 1.21.1 mixin config
jaymar921 Oct 30, 2026
beb7992
Add the fabric 1.21.1 module
jaymar921 Oct 30, 2026
911e85c
Add the fabric 1.21.1 module properties
jaymar921 Oct 30, 2026
00fbc97
Add FabricPlatform to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
0d0a768
Add FabricVehicleIngredient to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
a29f32b
Add McheliFabric to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
57e8d2a
Add McheliFabricClient to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
4792c37
Add CameraMixin to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
14355c5
Add GameRendererMixin to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
1499a6a
Add LivingEntityRendererMixin to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
bb75d9c
Add MinecraftMixin to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
978fe5b
Add PackRepositoryMixin to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
dc2145d
Add RollableCamera to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
d275ec1
Add RuntimeSoundInstanceMixin to the fabric 1.21.1 module
jaymar921 Oct 30, 2026
7a757db
Add the fabric 1.21.1 mod metadata
jaymar921 Oct 30, 2026
1466c71
Add the fabric 1.21.1 mixin config
jaymar921 Oct 30, 2026
6ba607c
Describe how the 1.21.1 code differs from 26.3
jaymar921 Oct 30, 2026
a7102c0
Document the 1.21.1 toolchain, modules and run folder
jaymar921 Oct 30, 2026
e325277
Add 1.21.1 checks to the test plan
jaymar921 Oct 30, 2026
ed9db1e
Tick the 1.21.1 and importer items of phase 7
jaymar921 Oct 30, 2026
1da82cb
List the 1.21.1 requirements and jar names
jaymar921 Oct 30, 2026
efe6b14
Note 1.21.1 under Unreleased
jaymar921 Oct 30, 2026
68c1612
Set the version to 1.1.0-beta.3
jaymar921 Oct 30, 2026
4ee264b
Release the changelog section as 1.1.0-beta.3
jaymar921 Oct 30, 2026
b3a860c
Mark phase 7 as released in beta.3
jaymar921 Oct 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ eclipse/

# Run directories
run/
run-*/
run-data/
logs/
*.log
Expand Down
44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,50 @@ 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).

## [1.1.0-beta.3] - 2026-10-30

Phase 7 of the road to 1.1.0: the mod on NeoForge and Fabric as well as Forge, and on Minecraft
1.21.1 as well as 26.3. Betas are not uploaded to CurseForge; download them from the GitHub
releases, one jar per loader and Minecraft version. Worlds from 1.1.0-beta.2 and 1.0.0 load as
before on 26.3. Players and servers need the same version, since the network protocol changed.

### Added

- NeoForge and Fabric jars for Minecraft 26.3, with the same features as the Forge one. Fabric
needs Fabric API. Worlds, the `mcheli` folder, content packs and configs carry over between
loaders.
- Minecraft 1.21.1 on Forge, NeoForge and Fabric, with the same vehicles, weapons, HUD and
content packs as on 26.3. Vehicle icons come from the kind's item model, which picks each
vehicle by `custom_model_data`.
- The log names the loader the mod runs on, next to the version.

### Changed

- Jar names carry the loader and the Minecraft version, such as `mcheli-forge-26.3-<version>.jar`
and `mcheli-fabric-1.21.1-<version>.jar`.
- The configs are read by the mod itself instead of Forge's config system, which Fabric does not
have. The files, their place and their keys stay the same, so existing settings are kept. Edits
to `serverconfig/mcheli-server.toml` now apply on the next world start or `/mcheli reload`
instead of while the server runs; `/mcheli reload` now reads the server config again too.
- The original content is imported again on the first start, since the recipes now name the
vehicle ingredient for every loader. The import writes the layout of the Minecraft version it runs
on, and imports again when the folder was made for another version.
- Every packet travels under its own id (`mcheli:pilot_state` and so on) with the same encoding on
every loader. Clients and servers need the same version, since the network protocol changed.
- Glass panes that bullets shoot through come from the `c:glass_panes` tag, which every loader
fills.

### Developers

- The code is split in three layers: `common` (no Minecraft), `minecraft-26.3` (Minecraft, no
loader) and a thin module per loader (`forge-26.3`, `neoforge-26.3`, `fabric-26.3`). The shared
code reaches the loader through `Platform` and `Registration`, and the loaders call
`CommonHooks` and `ClientHooks` from their events. Where NeoForge or Fabric has no event, a
mixin hooks in where Forge fires its own. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
- `minecraft-1.21.1` holds the shared code backported to 1.21.1; `forge-1.21.1`, `neoforge-1.21.1`
and `fabric-1.21.1` are its loader modules. 1.21.1 development runs use `./run-1.21.1`.
- Gradle 9.8.2, for Fabric Loom 1.19. NeoForge modules build with ModDevGradle.

## [1.1.0-beta.2] - 2026-10-29

Phase 6 of the road to 1.1.0: content packs that servers send to their players, night glow and
Expand Down
37 changes: 22 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

<img src="docs/images/mcheli-rework-icon.png" alt="MCHeli Rework icon" width="160">

Helicopters, planes, tanks and ground vehicles for **Minecraft 26.3** on **Forge 66.1**.
Helicopters, planes, tanks and ground vehicles for **Minecraft 26.3** and **1.21.1**, on **Forge**,
**NeoForge** and **Fabric**.

MCHeli Rework is a ground-up port of MCHeli 1.0.3, a mod that stopped at Minecraft 1.7.10. Every
system is rewritten for the modern game, while the original vehicle definitions, models,
Expand Down Expand Up @@ -124,24 +125,28 @@ Reserved original, the code is source available rather than open source.

## Requirements

| | Version |
|---|---------|
| Minecraft | 26.3 |
| Forge | 66.1.0 or newer in the 66.x line |
| Java | 25 (bundled with the Minecraft launcher) |
| | Minecraft 26.3 | Minecraft 1.21.1 |
|---|---|---|
| Forge | 66.1.0 or newer in the 66.x line | 52.1.0 or newer |
| NeoForge | 26.3.0.99 or newer | 21.1.200 or newer |
| Fabric | Loader 0.20 and Fabric API | Loader 0.16 and Fabric API |
| Java | 25 (bundled with the launcher) | 21 (bundled with the launcher) |

## Installing

1. Install Forge 66.1.0 for Minecraft 26.3.
2. Download `mcheli-26.3-<version>.jar` from the [releases](https://github.com/JnH-Projects/MCHeli-Rework-Forge/releases).
3. Drop it into the `mods` folder of your Forge 26.3 profile.
1. Install Forge, NeoForge or Fabric for Minecraft 26.3 or 1.21.1. On Fabric, also install
[Fabric API](https://modrinth.com/mod/fabric-api).
2. Download the jar for your loader from the
[releases](https://github.com/JnH-Projects/MCHeli-Rework-Forge/releases):
`mcheli-<loader>-<minecraft>-<version>.jar`, such as `mcheli-fabric-1.21.1-<version>.jar`.
3. Drop it into the `mods` folder of that profile.
4. Download `MC1.7.10_mcheli_1.0.3.zip` from the
[MCHeli CurseForge page](https://www.curseforge.com/minecraft/mc-mods/mcheli-minecraft-helicopter-mod/files)
and put it, still zipped, into a folder called `mcheli` next to `mods` (create it if needed):

```
<game directory>/
mods/mcheli-26.3-<version>.jar
mods/mcheli-<loader>-<minecraft>-<version>.jar
mcheli/MC1.7.10_mcheli_1.0.3.zip
```

Expand All @@ -151,8 +156,10 @@ be switched off. The zip can be deleted afterwards. Dedicated servers need the z
place. Without it the game still starts, but there are no vehicles, and the chat says where the
zip goes.

Use a separate game directory for the Forge 26.3 profile. Mods built for other loaders or older
versions in a shared `mods` folder will stop the game from starting.
Use a separate game directory for each loader and version. Mods built for other loaders or older
versions in a shared `mods` folder will stop the game from starting. Worlds and the `mcheli`
folder can move between loaders on the same Minecraft version: the imported content, content packs
and configs are the same files on all three. Do not open a 26.3 world in 1.21.1.

## Controls

Expand Down Expand Up @@ -279,8 +286,8 @@ adds a small helicopter, the Rework Scout. To make your own, see
./gradlew build
```

The jars, one per Minecraft version, end up in `build/release`. Java 25 is required; Gradle
downloads one automatically if it is not installed. `./gradlew :forge-26.3:runClient` and
`:forge-26.3:runServer` import the content from
The jars, one per loader and Minecraft version, end up in `build/release`. Java 25 is required;
Gradle downloads one automatically if it is not installed. `./gradlew :<loader>-26.3:runClient`
and `:<loader>-26.3:runServer` (`forge`, `neoforge` or `fabric`) import the content from
`Mod/MC1.7.10_mcheli_1.0.3.zip`, which you have to download yourself. See
[DEVELOPMENT.md](docs/DEVELOPMENT.md) for details.
15 changes: 12 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,15 +1,24 @@
plugins {
id 'base'
id 'net.minecraftforge.gradle' version '[7.0.17,8)' apply false
id 'net.neoforged.moddev' version '2.0.148' apply false
// Loom 1.19 needs Gradle 9.8. The plain plugin is for unobfuscated Minecraft (26.x), the remap
// one for versions that still ship obfuscated (1.21.1 and older).
id 'net.fabricmc.fabric-loom' version '1.19.3' apply false
id 'net.fabricmc.fabric-loom-remap' version '1.19.3' apply false
}

def platforms = providers.gradleProperty('platforms').get().split(',').collect { it.trim() }

// One jar per Minecraft version, gathered in one folder for the release workflow.
// One jar per loader and Minecraft version, gathered in one folder for the release workflow.
def releaseJars = tasks.register('releaseJars', Sync) {
group = 'build'
description = 'Collects the jar of every platform module into build/release.'
platforms.each { platform -> from(project(":$platform").tasks.named('jar')) }
description = 'Collects the jar of every loader module into build/release.'
platforms.each { platform ->
// On the obfuscated versions (1.x) Fabric's shippable jar is the remapped one.
def jarTask = platform.startsWith('fabric-1.') ? 'remapJar' : 'jar'
from(project(":$platform").tasks.named(jarTask))
}
into layout.buildDirectory.dir('release')
}

Expand Down
Loading
Loading