Implement the Writing Desk block, storage, and menu #21

Closed
opened 2026-09-23 06:00:22 -04:00 by dnorberg · 2 comments
Owner

Port the Writing Desk as a modern NeoForge workstation before adding transcription behavior.

Acceptance criteria:

  • Register the Writing Desk block, item, block entity, menu, screen, loot, and recipes
  • Placement and breaking preserve or safely drop every stored Notebook, page, and ink item
  • The block entity persists inventory and active collection state across restart
  • The menu supports player inventory transfer without duplication or item loss
  • Multiple players and chunk unloads close or resynchronize the menu safely
  • The first implementation may use a single-block footprint while retaining the legacy desk presentation goals
Port the Writing Desk as a modern NeoForge workstation before adding transcription behavior. Acceptance criteria: - [ ] Register the Writing Desk block, item, block entity, menu, screen, loot, and recipes - [ ] Placement and breaking preserve or safely drop every stored Notebook, page, and ink item - [ ] The block entity persists inventory and active collection state across restart - [ ] The menu supports player inventory transfer without duplication or item loss - [ ] Multiple players and chunk unloads close or resynchronize the menu safely - [ ] The first implementation may use a single-block footprint while retaining the legacy desk presentation goals
dnorberg added this to the Milestone 4 — Writing system milestone 2026-09-23 06:00:22 -04:00
dnorberg added the area/writingtype/feature labels 2026-09-23 06:00:22 -04:00
Author
Owner

Implemented in v0.3.5.0 and refined from the Legacy GUI screenshots in v0.3.5.1. The one-block Writing Desk has persistent collection/work slots, active-tab state, shift-click transfer, item drops on break, a menu guarded against removed/unloaded blocks, and a portrait-page surface with selected-page details. The block entity is shared among viewers, while menu slots/data synchronize through vanilla menu updates. All 30 required GameTests pass, including inventory persistence, drops, transfers, tab state, and invalidation after replacement. Manual in-game GUI review remains welcome; transcription is tracked separately.

Implemented in v0.3.5.0 and refined from the Legacy GUI screenshots in v0.3.5.1. The one-block Writing Desk has persistent collection/work slots, active-tab state, shift-click transfer, item drops on break, a menu guarded against removed/unloaded blocks, and a portrait-page surface with selected-page details. The block entity is shared among viewers, while menu slots/data synchronize through vanilla menu updates. All 30 required GameTests pass, including inventory persistence, drops, transfers, tab state, and invalidation after replacement. Manual in-game GUI review remains welcome; transcription is tracked separately.
Author
Owner

Follow-up v0.3.5.2 implements the screenshot-driven Writing Desk copying flow: paper input at upper left, server-validated virtual copy output at lower left, persisted 16-use ink meter, automatic Ink Vial refill, and vanilla glass-bottle return. Inputs are consumed only when the copy is taken; 34 required GameTests pass. Release: https://gitea.tail180fb1.ts.net/dnorberg/rivencraft/releases/tag/v0.3.5.2

Follow-up v0.3.5.2 implements the screenshot-driven Writing Desk copying flow: paper input at upper left, server-validated virtual copy output at lower left, persisted 16-use ink meter, automatic Ink Vial refill, and vanilla glass-bottle return. Inputs are consumed only when the copy is taken; 34 required GameTests pass. Release: https://gitea.tail180fb1.ts.net/dnorberg/rivencraft/releases/tag/v0.3.5.2
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dnorberg/rivencraft#21