TGUI list conversions + bug fixes (#63354)

About The Pull Request

    Converts more inputs to TGUI. Possibly all user-facing input lists in the game.
    Did any surrounding text/number inputs as well
    Added null choice support so users can press cancel.
    Added some misc TGUI input fixes
    Fixed custom vendors while I was there

I refactored a lot of code while just poking around.
Primarily, usage of .len in files where I was already working on lists.
Some code was just awful - look at guardian.dm and its non use of early returns
If there are any disputes, I can revert it just fine, those changes are not integral to the PR.
Why It's Good For The Game

Fixes #63629
Fixes #63307
Fixes custom vendors /again/
Text input is more performant.
Part of a long series of TGUI conversion to make the game more visually appealing
Changelog

cl
refactor: The majority of user facing input lists have been converted to TGUI.
refactor: Tgui text inputs now scale with entered input.
fix: Many inputs now properly accept cancelling out of the menu.
fix: Fixes an edge case where users could not press enter on number inputs.
fix: Custom vendor bluescreen.
fix: You can now press ENTER on text inputs without an entry to cancel.
/cl
This commit is contained in:
Jeremiah
2021-12-31 11:07:28 +13:00
committed by GitHub
parent 6162daf1cb
commit 9c6fdb567d
153 changed files with 1196 additions and 986 deletions
+6 -6
View File
@@ -251,7 +251,7 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
players[displayed_key] = displayed_key
// Check if the list is empty
if(!players.len)
if(!length(players))
// Express that there are no players we can ignore in chat
to_chat(src, "<span class='infoplain'>There are no other players you can ignore!</span>")
@@ -262,10 +262,10 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
players = sort_list(players)
// Request the player to ignore
var/selection = input("Please, select a player!", "Ignore", null, null) as null|anything in players
var/selection = tgui_input_list(src, "Select a player", "Ignore", players)
// Stop running if we didn't receieve a valid selection
if(!selection || !(selection in players))
if(isnull(selection) || !(selection in players))
return
// Store the selected player
@@ -295,7 +295,7 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
set desc = "Stop ignoring a player's messages on the OOC channel"
// Check if we've ignored any players
if(!prefs.ignoring.len)
if(!length(prefs.ignoring))
// Express that we haven't ignored any players in chat
to_chat(src, "<span class='infoplain'>You haven't ignored any players!</span>")
@@ -303,10 +303,10 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
return
// Request the player to unignore
var/selection = input("Please, select a player!", "Unignore", null, null) as null|anything in prefs.ignoring
var/selection = tgui_input_list(src, "Select a player", "Unignore", prefs.ignoring)
// Stop running if we didn't receive a selection
if(!selection)
if(isnull(selection))
return
// Check if the selected player is not on our ignore list