Files
Explosion-Overhaul/docs/agent-handoff.md
MrSphay 215ab3b080
Some checks failed
Build / build (push) Failing after 6m35s
Document porting handoff
2026-05-04 12:41:10 +02:00

2.7 KiB

Agent Handoff

Current State

The repository now contains a private NeoForge 21.1.228 / Minecraft 1.21.1 porting scaffold for Explosion Overhaul.

The Gitea runner has been used for:

  • decompiling the upstream Forge 0.2.3.0 jar,
  • publishing the decompiled output to runner/decompiled-upstream,
  • running repeated NeoForge builds on main.

Changes Made

  • Added .gitea/workflows/decompile.yml to decompile the upstream jar on the runner.
  • Added .gitea/workflows/build.yml to build with Java 21 on the runner.
  • Added NeoForge ModDevGradle scaffold files.
  • Imported decompiled Java sources under src/main/java.
  • Imported upstream assets and resources under src/main/resources.
  • Added src/main/templates/META-INF/neoforge.mods.toml.
  • Applied first mechanical package migration from Forge packages to NeoForge packages.
  • Repaired CFR control-flow artifacts in:
    • AsyncCraterManager
    • BlockIndexManager
  • Fixed runner setup issues:
    • executable gradlew
    • tracked gradle-wrapper.jar
    • CurseMaven exclusive dependency lookup

Verification

Check Result
git diff --check PASS before last committed source fixes
Gitea decompile workflow PASS
Gitea build workflow FAIL, now reaches Java API migration errors

Latest checked build:

Run ID: 165
Job ID: 166
Conclusion: failure

Current Build Blockers

The remaining failures are real Forge-to-NeoForge/API-porting work, not runner setup:

  • RenderGuiOverlayEvent no longer exists in the same form.
  • NetworkEvent.Context, NetworkRegistry, and SimpleChannel need migration to NeoForge's 1.21 networking API.
  • ConfigScreenHandler needs migration to the NeoForge config screen registration API.
  • DistExecutor imports need replacement/removal for NeoForge 1.21.
  • @Mod.EventBusSubscriber needs migration to NeoForge's event subscriber annotation.
  • ForgeRegistries / RegistryObject usage needs migration to the modern NeoForge registry holders.

Next Steps

  1. Migrate registry classes first (ModSounds, ModBlocks, ModItems, ModParticles, ModBlockEntities, creative tabs).
  2. Migrate packet registration and all packet handlers away from Forge SimpleChannel / NetworkEvent.Context.
  3. Replace GUI overlay events and config screen registration.
  4. Re-run the Gitea build after each API family rather than attempting all files at once.

Risks

  • This is decompiled, All Rights Reserved upstream code. Keep the repo private and do not publish builds without permission.
  • The port is large: after compile succeeds, runtime testing in a real NeoForge client will still be required for explosions, scan UI, audio effects, shaders, and mixins.