Improve universal terminal switching UX#375
Conversation
|
I like it, tho I would prefer the switcher to be always visible. It's a great improvement either way |
Could add a client setting to allow that |
|
Somehow I didn't think about putting it there, it fits pretty well. Having it free floating is fine for now, perfect is the enemy of good. :) |
…leTerminalButton. ./gradlew :ae2wtlib_api:spotlessApply showed no problems
…Check to not fail
|
Since @hofq asked for it, I think this could work as a “use it if you want” option (by default is false). Added an always show terminals client config option, which hides the main Universal Terminal button when enabled and shows all terminals, since it is unnecessary to have the main button when all terminals are already visible. I also looked into attaching/merging the selector with the toolbar after what you said, but it would be pretty awkward and annoying to do cleanly. AE2’s toolbar background is drawn by VerticalButtonBar as a single vertical vertical_buttons_bg sprite around its buttons, while the selector is drawn separately by the Universal Terminal button, can expand into multiple columns, and uses a generated AE2 panel background. Making them look like one merged widget would require custom background drawing and compensating for AE2’s own toolbar background. ./gradlew :ae2wtlib_api:spotlessApply and ./gradlew spotlessCheck run properly now, so I think this fixes the formatting check that failed earlier. always.visible.mp4 |

Summary
Addresses the Universal Terminal switching UX discussed in #313, with inspiration from 1.12.2 AE2-UEL Wireless Universal Terminal mod: https://github.com/Circulate233/AE2UELWirelessUniversalTerminal
Instead of adding hard-coded tabs to the terminal screen, this PR changes the existing Universal Terminal switch button into a temporary selector popup. The popup lists the installed terminals, lets the player choose one directly, and then disappears after selection.
This keeps the main terminal UI from being permanently cluttered, while still avoiding the old left/right click cycling behavior.
A demo video is attached showing:
Motivation
The issue suggested tab-style switching, but the discussion pointed out a few problems with permanent tabs:
The popup selector keeps the same direct-selection benefit without assuming a fixed terminal count or taking permanent screen space.
Inspiration
The selector behavior was inspired by the old 1.12.2 AE2-UEL Wireless Universal Terminal mod.
This PR does not reuse code from that project; it implements the behavior independently for ae2wtlib/modern AE2.
Changes
Compatibility
This keeps the selector tied to the same Universal Terminal button flow used today, instead of adding layout-specific tabs or hard-coded terminal slots.
Addon terminals are handled through the same registered terminal data used by the rest of ae2wtlib, and terminal switching is checked server-side before opening the selected terminal.
Testing
Tested with the default ae2wtlib terminals and additional addon terminals inside a WUT.
change.terminals.mp4