Smartfridge/Vending machine layouts auto-update rather than be a setting (#90159)

## About The Pull Request

Sorry for my incompetence with TGUI.

This comes from a comment I made here
https://github.com/tgstation/tgstation/pull/89137#issuecomment-2601185587
&
https://github.com/tgstation/tgstation/pull/89160#pullrequestreview-2566047191

Instead of having to go to your game settings, find the option of layout
style you want your vending/fridge machines to be, and change it without
having a UI to show you the difference, now the preference is tied to
the in-game UI; Clicking to swap to the other layout mode will
automatically update your prefs and stay until you change it again.

I also separated smartfridges and vending machines as 2 separate prefs
so players can have grid on one and list on the other.

I couldn't figure out a way to implement this without adding a new var
on base ``/datum``, if you got other possible solutions I'd be happy to
try. I thought of making 'layouts' limited to smartfridge/vending
machines, taking it out of backend for all UIs, but thought I should
avoid that if possible in case future UIs want to make use of it. If
it's better than a var on datum I'm fine taking that path instead.


https://github.com/user-attachments/assets/921586fa-1ec1-49c0-87ca-ec4bbb6aaa98

## Why It's Good For The Game

The settings list having these small options that you can't even see the
effects of until you find the machine in-game is a little lame, now
players don't even have to think about it, they simply set it to the
mode they want as they use the machine and it'll update itself for the
player.

Currently using the button to swap to list/grid mode instantly reverts
itself as soon as you close the UI, which is a little lame.

## Changelog

🆑
qol: Smartfridges and Vending machines no longer have a setting to
change the list/grid mode, it instead updates automatically as you swap
the mode in-game.
/🆑
This commit is contained in:
John Willard
2025-03-23 23:43:11 +01:00
committed by GitHub
parent 5b0ef3ea41
commit 663bc08d96
9 changed files with 31 additions and 45 deletions
+7 -3
View File
@@ -39,25 +39,29 @@
/// Changes layout in some UI's, like Vending, Smartfridge etc. Making it list or grid
/datum/preference/choiced/tgui_layout
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
savefile_key = "tgui_layout"
savefile_identifier = PREFERENCE_PLAYER
/datum/preference/choiced/tgui_layout/init_possible_values()
return list(
TGUI_LAYOUT_DEFAULT,
TGUI_LAYOUT_GRID,
TGUI_LAYOUT_LIST,
)
/datum/preference/choiced/tgui_layout/create_default_value()
return TGUI_LAYOUT_DEFAULT
return TGUI_LAYOUT_LIST
/datum/preference/choiced/tgui_layout/apply_to_client(client/client, value)
for (var/datum/tgui/tgui as anything in client.mob?.tgui_open_uis)
// Force it to reload either way
tgui.update_static_data(client.mob)
/datum/preference/choiced/tgui_layout/smartfridge
savefile_key = "tgui_layout_smartfridge"
/datum/preference/choiced/tgui_layout/create_default_value()
return TGUI_LAYOUT_GRID
/datum/preference/toggle/tgui_lock
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
savefile_key = "tgui_lock"