Skip to content

Add per-face redstone drawer and machine reservation overlays - #94

Merged
dshadowwolf merged 3 commits into
master-2.0-1.21.1-neofrom
codex/redstone-control-drawer
Nov 7, 2026
Merged

dshadowwolf merged 3 commits into
master-2.0-1.21.1-neofrom
codex/redstone-control-drawer

Conversation

@faceofcat

Copy link
Copy Markdown
Collaborator

Machine screens now provide per-face redstone control through a dedicated drawer, and show recipe reservations directly on machine item slots.

  • Select a face and cycle Ignore / Read / Emit. Read faces pause processing for an inclusive signal interval or its complement, using linked range handles and a Between/Outside icon.
  • Emit resource fullness or a processor's running, inactive, or progress signal, with optional inversion. The reusable IRedstoneOutput API supplies stable IDs, translated labels, colours/sprites, and server-side signal suppliers; each processor contributes its own entries.
  • Show live signal strengths and an explanation of the selected face. Reuse the face renderer, remember drawer state for the connection, and replace the old main-panel redstone button while retaining manual pause.
  • Cache output selection indexes, per-update signal samples, unchanged network snapshots, and drawer text/layout. Pending redstone requests allow unrelated keys and immediate Escape.
  • Display reserved input as -n and reserved output as +n at the top right of machine slots. Stack counts use the same size; empty reserved output slots show a 50% ghost item. These are visual previews only.
  • Give the companion Crusher two output slots accepting insertion/extraction for testing. Cover splitting a two-item output across two stacks of 63, reservation persistence, full-output rejection, and old inventory saves.

Validation:

  • check build: 130 JUnit tests, 69 library GameTests, 37 companion GameTests, and packaging/import/asset checks passed.
  • Full companion client smoke passed with Curios/backpacks, including redstone controls and output selection, reservation overlays, split outputs, drawer memory, and pending-request keyboard regressions.
  • The CI fixture correction from merged PR Add player equipment, optional Curios/backpack drawers, and session drawer memory #93 is included.

GUI protocol advances from 6 to 10; clients and servers need matching MMDLib builds. Existing companion global redstone settings migrate to the per-face configuration.

@faceofcat
faceofcat requested a review from dshadowwolf November 6, 2026 15:28
@dshadowwolf

Copy link
Copy Markdown
Collaborator

Overall up to your usual quality :)

Must Fix:

  1. Processor names that used to work can now crash machine creation
  2. Escrow doesn't close the screen while an automation request is waiting
  3. Clicks in the backpack drawer can stop working entirely

Should Fix:

  1. Hoppers can now push into the crusher's output slots
  2. Energy can now be drained from crushers through unsided access

Nits:

  1. Opening or closing the redstone drawer is ignored if another player changed a setting
  2. Tabs can hang off the bottom of the panel
  3. The Curios scan still runs twice per tick for each viewer

@dshadowwolf

Copy link
Copy Markdown
Collaborator

Looking good -- the hoppers able to push into an output slot and the unsided energy access don't seem to have been addressed, but the rest have. Good work!

@faceofcat

Copy link
Copy Markdown
Collaborator Author

the crusher's output slots are open for testing reasons :)... so it's easy to test machine with full output without waiting 30 cycles... :)

will try to find an example of the energy stuff

@dshadowwolf
dshadowwolf merged commit ff3d64c into master-2.0-1.21.1-neo Nov 7, 2026
5 checks passed
@faceofcat
faceofcat deleted the codex/redstone-control-drawer branch November 7, 2026 09:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants