Commit Graph
834 Commits
Author SHA1 Message Date
Algent dcca20df0a docs: drop port-only material from compatibility audit
The port is done; keep what consumer migration and Scala removal need.

- Remove the port plan Q&A; keep its one real constraint (ProjectRed's
  external Scala trait needs registerScalaTrait) in the retention rules
- Remove the superseded +700 installed revision table
- Remove the pre-conversion test gates; move the two still unmet ones
  (builder/editor round trip, UtilitiesInExcess fixture) to MANUAL_CHECKS
- Reword progress notes as current facts, fix stale JPartialOcclusion and
  IDWriter notes and the Scala-typed descriptor count
2026-10-16 15:48:28 +02:00
Algent 6ebec208df feat: add TileMultipart.refreshInventorySlots for AE2
AE2 casts the tile to the raw scalatraits TIInventoryTile to call
rebuildSlotMap after its cable bus inventory size changes. Give it a
supported entry point on TileMultipart instead.

- refreshInventorySlots is a no-op on base tiles; the generated inventory
  trait rebuilds its flattened slot mapping without rebinding parts
- rebuildSlotMap stays supported for released AE2 jars
- Functional tests cover resize, tiles without inventories, and a
  slotted plus inventory tile; smoke test freezes the new trait method
- Document it in the tile trait guide, API index and adoption ledger
2026-10-16 15:17:42 +02:00
Algent 7c6d4b9c88 feat: add BlockMultipart.hitPartIndex as Java reduceMOP index
GT5U 5.09.54.205 casts reduceMOP(hit)._1() to Integer to find the struck
ProjectRed wire. Give Java callers the same index without Scala types.

- hitPartIndex returns the jPartList index recorded by rayTraceAll, or -1
  when the hit carries no part index
- reduceMOP and its companion are unchanged and not deprecated; tests now
  pin the boxed Integer index and the rebased hit
- Add HitPartExample and the HIT_PART guide, link it from the API index
- Record the replacement in the compatibility ledger
2026-10-16 14:06:50 +02:00
Algent addb1a2c1d docs: refresh consumer scan against GTNH 2.9.0-RC-2
Rescan 240 jars of the 2.9.0-RC-2 instance and freeze the result as a new
ABI baseline next to the +678 one. All baseline rows are still present and
every scanned type and member resolves against the port.

- 28 consumer jars: ThaumicEnergistics is new (Class.forName on
  TileMultipart for Waila providers)
- GT5U now calls BlockMultipart.reduceMOP (Scala Tuple2) for ProjectRed
  wire recoloring; no Java replacement yet, recorded in the ledger
- GuideNH 1.3.41 replaced its reflection with direct links
- AE2 links JCuboidPart.bind from its host refresh fix
- Source heads refreshed to 2026-10-16; only GT5U, ProjectRed and
  ProjectBlue changed FMP-referencing files
