Browser/TGUI Stat Panels (#24065)

* initial commit (broken)

* load the html

* fix this

* Fix various issues with browser statpanel

* Fix Alt Clicking opening up a window and Add back some object verbs to the browser stat panel

* Optimize stat panel and fix guardian verbs

* Restyles Stat Panel, Adds Subpanel Sub-Categories

* Use better layout for verbs in stat panel

* Updates statpanel verb widths to be more dynamic at higher screen resolutions.

* Adjust stat panel grid item widths and breakpoints

* refactors statpanel to use tgui API

* CI moment

* more CI

* this stupid thing

* Apply suggestions from code review

Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/modules/client/client_procs.dm

* ci fix

* emergency mc debug view

* temp revert some code change suggestions due to massive runtiming

* proper atom click topic implementation

* optimise

* mob clicking in stat panels work

* yeet spell tab thingy

* yeet simple stat panel pref

* allow insertion of html into MC tab content

* tidy up status tab

* Apply suggestions from code review

* fix this

* fix CI

* oops

* fix index runtime

* fixes MC tab showing up for mentors, fixes runtime

* safeties!

* Return of theme support

* more fixes

* fix view range pref, tidy prefs tab

* Remove old stat panel from themes

* fixes

* make sure verbs don't go missing

* fix ooc/looc breaking

* Revert "make sure verbs don't go missing"

This reverts commit 7d07ad45ed.

* fix this properly

* fix stat panel hitting rate limiters

* fix borg status tab

* Object Window Niceties

* Adds file cycling for icon2base64

* optimizes icon2html() for icon files known to be in the rsc at compile time

* CI moment

* remove dupe emergency shuttle timers

* more robust verb updates

* statpanel tweaks

* zip archived changelog to avoid search results

* optimise

* fix mentor chat wonkyness when disabled

* debug log moment

* i am very smart

* reintroduce this because it was needed

* better time listings

* less jank

* stops telling admins they arent mentors

* returns MC tab pref for admins

* Update code/controllers/subsystem/SSstatpanel.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>

* lewcc

* OD typemaker prep

---------

Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: Aylong <alexanderkitsa@gmail.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
This commit is contained in:
S34N
2024-03-07 10:31:36 -05:00
committed by GitHub
co-authored by GDN Burzah Luc Aylong
parent 19a3f768c8
commit 91660824fa
124 changed files with 2585 additions and 27334 deletions
-3
View File
@@ -67,7 +67,6 @@
/client/proc/jumptoturf(turf/T in world)
set name = "\[Admin\] Jump to Turf"
set category = null
if(!check_rights(R_ADMIN))
return
@@ -134,7 +133,6 @@
SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/Getmob(mob/M in GLOB.mob_list)
set category = null
set name = "\[Admin\] Get Mob"
set desc = "Mob to teleport"
@@ -151,7 +149,6 @@
SSblackbox.record_feedback("tally", "admin_verb", 1, "Get Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/Getkey()
set category = null
set name = "\[Admin\] Get Key"
set desc = "Key to teleport"
-1
View File
@@ -1,6 +1,5 @@
//allows right clicking mobs to send an admin PM to their client, forwards the selected mob's client to cmd_admin_pm
/client/proc/cmd_admin_pm_context(mob/M as mob in GLOB.mob_list)
set category = null
set name = "\[Admin\] Admin PM Mob"
if(!check_rights(R_ADMIN|R_MENTOR))
return
+13 -5
View File
@@ -1,5 +1,4 @@
/client/proc/cmd_admin_say(msg as text)
set category = "Admin"
set name = "Asay" //Gave this shit a shorter name so you only have to time out "asay" rather than "admin say" to use it --NeoFite
set hidden = 1
if(!check_rights(R_ADMIN)) return
@@ -45,11 +44,20 @@
cmd_mentor_say(msg)
/client/proc/cmd_mentor_say(msg as text)
set category = "Admin"
set name = "Msay"
set hidden = 1
if(!check_rights(R_ADMIN|R_MOD|R_MENTOR))
if(check_rights(R_MENTOR, FALSE)) // Mentor detected, check if the verb has been disabled for mentors
var/msay_found = FALSE
for(var/procs as anything in GLOB.admin_verbs_mentor)
if(procs == /client/proc/cmd_mentor_say)
msay_found = TRUE
break
if(!msay_found)
to_chat(src, "<b>Mentor chat has been disabled.</b>")
return
else if(!check_rights(R_ADMIN|R_MOD)) // Catch any other non-admins trying to use this proc
return
msg = sanitize(copytext(msg, 1, MAX_MESSAGE_LEN))
@@ -104,10 +112,10 @@
if(!check_rights(R_MENTOR, 0, C.mob))
continue
if(enabling)
C.verbs += msay
add_verb(C, msay)
to_chat(C, "<b>Mentor chat has been enabled.</b> Use 'msay' to speak in it.")
else
C.verbs -= msay
remove_verb(C, msay)
to_chat(C, "<b>Mentor chat has been disabled.</b>")
log_and_message_admins("toggled mentor chat [enabling ? "on" : "off"].")
-1
View File
@@ -1,6 +1,5 @@
/client/proc/cinematic(cinematic as anything in list("explosion", null))
set name = "cinematic"
set category = "Debug"
set desc = "Shows a cinematic." // Intended for testing but I thought it might be nice for events on the rare occasion Feel free to comment it out if it's not wanted.
set hidden = 1
if(!SSticker)
-2
View File
@@ -153,7 +153,6 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
#endif
/client/proc/callproc_datum(A as null|area|mob|obj|turf)
set category = null
set name = "\[Admin\] Atom ProcCall"
if(!check_rights(R_PROCCALL))
@@ -619,7 +618,6 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
to_chat(world, "* [areatype]")
/client/proc/cmd_admin_dress(mob/living/carbon/human/M in GLOB.human_list)
set category = "Event"
set name = "\[Admin\] Select equipment"
if(!check_rights(R_EVENT))
-1
View File
@@ -10,7 +10,6 @@ GLOBAL_LIST_EMPTY(frozen_atom_list) // A list of admin-frozen atoms.
/client/proc/freeze(atom/movable/M)
set name = "\[Admin\] Freeze"
set category = null
if(!check_rights(R_ADMIN))
return
-2
View File
@@ -1,6 +1,5 @@
/proc/possess(obj/O as obj in world)
set name = "\[Admin\] Possess Obj"
set category = null
if(!check_rights(R_POSSESS))
return
@@ -35,7 +34,6 @@
/proc/release(obj/O as obj in world)
set name = "\[Admin\] Release Obj"
set category = null
//usr.loc = get_turf(usr)
if(!check_rights(R_POSSESS))
+1 -8
View File
@@ -1,5 +1,4 @@
/client/proc/cmd_admin_drop_everything(mob/M as mob in GLOB.mob_list)
set category = null
set name = "\[Admin\] Drop Everything"
if(!check_rights(R_DEBUG|R_ADMIN))
@@ -47,7 +46,6 @@
SSblackbox.record_feedback("tally", "admin_verb", 1, "Prison") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_subtle_message(mob/M as mob in GLOB.mob_list)
set category = "Event"
set name = "\[Admin\] Subtle Message"
if(!ismob(M))
@@ -74,7 +72,7 @@
/client/proc/cmd_mentor_check_new_players() //Allows mentors / admins to determine who the newer players are.
set category = "Admin"
set name = "Check new Players"
set name = "Check New Players"
if(!check_rights(R_MENTOR|R_MOD|R_ADMIN))
return
@@ -128,7 +126,6 @@
SSblackbox.record_feedback("tally", "admin_verb", 1, "Global Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_direct_narrate(mob/M) // Targetted narrate -- TLE
set category = null
set name = "\[Admin\] Direct Narrate"
if(!check_rights(R_SERVER|R_EVENT))
@@ -155,7 +152,6 @@
/client/proc/cmd_admin_headset_message(mob/M in GLOB.mob_list)
set category = "Event"
set name = "\[Admin\] Headset Message"
admin_headset_message(M)
@@ -589,7 +585,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
SSblackbox.record_feedback("tally", "admin_verb", 1, "Add Custom AI Law") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_rejuvenate(mob/living/M as mob in GLOB.mob_list)
set category = null
set name = "\[Admin\] Rejuvenate"
if(!check_rights(R_REJUVINATE))
@@ -660,7 +655,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
/client/proc/cmd_admin_delete(atom/A as obj|mob|turf in view())
set category = null
set name = "\[Admin\] Delete"
if(!check_rights(R_ADMIN))
@@ -801,7 +795,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
/client/proc/cmd_admin_check_contents(mob/living/M as mob in GLOB.mob_list)
set name = "\[Admin\] Check Contents"
set category = null
if(!check_rights(R_ADMIN))
return
+1 -1
View File
@@ -26,6 +26,6 @@ GLOBAL_LIST_INIT(admin_verbs_show_debug_verbs, list(
if(!check_rights(R_DEBUG))
return
verbs += GLOB.admin_verbs_show_debug_verbs
add_verb(src, GLOB.admin_verbs_show_debug_verbs)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Debug Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!