seat riding gate fix

This commit is contained in:
Darto KLoning
2026-10-03 12:00:13 +07:00
parent 258354b7d9
commit 57ee17b56c
9 changed files with 40 additions and 37 deletions
+14
View File
@@ -1,3 +1,10 @@
## 4.0.12 — Minecraft 26.2 riding gate fix
- Diagnostic 4.0.11 isolated the failure to `player.startRiding(seat)`: the Seat spawned successfully but mounting returned false.
- Verified against Minecraft 26.2 `Entity.startRiding`: server-side riding is rejected when the vehicle entity type reports `canSerialize() == false`.
- Handcrafted registered `Seat` with `EntityType.Builder.noSave()`, which makes the Seat non-serializable and therefore impossible to ride on 26.2.
- Removed `.noSave()` from the Seat entity registration. The Seat still self-discards when it has no passenger or its furniture block is gone, so it remains ephemeral during normal gameplay.
- Kept the 4.0.11 diagnostic logging for this test build so the result can be confirmed from the next log.
## 4.0.9 — Seat synchronization fix
- Compared the Fabric 26.2 port directly against the original 1.21.x seating implementation.
- The current debug log proves server-side mounting already succeeds: the client reports `Received passengers for unknown entity`. This means the failure is no longer the chair/bench/couch interaction callback; the invisible `Seat` vehicle is not known client-side when the passenger update arrives.
@@ -112,3 +119,10 @@ The remaining major migration area is the 26.2 extract/submit rendering pipeline
## 4.0.4 Fabric 26.2 build fix
- Removed the legacy `Seat.makeBoundingBox()` override. In Minecraft 26.2, `Entity.makeBoundingBox()` is final and cannot be overridden.
- The seat-specific AABB is still retained for seat height/passenger attachment calculations and is refreshed by the wrapped level callback.
## 4.0.11-fabric-26.2
- Reworked seat interaction dispatch to mirror Refurbished Furniture: seating is performed from `useWithoutItem`; held-item paths return `TRY_WITH_EMPTY_HAND` after Handcrafted-specific cushion handling.
- Removed client-side fake success from `SittableBlock.sitOn`; `Seat.sit` is server-authoritative like the reference implementation.
- Seat blocks now return `SUCCESS` after the empty-hand interaction attempt, matching the reference block behavior.
- Added concise server-side Seat attempt/result diagnostics so a failed mount is visible in `latest.log`.