You are viewing a potentially older version of this package. View all versions.
pacoito-AccessibleTerminal-1.0.0 icon

AccessibleTerminal

Execute just about any terminal command, without the use of a keyboard.

Date uploaded 3 months ago
Version 1.0.0
Download link pacoito-AccessibleTerminal-1.0.0.zip
Downloads 1131
Dependency string pacoito-AccessibleTerminal-1.0.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

AccessibleTerminal

Thunderstore Downloads GitHub Releases License

Execute just about any terminal command, without the use of a keyboard.

Description

Adds a clickable GUI to the ship terminal, which allows the player to 'build' full commands without a keyboard by inserting words into the player input.

While this mod was made primarily for accessibility purposes, it might be useful to anyone who simply doesn't like typing commands at the terminal, since it could be faster to click through terminal options.

Originally a fork of TerminalGamepad by secrecthide, but focused on mouse input rather than gamepad input.

alt

Configuration

For the moment, there is no configuration file available, but the following configuration options are planned and should not take too long to implement:

  • The list of commands to exclude from the Actions category (currently confirm, deny, and reset credits are not shown).
  • The number of rows and columns in each button page (currently 2 rows, 8 columns).
  • Overall menu width and height (currently 1200 pixels by 600 pixels).
  • The space between each button (currently 4 pixels horizontally and 8 pixels vertically).
  • Whether custom commands found in the LethalAPI.Terminal registry should be added to the Actions category (currently disabled, though custom commands directly added to TerminalNodesList.allKeywords will show up).
  • Whether to show only previously scanned enemies in the Enemies category (all enemies are currently shown).
  • Whether to show only items currently available in the rotating shop in the Decor category (all rotating store items are currently shown).
  • Whether to show only discovered story logs in the Story Logs category (every Sigurd log is currently shown).
  • The range of numbers to display in the Numbers category (currently 0 to 48, but only the digits from 0-9 are really needed, the rest are for convenience).
  • The amount to scroll when pressing the up/down buttons (currently 0.5, referring to scrolbar position).
  • Color and transparency styling for menu elements and text (currently using the default style of TerminalGamepad).

Compatibility

Any modded content that falls under the standard 'categories' (e.g. items, moons, enemies) should appear as a clickable option within the button lists, as long as it is added to the respective lists used by the game (e.g. Terminal.buyableItemsList for store items).

Custom terminal commands directly added to TerminalNodesList.allKeywords, as well as commands registered through the LethalAPI.Terminal library (currently disabled, will be added soon as a soft dependency), should also show up within the Actions category.

Mods such as Lategame Upgrades or TooManyEmotes, which add their own 'category' of items (upgrades/perks separate from ship upgrades and emotes, respectively), will need to be manually supported to show up in the list of buttons, though the 'main' command should show up within the Actions category.

If you would like any specific mod to be supported, find any compatibility issue with another mod, or are simply having an issue, please let me know in the relevant thread in the Lethal Company Modding Discord server, or open an issue on GitHub. Feedback is also welcome!

Credits

  • secrecthide — For TerminalGamepad, the original mod this was initially forked from.
  • Azim — For TerminalMouse, to allow mouse input in the terminal, integrated into this mod to remove the TerminalAPI dependency.
  • Shaosil — For the tweak in GeneralImprovements to lock the camera while using the terminal, added to this mod to avoid nausea when moving the mouse to click buttons. The GeneralImprovements repository does not have a license file (as far as I can tell), so if there's any problem with me having done this, please let me know.
  • NotAtomicBomb — For TerminalAPI, from which I largely based the TerminalGUI.GetTerminalInput() and TerminalGUI.SetTerminalInput() methods off of.
  • Hazikara — For the original request in the Lethal Company Modding Discord server, which gave me the idea of adapting TerminalGamepad for mouse input. You are very inspiring!
  • You!alt

CHANGELOG

[v1.0.0]

Initial release.


Changelog from TerminalGamepad v1.2.3

This mod started as a fork of TerminalGamepad by secrecthide, shown below are the list of changes made to it.

General

Config

  • Removed mod configuration options temporarily (will be added back soon).

Input

  • Added mouse support for terminal.
  • Removed gamepad support (might implement this back, but for now the mod is focused on mouse input only).
  • Integrated TerminalMouse by Azim to unlock the mouse cursor when using the terminal (mostly done to get rid of the TerminalAPI dependency).
  • Integrated tweak from GeneralImprovements by Shaosil to lock the camera while the terminal is being used (this project lacks an open-source license, so if there's an issue with me doing this please let me know).

Terminal GUI

  • Made GUI button creation fully dynamic in order to include just about everything in the game, including modded content. This should also make the codebase substantially easier to maintain, as button actions were previously being added manually.
  • Used lambda expressions (arrow functions) for just about every list iteration (mostly to fill the button lists).
  • Clickable terminal buttons are now separated by categories (e.g. moons, items, decor).
  • Button and menu scaling has been simplified (no more mysterious constants to determine menu and button positions, width, and height).
  • Submit and back buttons now act as CONFIRM and DENY, respectively, when on a confirmation screen.
  • Added buttons for pagination (next page, previous page), as well as buttons for scrolling up and down in the terminal screen.
  • Added checks and fixes for just about everything that can go wrong (and DID go wrong during testing).
  • Created a helper method to make button creation somewhat more concise.
  • Created method to remake the player button list, to be run every time a player joins or leaves.
  • Created method to toggle terminal GUI visibility (might change to an explicit setVisibility() instead of a toggle).
  • Created methods to switch between main menu and selected categories.
  • Added methods to obtain and replace player input in the terminal (largely based off of the implementation in TerminalAPI).
  • Created method to check if the current node displayed in the terminal is a confirmation screen. I'm not sure if it works if the game language is changed.

Patches

  • Replaced TerminalAPI events (OnTerminalX()) with Harmony patches.
  • Singleton TerminalGUI instance is now destroyed upon exiting to main menu.