- Add manual checks for GT5U spray cans and ThaumicEnergistics Waila
2026-10-16 13:56:56 +02:00
Algent ed861b6ca5 docs: trim audit noise from API guides
- drop per-guide Validation sections; manual gates stay in MANUAL_CHECKS
- drop audit/provenance lines (reference checkouts, dated refreshes, commit pins)
- state version status and Scala-free compile check once in API.md
- replace API.md status prose with link to migration status
- fix RELEASE_NOTES dangling sentence
- rewrite README for GTNH fork and Java port
2026-10-15 16:39:36 +02:00
Algent 5543de57c5 Merge branch 'master' into algent/java
# Conflicts:
#	dependencies.gradle
2026-10-15 16:19:52 +02:00
Martin Robertz b42613eca8 update+bs+deps+gitignore+gradle 1.7.18 2026-10-14 21:07:20 +02:00
Algent 1df9f1145e Merge branch 'master' into algent/java
# Conflicts:
#	src/main/scala/codechicken/microblock/handler/MicroblockEventHandler.scala
2026-10-14 16:40:58 +02:00
Ressed deeb23c22d Set load icon's handler priority lower to wait for other mod's block texture initialized (#63) 2026-10-14 16:39:10 +02:00
Algent 255b817c92 fix: re-resolve microblock icons after texture stitch
loadIcons runs in TextureStitchEvent.Post and could cache icons before
other mods finished theirs in the same event (Chisel CTMLib -v4 submaps),
leaving microblocks with missing or previous-stitch textures.

loadIcons now marks icons stale; the first icont() read after a stitch
rebuilds them once. Icons set through icont_$eq are kept. Addon materials
reading icont() get the fix without API changes.

Fixes GTNH issue 27183 without relying on handler priority (upstream #63).
2026-10-14 16:37:20 +02:00
Algent ac2cd5017c Merge master into algent/java and port client conversion fix
Keep the existing Java recipe fix for PR #61. Port PR #62 so client additions reuse multipart tiles without converting stale blocks, preserving server-side conversion. Add a regression for stale client torches and subsequent additions.

Validation: full build, formatting, checkstyleTest and Scala-free API examples passed; 588 unit tests and 300 Forge functional tests passed without skips. The new Forge regression failed before the fix by retaining an extra converted torch.
2026-10-07 17:03:55 +02:00
Luca 290dc4a815 Fix client kick when a part is added over a stale convertible block (#62) 1.7.17 2026-10-04 22:37:34 +02:00
Ressed 9eb69cdc13 Fix MissingMicroMaterial microblock crafted instead of Minecraft:stone (#61) 1.7.16 2026-10-03 20:14:54 -05:00
Algent 965f1e1e20 test: refresh consumer audit and binding coverage 2026-09-21 23:30:12 +02:00
Algent 9a6d1ec4fc feat: add inverse button orientation lookup 2026-09-21 23:23:47 +02:00
Algent ebbc92378d docs: record consumer migration traps 2026-09-16 13:56:09 +02:00
Algent e13389f26f feat: add client multipart preview API 2026-09-16 12:44:33 +02:00
Algent a995189f92 fix: preserve micro occlusion match failures 2026-09-16 12:18:42 +02:00
Algent f14668d81a docs: record late migration divergences 2026-09-16 12:16:33 +02:00
Algent 12eb146d02 build: compile directly for Java 8
Keep modern java out of that for now, it make build script too complicated as long as scala still here to force J8 path
2026-09-15 22:48:00 +02:00
Algent d3f1b561a3 Merge master with Cubic Chunks compatibility
Port PR #49's tile insertion and cube-load fixes to the Java implementation while preserving the legacy chunk loader ABI.
2026-09-15 21:33:20 +02:00
RecursivePineappleandMartin Robertz 7808254465 Fix TE interceptor for CC (#49)
Co-authored-by: Martin Robertz <dream-master@gmx.net>
1.7.15
2026-09-15 14:29:59 -04:00
Algent 39227268a6 test: consolidate scheduler persistence coverage 2026-09-14 20:13:18 +02:00
Algent d509537584 docs: streamline migration guidance 2026-09-14 19:49:13 +02:00
Algent 3b10a37bb3 fix: release stale modifier-key player references 2026-09-14 19:49:13 +02:00
Algent 001d25d0d6 fix: preserve saved tick targets across loading 2026-09-14 19:49:13 +02:00
Algent e7aa53694f fix: expose plain inventory slots to automation 2026-09-14 19:49:13 +02:00
Algent 9688f0da19 fix: preserve converted tile coordinates 2026-09-14 19:49:13 +02:00
Algent 051c45a806 fix: resume saved multipart ticks on load 2026-09-14 19:49:13 +02:00
Algent cb611cee1a fix: preserve scheduler save IOException propagation 2026-09-14 16:52:28 +02:00
Algent 0372a7f701 test: pin multipart block name before upstream rename 2026-09-14 16:52:21 +02:00
Algent f96faff85e fix: retain the saved multipart scheduler clock 2026-09-14 16:51:45 +02:00
Algent a4e50ac85c fix: reactivate scheduled ticks restored from chunk NBT 2026-09-14 16:51:12 +02:00
Algent 74eb0ea7ba fix: register all requested microblock metadata variants 2026-09-14 16:50:33 +02:00
Algent 4e0d7a684e fix: exclude missing placeholder from raw material recipes 2026-09-14 16:49:47 +02:00
Algent e2122ad822 docs: record why the plugin modern java mode cannot be used
The convention plugin's jvmDowngrader mode forces a project wide Java 25
toolchain and Scala 2.11.5 cannot run above Java 8, so compileScala fails
outright. forceToolchainVersion cannot bridge it because the mode refuses a
toolchain below its multi release maximum and that list refuses entries below
9. Also note why the modern helpers cannot simply move to src/main/java.
2026-09-14 16:32:13 +02:00
Algent 78be94b0b3 ci: report test counts and keep the run log clean
Upload functional test reports, JUnit XML and server logs on every run so a
CI failure has something to read beyond aggregate counts. Print unit and
functional test summaries, naming each failed functional test.

Repackage the JUnit stack into the test mod jar without module descriptors so
FML stops logging a LoaderException per jar while scanning the classpath, and
silence the two ERROR lines that passing tests drive on purpose.

Refresh the handoff counts and record which migration documents are deleted
when the port closes.
2026-09-14 16:32:11 +02:00
Algent 6a28fff946 Revert "chore: remove no longer needed temp tool"
This reverts commit 9fbbd9ada9.
2026-09-14 14:40:38 +02:00
Algent 9fbbd9ada9 chore: remove no longer needed temp tool 2026-09-14 13:36:26 +02:00
Algent 3a4766d441 docs: Remove changelog file stall by about five years 2026-09-14 13:20:28 +02:00
Algent 00834daccf docs: group Java migration documents 2026-09-14 13:10:40 +02:00
Algent 1de11db82d docs: add consumer migration checklist 2026-09-14 12:04:03 +02:00
Algent bf4343d1fc docs: add custom part lifecycle guide 2026-09-14 12:01:54 +02:00
Algent 7a9b05c6b1 build: verify Java API examples compile without Scala 2026-09-14 11:52:31 +02:00
Algent 402434190c Merge master callback ownership fix into Java port 2026-09-14 11:36:28 +02:00
Algent f86a31d908 feat: Tint microblock breaking particles by material colour
Covers whose texture is greyscale and coloured at render time broke into
grey particles. A grass cover hit on the top face gave stone coloured
particles while its sides and bottom looked right, and a leaves cover was
wrong on every face. The cover itself rendered correctly, because
BlockMicroMaterial.renderMicroFace already feeds colorMultiplier to the
face renderer, but nothing carried that tint through to the particles.

Add getBreakingColour to IMicroMaterial, defaulting to no tint.
BlockMicroMaterial returns the block colour multiplier and
GrassMicroMaterial restricts it to the top face, since grass_side and
dirt are already coloured, matching the carve out in vanilla
EntityDiggingFX. JIconHitEffects gains matching getBreakingColour and
getBrokenColour defaults, IconHitEffects passes them to the colour aware
EntityDigIconFX overloads, and McBlockPart uses the colour multiplier of
the block it wraps.

Microblock carries the part level override rather than the
MicroblockClient trait. A new Scala trait member is abstract on the
compiled interface, so mixins built against older FMP would fail with
AbstractMethodError, which the frozen ReferenceScalaMicroblockTraits
fixture caught. A concrete method on the class is inherited by those
mixins instead, and still wins over the interface default.

Characterization expectations are updated for the added signatures and
for the hit effect evaluation order, which now reads the colour from the
material right after the icon for the same side.

Needs the CodeChickenCore build that adds the colour aware
EntityDigIconFX overloads.
2026-09-14 11:28:11 +02:00
Pxx500 71340a23ef avoid callbacks to parts transferred to another tile (#58) 1.7.14 2026-09-12 20:06:49 +02:00
Algent 367ecac68c docs: clarify slot refresh version requirement 2026-09-10 11:40:32 +02:00
Algent 6515d73f23 docs: add concrete manual check setups 2026-09-09 23:52:38 +02:00
Algent e834f9d7f2 fix: preserve client tile runtime cast 2026-09-09 19:12:23 +02:00