diff --git a/code/__DEFINES/rust_g.dm b/code/__DEFINES/rust_g.dm
index e354105cc9..ab0f7d4c1f 100644
--- a/code/__DEFINES/rust_g.dm
+++ b/code/__DEFINES/rust_g.dm
@@ -135,7 +135,7 @@
#define rustg_dmi_icon_states(fname) RUSTG_CALL(RUST_G, "dmi_icon_states")(fname)
#define rustg_file_read(fname) RUSTG_CALL(RUST_G, "file_read")(fname)
-#define rustg_file_exists(fname) RUSTG_CALL(RUST_G, "file_exists")(fname)
+#define rustg_file_exists(fname) (RUSTG_CALL(RUST_G, "file_exists")(fname) == "true")
#define rustg_file_write(text, fname) RUSTG_CALL(RUST_G, "file_write")(text, fname)
#define rustg_file_append(text, fname) RUSTG_CALL(RUST_G, "file_append")(text, fname)
#define rustg_file_get_line_count(fname) text2num(RUSTG_CALL(RUST_G, "file_get_line_count")(fname))
@@ -146,7 +146,13 @@
#define text2file(text, fname) rustg_file_append(text, "[fname]")
#endif
+/// Returns the git hash of the given revision, ex. "HEAD".
#define rustg_git_revparse(rev) RUSTG_CALL(RUST_G, "rg_git_revparse")(rev)
+
+/**
+ * Returns the date of the given revision in the format YYYY-MM-DD.
+ * Returns null if the revision is invalid.
+ */
#define rustg_git_commit_date(rev) RUSTG_CALL(RUST_G, "rg_git_commit_date")(rev)
#define rustg_hash_string(algorithm, text) RUSTG_CALL(RUST_G, "hash_string")(algorithm, text)
@@ -161,6 +167,11 @@
#define RUSTG_HASH_XXH64 "xxh64"
#define RUSTG_HASH_BASE64 "base64"
+/// Encode a given string into base64
+#define rustg_encode_base64(str) rustg_hash_string(RUSTG_HASH_BASE64, str)
+/// Decode a given base64 string
+#define rustg_decode_base64(str) RUSTG_CALL(RUST_G, "decode_base64")(str)
+
#ifdef RUSTG_OVERRIDE_BUILTINS
#define md5(thing) (isfile(thing) ? rustg_hash_file(RUSTG_HASH_MD5, "[thing]") : rustg_hash_string(RUSTG_HASH_MD5, thing))
#endif
@@ -209,15 +220,15 @@
*/
#define rustg_add_node_astar(json) RUSTG_CALL(RUST_G, "add_node_astar")(json)
-/**²
+/**
* Remove every link to the node with unique_id. Replace that node by null
*/
-#define rustg_remove_node_astart(unique_id) RUSTG_CALL(RUST_G, "remove_node_astar")(unique_id)
+#define rustg_remove_node_astar(unique_id) RUSTG_CALL(RUST_G, "remove_node_astar")("[unique_id]")
/**
* Compute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance
*/
-#define rustg_generate_path_astar(start_node_id, goal_node_id) RUSTG_CALL(RUST_G, "generate_path_astar")(start_node_id, goal_node_id)
+#define rustg_generate_path_astar(start_node_id, goal_node_id) RUSTG_CALL(RUST_G, "generate_path_astar")("[start_node_id]", "[goal_node_id]")
#define RUSTG_REDIS_ERROR_CHANNEL "RUSTG_REDIS_ERROR_CHANNEL"
diff --git a/code/__HELPERS/_string_lists.dm b/code/__HELPERS/_string_lists.dm
index 43d45594e0..7d6415c1ef 100644
--- a/code/__HELPERS/_string_lists.dm
+++ b/code/__HELPERS/_string_lists.dm
@@ -13,7 +13,7 @@ GLOBAL_VAR(string_filename_current_key)
if((filename in GLOB.string_cache) && (key in GLOB.string_cache[filename]))
var/response = pick(GLOB.string_cache[filename][key])
var/regex/r = regex("@pick\\((\\D+?)\\)", "g")
- response = r.Replace(response, /proc/strings_subkey_lookup)
+ response = r.Replace(response, GLOBAL_PROC_REF(strings_subkey_lookup))
return response
else
CRASH("strings list not found: strings/[filename], index=[key]")
diff --git a/code/__HELPERS/qdel.dm b/code/__HELPERS/qdel.dm
index 4943cd0b68..54acece87c 100644
--- a/code/__HELPERS/qdel.dm
+++ b/code/__HELPERS/qdel.dm
@@ -3,10 +3,10 @@
#define QDEL_IN(item, time) ; \
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), (time) > GC_FILTER_QUEUE ? WEAKREF(item) : item), time);
#define QDEL_IN_STOPPABLE(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), (time) > GC_FILTER_QUEUE ? WEAKREF(item) : item), time, TIMER_STOPPABLE)
-#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME)
+#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(qdel), item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME)
#define QDEL_NULL(item) qdel(item); item = null
#define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); }
-#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(______qdel_list_wrapper), L), time, TIMER_STOPPABLE)
+#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(______qdel_list_wrapper), L), time, TIMER_STOPPABLE)
#define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); }
#define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qdel(L[I]); L.Cut(); }
diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm
index a582c372e1..c8999814ed 100644
--- a/code/_onclick/hud/radial.dm
+++ b/code/_onclick/hud/radial.dm
@@ -20,7 +20,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
UnregisterSignal(parent, COMSIG_PARENT_QDELETING)
parent = new_value
if(parent)
- RegisterSignal(parent, COMSIG_PARENT_QDELETING, .proc/handle_parent_del)
+ RegisterSignal(parent, COMSIG_PARENT_QDELETING, PROC_REF(handle_parent_del))
/atom/movable/screen/radial/proc/handle_parent_del()
SIGNAL_HANDLER
diff --git a/code/_rendering/atom_huds/atom_hud.dm b/code/_rendering/atom_huds/atom_hud.dm
index 52a88ecd23..059283d8d1 100644
--- a/code/_rendering/atom_huds/atom_hud.dm
+++ b/code/_rendering/atom_huds/atom_hud.dm
@@ -88,7 +88,7 @@ GLOBAL_LIST_INIT(huds, list(
return
if(!hudusers[M])
hudusers[M] = 1
- RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/unregister_mob)
+ RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(unregister_mob))
if(next_time_allowed[M] > world.time)
if(!queued_to_see[M])
addtimer(CALLBACK(src, PROC_REF(show_hud_images_after_cooldown), M), next_time_allowed[M] - world.time)
diff --git a/code/datums/callback.dm b/code/datums/callback.dm
index f1cf30855f..cf17655ee5 100644
--- a/code/datums/callback.dm
+++ b/code/datums/callback.dm
@@ -5,7 +5,7 @@
* ## USAGE
*
* ```
- * var/datum/callback/C = new(object|null, /proc/type/path|"procstring", arg1, arg2, ... argn)
+ * var/datum/callback/C = new(object|null, GLOBAL_PROC_REF(type/path|"procstring"), arg1, arg2, ... argn)
* var/timerid = addtimer(C, time, timertype)
* you can also use the compiler define shorthand
* var/timerid = addtimer(CALLBACK(object|null, PROC_REF(type/path|procstring), arg1, arg2, ... argn), time, timertype)
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 0bda5c91bb..b00c7d5155 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -176,7 +176,7 @@
SEND_SIGNAL(src, COMSIG_MIND_TRANSFER, new_character, old_character)
SEND_SIGNAL(new_character, COMSIG_MOB_ON_NEW_MIND)
//splurt change
- INVOKE_ASYNC(GLOBAL_PROC, .proc/_paci_check, new_character, old_character)
+ INVOKE_ASYNC(GLOBAL_PROC, PROC_REF(_paci_check), new_character, old_character)
//end change
/datum/mind/proc/store_memory(new_text)
diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm
index 485dac693b..51bfd506e6 100644
--- a/code/datums/status_effects/debuffs.dm
+++ b/code/datums/status_effects/debuffs.dm
@@ -1,5 +1,5 @@
/// The damage healed per tick while sleeping without any modifiers
-#define HEALING_SLEEP_DEFAULT 0.005
+#define HEALING_SLEEP_DEFAULT 0.005
//Largely negative status effects go here, even if they have small benificial effects
//STUN EFFECTS
@@ -90,7 +90,7 @@
else if((locate(/obj/structure/chair) in owner.loc))
healing -= 0.0025
if(locate(/obj/item/bedsheet) in owner.loc)
- healing -= 0.005
+ healing -= 0.005
if(health_ratio > 0.75) // Only heal when above 75% health
owner.adjustBruteLoss(healing)
owner.adjustFireLoss(healing)
diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm
index bdd15b863f..45bcce41d8 100644
--- a/code/datums/traits/neutral.dm
+++ b/code/datums/traits/neutral.dm
@@ -215,7 +215,7 @@
/datum/quirk/jiggly_ass/add()
// Add examine text
- RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, .proc/on_examine_holder)
+ RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine_holder))
/datum/quirk/jiggly_ass/remove()
// Remove examine text
diff --git a/code/datums/wounds/slash.dm b/code/datums/wounds/slash.dm
index 62cdc985fa..89c95ba706 100644
--- a/code/datums/wounds/slash.dm
+++ b/code/datums/wounds/slash.dm
@@ -47,7 +47,7 @@
if(highest_scar)
UnregisterSignal(highest_scar, COMSIG_PARENT_QDELETING)
if(new_scar)
- RegisterSignal(new_scar, COMSIG_PARENT_QDELETING, .proc/clear_highest_scar)
+ RegisterSignal(new_scar, COMSIG_PARENT_QDELETING, PROC_REF(clear_highest_scar))
highest_scar = new_scar
/datum/wound/slash/proc/clear_highest_scar(datum/source)
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index 8921232c06..8f7b15070b 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -200,7 +200,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
else
results_undamaged[++results_undamaged.len] = total_list
- var/list/returning = sortTim(results_damaged,/proc/damage_compare) + sortTim(results_undamaged,/proc/ijob_compare)
+ var/list/returning = sortTim(results_damaged,GLOBAL_PROC_REF(damage_compare)) + sortTim(results_undamaged,GLOBAL_PROC_REF(ijob_compare))
data_by_z["[z]"] = returning
last_update["[z]"] = world.time
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index cf42da2ed6..a771251900 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -325,7 +325,7 @@
user,
src,
choices,
- custom_check = CALLBACK(src, .proc/check_interactable, user),
+ custom_check = CALLBACK(src, PROC_REF(check_interactable), user),
require_near = !issilicon(user),
)
diff --git a/code/game/objects/effects/spawners/xeno_egg_delivery.dm b/code/game/objects/effects/spawners/xeno_egg_delivery.dm
index 37bf65637b..4155f470fb 100644
--- a/code/game/objects/effects/spawners/xeno_egg_delivery.dm
+++ b/code/game/objects/effects/spawners/xeno_egg_delivery.dm
@@ -15,5 +15,5 @@
message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].")
log_game("An alien egg has been delivered to [AREACOORD(T)]")
var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen."
- SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(GLOBAL_PROC, /proc/print_command_report, message), announcement_time))
+ SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(print_command_report), message), announcement_time))
return INITIALIZE_HINT_QDEL
diff --git a/code/game/objects/items/hand_items.dm b/code/game/objects/items/hand_items.dm
index e3a3d72579..c18e74dd21 100644
--- a/code/game/objects/items/hand_items.dm
+++ b/code/game/objects/items/hand_items.dm
@@ -15,7 +15,7 @@
var/mob/living/owner = loc
if(!istype(owner))
return
- RegisterSignal(owner, COMSIG_PARENT_EXAMINE, .proc/ownerExamined)
+ RegisterSignal(owner, COMSIG_PARENT_EXAMINE, PROC_REF(ownerExamined))
/obj/item/hand_item/circlegame/Destroy()
var/mob/owner = loc
@@ -34,7 +34,7 @@
if(!istype(sucker) || !in_range(owner, sucker))
return
- addtimer(CALLBACK(src, .proc/waitASecond, owner, sucker), 4)
+ addtimer(CALLBACK(src, PROC_REF(waitASecond), owner, sucker), 4)
/// Stage 2: Fear sets in
/obj/item/hand_item/circlegame/proc/waitASecond(mob/living/owner, mob/living/sucker)
@@ -43,10 +43,10 @@
if(owner == sucker) // big mood
to_chat(owner, "Wait a second... you just looked at your own [src.name]!")
- addtimer(CALLBACK(src, .proc/selfGottem, owner), 10)
+ addtimer(CALLBACK(src, PROC_REF(selfGottem), owner), 10)
else
to_chat(sucker, "Wait a second... was that a-")
- addtimer(CALLBACK(src, .proc/GOTTEM, owner, sucker), 6)
+ addtimer(CALLBACK(src, PROC_REF(GOTTEM), owner, sucker), 6)
/// Stage 3A: We face our own failures
/obj/item/hand_item/circlegame/proc/selfGottem(mob/living/owner)
@@ -341,7 +341,7 @@
if(2)
other_msg = "stammers softly for a moment before choking on something!"
self_msg = "You feel your tongue disappear down your throat as you fight to remember how to make words!"
- addtimer(CALLBACK(living_target, /atom/movable.proc/say, pick("Uhhh...", "O-oh, uhm...", "I- uhhhhh??", "What?")), rand(0.5 SECONDS, 1.5 SECONDS))
+ addtimer(CALLBACK(living_target, TYPE_PROC_REF(/atom/movable, say), pick("Uhhh...", "O-oh, uhm...", "I- uhhhhh??", "What?")), rand(0.5 SECONDS, 1.5 SECONDS))
living_target.stuttering += rand(5, 15)
if(3)
other_msg = "locks up with a stunned look on [living_target.p_their()] face, staring at [firer ? firer : "the ceiling"]!"
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index 6d07a0aa2f..f2943730bb 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -505,7 +505,7 @@
switch(option)
if("Custom")
var/list/sort_numbers = quick_split
- sort_numbers = sort_list(sort_numbers, /proc/cmp_numeric_text_desc)
+ sort_numbers = sort_list(sort_numbers, GLOBAL_PROC_REF(cmp_numeric_text_desc))
option_display.maptext = MAPTEXT("?")
quick_split = list("Custom" = option_display)
quick_split += sort_numbers
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index ee584c5941..9f115af180 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -28,7 +28,7 @@
/obj/structure/chair/ComponentInitialize()
. = ..()
- AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate),CALLBACK(src), PROC_REF(can_be_rotated)),null)
+ AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate)),CALLBACK(src, PROC_REF(can_be_rotated)),null)
/obj/structure/chair/proc/can_be_rotated(mob/user)
return TRUE
diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm
index 9975b9e10f..d216e138be 100644
--- a/code/game/objects/structures/railings.dm
+++ b/code/game/objects/structures/railings.dm
@@ -16,7 +16,7 @@
/obj/structure/railing/ComponentInitialize()
. = ..()
- AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, PROC_REF(can_be_rotated)),CALLBACK(src,PROC_REF(after_rotation)))
+ AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, PROC_REF(can_be_rotated)),CALLBACK(src, PROC_REF(after_rotation)))
/obj/structure/railing/Initialize(mapload)
. = ..()
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index eaea226e69..fd20e72879 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -120,7 +120,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
/obj/structure/window/ComponentInitialize()
. = ..()
- AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, PROC_REF(can_be_rotated)),CALLBACK(src,PROC_REF(after_rotation)))
+ AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, PROC_REF(can_be_rotated)),CALLBACK(src, PROC_REF(after_rotation)))
/obj/structure/window/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
switch(the_rcd.mode)
diff --git a/code/game/world.dm b/code/game/world.dm
index dffd4a4dc4..264933ddf9 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -83,7 +83,7 @@ GLOBAL_LIST(topic_status_cache)
CONFIG_SET(number/round_end_countdown, 0)
var/datum/callback/cb
#ifdef UNIT_TESTS
- cb = CALLBACK(GLOBAL_PROC, /proc/RunUnitTests)
+ cb = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(RunUnitTests))
#else
cb = VARSET_CALLBACK(SSticker, force_ending, TRUE)
#endif
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 9b6d7ecc5c..32addf8953 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -215,7 +215,7 @@ GLOBAL_PROTECT(admin_verbs_debug)
/client/proc/discordnulls,
/client/proc/generate_wikichem_list //DO NOT PRESS UNLESS YOU WANT SUPERLAG
)
-GLOBAL_LIST_INIT(admin_verbs_possess, list(/proc/possess, /proc/release))
+GLOBAL_LIST_INIT(admin_verbs_possess, list(/proc/possess, GLOBAL_PROC_REF(release)))
GLOBAL_PROTECT(admin_verbs_possess)
GLOBAL_LIST_INIT(admin_verbs_permissions, list(/client/proc/edit_admin_permissions))
GLOBAL_PROTECT(admin_verbs_permissions)
diff --git a/code/modules/admin/player_panel2.dm b/code/modules/admin/player_panel2.dm
index 72139127d7..440aa50f95 100644
--- a/code/modules/admin/player_panel2.dm
+++ b/code/modules/admin/player_panel2.dm
@@ -202,7 +202,7 @@ GLOBAL_LIST_INIT(pp_limbs, list(
message_admins("[key_name_admin(usr)] took control of [targetMob].")
log_admin("[key_name(usr)] took control of [targetMob].")
- addtimer(CALLBACK(targetMob.mob_panel, /datum.proc/ui_interact, targetMob), 0.1 SECONDS)
+ addtimer(CALLBACK(targetMob.mob_panel, TYPE_PROC_REF(/datum, ui_interact), targetMob), 0.1 SECONDS)
if ("smite")
admin.smite(targetMob)
diff --git a/code/modules/admin/verbs/possess.dm b/code/modules/admin/verbs/possess.dm
index d10ec67d13..c2112c224d 100644
--- a/code/modules/admin/verbs/possess.dm
+++ b/code/modules/admin/verbs/possess.dm
@@ -51,6 +51,6 @@
set desc = "Give this guy possess/release verbs"
set category = "Debug"
set name = "Give Possessing Verbs"
- add_verb(M, /proc/possess)
- add_verb(M, /proc/release)
+ add_verb(M, GLOBAL_PROC_REF(possess))
+ add_verb(M, GLOBAL_PROC_REF(release))
SSblackbox.record_feedback("tally", "admin_verb", 1, "Give Possessing Verbs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 2abe3d9074..0ccf9b2f36 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -1517,23 +1517,23 @@ Traitors and the like can also be revived with the previous role mostly intact.
var/obj/item/bodypart/limb = _limb
if (limb.body_part == HEAD || limb.body_part == CHEST)
continue
- addtimer(CALLBACK(limb, /obj/item/bodypart/.proc/dismember), timer)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, carbon_target, 'modular_splurt/sound/effects/cartoon_pop.ogg', 70), timer)
- addtimer(CALLBACK(carbon_target, /mob/living/.proc/spin, 4, 1), timer - 0.4 SECONDS)
+ addtimer(CALLBACK(limb, TYPE_PROC_REF(/obj/item/bodypart, dismember)), timer)
+ addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(playsound), carbon_target, 'modular_splurt/sound/effects/cartoon_pop.ogg', 70), timer)
+ addtimer(CALLBACK(carbon_target, TYPE_PROC_REF(/mob/living, spin), 4, 1), timer - 0.4 SECONDS)
timer += 2 SECONDS
if(ADMIN_PUNISHMENT_BREADIFY)
#define BREADIFY_TIME (5 SECONDS)
var/mutable_appearance/bread_appearance = mutable_appearance('icons/obj/food/burgerbread.dmi', "bread")
var/mutable_appearance/transform_scanline = mutable_appearance('modular_splurt/icons/effects/effects.dmi', "transform_effect")
target.transformation_animation(bread_appearance, time = BREADIFY_TIME, transform_overlay=transform_scanline, reset_after=TRUE)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/breadify, target), BREADIFY_TIME)
+ addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(breadify), target), BREADIFY_TIME)
#undef BREADIFY_TIME
if(ADMIN_PUNISHMENT_BOOKIFY)
#define BOOKIFY_TIME (2 SECONDS)
var/mutable_appearance/book_appearance = mutable_appearance('icons/obj/library.dmi', "book")
var/mutable_appearance/transform_scanline = mutable_appearance('modular_splurt/icons/effects/effects.dmi', "transform_effect")
target.transformation_animation(book_appearance, time = BOOKIFY_TIME, transform_overlay=transform_scanline, reset_after=TRUE)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/bookify, target), BOOKIFY_TIME)
+ addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(bookify), target), BOOKIFY_TIME)
playsound(target, 'modular_splurt/sound/misc/bookify.ogg', 60, 1)
#undef BOOKIFY_TIME
if(ADMIN_PUNISHMENT_BONK)
diff --git a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm
index 7a44f5a2c4..02582c1623 100644
--- a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm
+++ b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm
@@ -208,10 +208,10 @@
return TRUE
//Ascension knowledge
-/datum/eldritch_knowledge/final
+/datum/eldritch_knowledge/final_eldritch
var/finished = FALSE
-/datum/eldritch_knowledge/final/recipe_snowflake_check(list/atoms, loc,selected_atoms)
+/datum/eldritch_knowledge/final_eldritch/recipe_snowflake_check(list/atoms, loc,selected_atoms)
if(finished)
return FALSE
var/counter = 0
@@ -222,11 +222,11 @@
return TRUE
return FALSE
-/datum/eldritch_knowledge/final/on_finished_recipe( mob/living/user, list/atoms, loc)
+/datum/eldritch_knowledge/final_eldritch/on_finished_recipe( mob/living/user, list/atoms, loc)
finished = TRUE
return TRUE
-/datum/eldritch_knowledge/final/cleanup_atoms(list/atoms)
+/datum/eldritch_knowledge/final_eldritch/cleanup_atoms(list/atoms)
. = ..()
for(var/mob/living/carbon/human/H in atoms)
atoms -= H
diff --git a/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm
index e453f5456d..b3251fe5ba 100644
--- a/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm
+++ b/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm
@@ -2,7 +2,7 @@
name = "Nightwatcher's Secret"
desc = "Inducts you into the Path of Ash. Allows you to transmute a match with a spear into an ashen blade."
gain_text = "The City Guard know their watch. If you ask them at night, they may tell you about the ashy lantern."
- banned_knowledge = list(/datum/eldritch_knowledge/base_rust,/datum/eldritch_knowledge/base_flesh,/datum/eldritch_knowledge/final/rust_final,/datum/eldritch_knowledge/final/flesh_final,/datum/eldritch_knowledge/final/void_final,/datum/eldritch_knowledge/base_void)
+ banned_knowledge = list(/datum/eldritch_knowledge/base_rust,/datum/eldritch_knowledge/base_flesh,/datum/eldritch_knowledge/final_eldritch/rust_final,/datum/eldritch_knowledge/final_eldritch/flesh_final,/datum/eldritch_knowledge/final_eldritch/void_final,/datum/eldritch_knowledge/base_void)
next_knowledge = list(/datum/eldritch_knowledge/ashen_grasp)
required_atoms = list(/obj/item/spear,/obj/item/match)
result_atoms = list(/obj/item/melee/sickly_blade/ash)
@@ -111,7 +111,7 @@
cost = 2
sacs_needed = 3
spell_to_add = /obj/effect/proc_holder/spell/pointed/nightwatchers_rite
- next_knowledge = list(/datum/eldritch_knowledge/final/ash_final)
+ next_knowledge = list(/datum/eldritch_knowledge/final_eldritch/ash_final)
route = PATH_ASH
/datum/eldritch_knowledge/spell/nightwatchers_rite/on_gain(mob/user)
@@ -180,7 +180,7 @@
spell_to_add = /obj/effect/proc_holder/spell/pointed/cleave
next_knowledge = list(/datum/eldritch_knowledge/spell/entropic_plume,/datum/eldritch_knowledge/spell/flame_birth)
-/datum/eldritch_knowledge/final/ash_final
+/datum/eldritch_knowledge/final_eldritch/ash_final
name = "Ashlord's Rite"
gain_text = "The Nightwatcher found the rite and shared it amongst mankind! For now I am one with the fire, WITNESS MY ASCENSION!"
desc = "Bring 3 corpses onto a transmutation rune, you will become immune to fire, the vacuum of space, cold and other enviromental hazards and become overall sturdier to all other damages. You will gain a spell that passively creates ring of fire around you as well ,as you will gain a powerful ability that lets you create a wave of flames all around you."
@@ -190,7 +190,7 @@
route = PATH_ASH
var/list/trait_list = list(TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE)
-/datum/eldritch_knowledge/final/ash_final/on_finished_recipe(mob/living/user, list/atoms, loc)
+/datum/eldritch_knowledge/final_eldritch/ash_final/on_finished_recipe(mob/living/user, list/atoms, loc)
priority_announce("$^@*$^@(#&$(@^$^@# Fear the blaze, for the Ashlord, [user.real_name] has ascended! The flames shall consume all! $^@*$^@(#&$(@^$^@#","#$^@*$^@(#&$(@^$^@#", 'sound/announcer/classic/spanomalies.ogg')
user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/fire_cascade/big)
user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/fire_sworn)
diff --git a/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm
index 3b5fd8832b..4b6e699ca9 100644
--- a/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm
+++ b/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm
@@ -2,7 +2,7 @@
name = "Principle of Hunger"
desc = "Inducts you into the Path of Flesh. Allows you to transmute a pool of blood with a spear into a Blade of Flesh."
gain_text = "Hundreds of us starved, but not me... I found strength in my greed."
- banned_knowledge = list(/datum/eldritch_knowledge/base_ash,/datum/eldritch_knowledge/base_rust,/datum/eldritch_knowledge/final/ash_final,/datum/eldritch_knowledge/final/rust_final,/datum/eldritch_knowledge/final/void_final,/datum/eldritch_knowledge/base_void)
+ banned_knowledge = list(/datum/eldritch_knowledge/base_ash,/datum/eldritch_knowledge/base_rust,/datum/eldritch_knowledge/final_eldritch/ash_final,/datum/eldritch_knowledge/final_eldritch/rust_final,/datum/eldritch_knowledge/final_eldritch/void_final,/datum/eldritch_knowledge/base_void)
next_knowledge = list(/datum/eldritch_knowledge/flesh_grasp)
required_atoms = list(/obj/item/spear,/obj/effect/decal/cleanable/blood)
result_atoms = list(/obj/item/melee/sickly_blade/flesh)
@@ -211,7 +211,7 @@
spell_to_add = /obj/effect/proc_holder/spell/pointed/blood_siphon
next_knowledge = list(/datum/eldritch_knowledge/summon/stalker,/datum/eldritch_knowledge/spell/voidpull)
-/datum/eldritch_knowledge/final/flesh_final
+/datum/eldritch_knowledge/final_eldritch/flesh_final
name = "Priest's Final Hymn"
gain_text = "Men of this world. Hear me, for the time of the Lord of Arms has come! The Emperor of Flesh guides my army!"
desc = "Bring 3 bodies onto a transmutation rune to shed your human form and ascend to untold power."
@@ -220,7 +220,7 @@
sacs_needed = 8
route = PATH_FLESH
-/datum/eldritch_knowledge/final/flesh_final/on_finished_recipe(mob/living/user, list/atoms, loc)
+/datum/eldritch_knowledge/final_eldritch/flesh_final/on_finished_recipe(mob/living/user, list/atoms, loc)
. = ..()
priority_announce("$^@*$^@(#&$(@^$^@# Ever coiling vortex. Reality unfolded. THE LORD OF ARMS, [user.real_name] has ascended! Fear the ever twisting hand! $^@*$^@(#&$(@^$^@#","#$^@*$^@(#&$(@^$^@#", 'sound/announcer/classic/spanomalies.ogg')
user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shed_human_form)
@@ -260,7 +260,7 @@
cost = 2
sacs_needed = 3
spell_to_add = /obj/effect/proc_holder/spell/targeted/touch/mad_touch
- next_knowledge = list(/datum/eldritch_knowledge/final/flesh_final)
+ next_knowledge = list(/datum/eldritch_knowledge/final_eldritch/flesh_final)
route = PATH_FLESH
/datum/eldritch_knowledge/spell/touch_of_madness/on_gain(mob/user)
diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
index 733b2725cb..183bba4f26 100644
--- a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
+++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
@@ -2,7 +2,7 @@
name = "Blacksmith's Tale"
desc = "Inducts you into the Path of Rust. Allows you to transmute a spear with any trash item into a Blade of Rust."
gain_text = "'Let me tell you a story', said the Blacksmith, as he gazed deep into his rusty blade."
- banned_knowledge = list(/datum/eldritch_knowledge/base_ash,/datum/eldritch_knowledge/base_flesh,/datum/eldritch_knowledge/final/ash_final,/datum/eldritch_knowledge/final/flesh_final,/datum/eldritch_knowledge/final/void_final,/datum/eldritch_knowledge/base_void)
+ banned_knowledge = list(/datum/eldritch_knowledge/base_ash,/datum/eldritch_knowledge/base_flesh,/datum/eldritch_knowledge/final_eldritch/ash_final,/datum/eldritch_knowledge/final_eldritch/flesh_final,/datum/eldritch_knowledge/final_eldritch/void_final,/datum/eldritch_knowledge/base_void)
next_knowledge = list(/datum/eldritch_knowledge/rust_fist)
required_atoms = list(/obj/item/spear,/obj/item/trash)
result_atoms = list(/obj/item/melee/sickly_blade/rust)
@@ -161,14 +161,14 @@
cost = 2
sacs_needed = 3
spell_to_add = /obj/effect/proc_holder/spell/targeted/touch/grasp_of_decay
- next_knowledge = list(/datum/eldritch_knowledge/final/rust_final)
+ next_knowledge = list(/datum/eldritch_knowledge/final_eldritch/rust_final)
route = PATH_RUST
/datum/eldritch_knowledge/spell/grasp_of_decay/on_gain(mob/user)
. = ..()
priority_announce("A foul wind is blowing... The floor creaks with rust as something sinister approaches!", sound = 'sound/misc/notice1.ogg')
-/datum/eldritch_knowledge/final/rust_final
+/datum/eldritch_knowledge/final_eldritch/rust_final
name = "Rustbringer's Oath"
desc = "Bring three corpses onto a transmutation rune. After you finish the ritual, rust will now automatically spread from the rune. Your healing on rust is also tripled, while you become more resilient overall."
gain_text = "Champion of rust. Corruptor of steel. Fear the dark for the Rustbringer has come! Rusted Hills, CALL MY NAME!"
@@ -177,7 +177,7 @@
required_atoms = list(/mob/living/carbon/human)
route = PATH_RUST
-/datum/eldritch_knowledge/final/rust_final/on_finished_recipe(mob/living/user, list/atoms, loc)
+/datum/eldritch_knowledge/final_eldritch/rust_final/on_finished_recipe(mob/living/user, list/atoms, loc)
var/mob/living/carbon/human/H = user
H.physiology.brute_mod *= 0.5
H.physiology.burn_mod *= 0.5
@@ -188,7 +188,7 @@
ascension.ascended = TRUE
return ..()
-/datum/eldritch_knowledge/final/rust_final/on_life(mob/user)
+/datum/eldritch_knowledge/final_eldritch/rust_final/on_life(mob/user)
. = ..()
if(!finished)
return
diff --git a/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm
index dcbc01b046..27cc84b772 100644
--- a/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm
+++ b/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm
@@ -2,7 +2,7 @@
name = "Glimmer of Winter"
desc = "Opens up the path of void to you. Allows you to transmute a spear in a sub-zero temperature into a void blade."
gain_text = "I feel a shimmer in the air, atmosphere around me gets colder. I feel my body realizing the emptiness of existance. Something's watching me"
- banned_knowledge = list(/datum/eldritch_knowledge/base_ash,/datum/eldritch_knowledge/base_flesh,/datum/eldritch_knowledge/final/ash_final,/datum/eldritch_knowledge/final/flesh_final,/datum/eldritch_knowledge/base_rust,/datum/eldritch_knowledge/final/rust_final)
+ banned_knowledge = list(/datum/eldritch_knowledge/base_ash,/datum/eldritch_knowledge/base_flesh,/datum/eldritch_knowledge/final_eldritch/ash_final,/datum/eldritch_knowledge/final_eldritch/flesh_final,/datum/eldritch_knowledge/base_rust,/datum/eldritch_knowledge/final_eldritch/rust_final)
next_knowledge = list(/datum/eldritch_knowledge/void_grasp)
required_atoms = list(/obj/item/spear)
result_atoms = list(/obj/item/melee/sickly_blade/void)
@@ -162,14 +162,14 @@
cost = 2
sacs_needed = 3
spell_to_add = /obj/effect/proc_holder/spell/aoe_turf/domain_expansion
- next_knowledge = list(/datum/eldritch_knowledge/final/void_final)
+ next_knowledge = list(/datum/eldritch_knowledge/final_eldritch/void_final)
route = PATH_VOID
/datum/eldritch_knowledge/spell/domain_expansion/on_gain(mob/user)
. = ..()
priority_announce("Echos of the lost in space are heard... An ominous presence is being detected! ", sound = 'sound/misc/notice1.ogg')
-/datum/eldritch_knowledge/final/void_final
+/datum/eldritch_knowledge/final_eldritch/void_final
name = "Waltz at the End of Time"
desc = "Bring 3 corpses onto the transmutation rune. After you finish the ritual you will automatically silence people around you and will summon a snow storm around you."
gain_text = "The world falls into darkness. I stand in an empty plane, small flakes of ice fall from the sky. The Aristocrat stands before me, he motions to me. We will play a waltz to the whispers of dying reality, as the world is destroyed before our eyes."
@@ -182,7 +182,7 @@
///Reference to the ongoing voidstorm that surrounds the heretic
var/datum/weather/void_storm/storm
-/datum/eldritch_knowledge/final/void_final/on_finished_recipe(mob/living/user, list/atoms, loc)
+/datum/eldritch_knowledge/final_eldritch/void_final/on_finished_recipe(mob/living/user, list/atoms, loc)
var/mob/living/carbon/human/waltzing = user
waltzing.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/eldritch)
waltzing.physiology.brute_mod *= 0.5
@@ -193,14 +193,14 @@
sound_loop = new(user, TRUE, TRUE)
return ..()
-/datum/eldritch_knowledge/final/void_final/on_death()
+/datum/eldritch_knowledge/final_eldritch/void_final/on_death()
if(sound_loop)
sound_loop.stop()
if(storm)
storm.end()
QDEL_NULL(storm)
-/datum/eldritch_knowledge/final/void_final/on_life(mob/user)
+/datum/eldritch_knowledge/final_eldritch/void_final/on_life(mob/user)
. = ..()
if(!finished)
return
diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm
index a154ce1d49..eeb82d27aa 100644
--- a/code/modules/integrated_electronics/subtypes/input.dm
+++ b/code/modules/integrated_electronics/subtypes/input.dm
@@ -654,7 +654,7 @@
/obj/item/integrated_circuit/input/signaler/Initialize(mapload)
. = ..()
- addtimer(CALLBACK(src, .proc/init_frequency), 4 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(init_frequency)), 4 SECONDS)
/obj/item/integrated_circuit/input/signaler/Destroy()
SSradio.remove_object(src,frequency)
diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm
index 213a49d9ef..8976a0cc6d 100644
--- a/code/modules/mob/living/carbon/monkey/combat.dm
+++ b/code/modules/mob/living/carbon/monkey/combat.dm
@@ -117,7 +117,7 @@
pickupTarget = null
pickupTimer = 0
else
- INVOKE_ASYNC(src, .proc/walk2derpless, pickupTarget.loc)
+ INVOKE_ASYNC(src, PROC_REF(walk2derpless), pickupTarget.loc)
if(Adjacent(pickupTarget) || Adjacent(pickupTarget.loc)) // next to target
drop_all_held_items() // who cares about these items, i want that one!
if(isturf(pickupTarget.loc)) // on floor
@@ -167,7 +167,7 @@
return TRUE
if(target != null)
- INVOKE_ASYNC(src, .proc/walk2derpless, target)
+ INVOKE_ASYNC(src, PROC_REF(walk2derpless), target)
// pickup any nearby weapon
if(!pickupTarget && prob(MONKEY_WEAPON_PROB))
@@ -252,7 +252,7 @@
if(target.pulledby != src && !istype(target.pulledby, /mob/living/carbon/monkey/))
- INVOKE_ASYNC(src, .proc/walk2derpless, target.loc)
+ INVOKE_ASYNC(src, PROC_REF(walk2derpless), target.loc)
if(Adjacent(target) && isturf(target.loc))
a_intent = INTENT_GRAB
@@ -265,7 +265,7 @@
frustration = 0
else if(!disposing_body)
- INVOKE_ASYNC(src, .proc/walk2derpless, bodyDisposal.loc)
+ INVOKE_ASYNC(src, PROC_REF(walk2derpless), bodyDisposal.loc)
if(Adjacent(bodyDisposal))
disposing_body = TRUE
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index 01823bc0fc..ba8f061b94 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -24,7 +24,7 @@
break
var/msg = "[key_name_admin(src)] [ADMIN_JMP(src)] was found to have no .loc with an attached client, if the cause is unknown it would be wise to ask how this was accomplished."
message_admins(msg)
- INVOKE_ASYNC(GLOBAL_PROC, .proc/send2tgs_adminless_only, "Mob", msg, R_ADMIN)
+ INVOKE_ASYNC(GLOBAL_PROC, PROC_REF(send2tgs_adminless_only), "Mob", msg, R_ADMIN)
log_game("[key_name(src)] was found to have no .loc with an attached client.")
// This is a temporary error tracker to make sure we've caught everything
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
index 18e1b08f86..810ada537a 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
@@ -78,15 +78,15 @@ Difficulty: Hard
blood_warp()
if(prob(25))
- INVOKE_ASYNC(src, .proc/blood_spray)
+ INVOKE_ASYNC(src, PROC_REF(blood_spray))
else if(prob(5+anger_modifier/2))
slaughterlings()
else
if(health > maxHealth/2 && !client)
- INVOKE_ASYNC(src, .proc/charge)
+ INVOKE_ASYNC(src, PROC_REF(charge))
else
- INVOKE_ASYNC(src, .proc/triple_charge)
+ INVOKE_ASYNC(src, PROC_REF(triple_charge))
/mob/living/simple_animal/hostile/megafauna/bubblegum/Initialize()
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
index b8b94adab2..23eccb72af 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
@@ -111,15 +111,15 @@ Difficulty: Medium
if(prob(15 + anger_modifier) && !client)
if(health < maxHealth/2)
- INVOKE_ASYNC(src, .proc/swoop_attack, TRUE, null, 50)
+ INVOKE_ASYNC(src, PROC_REF(swoop_attack), TRUE, null, 50)
else
fire_rain()
else if(prob(10+anger_modifier) && !client)
if(health > maxHealth/2)
- INVOKE_ASYNC(src, .proc/swoop_attack)
+ INVOKE_ASYNC(src, PROC_REF(swoop_attack))
else
- INVOKE_ASYNC(src, .proc/triple_swoop)
+ INVOKE_ASYNC(src, PROC_REF(triple_swoop))
else
fire_walls()
@@ -135,7 +135,7 @@ Difficulty: Medium
playsound(get_turf(src),'sound/magic/fireball.ogg', 200, 1)
for(var/d in GLOB.cardinals)
- INVOKE_ASYNC(src, .proc/fire_wall, d)
+ INVOKE_ASYNC(src, PROC_REF(fire_wall), d)
/mob/living/simple_animal/hostile/megafauna/dragon/proc/fire_wall(dir)
var/list/hit_things = list(src)
@@ -309,7 +309,7 @@ Difficulty: Medium
/obj/effect/temp_visual/target/Initialize(mapload, list/flame_hit)
. = ..()
- INVOKE_ASYNC(src, .proc/fall, flame_hit)
+ INVOKE_ASYNC(src, PROC_REF(fall), flame_hit)
/obj/effect/temp_visual/dragon_swoop
@@ -333,7 +333,7 @@ Difficulty: Medium
/obj/effect/temp_visual/dragon_flight/Initialize(mapload, negative)
. = ..()
- INVOKE_ASYNC(src, .proc/flight, negative)
+ INVOKE_ASYNC(src, PROC_REF(flight), negative)
/obj/effect/temp_visual/dragon_flight/proc/flight(negative)
if(negative)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index b9669fceea..54b8fbc3ae 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -539,7 +539,7 @@
if(send_signal)
SEND_SIGNAL(src, COMSIG_MOB_KEY_CHANGE, new_mob, src)
//splurt changeh
- INVOKE_ASYNC(GLOBAL_PROC, .proc/_paci_check, new_mob, src)
+ INVOKE_ASYNC(GLOBAL_PROC, PROC_REF(_paci_check), new_mob, src)
//
return TRUE
diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm
index 6873412f07..dbaea3e2e0 100644
--- a/code/modules/power/singularity/narsie.dm
+++ b/code/modules/power/singularity/narsie.dm
@@ -97,9 +97,9 @@
/proc/cult_ending_helper(var/no_explosion = 0)
if(no_explosion)
- Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper))
+ Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC,GLOBAL_PROC_REF(ending_helper)))
else
- Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper))
+ Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC,GLOBAL_PROC_REF(ending_helper)))
//ATTACK GHOST IGNORING PARENT RETURN VALUE
/obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob)
diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm
index 54ee98b290..423fa3fa3d 100644
--- a/code/modules/tgui/tgui.dm
+++ b/code/modules/tgui/tgui.dm
@@ -195,7 +195,7 @@
return
if(!COOLDOWN_FINISHED(src, refresh_cooldown))
refreshing = TRUE
- addtimer(CALLBACK(src, .proc/send_full_update), TGUI_REFRESH_FULL_UPDATE_COOLDOWN, TIMER_UNIQUE)
+ addtimer(CALLBACK(src, PROC_REF(send_full_update)), TGUI_REFRESH_FULL_UPDATE_COOLDOWN, TIMER_UNIQUE)
return
refreshing = FALSE
var/should_update_data = force || status >= UI_UPDATE
diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm
index 99f3402bcd..28e31988e7 100644
--- a/code/modules/vehicles/cars/clowncar.dm
+++ b/code/modules/vehicles/cars/clowncar.dm
@@ -55,7 +55,7 @@
message_admins("[ADMIN_LOOKUPFLW(forced_mob)] was taken into a clown car with [reagent_amount] unit(s) of Irish Car Bomb, causing an ejection.")
forced_mob.log_message("was taken into a clown car with [reagent_amount] unit(s) of Irish Car Bomb, causing an ejection.", LOG_GAME)
audible_message(span_userdanger("You hear a rattling sound coming from the engine. That can't be good..."), null, 1)
- addtimer(CALLBACK(src, .proc/irish_car_bomb), 5 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(irish_car_bomb)), 5 SECONDS)
/obj/vehicle/sealed/car/clowncar/proc/irish_car_bomb()
dump_mobs()
diff --git a/code/modules/vehicles/wheelchair.dm b/code/modules/vehicles/wheelchair.dm
index 629390e27f..1ffc5c8d93 100644
--- a/code/modules/vehicles/wheelchair.dm
+++ b/code/modules/vehicles/wheelchair.dm
@@ -23,7 +23,7 @@
/obj/vehicle/ridden/wheelchair/ComponentInitialize() //Since it's technically a chair I want it to have chair properties
. = ..()
- AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate),CALLBACK(src), PROC_REF(can_be_rotated)),null)
+ AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate)),CALLBACK(src, PROC_REF(can_be_rotated)),null)
/obj/vehicle/ridden/wheelchair/obj_destruction(damage_flag)
new /obj/item/stack/rods(drop_location(), 8)
diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm
index 097daa9f0e..dc5e559ee1 100644
--- a/modular_citadel/code/modules/client/preferences_savefile.dm
+++ b/modular_citadel/code/modules/client/preferences_savefile.dm
@@ -23,7 +23,7 @@
S["alt_titles_preferences"] >> alt_titles_preferences
alt_titles_preferences = SANITIZE_LIST(alt_titles_preferences)
if(SSjob)
- for(var/datum/job/job in sort_list(SSjob.occupations, /proc/cmp_job_display_asc))
+ for(var/datum/job/job in sort_list(SSjob.occupations, GLOBAL_PROC_REF(cmp_job_display_asc)))
if(alt_titles_preferences[job.title])
if(!(alt_titles_preferences[job.title] in job.alt_titles))
alt_titles_preferences.Remove(job.title)
diff --git a/modular_sand/code/game/objects/items/fleshlight.dm b/modular_sand/code/game/objects/items/fleshlight.dm
index b8402ca176..1a464b575f 100644
--- a/modular_sand/code/game/objects/items/fleshlight.dm
+++ b/modular_sand/code/game/objects/items/fleshlight.dm
@@ -666,7 +666,7 @@
playsound(src, 'sound/machines/ping.ogg', 50, FALSE)
to_chat(user, "[P] has been linked up successfully.")
update_portal()
- RegisterSignal(user, COMSIG_PARENT_QDELETING, .proc/drop_out)
+ RegisterSignal(user, COMSIG_PARENT_QDELETING, PROC_REF(drop_out))
else
to_chat(user, "One of these pieces has already been paired.")
else
diff --git a/modular_sand/code/modules/clothing/spacesuits/chronosuit.dm b/modular_sand/code/modules/clothing/spacesuits/chronosuit.dm
index e00251a198..3454cffb66 100644
--- a/modular_sand/code/modules/clothing/spacesuits/chronosuit.dm
+++ b/modular_sand/code/modules/clothing/spacesuits/chronosuit.dm
@@ -135,12 +135,12 @@
user.Stun(INFINITY)
animate(user, color = "#00ccee", time = 3)
- phase_timer_id = addtimer(CALLBACK(src, .proc/phase_2, user, to_turf, phase_in_ds), 3, TIMER_STOPPABLE)
+ phase_timer_id = addtimer(CALLBACK(src, PROC_REF(phase_2), user, to_turf, phase_in_ds), 3, TIMER_STOPPABLE)
/obj/item/clothing/suit/space/chronos/proc/phase_2(mob/living/carbon/human/user, turf/to_turf, phase_in_ds)
if(teleporting && activated && user)
animate(user, alpha = 0, time = 2)
- phase_timer_id = addtimer(CALLBACK(src, .proc/phase_3, user, to_turf, phase_in_ds), 2, TIMER_STOPPABLE)
+ phase_timer_id = addtimer(CALLBACK(src, PROC_REF(phase_3), user, to_turf, phase_in_ds), 2, TIMER_STOPPABLE)
else
finish_chronowalk(user, to_turf)
@@ -148,7 +148,7 @@
if(teleporting && activated && user)
user.forceMove(to_turf)
animate(user, alpha = 255, time = phase_in_ds)
- phase_timer_id = addtimer(CALLBACK(src, .proc/phase_4, user, to_turf), phase_in_ds, TIMER_STOPPABLE)
+ phase_timer_id = addtimer(CALLBACK(src, PROC_REF(phase_4), user, to_turf), phase_in_ds, TIMER_STOPPABLE)
else
finish_chronowalk(user, to_turf)
diff --git a/modular_sand/code/modules/mob/emote.dm b/modular_sand/code/modules/mob/emote.dm
index e725562c1c..caa12f509b 100644
--- a/modular_sand/code/modules/mob/emote.dm
+++ b/modular_sand/code/modules/mob/emote.dm
@@ -11,7 +11,7 @@
I.icon_state = state
M.vis_contents += I
animate(I, alpha = 255, time = 5, easing = BOUNCE_EASING, pixel_y = 10)
- addtimer(CALLBACK(GLOBAL_PROC, /proc/finish_flick, M, I), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME)
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(finish_flick), M, I), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME)
/proc/finish_flick(mob/M, I)
M.vis_contents -= I
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
index b4a8993f4e..2592a1b633 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
@@ -36,13 +36,13 @@ Removes slaughterlings (because they are bullshit), instead replacing them with
blood_warp()
bloodsmacks()
if(prob(25))
- INVOKE_ASYNC(src, .proc/blood_spray)
- INVOKE_ASYNC(src, .proc/bloodsmacks)
+ INVOKE_ASYNC(src, PROC_REF(blood_spray))
+ INVOKE_ASYNC(src, PROC_REF(bloodsmacks))
else
if(health > maxHealth/2 && !client)
- INVOKE_ASYNC(src, .proc/charge)
+ INVOKE_ASYNC(src, PROC_REF(charge))
else
- INVOKE_ASYNC(src, .proc/triple_charge)
+ INVOKE_ASYNC(src, PROC_REF(triple_charge))
/mob/living/simple_animal/hostile/megafauna/bubblegum/charge()
bloodsmacks()
@@ -71,7 +71,7 @@ Removes slaughterlings (because they are bullshit), instead replacing them with
mobcount++
if(mobcount)
var/hand = rand(0,1)
- INVOKE_ASYNC(src, .proc/bloodsmack, T, hand)
+ INVOKE_ASYNC(src, PROC_REF(bloodsmack), T, hand)
/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/bloodsmack(turf/T, handedness)
if(handedness)
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.dm
index 8372abd7a2..f90d59a45c 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.dm
@@ -116,7 +116,7 @@
new /obj/effect/temp_visual/dir_setting/bloodsplatter/candy(T, get_dir(T, target))
T = get_step(T, dir_to_target)
sleep(1)
- addtimer(CALLBACK(src, .proc/blood_charge_2, dir_to_target, 0), 5)
+ addtimer(CALLBACK(src, PROC_REF(blood_charge_2), dir_to_target, 0), 5)
/mob/living/simple_animal/hostile/asteroid/elite/candy/proc/bloodytrap(mob/target)
playsound(src,'sound/magic/Blind.ogg', 200, 1)
@@ -229,7 +229,7 @@
//L.Paralyze(20)
L.Stun(20) //substituting this for the Paralyze from the line above, because we don't have tg paralysis stuff
L.adjustBruteLoss(50)
- addtimer(CALLBACK(src, .proc/blood_charge_2, move_dir, (times_ran + 1)), 2)
+ addtimer(CALLBACK(src, PROC_REF(blood_charge_2), move_dir, (times_ran + 1)), 2)
/obj/effect/temp_visual/dir_setting/bloodsplatter/candy
duration = 10
diff --git a/modular_splurt/code/__HELPERS/icons.dm b/modular_splurt/code/__HELPERS/icons.dm
index 9a242ca805..8b1374c1be 100644
--- a/modular_splurt/code/__HELPERS/icons.dm
+++ b/modular_splurt/code/__HELPERS/icons.dm
@@ -38,7 +38,7 @@ GLOBAL_LIST_EMPTY(transformation_animation_objects)
for(var/A in transformation_objects)
vis_contents += A
if(reset_after)
- addtimer(CALLBACK(src,.proc/_reset_transformation_animation,filter_index),time)
+ addtimer(CALLBACK(src,PROC_REF(_reset_transformation_animation),filter_index),time)
/*
* Resets filters and removes transformation animations helper objects from vis contents.
diff --git a/modular_splurt/code/controllers/subsystem/shuttle.dm b/modular_splurt/code/controllers/subsystem/shuttle.dm
index 1f3079bf2a..3a403c9f77 100644
--- a/modular_splurt/code/controllers/subsystem/shuttle.dm
+++ b/modular_splurt/code/controllers/subsystem/shuttle.dm
@@ -1,6 +1,6 @@
/datum/controller/subsystem/shuttle/Initialize(timeofday)
. = ..(timeofday)
- SSticker.OnRoundend(CALLBACK(src, .proc/roundend_callback))
+ SSticker.OnRoundend(CALLBACK(src, PROC_REF(roundend_callback)))
/datum/controller/subsystem/shuttle/proc/roundend_callback()
SSshuttle.navigation_locked_traits.Remove(ZTRAIT_CENTCOM)
diff --git a/modular_splurt/code/controllers/subsystem/ticker.dm b/modular_splurt/code/controllers/subsystem/ticker.dm
index a2fd4a9be9..47143d49bf 100644
--- a/modular_splurt/code/controllers/subsystem/ticker.dm
+++ b/modular_splurt/code/controllers/subsystem/ticker.dm
@@ -3,4 +3,4 @@
for(var/mob/dead/new_player/player in GLOB.player_list)
if(player.ready == PLAYER_READY_TO_OBSERVE && player.mind && !(player.client?.prefs.toggles & TG_PLAYER_PANEL))
//Break chain since this has a sleep input in it
- addtimer(CALLBACK(player, /mob/dead/new_player.proc/make_me_an_observer), 1)
+ addtimer(CALLBACK(player, TYPE_PROC_REF(/mob/dead/new_player, make_me_an_observer)), 1)
diff --git a/modular_splurt/code/datums/components/dullahan.dm b/modular_splurt/code/datums/components/dullahan.dm
index 6fae1b981d..088183fa21 100644
--- a/modular_splurt/code/datums/components/dullahan.dm
+++ b/modular_splurt/code/datums/components/dullahan.dm
@@ -29,7 +29,7 @@
src.color = "#[fire_color]"
lit(color)
- RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/unlit)
+ RegisterSignal(parent, COMSIG_MOB_DEATH, PROC_REF(unlit))
// RegisterSignal(parent, COMSIG_MOB_LIFE)
/datum/component/neckfire/proc/lit(fire_color)
@@ -91,8 +91,8 @@
/datum/component/dullahan/Initialize()
. = ..()
- RegisterSignal(dullahan_head, COMSIG_MOUSEDROPPED_ONTO, .proc/on_mouse_dropped)
- RegisterSignal(dullahan_head, COMSIG_MOUSEDROP_ONTO, .proc/on_mouse_drop)
+ RegisterSignal(dullahan_head, COMSIG_MOUSEDROPPED_ONTO, PROC_REF(on_mouse_dropped))
+ RegisterSignal(dullahan_head, COMSIG_MOUSEDROP_ONTO, PROC_REF(on_mouse_drop))
/datum/component/dullahan/proc/add_head_accessory(obj/item/clothing/I, item_path)
head_accessory_MA = mutable_appearance(I.mob_overlay_icon || HEAD_ACCESSORIES_PATHS[item_path])
diff --git a/modular_splurt/code/datums/components/organ_inflation.dm b/modular_splurt/code/datums/components/organ_inflation.dm
index b6d3540032..9a855f8f7b 100644
--- a/modular_splurt/code/datums/components/organ_inflation.dm
+++ b/modular_splurt/code/datums/components/organ_inflation.dm
@@ -32,7 +32,7 @@
inflate_organ(size - old_size)
/datum/component/organ_inflation/RegisterWithParent()
- RegisterSignal(parent, COMSIG_ATOM_ENTERING, .proc/on_entering)
+ RegisterSignal(parent, COMSIG_ATOM_ENTERING, PROC_REF(on_entering))
if(container)
register_container()
@@ -42,8 +42,8 @@
unregister_container()
/datum/component/organ_inflation/proc/register_container()
- RegisterSignal(container, COMSIG_ORGAN_INSERTED, .proc/on_inserted)
- RegisterSignal(container, COMSIG_ORGAN_REMOVED, .proc/on_removed)
+ RegisterSignal(container, COMSIG_ORGAN_INSERTED, PROC_REF(on_inserted))
+ RegisterSignal(container, COMSIG_ORGAN_REMOVED, PROC_REF(on_removed))
/datum/component/organ_inflation/proc/unregister_container()
UnregisterSignal(container, COMSIG_ORGAN_REMOVED)
diff --git a/modular_splurt/code/datums/components/pregnancy.dm b/modular_splurt/code/datums/components/pregnancy.dm
index eb0e9398a5..118dea9246 100644
--- a/modular_splurt/code/datums/components/pregnancy.dm
+++ b/modular_splurt/code/datums/components/pregnancy.dm
@@ -97,11 +97,11 @@
/datum/component/pregnancy/RegisterWithParent()
if(carrier)
register_carrier()
- RegisterSignal(parent, COMSIG_ATOM_ENTERING, .proc/on_entering)
- RegisterSignal(parent, COMSIG_OBJ_BREAK, .proc/on_obj_break)
- RegisterSignal(parent, COMSIG_OBJ_WRITTEN_ON, .proc/name_egg)
- RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/handle_hatch)
- RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/eg_status)
+ RegisterSignal(parent, COMSIG_ATOM_ENTERING, PROC_REF(on_entering))
+ RegisterSignal(parent, COMSIG_OBJ_BREAK, PROC_REF(on_obj_break))
+ RegisterSignal(parent, COMSIG_OBJ_WRITTEN_ON, PROC_REF(name_egg))
+ RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(handle_hatch))
+ RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(eg_status))
/datum/component/pregnancy/UnregisterFromParent()
if(carrier)
@@ -113,12 +113,12 @@
UnregisterSignal(parent, COMSIG_PARENT_EXAMINE)
/datum/component/pregnancy/proc/register_carrier()
- RegisterSignal(carrier, COMSIG_MOB_DEATH, .proc/fetus_mortus)
- RegisterSignal(carrier, COMSIG_LIVING_BIOLOGICAL_LIFE, .proc/handle_life)
- RegisterSignal(carrier, COMSIG_HEALTH_SCAN, .proc/on_scan)
- RegisterSignal(carrier, COMSIG_MOB_APPLY_DAMAGE, .proc/handle_damage)
+ RegisterSignal(carrier, COMSIG_MOB_DEATH, PROC_REF(fetus_mortus))
+ RegisterSignal(carrier, COMSIG_LIVING_BIOLOGICAL_LIFE, PROC_REF(handle_life))
+ RegisterSignal(carrier, COMSIG_HEALTH_SCAN, PROC_REF(on_scan))
+ RegisterSignal(carrier, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(handle_damage))
if(oviposition)
- RegisterSignal(carrier, COMSIG_MOB_CLIMAX, .proc/on_climax)
+ RegisterSignal(carrier, COMSIG_MOB_CLIMAX, PROC_REF(on_climax))
/datum/component/pregnancy/proc/unregister_carrier()
UnregisterSignal(carrier, COMSIG_MOB_DEATH)
@@ -227,7 +227,7 @@
if(stage < max_stage)
return
- INVOKE_ASYNC(src, .proc/hatch, source, I, user, params)
+ INVOKE_ASYNC(src, PROC_REF(hatch), source, I, user, params)
/datum/component/pregnancy/proc/hatch(datum/source, obj/item/I, mob/user, params)
if(!COOLDOWN_FINISHED(src, hatch_request_cooldown))
diff --git a/modular_splurt/code/datums/components/pregnancy_inert.dm b/modular_splurt/code/datums/components/pregnancy_inert.dm
index fa8ccbb358..5d8e264320 100644
--- a/modular_splurt/code/datums/components/pregnancy_inert.dm
+++ b/modular_splurt/code/datums/components/pregnancy_inert.dm
@@ -18,14 +18,14 @@
carrier = genital.owner
/datum/component/ovipositor/RegisterWithParent()
- RegisterSignal(parent, COMSIG_ORGAN_INSERTED, .proc/on_inserted)
- RegisterSignal(parent, COMSIG_ORGAN_REMOVED, .proc/on_removed)
+ RegisterSignal(parent, COMSIG_ORGAN_INSERTED, PROC_REF(on_inserted))
+ RegisterSignal(parent, COMSIG_ORGAN_REMOVED, PROC_REF(on_removed))
if(carrier)
register_carrier()
/datum/component/ovipositor/proc/register_carrier()
- RegisterSignal(carrier, COMSIG_LIVING_BIOLOGICAL_LIFE, .proc/handle_life)
- RegisterSignal(carrier, COMSIG_MOB_CLIMAX, .proc/on_climax)
+ RegisterSignal(carrier, COMSIG_LIVING_BIOLOGICAL_LIFE, PROC_REF(handle_life))
+ RegisterSignal(carrier, COMSIG_MOB_CLIMAX, PROC_REF(on_climax))
/datum/component/ovipositor/proc/unregister_carrier()
UnregisterSignal(carrier, COMSIG_LIVING_BIOLOGICAL_LIFE)
diff --git a/modular_splurt/code/datums/components/size_normalized.dm b/modular_splurt/code/datums/components/size_normalized.dm
index f3d675d187..bde5b16c7e 100644
--- a/modular_splurt/code/datums/components/size_normalized.dm
+++ b/modular_splurt/code/datums/components/size_normalized.dm
@@ -22,7 +22,7 @@
wearer.flash_lighting_fx(3, 3, LIGHT_COLOR_PURPLE)
wearer.visible_message(span_warning("A flash of purple light engulfs \the [wearer], before [wearer.p_they()] jump[wearer.p_s()] to a more average size!"),span_notice("You feel warm for a moment, before everything scales to your size..."))
wearer.update_size(normal_resize)
- RegisterSignal(wearer, COMSIG_MOB_RESIZED, .proc/normalize_size)
+ RegisterSignal(wearer, COMSIG_MOB_RESIZED, PROC_REF(normalize_size))
//Denormalize the mob when the component is destroyed (if needed)
/datum/component/size_normalized/UnregisterFromParent()
diff --git a/modular_splurt/code/datums/elements/crawl_under.dm b/modular_splurt/code/datums/elements/crawl_under.dm
index 42b31b7c7b..f4f741e6fc 100644
--- a/modular_splurt/code/datums/elements/crawl_under.dm
+++ b/modular_splurt/code/datums/elements/crawl_under.dm
@@ -11,9 +11,9 @@
if(!isstructure(target)) //it would work up to movable but no.
return ELEMENT_INCOMPATIBLE //if any machinery comes up feel free to move up to /obj
- RegisterSignal(target, COMSIG_MOUSEDROPPED_ONTO, .proc/check_crawl)
- RegisterSignal(target, COMVER_CRAWL_UNDER, .proc/Affirm)
- RegisterSignal(target, COMSIG_MOVABLE_UNCROSSED, .proc/uncrawl_from)
+ RegisterSignal(target, COMSIG_MOUSEDROPPED_ONTO, PROC_REF(check_crawl))
+ RegisterSignal(target, COMVER_CRAWL_UNDER, PROC_REF(Affirm))
+ RegisterSignal(target, COMSIG_MOVABLE_UNCROSSED, PROC_REF(uncrawl_from))
/datum/element/crawl_under/Detach(datum/source, force)
var/obj/object = source //if src somehow changes type fuck you
@@ -42,7 +42,7 @@
if((user.pass_flags & PASSCRAWL) || HAS_TRAIT_FROM(user, TRAIT_FLOORED, ELEMENT_CRAWL_UNDER)) //already under
return
- INVOKE_ASYNC(src, .proc/do_crawl, source, user)
+ INVOKE_ASYNC(src, PROC_REF(do_crawl), source, user)
return COMSIG_MOB_CANCEL_CLICKON
/datum/element/crawl_under/proc/do_crawl(obj/structure/source, mob/living/user)
diff --git a/modular_splurt/code/datums/elements/smalltalk.dm b/modular_splurt/code/datums/elements/smalltalk.dm
index 9ffa626757..1ca6778c1d 100644
--- a/modular_splurt/code/datums/elements/smalltalk.dm
+++ b/modular_splurt/code/datums/elements/smalltalk.dm
@@ -7,7 +7,7 @@
if(!(isliving(target) || (force && istype(target, /atom/movable))))
return ELEMENT_INCOMPATIBLE
- RegisterSignal(target, COMSIG_MOB_SAY, .proc/handle_speech)
+ RegisterSignal(target, COMSIG_MOB_SAY, PROC_REF(handle_speech))
/datum/element/smalltalk/Detach(datum/source, force)
. = ..()
diff --git a/modular_splurt/code/datums/traits/good.dm b/modular_splurt/code/datums/traits/good.dm
index bda66bb62f..71d0709476 100644
--- a/modular_splurt/code/datums/traits/good.dm
+++ b/modular_splurt/code/datums/traits/good.dm
@@ -68,8 +68,8 @@
/datum/quirk/dominant_aura/add()
. = ..()
- RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, .proc/on_examine_holder)
- RegisterSignal(quirk_holder, COMSIG_MOB_EMOTE, .proc/handle_snap)
+ RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine_holder))
+ RegisterSignal(quirk_holder, COMSIG_MOB_EMOTE, PROC_REF(handle_snap))
/datum/quirk/dominant_aura/remove()
. = ..()
@@ -219,7 +219,7 @@
quirk_mob.mind.isholy = TRUE
// Add examine text.
- RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, .proc/on_examine_holder)
+ RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine_holder))
/datum/quirk/hallowed/remove()
// Define quirk mob.
@@ -314,7 +314,7 @@
quirk_mob.grant_language(/datum/language/vampiric, TRUE, TRUE, LANGUAGE_BLOODSUCKER)
// Register examine text
- RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, .proc/quirk_examine_bloodfledge)
+ RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, PROC_REF(quirk_examine_bloodfledge))
/datum/quirk/bloodfledge/post_add()
// Define quirk mob
diff --git a/modular_splurt/code/datums/traits/negative.dm b/modular_splurt/code/datums/traits/negative.dm
index 3dbcb24d0a..ad7d617a34 100644
--- a/modular_splurt/code/datums/traits/negative.dm
+++ b/modular_splurt/code/datums/traits/negative.dm
@@ -6,7 +6,7 @@
/datum/quirk/social_anxiety/add()
. = ..()
- RegisterSignal(quirk_holder, COMSIG_MOB_SAY, .proc/handle_speech)
+ RegisterSignal(quirk_holder, COMSIG_MOB_SAY, PROC_REF(handle_speech))
/datum/quirk/social_anxiety/remove()
. = ..()
@@ -137,7 +137,7 @@
/datum/quirk/dumb4cum/add()
// Set timer
- timer = addtimer(CALLBACK(src, .proc/crave), timer_trigger, TIMER_STOPPABLE)
+ timer = addtimer(CALLBACK(src, PROC_REF(crave)), timer_trigger, TIMER_STOPPABLE)
/datum/quirk/dumb4cum/remove()
// Remove status trait
@@ -198,7 +198,7 @@
timer = null
// Add new timer
- timer = addtimer(CALLBACK(src, .proc/crave), timer_trigger, TIMER_STOPPABLE)
+ timer = addtimer(CALLBACK(src, PROC_REF(crave)), timer_trigger, TIMER_STOPPABLE)
// Small issue with this. If the quirk holder has NO_HUNGER or NO_THIRST, this trait can still be taken and they will still get the benefits of it.
// It's unlikely that someone will be both, especially at round start, but vampirism makes me wary of having these separate.
diff --git a/modular_splurt/code/datums/traits/neutral.dm b/modular_splurt/code/datums/traits/neutral.dm
index 71ce89550f..53ff566403 100644
--- a/modular_splurt/code/datums/traits/neutral.dm
+++ b/modular_splurt/code/datums/traits/neutral.dm
@@ -94,7 +94,7 @@
act_hypno.Grant(quirk_mob)
// Add examine text
- RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, .proc/on_examine_holder)
+ RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine_holder))
/datum/quirk/Hypnotic_gaze/remove()
// Define quirk mob
@@ -255,7 +255,7 @@
/datum/quirk/well_trained/add()
. = ..()
- RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, .proc/on_examine_holder)
+ RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine_holder))
/datum/quirk/well_trained/remove()
. = ..()
@@ -573,8 +573,8 @@
/datum/quirk/nudist/add()
// Register signal handlers
- RegisterSignal(quirk_holder, COMSIG_MOB_UPDATE_GENITALS, .proc/check_outfit)
- RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, .proc/quirk_examine_nudist)
+ RegisterSignal(quirk_holder, COMSIG_MOB_UPDATE_GENITALS, PROC_REF(check_outfit))
+ RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, PROC_REF(quirk_examine_nudist))
/datum/quirk/nudist/remove()
// Remove mood event
diff --git a/modular_splurt/code/game/atoms_movable.dm b/modular_splurt/code/game/atoms_movable.dm
index 8a492636a2..072c3a9178 100644
--- a/modular_splurt/code/game/atoms_movable.dm
+++ b/modular_splurt/code/game/atoms_movable.dm
@@ -1,6 +1,6 @@
/atom/movable/Initialize(mapload)
. = ..()
- RegisterSignal(src, COMSIG_MOVABLE_BARK, .proc/handle_special_bark) //There must be a better way to do this
+ RegisterSignal(src, COMSIG_MOVABLE_BARK, PROC_REF(handle_special_bark)) //There must be a better way to do this
/atom/movable/Destroy()
UnregisterSignal(src, COMSIG_MOVABLE_BARK)
diff --git a/modular_splurt/code/game/machinery/computer/slavery.dm b/modular_splurt/code/game/machinery/computer/slavery.dm
index a760384d4d..d931121ef4 100644
--- a/modular_splurt/code/game/machinery/computer/slavery.dm
+++ b/modular_splurt/code/game/machinery/computer/slavery.dm
@@ -281,7 +281,7 @@
editBalance(-SG.cost)
radioAnnounce("Supplies inbound: [SG.name]")
- addtimer(CALLBACK(src, .proc/dropSupplies, SG.build_path), rand(3,6) * 10)
+ addtimer(CALLBACK(src, PROC_REF(dropSupplies), SG.build_path), rand(3,6) * 10)
return TRUE
diff --git a/modular_splurt/code/game/machinery/research_table.dm b/modular_splurt/code/game/machinery/research_table.dm
index 50888edf76..b98266d797 100644
--- a/modular_splurt/code/game/machinery/research_table.dm
+++ b/modular_splurt/code/game/machinery/research_table.dm
@@ -109,7 +109,7 @@
return TRUE
/obj/machinery/research_table/buckle_mob(mob/living/buckled_mob, force, check_loc)
- RegisterSignal(buckled_mob, COMSIG_MOB_POST_CAME, .proc/on_cum)
+ RegisterSignal(buckled_mob, COMSIG_MOB_POST_CAME, PROC_REF(on_cum))
say("New user detected, tracking data.")
. = ..()
diff --git a/modular_splurt/code/game/objects/items/RCD.dm b/modular_splurt/code/game/objects/items/RCD.dm
index e8bc24ae5b..9a813dbbb9 100644
--- a/modular_splurt/code/game/objects/items/RCD.dm
+++ b/modular_splurt/code/game/objects/items/RCD.dm
@@ -30,7 +30,7 @@
"Glass" = image(icon = 'icons/obj/smooth_structures/glass_table.dmi', icon_state = "glass_table"),
)
- var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
+ var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
if (!check_menu(user))
return
switch(choice)
diff --git a/modular_splurt/code/game/objects/items/RTL.dm b/modular_splurt/code/game/objects/items/RTL.dm
index 6db6eb7306..3e0cbc65b4 100644
--- a/modular_splurt/code/game/objects/items/RTL.dm
+++ b/modular_splurt/code/game/objects/items/RTL.dm
@@ -13,8 +13,8 @@
/obj/item/rtl/Initialize(mapload)
. = ..()
- RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield)
- RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield)
+ RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield))
+ RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield))
update_icon()
/obj/item/rtl/ComponentInitialize()
@@ -97,7 +97,7 @@
return
if(listeningTo)
UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
- RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED, .proc/trigger)
+ RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED, PROC_REF(trigger))
listeningTo = to_hook
/obj/item/rtl/proc/trigger(mob/user)
diff --git a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_belt.dm b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_belt.dm
index b0e76c32e3..54e67ce3f1 100644
--- a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_belt.dm
+++ b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_belt.dm
@@ -109,7 +109,7 @@
ENABLE_BITFIELD(G.genital_flags, GENITAL_CHASTENED)
H.update_genitals()
- RegisterSignal(src, COMSIG_MOB_ITEM_DROPPING, .proc/mob_can_unequip)
+ RegisterSignal(src, COMSIG_MOB_ITEM_DROPPING, PROC_REF(mob_can_unequip))
/obj/item/clothing/underwear/chastity_belt/proc/mob_can_unequip(obj/item/source, force, newloc, no_move, invdrop, silent)
if(force)
diff --git a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_cage.dm b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_cage.dm
index 89ca149952..642d859fa9 100644
--- a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_cage.dm
+++ b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/chastity_cage.dm
@@ -99,8 +99,8 @@
is_overlay_on = TRUE
H.update_genitals()
- RegisterSignal(H, COMSIG_MOB_ITEM_EQUIPPED, .proc/mob_equipped_item)
- RegisterSignal(H, COMSIG_MOB_ITEM_DROPPED, .proc/mob_dropped_item)
+ RegisterSignal(H, COMSIG_MOB_ITEM_EQUIPPED, PROC_REF(mob_equipped_item))
+ RegisterSignal(H, COMSIG_MOB_ITEM_DROPPED, PROC_REF(mob_dropped_item))
/obj/item/genital_equipment/chastity_cage/item_removing(datum/source, obj/item/organ/genital/G, mob/user)
. = TRUE
diff --git a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/metal_chastity_cage.dm b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/metal_chastity_cage.dm
index d99f9a2674..db24db1962 100644
--- a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/metal_chastity_cage.dm
+++ b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/chastity/metal_chastity_cage.dm
@@ -13,7 +13,7 @@
. = ..() // Call the parent proc
var/mob/living/carbon/human/H = G.owner
- RegisterSignal(H, COMSIG_MOVABLE_MOVED, .proc/on_move)
+ RegisterSignal(H, COMSIG_MOVABLE_MOVED, PROC_REF(on_move))
skin_overlay = mutable_appearance(icon, "worn_[icon_state]_[cage_sprite]_skin", skin_overlay_layer)
skin_overlay.color = G.color
diff --git a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/genital_equipment.dm b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/genital_equipment.dm
index 428b16cafc..ba5817fd5a 100644
--- a/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/genital_equipment.dm
+++ b/modular_splurt/code/game/objects/items/lewd_items/genital_equipment/genital_equipment.dm
@@ -5,10 +5,10 @@
/obj/item/genital_equipment/ComponentInitialize()
. = ..()
var/list/procs_list = list(
- "before_inserting" = CALLBACK(src, .proc/item_inserting),
- "after_inserting" = CALLBACK(src, .proc/item_inserted),
- "before_removing" = CALLBACK(src, .proc/item_removing),
- "after_removing" = CALLBACK(src, .proc/item_removed)
+ "before_inserting" = CALLBACK(src, PROC_REF(item_inserting)),
+ "after_inserting" = CALLBACK(src, PROC_REF(item_inserted)),
+ "before_removing" = CALLBACK(src, PROC_REF(item_removing)),
+ "after_removing" = CALLBACK(src, PROC_REF(item_removed))
)
AddComponent(/datum/component/genital_equipment, genital_slot, procs_list)
equipment = GetComponent(/datum/component/genital_equipment)
diff --git a/modular_splurt/code/game/objects/items/lewd_items/leash.dm b/modular_splurt/code/game/objects/items/lewd_items/leash.dm
index 88ed837f87..bd661fd00c 100644
--- a/modular_splurt/code/game/objects/items/lewd_items/leash.dm
+++ b/modular_splurt/code/game/objects/items/lewd_items/leash.dm
@@ -45,8 +45,8 @@ Icons, maybe?
/datum/status_effect/leash_pet/on_apply()
- //redirect_component = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_RESIST = CALLBACK(src, .proc/owner_resist))))
- RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/owner_resist)
+ //redirect_component = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_RESIST = CALLBACK(src, PROC_REF(owner_resist)))))
+ RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(owner_resist))
redirect_component = owner
if(!owner.stat)
to_chat(owner, span_userdanger("You have been leashed!"))
@@ -103,11 +103,11 @@ Icons, maybe?
user.apply_status_effect(/datum/status_effect/leash_dom) //Is the leasher
leash_pet = C //Save pet reference for later
leash_master = user //Save dom reference for later
- //mobhook_leash_pet = leash_pet.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/on_pet_move)))
- RegisterSignal(leash_pet, COMSIG_MOVABLE_MOVED, .proc/on_pet_move)
+ //mobhook_leash_pet = leash_pet.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, PROC_REF(on_pet_move))))
+ RegisterSignal(leash_pet, COMSIG_MOVABLE_MOVED, PROC_REF(on_pet_move))
mobhook_leash_pet = leash_pet
- //mobhook_leash_master = leash_master.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/on_master_move)))
- RegisterSignal(leash_master, COMSIG_MOVABLE_MOVED, .proc/on_master_move)
+ //mobhook_leash_master = leash_master.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, PROC_REF(on_master_move))))
+ RegisterSignal(leash_master, COMSIG_MOVABLE_MOVED, PROC_REF(on_master_move))
mobhook_leash_master = leash_master
leash_used = 1
if(!leash_pet.has_status_effect(/datum/status_effect/leash_dom)) //Add slowdown if the pet didn't leash themselves
@@ -339,7 +339,7 @@ Icons, maybe?
if(leash_master == "null")
return
//Dropping procs any time the leash changes slots. So, we will wait a tick and see if the leash was actually dropped
- addtimer(CALLBACK(src, .proc/drop_effects, user, silent), 1)
+ addtimer(CALLBACK(src, PROC_REF(drop_effects), user, silent), 1)
/obj/item/leash/proc/drop_effects(mob/user, silent)
if(leash_master.is_holding_item_of_type(/obj/item/leash) || istype(leash_master.get_item_by_slot(ITEM_SLOT_BELT), /obj/item/leash))
@@ -348,8 +348,8 @@ Icons, maybe?
viewing.show_message(span_notice("[leash_master] has dropped the leash."), 1)
//DOM HAS DROPPED LEASH. PET IS FREE. SCP HAS BREACHED CONTAINMENT.
leash_pet.remove_movespeed_modifier(MOVESPEED_ID_LEASH)
- //mobhook_leash_freepet = leash_pet.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/on_freepet_move)))
- RegisterSignal(leash_pet, COMSIG_MOVABLE_MOVED, .proc/on_freepet_move)
+ //mobhook_leash_freepet = leash_pet.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, PROC_REF(on_freepet_move))))
+ RegisterSignal(leash_pet, COMSIG_MOVABLE_MOVED, PROC_REF(on_freepet_move))
mobhook_leash_freepet = leash_pet
leash_master.remove_status_effect(/datum/status_effect/leash_dom) //No dom with no leash. We will get a new dom if the leash is picked back up.
leash_master = "null"
@@ -360,7 +360,7 @@ Icons, maybe?
. = ..()
if(leash_used == 0) //Don't apply statuses with a fresh leash. Keeps things clean on the backend.
return
- addtimer(CALLBACK(src, .proc/equip_effects, user), 2)
+ addtimer(CALLBACK(src, PROC_REF(equip_effects), user), 2)
/obj/item/leash/proc/equip_effects(mob/user)
if(leash_pet == "null")
@@ -370,8 +370,8 @@ Icons, maybe?
leash_master = "null"
return
leash_master.apply_status_effect(/datum/status_effect/leash_dom)
- //mobhook_leash_master = leash_master.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/on_master_move)))
- RegisterSignal(leash_master, COMSIG_MOVABLE_MOVED, .proc/on_master_move)
+ //mobhook_leash_master = leash_master.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, PROC_REF(on_master_move))))
+ RegisterSignal(leash_master, COMSIG_MOVABLE_MOVED, PROC_REF(on_master_move))
mobhook_leash_master = leash_master
leash_pet.remove_status_effect(/datum/status_effect/leash_freepet)
//QDEL_NULL(mobhook_leash_freepet)
diff --git a/modular_splurt/code/game/objects/items/lewd_items/rope.dm b/modular_splurt/code/game/objects/items/lewd_items/rope.dm
index d950844904..c9ffa7d1b0 100644
--- a/modular_splurt/code/game/objects/items/lewd_items/rope.dm
+++ b/modular_splurt/code/game/objects/items/lewd_items/rope.dm
@@ -434,14 +434,14 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
roped_mob.clear_cuffs(roped_mob.legcuffed, 0)
roped_mob = new_mob
if(roped_mob != null)
- RegisterSignal(roped_mob, COMSIG_MOVABLE_MOVED, .proc/on_mob_move)
+ RegisterSignal(roped_mob, COMSIG_MOVABLE_MOVED, PROC_REF(on_mob_move))
/obj/item/restraints/bondage_rope/proc/set_roped_master(mob/living/carbon/new_master)
if(roped_master != null && roped_mob != roped_master)
UnregisterSignal(roped_master, COMSIG_MOVABLE_MOVED)
roped_master = new_master
if(roped_master != null && roped_mob != roped_master)
- RegisterSignal(roped_master, COMSIG_MOVABLE_MOVED, .proc/on_master_move)
+ RegisterSignal(roped_master, COMSIG_MOVABLE_MOVED, PROC_REF(on_master_move))
/obj/item/restraints/bondage_rope/proc/set_roped_object(obj/new_object, new_object_type)
if(roped_object != null)
@@ -450,7 +450,7 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
roped_object_type = new_object_type
set_rope_slowdown(roped_mob)
if(roped_object != null)
- RegisterSignal(roped_object, COMSIG_MOVABLE_MOVED, .proc/on_object_move)
+ RegisterSignal(roped_object, COMSIG_MOVABLE_MOVED, PROC_REF(on_object_move))
// Returns true, if roped mob can tug their object behind them
/obj/item/restraints/bondage_rope/proc/can_move_object()
diff --git a/modular_splurt/code/game/objects/items/lewd_items/vibrator.dm b/modular_splurt/code/game/objects/items/lewd_items/vibrator.dm
index be625903c6..7eeadd3888 100644
--- a/modular_splurt/code/game/objects/items/lewd_items/vibrator.dm
+++ b/modular_splurt/code/game/objects/items/lewd_items/vibrator.dm
@@ -21,8 +21,8 @@
/obj/item/electropack/vibrator/ComponentInitialize()
. = ..()
var/list/procs_list = list(
- "before_inserting" = CALLBACK(src, .proc/item_inserting),
- "after_inserting" = CALLBACK(src, .proc/item_inserted),
+ "before_inserting" = CALLBACK(src, PROC_REF(item_inserting)),
+ "after_inserting" = CALLBACK(src, PROC_REF(item_inserted)),
)
AddComponent(/datum/component/genital_equipment, list(ORGAN_SLOT_VAGINA, ORGAN_SLOT_ANUS, ORGAN_SLOT_PENIS, ORGAN_SLOT_BREASTS, ORGAN_SLOT_BUTT, ORGAN_SLOT_BELLY), procs_list)
diff --git a/modular_splurt/code/game/objects/items/oviposition.dm b/modular_splurt/code/game/objects/items/oviposition.dm
index 466c48b469..ae4458c5ea 100644
--- a/modular_splurt/code/game/objects/items/oviposition.dm
+++ b/modular_splurt/code/game/objects/items/oviposition.dm
@@ -47,8 +47,8 @@ GLOBAL_LIST_INIT(egg_skins, list( \
/obj/item/oviposition_egg/ComponentInitialize()
. = ..()
var/list/procs_list = list(
- "before_inserting" = CALLBACK(src, .proc/item_inserting),
- "after_inserting" = CALLBACK(src, .proc/item_inserted),
+ "before_inserting" = CALLBACK(src, PROC_REF(item_inserting)),
+ "after_inserting" = CALLBACK(src, PROC_REF(item_inserted)),
)
AddComponent(/datum/component/organ_inflation, 0)
AddComponent(/datum/component/genital_equipment, list(ORGAN_SLOT_PENIS, ORGAN_SLOT_WOMB, ORGAN_SLOT_VAGINA, ORGAN_SLOT_TESTICLES, ORGAN_SLOT_BREASTS, ORGAN_SLOT_BELLY, ORGAN_SLOT_BELLY, ORGAN_SLOT_ANUS), procs_list)
diff --git a/modular_splurt/code/game/objects/items/robot/robot_items.dm b/modular_splurt/code/game/objects/items/robot/robot_items.dm
index 125f733903..e1e919eb54 100644
--- a/modular_splurt/code/game/objects/items/robot/robot_items.dm
+++ b/modular_splurt/code/game/objects/items/robot/robot_items.dm
@@ -43,7 +43,7 @@
if(toppaper_ref)
var/obj/item/paper/toppaper = toppaper_ref?.resolve()
UnregisterSignal(toppaper, COMSIG_ATOM_UPDATED_ICON)
- RegisterSignal(new_paper, COMSIG_ATOM_UPDATED_ICON, .proc/on_top_paper_change)
+ RegisterSignal(new_paper, COMSIG_ATOM_UPDATED_ICON, PROC_REF(on_top_paper_change))
toppaper_ref = WEAKREF(new_paper)
update_appearance()
to_chat(user, span_notice("[src]'s integrated printer whirs to life, spitting out a fresh piece of paper and clipping it into place."))
diff --git a/modular_splurt/code/game/objects/structures/cannons/cannon.dm b/modular_splurt/code/game/objects/structures/cannons/cannon.dm
index a4e01395da..242606747b 100644
--- a/modular_splurt/code/game/objects/structures/cannons/cannon.dm
+++ b/modular_splurt/code/game/objects/structures/cannons/cannon.dm
@@ -69,7 +69,7 @@
return
visible_message(ignition_message)
log_game("Cannon fired by [key_name(user)] in [AREACOORD(src)]")
- addtimer(CALLBACK(src, .proc/fire), fire_delay)
+ addtimer(CALLBACK(src, PROC_REF(fire)), fire_delay)
charge_ignited = TRUE
return
diff --git a/modular_splurt/code/game/objects/structures/micro_bricks.dm b/modular_splurt/code/game/objects/structures/micro_bricks.dm
index bbd5ad77f6..8728da6804 100644
--- a/modular_splurt/code/game/objects/structures/micro_bricks.dm
+++ b/modular_splurt/code/game/objects/structures/micro_bricks.dm
@@ -9,8 +9,8 @@
/obj/structure/micro_brick/Initialize()
. = ..()
- RegisterSignal(src, COMSIG_PARENT_ATTACKBY, .proc/on_attackby)
- RegisterSignal(src, COMSIG_ATOM_ATTACK_HAND, .proc/handatacc)
+ RegisterSignal(src, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby))
+ RegisterSignal(src, COMSIG_ATOM_ATTACK_HAND, PROC_REF(handatacc))
/obj/structure/micro_brick/proc/on_attackby(datum/source, obj/item/item, mob/user, params)
if(try_crush_microbricks(user))
diff --git a/modular_splurt/code/modules/admin/Transform.dm b/modular_splurt/code/modules/admin/Transform.dm
index 239d17f774..482725bb49 100644
--- a/modular_splurt/code/modules/admin/Transform.dm
+++ b/modular_splurt/code/modules/admin/Transform.dm
@@ -124,4 +124,4 @@ GLOBAL_LIST_INIT(pp_transformables, list(
if (M == adminMob)
adminMob = newMob
- addtimer(CALLBACK(newMob.mob_panel, /datum.proc/ui_interact, adminMob), 0.1 SECONDS)
+ addtimer(CALLBACK(newMob.mob_panel, TYPE_PROC_REF(/datum, ui_interact), adminMob), 0.1 SECONDS)
diff --git a/modular_splurt/code/modules/admin/playtimes.dm b/modular_splurt/code/modules/admin/playtimes.dm
index fbf4217f5d..9fe7ab51ea 100644
--- a/modular_splurt/code/modules/admin/playtimes.dm
+++ b/modular_splurt/code/modules/admin/playtimes.dm
@@ -63,7 +63,7 @@
clients += list(client)
- clients = sort_list(clients, /proc/cmp_playtime)
+ clients = sort_list(clients, GLOBAL_PROC_REF(cmp_playtime))
data["clients"] = clients
return data
*/
diff --git a/modular_splurt/code/modules/antagonists/qareen/qareen.dm b/modular_splurt/code/modules/antagonists/qareen/qareen.dm
index c8087bdf2c..5b6063718e 100644
--- a/modular_splurt/code/modules/antagonists/qareen/qareen.dm
+++ b/modular_splurt/code/modules/antagonists/qareen/qareen.dm
@@ -122,7 +122,7 @@
if(stasis)
return
if(revealed && essence <= 0)
- INVOKE_ASYNC(src, .proc/death)
+ INVOKE_ASYNC(src, PROC_REF(death))
if(unreveal_time && world.time >= unreveal_time)
unreveal_time = 0
revealed = FALSE
@@ -204,7 +204,7 @@
adjustBruteLoss(25) //hella effective
inhibited = TRUE
update_action_buttons_icon()
- addtimer(CALLBACK(src, .proc/reset_inhibit), 30)
+ addtimer(CALLBACK(src, PROC_REF(reset_inhibit)), 30)
/mob/living/simple_animal/qareen/proc/reset_inhibit()
inhibited = FALSE
@@ -372,7 +372,7 @@
/obj/item/ectoplasm/qareen/New()
..()
- addtimer(CALLBACK(src, .proc/try_reform), 600)
+ addtimer(CALLBACK(src, PROC_REF(try_reform)), 600)
/obj/item/ectoplasm/qareen/proc/scatter()
qdel(src)
@@ -481,7 +481,7 @@
log_combat(throwable, over, "spooky telekinesised at", throwable)
var/obj/effect/temp_visual/telekinesis/T = new(get_turf(throwable))
T.color = "#8715b4"
- addtimer(CALLBACK(spooker, /mob/living/simple_animal/qareen.proc/telekinesis_cooldown_end), 50)
+ addtimer(CALLBACK(spooker, TYPE_PROC_REF(/mob/living/simple_animal/qareen, telekinesis_cooldown_end)), 50)
sleep(5)
throwable.float(FALSE, TRUE)
diff --git a/modular_splurt/code/modules/antagonists/qareen/qareen_abilities.dm b/modular_splurt/code/modules/antagonists/qareen/qareen_abilities.dm
index 51feb1ed70..9dbbf6b876 100644
--- a/modular_splurt/code/modules/antagonists/qareen/qareen_abilities.dm
+++ b/modular_splurt/code/modules/antagonists/qareen/qareen_abilities.dm
@@ -219,7 +219,7 @@
/obj/effect/proc_holder/spell/aoe_turf/qareen/overload/cast(list/targets, mob/living/simple_animal/qareen/user = usr)
if(attempt_cast(user))
for(var/turf/T in targets)
- INVOKE_ASYNC(src, .proc/overload, T, user)
+ INVOKE_ASYNC(src, PROC_REF(overload), T, user)
/obj/effect/proc_holder/spell/aoe_turf/qareen/overload/proc/overload(turf/T, mob/user)
for(var/obj/machinery/light/L in T)
@@ -232,7 +232,7 @@
s.set_up(4, 0, L)
s.start()
new /obj/effect/temp_visual/revenant(get_turf(L))
- addtimer(CALLBACK(src, .proc/overload_shock, L, user), 20)
+ addtimer(CALLBACK(src, PROC_REF(overload_shock), L, user), 20)
/obj/effect/proc_holder/spell/aoe_turf/qareen/overload/proc/overload_shock(obj/machinery/light/L, mob/user)
if(!L.on) //wait, wait, don't shock me
@@ -264,7 +264,7 @@
/obj/effect/proc_holder/spell/aoe_turf/qareen/defile/cast(list/targets, mob/living/simple_animal/qareen/user = usr)
if(attempt_cast(user))
for(var/turf/T in targets)
- INVOKE_ASYNC(src, .proc/defile, T)
+ INVOKE_ASYNC(src, PROC_REF(defile), T)
/obj/effect/proc_holder/spell/aoe_turf/qareen/defile/proc/defile(turf/T)
for(var/obj/effect/blessing/B in T)
@@ -319,7 +319,7 @@
/obj/effect/proc_holder/spell/aoe_turf/qareen/malfunction/cast(list/targets, mob/living/simple_animal/qareen/user = usr)
if(attempt_cast(user))
for(var/turf/T in targets)
- INVOKE_ASYNC(src, .proc/malfunction, T, user)
+ INVOKE_ASYNC(src, PROC_REF(malfunction), T, user)
/obj/effect/proc_holder/spell/aoe_turf/qareen/malfunction/proc/malfunction(turf/T, mob/user)
for(var/mob/living/simple_animal/bot/bot in T)
@@ -372,7 +372,7 @@
/obj/effect/proc_holder/spell/aoe_turf/qareen/bliss/cast(list/targets, mob/living/simple_animal/qareen/user = usr)
if(attempt_cast(user))
for(var/turf/T in targets)
- INVOKE_ASYNC(src, .proc/bliss, T, user)
+ INVOKE_ASYNC(src, PROC_REF(bliss), T, user)
/obj/effect/proc_holder/spell/aoe_turf/qareen/bliss/proc/bliss(turf/T, mob/user)
for(var/mob/living/mob in T)
diff --git a/modular_splurt/code/modules/antagonists/qareen/qareen_bliss.dm b/modular_splurt/code/modules/antagonists/qareen/qareen_bliss.dm
index 4b9fd83cd6..b136e8d92b 100644
--- a/modular_splurt/code/modules/antagonists/qareen/qareen_bliss.dm
+++ b/modular_splurt/code/modules/antagonists/qareen/qareen_bliss.dm
@@ -66,7 +66,7 @@
affected_mob.visible_message(span_warning("[affected_mob] looks utterly depraved."), span_revennotice("You suddenly feel like your skin is tingling..."))
affected_mob.add_atom_colour("#ffdaf3", TEMPORARY_COLOUR_PRIORITY)
new /obj/effect/temp_visual/revenant(affected_mob.loc)
- // addtimer(CALLBACK(src, .proc/blessings), 150)
+ // addtimer(CALLBACK(src, PROC_REF(blessings)), 150)
if(7)
stage = 6
if (ishuman(affected_mob))
diff --git a/modular_splurt/code/modules/antagonists/slaver/slaver.dm b/modular_splurt/code/modules/antagonists/slaver/slaver.dm
index 7638cc11f3..5748968807 100644
--- a/modular_splurt/code/modules/antagonists/slaver/slaver.dm
+++ b/modular_splurt/code/modules/antagonists/slaver/slaver.dm
@@ -147,7 +147,7 @@ GLOBAL_LIST_INIT(slavers_ransom_values, list(
/datum/antagonist/slaver/get_admin_commands()
. = ..()
- .["Send to base"] = CALLBACK(src,.proc/admin_send_to_base)
+ .["Send to base"] = CALLBACK(src,PROC_REF(admin_send_to_base))
/datum/antagonist/slaver/proc/admin_send_to_base(mob/admin)
owner.current.forceMove(pick(GLOB.slaver_start))
@@ -166,7 +166,7 @@ GLOBAL_LIST_INIT(slavers_ransom_values, list(
if(istype(H))
H.set_antag_target_indicator() // Hide consent of this player, they are an antag and can't be a target
- addtimer(CALLBACK(src, .proc/slavers_name_assign), 1)
+ addtimer(CALLBACK(src, PROC_REF(slavers_name_assign)), 1)
/datum/antagonist/slaver/proc/spawnText()
to_chat(owner, "
You are tasked with infiltrating the station and kidnapping members of the crew. Once brought back to the hideout, they can be collared and priced using the console.")
diff --git a/modular_splurt/code/modules/arousal/arousal.dm b/modular_splurt/code/modules/arousal/arousal.dm
index 593bb9c2e0..21f107076a 100644
--- a/modular_splurt/code/modules/arousal/arousal.dm
+++ b/modular_splurt/code/modules/arousal/arousal.dm
@@ -142,7 +142,7 @@
. = ..()
if(!istype(owner))
return INITIALIZE_HINT_QDEL
- RegisterSignal(owner, COMSIG_MOB_LUST_UPDATED, .proc/update_lust)
+ RegisterSignal(owner, COMSIG_MOB_LUST_UPDATED, PROC_REF(update_lust))
/atom/movable/screen/arousal/Click()
if(!ishuman(usr))
diff --git a/modular_splurt/code/modules/arousal/organs/breasts.dm b/modular_splurt/code/modules/arousal/organs/breasts.dm
index 2be01daa3a..14e677f042 100644
--- a/modular_splurt/code/modules/arousal/organs/breasts.dm
+++ b/modular_splurt/code/modules/arousal/organs/breasts.dm
@@ -5,7 +5,7 @@
. = ..()
if(!.)
return
- RegisterSignal(owner, COMSIG_MOB_POST_CAME, .proc/splash_cum)
+ RegisterSignal(owner, COMSIG_MOB_POST_CAME, PROC_REF(splash_cum))
/obj/item/organ/genital/breasts/Remove(special)
. = ..()
diff --git a/modular_splurt/code/modules/arousal/organs/penis.dm b/modular_splurt/code/modules/arousal/organs/penis.dm
index 816548127b..d2ddfd7fd5 100644
--- a/modular_splurt/code/modules/arousal/organs/penis.dm
+++ b/modular_splurt/code/modules/arousal/organs/penis.dm
@@ -2,7 +2,7 @@
. = ..()
if(!.)
return
- RegisterSignal(owner, COMSIG_MOB_POST_CAME, .proc/splash_cum)
+ RegisterSignal(owner, COMSIG_MOB_POST_CAME, PROC_REF(splash_cum))
/obj/item/organ/genital/penis/Remove(special)
. = ..()
diff --git a/modular_splurt/code/modules/arousal/organs/vagina.dm b/modular_splurt/code/modules/arousal/organs/vagina.dm
index b01768498a..23446d9cec 100644
--- a/modular_splurt/code/modules/arousal/organs/vagina.dm
+++ b/modular_splurt/code/modules/arousal/organs/vagina.dm
@@ -2,7 +2,7 @@
. = ..()
if(!.)
return
- RegisterSignal(owner, COMSIG_MOB_POST_CAME, .proc/splash_cum)
+ RegisterSignal(owner, COMSIG_MOB_POST_CAME, PROC_REF(splash_cum))
/obj/item/organ/genital/vagina/Remove(special)
. = ..()
diff --git a/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm b/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm
index 9ba3db985e..c59682a02c 100644
--- a/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm
+++ b/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm
@@ -2,7 +2,7 @@
/obj/machinery/atmospherics/components/unary/outlet_injector/hilbertshotel/Initialize()
. = ..()
- addtimer(CALLBACK(src, .proc/turn_on), 3 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(turn_on)), 3 SECONDS)
/obj/machinery/atmospherics/components/unary/outlet_injector/hilbertshotel/proc/turn_on()
on = TRUE
diff --git a/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
index 9fac7013a4..c256969330 100644
--- a/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
+++ b/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
@@ -3,7 +3,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/hilbertshotel/Initialize()
. = ..()
- addtimer(CALLBACK(src, .proc/turn_on), 3 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(turn_on)), 3 SECONDS)
/obj/machinery/atmospherics/components/unary/vent_pump/hilbertshotel/proc/turn_on()
on = TRUE
diff --git a/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
index c779660408..0c4aa16bdd 100644
--- a/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/modular_splurt/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -3,7 +3,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/hilbertshotel/Initialize()
. = ..()
- addtimer(CALLBACK(src, .proc/turn_on), 3 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(turn_on)), 3 SECONDS)
/obj/machinery/atmospherics/components/unary/vent_scrubber/hilbertshotel/proc/turn_on()
on = TRUE
diff --git a/modular_splurt/code/modules/clothing/lewd_clothing/eyes/hypnogoggles.dm b/modular_splurt/code/modules/clothing/lewd_clothing/eyes/hypnogoggles.dm
index 641acf95b1..bb3d7f4917 100644
--- a/modular_splurt/code/modules/clothing/lewd_clothing/eyes/hypnogoggles.dm
+++ b/modular_splurt/code/modules/clothing/lewd_clothing/eyes/hypnogoggles.dm
@@ -61,7 +61,7 @@
. = ..()
if(.)
return
- var/choice = show_radial_menu(user,src, hypnogoggles_designs, custom_check = CALLBACK(src, .proc/check_menu, user, I), radius = 36, require_near = TRUE)
+ var/choice = show_radial_menu(user,src, hypnogoggles_designs, custom_check = CALLBACK(src, PROC_REF(check_menu), user, I), radius = 36, require_near = TRUE)
if(!choice)
return FALSE
current_hypnogoggles_color = choice
diff --git a/modular_splurt/code/modules/clothing/lewd_clothing/head/deprivation_helmet.dm b/modular_splurt/code/modules/clothing/lewd_clothing/head/deprivation_helmet.dm
index 4376d2c773..96878d13c9 100644
--- a/modular_splurt/code/modules/clothing/lewd_clothing/head/deprivation_helmet.dm
+++ b/modular_splurt/code/modules/clothing/lewd_clothing/head/deprivation_helmet.dm
@@ -149,7 +149,7 @@
. = ..()
if(.)
return
- var/choice = show_radial_menu(user,src, helmet_designs, custom_check = CALLBACK(src, .proc/check_menu, user, I), radius = 36, require_near = TRUE)
+ var/choice = show_radial_menu(user,src, helmet_designs, custom_check = CALLBACK(src, PROC_REF(check_menu), user, I), radius = 36, require_near = TRUE)
if(!choice)
return FALSE
current_helmet_color = choice
diff --git a/modular_splurt/code/modules/clothing/misc/body_camera.dm b/modular_splurt/code/modules/clothing/misc/body_camera.dm
index 4d57911f1a..59ede91a29 100644
--- a/modular_splurt/code/modules/clothing/misc/body_camera.dm
+++ b/modular_splurt/code/modules/clothing/misc/body_camera.dm
@@ -69,8 +69,8 @@
/datum/component/bodycamera_holder/RegisterWithParent()
. = ..()
- RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/on_attackby)
- RegisterSignal(parent, COMSIG_PARENT_EXAMINE_MORE, .proc/on_examine_more)
+ RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby))
+ RegisterSignal(parent, COMSIG_PARENT_EXAMINE_MORE, PROC_REF(on_examine_more))
/datum/component/bodycamera_holder/UnregisterFromParent()
UnregisterSignal(parent, COMSIG_PARENT_ATTACKBY)
diff --git a/modular_splurt/code/modules/events/crystalline_reentry.dm b/modular_splurt/code/modules/events/crystalline_reentry.dm
index 2894e4a484..03718bfdfc 100644
--- a/modular_splurt/code/modules/events/crystalline_reentry.dm
+++ b/modular_splurt/code/modules/events/crystalline_reentry.dm
@@ -255,7 +255,7 @@
var/turf/open/chasm/cloud/M = F
M.TerraformTurf(/turf/open/floor/plating/asteroid/layenia, /turf/open/floor/plating/asteroid/layenia)
gps = new /obj/item/gps/internal(src)
- addtimer(CALLBACK(src, .proc/delayedInitialize), 4 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(delayedInitialize)), 4 SECONDS)
/obj/structure/spawner/crystalline/deconstruct(disassembled)
new /obj/effect/cloud_collapse(loc)
@@ -294,7 +294,7 @@
visible_message(span_boldannounce("The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!"))
visible_message(span_warning("Something falls free of the tendril!"))
playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, 0, 50, 1, 1)
- addtimer(CALLBACK(src, .proc/collapse), 50)
+ addtimer(CALLBACK(src, PROC_REF(collapse)), 50)
/obj/effect/cloud_collapse/Destroy()
QDEL_NULL(emitted_light)
diff --git a/modular_splurt/code/modules/hydroponics/botany_flora.dm b/modular_splurt/code/modules/hydroponics/botany_flora.dm
index 5a2f8509a1..c706bb0d6b 100644
--- a/modular_splurt/code/modules/hydroponics/botany_flora.dm
+++ b/modular_splurt/code/modules/hydroponics/botany_flora.dm
@@ -90,7 +90,7 @@
*/
handle_biolumi()
- addtimer(CALLBACK(src, .proc/regrow), rand(regrowth_time_low, regrowth_time_high))
+ addtimer(CALLBACK(src, PROC_REF(regrow)), rand(regrowth_time_low, regrowth_time_high))
/obj/structure/flora/botany/proc/drop_produce(user)
var/obj/item/reagent_containers/food/snacks/grown/G = myseed.spawn_product(get_turf(src))
diff --git a/modular_splurt/code/modules/mapping/modular_map_loader/modular_map_loader.dm b/modular_splurt/code/modules/mapping/modular_map_loader/modular_map_loader.dm
index d1f3d4b15d..ede9bb1b45 100644
--- a/modular_splurt/code/modules/mapping/modular_map_loader/modular_map_loader.dm
+++ b/modular_splurt/code/modules/mapping/modular_map_loader/modular_map_loader.dm
@@ -15,7 +15,7 @@ INITIALIZE_IMMEDIATE(/obj/modular_map_root)
/obj/modular_map_root/Initialize(mapload)
. = ..()
- INVOKE_ASYNC(src, .proc/load_map)
+ INVOKE_ASYNC(src, PROC_REF(load_map))
/// Randonly selects a map file from the TOML config specified in config_file, loads it, then deletes itself.
/obj/modular_map_root/proc/load_map()
diff --git a/modular_splurt/code/modules/mob/femclaw.dm b/modular_splurt/code/modules/mob/femclaw.dm
index 151630f384..17eb247d43 100644
--- a/modular_splurt/code/modules/mob/femclaw.dm
+++ b/modular_splurt/code/modules/mob/femclaw.dm
@@ -113,7 +113,7 @@
do_femlewd_action(M)
for(var/i in 1 to extra_sexxo)
- addtimer(CALLBACK(src, .proc/do_femlewd_action, M), rand(12, 16))
+ addtimer(CALLBACK(src, PROC_REF(do_femlewd_action), M), rand(12, 16))
/mob/living/simple_animal/hostile/deathclaw/funclaw/femclaw/proc/pickNewFemHole(mob/living/M)
diff --git a/modular_splurt/code/modules/mob/living/carbon/human/human_defines.dm b/modular_splurt/code/modules/mob/living/carbon/human/human_defines.dm
index 93880806ee..20f677fddd 100644
--- a/modular_splurt/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/modular_splurt/code/modules/mob/living/carbon/human/human_defines.dm
@@ -6,4 +6,4 @@
/mob/living/carbon/human/Initialize()
LAZYADD(hud_possible, ANTAGTARGET_HUD)
. = ..()
- RegisterSignal(src, COMSIG_MOB_CLIMAX, .proc/check_orgasm)
+ RegisterSignal(src, COMSIG_MOB_CLIMAX, PROC_REF(check_orgasm))
diff --git a/modular_splurt/code/modules/mob/living/carbon/human/species_types/arachnid.dm b/modular_splurt/code/modules/mob/living/carbon/human/species_types/arachnid.dm
index 0546b1f28b..8cc1e2d8b7 100644
--- a/modular_splurt/code/modules/mob/living/carbon/human/species_types/arachnid.dm
+++ b/modular_splurt/code/modules/mob/living/carbon/human/species_types/arachnid.dm
@@ -52,7 +52,7 @@
to_chat(H, span_warning("You pull out a strand from your spinneret, ready to wrap a target. (Press ALT+CLICK on the target to start wrapping.)"))
H.adjust_nutrition(spinner_rate * -0.5)
addtimer(VARSET_CALLBACK(src, web_ready, TRUE), web_cooldown)
- RegisterSignal(H, list(COMSIG_MOB_ALTCLICKON), .proc/cocoonAtom)
+ RegisterSignal(H, list(COMSIG_MOB_ALTCLICKON), PROC_REF(cocoonAtom))
return
else
to_chat(H, span_warning("You're too hungry to spin web right now, eat something first!"))
diff --git a/modular_splurt/code/modules/mob/living/carbon/human/species_types/zombies2.dm b/modular_splurt/code/modules/mob/living/carbon/human/species_types/zombies2.dm
index f52374cef4..ece75c92f6 100644
--- a/modular_splurt/code/modules/mob/living/carbon/human/species_types/zombies2.dm
+++ b/modular_splurt/code/modules/mob/living/carbon/human/species_types/zombies2.dm
@@ -282,7 +282,7 @@
if(!owner)
return
if(!(src in owner.internal_organs))
- INVOKE_ASYNC(src,.proc/Remove,owner)
+ INVOKE_ASYNC(src,PROC_REF(Remove),owner)
if(owner.mob_biotypes && MOB_MINERAL && MOB_UNDEAD)//We are already dead inside
. = ..()
STOP_PROCESSING(SSobj, src)
@@ -305,7 +305,7 @@
Your heart has stopped...")
var/revive_time = rand(revive_time_min, revive_time_max)
var/flags = TIMER_STOPPABLE
- timer_id = addtimer(CALLBACK(src, .proc/zombify), revive_time, flags)
+ timer_id = addtimer(CALLBACK(src, PROC_REF(zombify)), revive_time, flags)
/obj/item/organ/undead_infection/proc/zombify(mob/living/M, mob/living/carbon/user)
timer_id = null
diff --git a/modular_splurt/code/modules/mob/living/living_signals.dm b/modular_splurt/code/modules/mob/living/living_signals.dm
index 1bb4d2ef4d..fea5c6d9b2 100644
--- a/modular_splurt/code/modules/mob/living/living_signals.dm
+++ b/modular_splurt/code/modules/mob/living/living_signals.dm
@@ -1,3 +1,3 @@
/mob/living/ComponentInitialize()
. = ..()
- RegisterSignal(src, SIGNAL_TRAIT(TRAIT_FLOORED), .proc/update_mobility)
+ RegisterSignal(src, SIGNAL_TRAIT(TRAIT_FLOORED), PROC_REF(update_mobility))
diff --git a/modular_splurt/code/modules/mob/living/navigation.dm b/modular_splurt/code/modules/mob/living/navigation.dm
index f786cd873d..1be63eb953 100644
--- a/modular_splurt/code/modules/mob/living/navigation.dm
+++ b/modular_splurt/code/modules/mob/living/navigation.dm
@@ -15,13 +15,13 @@
if(incapacitated())
return
if(length(client.navigation_images))
- addtimer(CALLBACK(src, .proc/cut_navigation), world.tick_lag)
+ addtimer(CALLBACK(src, PROC_REF(cut_navigation)), world.tick_lag)
balloon_alert(src, "navigation path removed")
return
if(!COOLDOWN_FINISHED(src, navigate_cooldown))
balloon_alert(src, "navigation on cooldown!")
return
- addtimer(CALLBACK(src, .proc/create_navigation), world.tick_lag)
+ addtimer(CALLBACK(src, PROC_REF(create_navigation)), world.tick_lag)
/mob/living/proc/create_navigation()
var/list/destination_list = list()
@@ -90,8 +90,8 @@
client.images += path_image
client.navigation_images += path_image
animate(path_image, 0.5 SECONDS, alpha = 150)
- addtimer(CALLBACK(src, .proc/shine_navigation), 0.5 SECONDS)
- RegisterSignal(src, COMSIG_MOB_DEATH, .proc/cut_navigation)
+ addtimer(CALLBACK(src, PROC_REF(shine_navigation)), 0.5 SECONDS)
+ RegisterSignal(src, COMSIG_MOB_DEATH, PROC_REF(cut_navigation))
balloon_alert(src, "navigation path created")
/mob/living/proc/shine_navigation()
diff --git a/modular_splurt/code/modules/mob/living/silicon/robot/dogborg_equipment.dm b/modular_splurt/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
index 04e00581f6..dded62292c 100644
--- a/modular_splurt/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
+++ b/modular_splurt/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
@@ -319,7 +319,7 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm !
if(R && !R.pounce_cooldown)
R.pounce_cooldown = !R.pounce_cooldown
to_chat(R, "Your targeting systems lock on to [A]...")
- addtimer(CALLBACK(R, /mob/living/silicon/robot.proc/leap_at, A), R.pounce_spoolup)
+ addtimer(CALLBACK(R, TYPE_PROC_REF(/mob/living/silicon/robot, leap_at), A), R.pounce_spoolup)
spawn(R.pounce_cooldown_time)
R.pounce_cooldown = !R.pounce_cooldown
else if(R && R.pounce_cooldown)
diff --git a/modular_splurt/code/modules/mob/living/silicon/robot/robot_modules.dm b/modular_splurt/code/modules/mob/living/silicon/robot/robot_modules.dm
index ef27847792..d8c8850e63 100644
--- a/modular_splurt/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/modular_splurt/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -26,7 +26,7 @@
"Cyclone" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "cyclone")
)
stand_icons = sort_list(stand_icons)
- var/stand_borg_icon = show_radial_menu(R, R , stand_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
+ var/stand_borg_icon = show_radial_menu(R, R , stand_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
if(!stand_borg_icon)
return
switch(stand_borg_icon)
@@ -108,7 +108,7 @@
"BootyS" = image(icon = 'modular_splurt/icons/mob/robots.dmi', icon_state = "bootystandardS")
)
clown_icons = sort_list(clown_icons)
- var/clown_borg_icon = show_radial_menu(R, R , clown_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
+ var/clown_borg_icon = show_radial_menu(R, R , clown_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
if(!clown_borg_icon)
return
switch(clown_borg_icon)
@@ -196,7 +196,7 @@
var/image/wide = image(icon = 'modular_splurt/icons/mob/widerobots_cargo.dmi', icon_state = L[a])
wide.pixel_x = -16
cargo_icons[a] = wide
- var/cargo_borg_icon = show_radial_menu(R, R , cargo_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
+ var/cargo_borg_icon = show_radial_menu(R, R , cargo_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(cargo_borg_icon)
if("Default")
cyborg_base_icon = "cargoborg"
diff --git a/modular_splurt/code/modules/mob/living/simple_animal/hostile/clockworkmechanic.dm b/modular_splurt/code/modules/mob/living/simple_animal/hostile/clockworkmechanic.dm
index 8059d74604..72edb811e8 100644
--- a/modular_splurt/code/modules/mob/living/simple_animal/hostile/clockworkmechanic.dm
+++ b/modular_splurt/code/modules/mob/living/simple_animal/hostile/clockworkmechanic.dm
@@ -72,7 +72,7 @@
var/minions_chosen = pick(minions)
var/mob/living/simple_animal/hostile/clocktank/weak/S = new minions_chosen (get_step(boss,pick_n_take(directions)), 1)
S.faction = boss.faction
- RegisterSignal(S, COMSIG_PARENT_QDELETING, .proc/remove_from_list)
+ RegisterSignal(S, COMSIG_PARENT_QDELETING, PROC_REF(remove_from_list))
summoned_minions += S
/datum/action/boss/clockie_summon_minions/proc/remove_from_list(datum/source, forced)
diff --git a/modular_splurt/code/modules/mob/living/simple_animal/hostile/dancer.dm b/modular_splurt/code/modules/mob/living/simple_animal/hostile/dancer.dm
index 430cffd571..d8cef8de98 100644
--- a/modular_splurt/code/modules/mob/living/simple_animal/hostile/dancer.dm
+++ b/modular_splurt/code/modules/mob/living/simple_animal/hostile/dancer.dm
@@ -20,11 +20,11 @@
. = ..()
danceaction = 0 //you did your move
lastaction = world.time+actiontime //next action time
- addtimer(CALLBACK(src, .proc/move_part_2, newloc, direct), 1)
+ addtimer(CALLBACK(src, PROC_REF(move_part_2), newloc, direct), 1)
/mob/living/dancercaptain/proc/move_part_2(atom/newloc, direct)
animate(src, pixel_x, pixel_y = pixel_y - 10, time = 0.7, 0)
- addtimer(CALLBACK(src, .proc/move_part_3, newloc, direct))
+ addtimer(CALLBACK(src, PROC_REF(move_part_3), newloc, direct))
/mob/living/dancercaptain/proc/move_part_3(atom/newloc, direct)
LAZYINITLIST(dancefloor_turfs)
diff --git a/modular_splurt/code/modules/mob/living/simple_animal/hostile/deathclaw/deathclaw.dm b/modular_splurt/code/modules/mob/living/simple_animal/hostile/deathclaw/deathclaw.dm
index 49ecc7dab6..af823ac7e7 100644
--- a/modular_splurt/code/modules/mob/living/simple_animal/hostile/deathclaw/deathclaw.dm
+++ b/modular_splurt/code/modules/mob/living/simple_animal/hostile/deathclaw/deathclaw.dm
@@ -98,7 +98,7 @@
var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src)
animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 1)
sleep(3)
- throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, .proc/charge_end))
+ throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, PROC_REF(charge_end)))
/mob/living/simple_animal/hostile/deathclaw/charge_end(list/effects_to_destroy)
charging = FALSE
diff --git a/modular_splurt/code/modules/mob/living/simple_animal/hostile/deathclaw/funclaw.dm b/modular_splurt/code/modules/mob/living/simple_animal/hostile/deathclaw/funclaw.dm
index ed0ffd12b8..68c0fce202 100644
--- a/modular_splurt/code/modules/mob/living/simple_animal/hostile/deathclaw/funclaw.dm
+++ b/modular_splurt/code/modules/mob/living/simple_animal/hostile/deathclaw/funclaw.dm
@@ -64,11 +64,11 @@
do_lewd_action(M)
- addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(8, 12))
+ addtimer(CALLBACK(src, PROC_REF(do_lewd_action), M), rand(8, 12))
// Regular sex has an extra action per tick to seem less slow and robotic
if(deathclaw_mode != "abomination" || M.client?.prefs.unholypref != "Yes")
- addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(12, 16))
+ addtimer(CALLBACK(src, PROC_REF(do_lewd_action), M), rand(12, 16))
/mob/living/simple_animal/hostile/deathclaw/funclaw/proc/pickNewHole(mob/living/M)
@@ -186,7 +186,7 @@
refractory_period = world.time + rand(100, 150) // Sex cooldown
set_lust(0) // Nuts at 400
- addtimer(CALLBACK(src, .proc/slap, M), 15)
+ addtimer(CALLBACK(src, PROC_REF(slap), M), 15)
/mob/living/simple_animal/hostile/deathclaw/funclaw/proc/slap(mob/living/M)
diff --git a/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/funwolf.dm b/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/funwolf.dm
index 8c06851b30..3886b2fcf7 100644
--- a/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/funwolf.dm
+++ b/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/funwolf.dm
@@ -73,11 +73,11 @@
do_lewd_action(M)
- addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(8, 12))
+ addtimer(CALLBACK(src, PROC_REF(do_lewd_action), M), rand(8, 12))
// Regular sex has an extra action per tick to seem less slow and robotic
if(werewolf_mode != "abomination" || M.client?.prefs.unholypref != "Yes")
- addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(12, 16))
+ addtimer(CALLBACK(src, PROC_REF(do_lewd_action), M), rand(12, 16))
/mob/living/simple_animal/hostile/werewolf/funwolf/proc/pickNewHole(mob/living/M)
@@ -195,7 +195,7 @@
refractory_period = world.time + rand(100, 150) // Sex cooldown
set_lust(0) // Nuts at 400
- addtimer(CALLBACK(src, .proc/slap, M), 15)
+ addtimer(CALLBACK(src, PROC_REF(slap), M), 15)
/mob/living/simple_animal/hostile/werewolf/funwolf/proc/slap(mob/living/M)
@@ -286,11 +286,11 @@
do_lewd_action(M)
- addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(8, 12))
+ addtimer(CALLBACK(src, PROC_REF(do_lewd_action), M), rand(8, 12))
// Regular sex has an extra action per tick to seem less slow and robotic
if(werewolf_mode != "abomination" || M.client?.prefs.unholypref != "Yes")
- addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(12, 16))
+ addtimer(CALLBACK(src, PROC_REF(do_lewd_action), M), rand(12, 16))
/mob/living/simple_animal/hostile/ice_wolf/funwolf/proc/pickNewHole(mob/living/M)
@@ -408,7 +408,7 @@
refractory_period = world.time + rand(100, 150) // Sex cooldown
set_lust(0) // Nuts at 400
- addtimer(CALLBACK(src, .proc/slap, M), 15)
+ addtimer(CALLBACK(src, PROC_REF(slap), M), 15)
/mob/living/simple_animal/hostile/ice_wolf/funwolf/proc/slap(mob/living/M)
@@ -500,11 +500,11 @@
do_lewd_action(M)
- addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(8, 12))
+ addtimer(CALLBACK(src, PROC_REF(do_lewd_action), M), rand(8, 12))
// Regular sex has an extra action per tick to seem less slow and robotic
if(werewolf_mode != "abomination" || M.client?.prefs.unholypref != "Yes")
- addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(12, 16))
+ addtimer(CALLBACK(src, PROC_REF(do_lewd_action), M), rand(12, 16))
/mob/living/simple_animal/hostile/hellhound/funwolf/proc/pickNewHole(mob/living/M)
@@ -622,7 +622,7 @@
refractory_period = world.time + rand(100, 150) // Sex cooldown
set_lust(0) // Nuts at 400
- addtimer(CALLBACK(src, .proc/slap, M), 15)
+ addtimer(CALLBACK(src, PROC_REF(slap), M), 15)
/mob/living/simple_animal/hostile/hellhound/funwolf/proc/slap(mob/living/M)
@@ -714,11 +714,11 @@
do_lewd_action(M)
- addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(8, 12))
+ addtimer(CALLBACK(src, PROC_REF(do_lewd_action), M), rand(8, 12))
// Regular sex has an extra action per tick to seem less slow and robotic
if(werewolf_mode != "abomination" || M.client?.prefs.unholypref != "Yes")
- addtimer(CALLBACK(src, .proc/do_lewd_action, M), rand(12, 16))
+ addtimer(CALLBACK(src, PROC_REF(do_lewd_action), M), rand(12, 16))
/mob/living/simple_animal/hostile/the_mosley/funwolf/proc/pickNewHole(mob/living/M)
@@ -836,7 +836,7 @@
refractory_period = world.time + rand(100, 150) // Sex cooldown
set_lust(0) // Nuts at 400
- addtimer(CALLBACK(src, .proc/slap, M), 15)
+ addtimer(CALLBACK(src, PROC_REF(slap), M), 15)
/mob/living/simple_animal/hostile/the_mosley/funwolf/proc/slap(mob/living/M)
diff --git a/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/hellhound.dm b/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/hellhound.dm
index 68a3ee3edd..90e489dfae 100644
--- a/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/hellhound.dm
+++ b/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/hellhound.dm
@@ -103,7 +103,7 @@
var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src)
animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 1)
sleep(3)
- throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, .proc/charge_end))
+ throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, PROC_REF(charge_end)))
/mob/living/simple_animal/hostile/hellhound/charge_end(list/effects_to_destroy)
charging = FALSE
diff --git a/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/icewolf.dm b/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/icewolf.dm
index 8f785c2b2b..95f9ec51a8 100644
--- a/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/icewolf.dm
+++ b/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/icewolf.dm
@@ -103,7 +103,7 @@
var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src)
animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 1)
sleep(3)
- throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, .proc/charge_end))
+ throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, PROC_REF(charge_end)))
/mob/living/simple_animal/hostile/ice_wolf/charge_end(list/effects_to_destroy)
charging = FALSE
diff --git a/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/themosley.dm b/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/themosley.dm
index ba74e5bce4..1b3e23db6c 100644
--- a/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/themosley.dm
+++ b/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/themosley.dm
@@ -103,7 +103,7 @@
var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src)
animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 1)
sleep(3)
- throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, .proc/charge_end))
+ throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, PROC_REF(charge_end)))
/mob/living/simple_animal/hostile/the_mosley/charge_end(list/effects_to_destroy)
charging = FALSE
diff --git a/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/werewolf.dm b/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/werewolf.dm
index 46df07d37f..717099d9dc 100644
--- a/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/werewolf.dm
+++ b/modular_splurt/code/modules/mob/living/simple_animal/hostile/werewolves/werewolf.dm
@@ -103,7 +103,7 @@
var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src)
animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 1)
sleep(3)
- throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, .proc/charge_end))
+ throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, PROC_REF(charge_end)))
/mob/living/simple_animal/hostile/werewolf/charge_end(list/effects_to_destroy)
charging = FALSE
diff --git a/modular_splurt/code/modules/research/xenoarch/tools.dm b/modular_splurt/code/modules/research/xenoarch/tools.dm
index a3ff76b863..d44ea6f8a9 100644
--- a/modular_splurt/code/modules/research/xenoarch/tools.dm
+++ b/modular_splurt/code/modules/research/xenoarch/tools.dm
@@ -184,7 +184,7 @@
return
if(listeningTo)
UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
- RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/Pickup_rocks)
+ RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(Pickup_rocks))
listeningTo = user
/obj/item/storage/bag/strangerock/dropped(mob/user)
@@ -245,7 +245,7 @@
return
if(listeningTo)
UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
- RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/Pickup_rocks)
+ RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(Pickup_rocks))
listeningTo = user
/obj/item/storage/bag/strangerockadv/dropped(mob/user)
diff --git a/modular_splurt/code/modules/surgery/organs/eyes.dm b/modular_splurt/code/modules/surgery/organs/eyes.dm
index 99dbc50d99..0c210060de 100644
--- a/modular_splurt/code/modules/surgery/organs/eyes.dm
+++ b/modular_splurt/code/modules/surgery/organs/eyes.dm
@@ -44,7 +44,7 @@
to_chat(eye_user, span_nicegreen("Your [src] begin to glimmer with an entrancing power!"))
// Add examine text
- RegisterSignal(eye_user, COMSIG_PARENT_EXAMINE, .proc/examine_user)
+ RegisterSignal(eye_user, COMSIG_PARENT_EXAMINE, PROC_REF(examine_user))
// On remove organ
/obj/item/organ/eyes/robotic/hypno/Remove(mob/living/carbon/eye_user, special, drop_if_replaced)
diff --git a/modular_splurt/code/modules/vehicles/mecha/combat/savannah_ivanov.dm b/modular_splurt/code/modules/vehicles/mecha/combat/savannah_ivanov.dm
index 767c18d6c3..04d996c04d 100644
--- a/modular_splurt/code/modules/vehicles/mecha/combat/savannah_ivanov.dm
+++ b/modular_splurt/code/modules/vehicles/mecha/combat/savannah_ivanov.dm
@@ -77,7 +77,7 @@
abort_skyfall()
return
chassis.balloon_alert(owner, "charging skyfall...")
- INVOKE_ASYNC(src, .proc/skyfall_charge_loop)
+ INVOKE_ASYNC(src, PROC_REF(skyfall_charge_loop))
/**
* ## skyfall_charge_loop
@@ -116,7 +116,7 @@
S_TIMER_COOLDOWN_START(chassis, COOLDOWN_MECHA_SKYFALL, skyfall_cooldown_time)
button_icon_state = "mech_savannah_cooldown"
UpdateButtons()
- addtimer(CALLBACK(src, .proc/reset_button_icon), skyfall_cooldown_time)
+ addtimer(CALLBACK(src, PROC_REF(reset_button_icon)), skyfall_cooldown_time)
for(var/mob/living/shaken in range(7, chassis))
shake_camera(shaken, 3, 3)
@@ -134,7 +134,7 @@
//chassis.plane = GAME_PLANE_UPPER_FOV_HIDDEN
animate(chassis, alpha = 0, time = 8, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL)
animate(chassis, pixel_z = 400, time = 10, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL) //Animate our rising mech (just like pods hehe)
- addtimer(CALLBACK(src, .proc/begin_landing), 2 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(begin_landing)), 2 SECONDS)
/**
* ## begin_landing
@@ -145,7 +145,7 @@
/datum/action/vehicle/sealed/mecha/skyfall/proc/begin_landing()
animate(chassis, pixel_z = 0, time = 10, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL)
animate(chassis, alpha = 255, time = 8, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL)
- addtimer(CALLBACK(src, .proc/land), 1 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(land)), 1 SECONDS)
/**
* ## land
@@ -266,8 +266,8 @@
chassis.balloon_alert(owner, "missile mode on (click to target)")
aiming_missile = TRUE
rockets_left = 3
- RegisterSignal(chassis, COMSIG_MECHA_MELEE_CLICK, .proc/on_melee_click)
- RegisterSignal(chassis, COMSIG_MECHA_EQUIPMENT_CLICK, .proc/on_equipment_click)
+ RegisterSignal(chassis, COMSIG_MECHA_MELEE_CLICK, PROC_REF(on_melee_click))
+ RegisterSignal(chassis, COMSIG_MECHA_EQUIPMENT_CLICK, PROC_REF(on_equipment_click))
owner.client.mouse_pointer_icon = 'icons/effects/mouse_pointers/supplypod_down_target.dmi'
owner.update_mouse_pointer()
//owner.overlay_fullscreen("ivanov", /atom/movable/screen/fullscreen/ivanov_display, 1) //need sprite stretching on screen or stretch the sprite itself
@@ -323,7 +323,7 @@
))
button_icon_state = "mech_ivanov_cooldown"
UpdateButtons()
- addtimer(CALLBACK(src, /datum/action/vehicle/sealed/mecha/ivanov_strike.proc/reset_button_icon), strike_cooldown_time)
+ addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/action/vehicle/sealed/mecha/ivanov_strike, reset_button_icon)), strike_cooldown_time)
//misc effects
@@ -347,7 +347,7 @@
return INITIALIZE_HINT_QDEL
src.mecha = mecha
animate(src, alpha = 255, TOTAL_SKYFALL_LEAP_TIME/2, easing = CIRCULAR_EASING|EASE_OUT)
- RegisterSignal(mecha, COMSIG_MOVABLE_MOVED, .proc/follow)
+ RegisterSignal(mecha, COMSIG_MOVABLE_MOVED, PROC_REF(follow))
QDEL_IN(src, TOTAL_SKYFALL_LEAP_TIME) //when the animations land
/obj/effect/skyfall_landingzone/Destroy(force)
diff --git a/rust_g.dll b/rust_g.dll
index 1b5f515b34..7d1aa3cf29 100644
Binary files a/rust_g.dll and b/rust_g.dll differ
diff --git a/tgui/.eslintrc.yml b/tgui/.eslintrc.yml
index dd85d4ca15..92dfe1320c 100644
--- a/tgui/.eslintrc.yml
+++ b/tgui/.eslintrc.yml
@@ -1,4 +1,5 @@
root: true
+extends: prettier
parser: '@typescript-eslint/parser'
parserOptions:
ecmaVersion: 2020
@@ -10,13 +11,14 @@ env:
browser: true
node: true
plugins:
- - radar
+ - sonarjs
- react
+ - unused-imports
+ - simple-import-sort
settings:
react:
- version: '16.10'
+ version: '18.2'
rules:
-
## Possible Errors
## ----------------------------------------
## Enforce “for” loop update clause moving the counter in the right
@@ -307,13 +309,16 @@ rules:
## Enforce or disallow capitalization of the first letter of a comment
# capitalized-comments: error
## Require or disallow trailing commas
- comma-dangle: [error, {
- arrays: always-multiline,
- objects: always-multiline,
- imports: always-multiline,
- exports: always-multiline,
- functions: only-multiline, ## Optional on functions
- }]
+ comma-dangle: [
+ error,
+ {
+ arrays: always-multiline,
+ objects: always-multiline,
+ imports: always-multiline,
+ exports: always-multiline,
+ functions: only-multiline, ## Optional on functions
+ },
+ ]
## Enforce consistent spacing before and after commas
comma-spacing: [error, { before: false, after: true }]
## Enforce consistent comma style
@@ -333,7 +338,7 @@ rules:
## Require or disallow named function expressions
# func-names: error
## Enforce the consistent use of either function declarations or expressions
- func-style: [error, expression]
+ # func-style: [error, expression]
## Enforce line breaks between arguments of a function call
# function-call-argument-newline: error
## Enforce consistent line breaks inside function parentheses
@@ -348,15 +353,15 @@ rules:
## Enforce the location of arrow function bodies
# implicit-arrow-linebreak: error
## Enforce consistent indentation
- indent: [error, 2, { SwitchCase: 1 }]
+ # indent: [error, 2, { SwitchCase: 1 }]
## Enforce the consistent use of either double or single quotes in JSX
## attributes
- jsx-quotes: [error, prefer-double]
+ # jsx-quotes: [error, prefer-double]
## Enforce consistent spacing between keys and values in object literal
## properties
- key-spacing: [error, { beforeColon: false, afterColon: true }]
+ # key-spacing: [error, { beforeColon: false, afterColon: true }]
## Enforce consistent spacing before and after keywords
- keyword-spacing: [error, { before: true, after: true }]
+ # keyword-spacing: [error, { before: true, after: true }]
## Enforce position of line comments
# line-comment-position: error
## Enforce consistent linebreak style
@@ -368,14 +373,15 @@ rules:
## Enforce a maximum depth that blocks can be nested
# max-depth: error
## Enforce a maximum line length
- max-len: [error, {
- code: 80,
- ## Ignore imports
- ignorePattern: '^(import\s.+\sfrom\s|.*require\()',
- ignoreUrls: true,
- ignoreRegExpLiterals: true,
- ignoreStrings: true,
- }]
+ # max-len: [error, {
+ # code: 80,
+ # ## Ignore imports
+ # ignorePattern: '^(import\s.+\sfrom\s|.*require\()',
+ # ignoreUrls: true,
+ # ignoreRegExpLiterals: true,
+ # ignoreStrings: true,
+ # ignoreTemplateLiterals: true,
+ # }]
## Enforce a maximum number of lines per file
# max-lines: error
## Enforce a maximum number of line of code in a function
@@ -412,7 +418,7 @@ rules:
## Disallow mixed binary operators
# no-mixed-operators: error
## Disallow mixed spaces and tabs for indentation
- no-mixed-spaces-and-tabs: error
+ # no-mixed-spaces-and-tabs: error
## Disallow use of chained assignment expressions
# no-multi-assign: error
## Disallow multiple empty lines
@@ -438,7 +444,7 @@ rules:
## Disallow ternary operators when simpler alternatives exist
# no-unneeded-ternary: error
## Disallow whitespace before properties
- no-whitespace-before-property: error
+ # no-whitespace-before-property: error
## Enforce the location of single-line statements
# nonblock-statement-body-position: error
## Enforce consistent line breaks inside braces
@@ -455,7 +461,7 @@ rules:
## Require or disallow assignment operator shorthand where possible
# operator-assignment: error
## Enforce consistent linebreak style for operators
- operator-linebreak: [error, before]
+ # operator-linebreak: [error, before]
## Require or disallow padding within blocks
# padded-blocks: error
## Require or disallow padding lines between statements
@@ -480,11 +486,11 @@ rules:
## Enforce consistent spacing before blocks
space-before-blocks: [error, always]
## Enforce consistent spacing before function definition opening parenthesis
- space-before-function-paren: [error, {
- anonymous: always,
- named: never,
- asyncArrow: always,
- }]
+ # space-before-function-paren: [error, {
+ # anonymous: always,
+ # named: never,
+ # asyncArrow: always,
+ # }]
## Enforce consistent spacing inside parentheses
space-in-parens: [error, never]
## Require spacing around infix operators
@@ -646,7 +652,7 @@ rules:
## Enforce ES5 or ES6 class for React Components
react/prefer-es6-class: error
## Enforce that props are read-only
- react/prefer-read-only-props: error
+ react/prefer-read-only-props: off
## Enforce stateless React Components to be written as a pure function
react/prefer-stateless-function: error
## Prevent missing props validation in a React component definition
@@ -668,7 +674,7 @@ rules:
# react/sort-prop-types: error
## Enforce the state initialization style to be either in a constructor or
## with a class property
- react/state-in-constructor: error
+ # react/state-in-constructor: error
## Enforces where React component static properties should be positioned.
# react/static-property-placement: error
## Enforce style prop value being an object
@@ -693,7 +699,7 @@ rules:
react/jsx-closing-tag-location: error
## Enforce or disallow newlines inside of curly braces in JSX attributes and
## expressions (fixable)
- react/jsx-curly-newline: error
+ # react/jsx-curly-newline: error
## Enforce or disallow spaces inside of curly braces in JSX attributes and
## expressions (fixable)
react/jsx-curly-spacing: error
@@ -706,11 +712,11 @@ rules:
## Enforce event handler naming conventions in JSX
react/jsx-handler-names: error
## Validate JSX indentation (fixable)
- react/jsx-indent: [error, 2, {
- checkAttributes: true,
- }]
+ # react/jsx-indent: [error, 2, {
+ # checkAttributes: true,
+ # }]
## Validate props indentation in JSX (fixable)
- react/jsx-indent-props: [error, 2]
+ # react/jsx-indent-props: [error, 2]
## Validate JSX has key prop when in array or iterator
react/jsx-key: error
## Validate JSX maximum depth
@@ -756,3 +762,9 @@ rules:
react/jsx-uses-vars: error
## Prevent missing parentheses around multilines JSX (fixable)
react/jsx-wrap-multilines: error
+ ## Prevents the use of unused imports.
+ ## This could be done by enabling no-unused-vars, but we're doing this for now
+ unused-imports/no-unused-imports: error
+ ## https://github.com/lydell/eslint-plugin-simple-import-sort/
+ simple-import-sort/imports: error
+ simple-import-sort/exports: error
diff --git a/tgui/package.json b/tgui/package.json
index 3bacb394ee..9f725461b4 100644
--- a/tgui/package.json
+++ b/tgui/package.json
@@ -51,6 +51,8 @@
"eslint-config-prettier": "^8.10.0",
"eslint-plugin-radar": "^0.2.1",
"eslint-plugin-react": "^7.33.2",
+ "eslint-plugin-simple-import-sort": "latest",
+ "eslint-plugin-sonarjs": "latest",
"eslint-plugin-unused-imports": "^3.0.0",
"globals": "^13.23.0",
"inferno": "^8.2.2",
@@ -60,6 +62,8 @@
"jsdom": "^22.1.0",
"katex": "^0.15.6",
"mini-css-extract-plugin": "^2.7.6",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
"sass": "^1.69.5",
"sass-loader": "^13.3.2",
"style-loader": "^3.3.3",
diff --git a/tgui/packages/tgui-dev-server/dreamseeker.js b/tgui/packages/tgui-dev-server/dreamseeker.js
index 3d4149cf25..f861bcde58 100644
--- a/tgui/packages/tgui-dev-server/dreamseeker.js
+++ b/tgui/packages/tgui-dev-server/dreamseeker.js
@@ -6,6 +6,7 @@
import { exec } from 'child_process';
import { promisify } from 'util';
+
import { createLogger } from './logging.js';
import { require } from './require.js';
@@ -28,6 +29,9 @@ export class DreamSeeker {
.map(key => encodeURIComponent(key)
+ '=' + encodeURIComponent(params[key]))
.join('&');
+ logger.log(
+ `topic call at ${this.client.defaults.baseURL + '/dummy?' + query}`
+ );
return this.client.get('/dummy?' + query);
}
}
diff --git a/tgui/packages/tgui-dev-server/index.js b/tgui/packages/tgui-dev-server/index.js
index 199e93d836..85489ebb04 100644
--- a/tgui/packages/tgui-dev-server/index.js
+++ b/tgui/packages/tgui-dev-server/index.js
@@ -4,8 +4,8 @@
* @license MIT
*/
-import { createCompiler } from './webpack.js';
import { reloadByondCache } from './reloader.js';
+import { createCompiler } from './webpack.js';
const noHot = process.argv.includes('--no-hot');
const noTmp = process.argv.includes('--no-tmp');
diff --git a/tgui/packages/tgui-dev-server/link/retrace.js b/tgui/packages/tgui-dev-server/link/retrace.js
index c10ba9cb17..7eaab96cbb 100644
--- a/tgui/packages/tgui-dev-server/link/retrace.js
+++ b/tgui/packages/tgui-dev-server/link/retrace.js
@@ -6,6 +6,7 @@
import fs from 'fs';
import { basename } from 'path';
+
import { createLogger } from '../logging.js';
import { require } from '../require.js';
import { resolveGlob } from '../util.js';
diff --git a/tgui/packages/tgui-dev-server/link/server.js b/tgui/packages/tgui-dev-server/link/server.js
index 87a8a5911b..461d127a5f 100644
--- a/tgui/packages/tgui-dev-server/link/server.js
+++ b/tgui/packages/tgui-dev-server/link/server.js
@@ -6,6 +6,7 @@
import http from 'http';
import { inspect } from 'util';
+
import { createLogger, directLog } from '../logging.js';
import { require } from '../require.js';
import { loadSourceMaps, retrace } from './retrace.js';
diff --git a/tgui/packages/tgui-dev-server/reloader.js b/tgui/packages/tgui-dev-server/reloader.js
index 5722cee644..7ab7b3526d 100644
--- a/tgui/packages/tgui-dev-server/reloader.js
+++ b/tgui/packages/tgui-dev-server/reloader.js
@@ -7,6 +7,7 @@
import fs from 'fs';
import os from 'os';
import { basename } from 'path';
+
import { DreamSeeker } from './dreamseeker.js';
import { createLogger } from './logging.js';
import { resolveGlob, resolvePath } from './util.js';
@@ -67,8 +68,6 @@ export const findCacheRoot = async () => {
const onCacheRootFound = cacheRoot => {
logger.log(`found cache at '${cacheRoot}'`);
- // Plant a dummy
- fs.closeSync(fs.openSync(cacheRoot + '/dummy', 'w'));
};
export const reloadByondCache = async bundleDir => {
@@ -93,6 +92,9 @@ export const reloadByondCache = async bundleDir => {
// Clear garbage
const garbage = await resolveGlob(cacheDir, './*.+(bundle|chunk|hot-update).*');
try {
+ // Plant a dummy browser window file, we'll be using this to avoid world topic
+ fs.closeSync(fs.openSync(cacheRoot + '/dummy', 'w'));
+
for (let file of garbage) {
fs.unlinkSync(file);
}
diff --git a/tgui/packages/tgui-dev-server/util.js b/tgui/packages/tgui-dev-server/util.js
index 0fc255ed67..2660205b85 100644
--- a/tgui/packages/tgui-dev-server/util.js
+++ b/tgui/packages/tgui-dev-server/util.js
@@ -6,6 +6,7 @@
import fs from 'fs';
import path from 'path';
+
import { require } from './require.js';
const globPkg = require('glob');
diff --git a/tgui/packages/tgui-dev-server/webpack.js b/tgui/packages/tgui-dev-server/webpack.js
index 8cba68afcb..2953c27f4b 100644
--- a/tgui/packages/tgui-dev-server/webpack.js
+++ b/tgui/packages/tgui-dev-server/webpack.js
@@ -7,6 +7,7 @@
import fs from 'fs';
import { createRequire } from 'module';
import { dirname } from 'path';
+
import { loadSourceMaps, setupLink } from './link/server.js';
import { createLogger } from './logging.js';
import { reloadByondCache } from './reloader.js';
diff --git a/tgui/packages/tgui-dev-server/winreg.js b/tgui/packages/tgui-dev-server/winreg.js
index 669e2aad55..95090f534e 100644
--- a/tgui/packages/tgui-dev-server/winreg.js
+++ b/tgui/packages/tgui-dev-server/winreg.js
@@ -8,6 +8,7 @@
import { exec } from 'child_process';
import { promisify } from 'util';
+
import { createLogger } from './logging.js';
const logger = createLogger('winreg');
diff --git a/tgui/packages/tgui-panel/Panel.js b/tgui/packages/tgui-panel/Panel.js
index 6ed6ffb27c..607da0e00e 100644
--- a/tgui/packages/tgui-panel/Panel.js
+++ b/tgui/packages/tgui-panel/Panel.js
@@ -6,6 +6,7 @@
import { Button, Section, Stack } from 'tgui/components';
import { Pane } from 'tgui/layouts';
+
import { NowPlayingWidget, useAudio } from './audio';
import { ChatPanel, ChatTabs } from './chat';
import { useGame } from './game';
diff --git a/tgui/packages/tgui-panel/audio/NowPlayingWidget.js b/tgui/packages/tgui-panel/audio/NowPlayingWidget.js
index e4fe04eed1..ff7684a9e7 100644
--- a/tgui/packages/tgui-panel/audio/NowPlayingWidget.js
+++ b/tgui/packages/tgui-panel/audio/NowPlayingWidget.js
@@ -7,6 +7,7 @@
import { toFixed } from 'common/math';
import { useDispatch, useSelector } from 'common/redux';
import { Button, Flex, Knob } from 'tgui/components';
+
import { useSettings } from '../settings';
import { selectAudio } from './selectors';
diff --git a/tgui/packages/tgui-panel/audio/hooks.js b/tgui/packages/tgui-panel/audio/hooks.js
index 17b29a9597..201d83d566 100644
--- a/tgui/packages/tgui-panel/audio/hooks.js
+++ b/tgui/packages/tgui-panel/audio/hooks.js
@@ -4,7 +4,8 @@
* @license MIT
*/
-import { useSelector, useDispatch } from 'common/redux';
+import { useDispatch, useSelector } from 'common/redux';
+
import { selectAudio } from './selectors';
export const useAudio = context => {
diff --git a/tgui/packages/tgui-panel/chat/ChatPageSettings.js b/tgui/packages/tgui-panel/chat/ChatPageSettings.js
index ba045983d2..fd31e70575 100644
--- a/tgui/packages/tgui-panel/chat/ChatPageSettings.js
+++ b/tgui/packages/tgui-panel/chat/ChatPageSettings.js
@@ -6,6 +6,7 @@
import { useDispatch, useSelector } from 'common/redux';
import { Button, Collapsible, Divider, Input, Section, Stack } from 'tgui/components';
+
import { removeChatPage, toggleAcceptedType, updateChatPage } from './actions';
import { MESSAGE_TYPES } from './constants';
import { selectCurrentChatPage } from './selectors';
diff --git a/tgui/packages/tgui-panel/chat/ChatPanel.js b/tgui/packages/tgui-panel/chat/ChatPanel.js
index 0a5deaf9fe..7fcec3b655 100644
--- a/tgui/packages/tgui-panel/chat/ChatPanel.js
+++ b/tgui/packages/tgui-panel/chat/ChatPanel.js
@@ -7,6 +7,7 @@
import { shallowDiffers } from 'common/react';
import { Component, createRef } from 'inferno';
import { Button } from 'tgui/components';
+
import { chatRenderer } from './renderer';
export class ChatPanel extends Component {
diff --git a/tgui/packages/tgui-panel/chat/ChatTabs.js b/tgui/packages/tgui-panel/chat/ChatTabs.js
index a0e6cc59e5..26e34982dc 100644
--- a/tgui/packages/tgui-panel/chat/ChatTabs.js
+++ b/tgui/packages/tgui-panel/chat/ChatTabs.js
@@ -5,10 +5,11 @@
*/
import { useDispatch, useSelector } from 'common/redux';
-import { Box, Tabs, Flex, Button } from 'tgui/components';
-import { changeChatPage, addChatPage } from './actions';
-import { selectChatPages, selectCurrentChatPage } from './selectors';
+import { Box, Button, Flex, Tabs } from 'tgui/components';
+
import { openChatSettings } from '../settings/actions';
+import { addChatPage, changeChatPage } from './actions';
+import { selectChatPages, selectCurrentChatPage } from './selectors';
const UnreadCountWidget = ({ value }) => (
(
type.startsWith(MESSAGE_TYPE_INTERNAL) || page.acceptedTypes[type]
diff --git a/tgui/packages/tgui-panel/chat/reducer.js b/tgui/packages/tgui-panel/chat/reducer.js
index 6342e0012f..79dbdf327a 100644
--- a/tgui/packages/tgui-panel/chat/reducer.js
+++ b/tgui/packages/tgui-panel/chat/reducer.js
@@ -4,7 +4,7 @@
* @license MIT
*/
-import { addChatPage, changeChatPage, loadChat, removeChatPage, toggleAcceptedType, updateChatPage, updateMessageCount, changeScrollTracking } from './actions';
+import { addChatPage, changeChatPage, changeScrollTracking, loadChat, removeChatPage, toggleAcceptedType, updateChatPage, updateMessageCount } from './actions';
import { canPageAcceptType, createMainPage } from './model';
const mainPage = createMainPage();
diff --git a/tgui/packages/tgui-panel/chat/renderer.js b/tgui/packages/tgui-panel/chat/renderer.js
index 495ed32228..801cb664a0 100644
--- a/tgui/packages/tgui-panel/chat/renderer.js
+++ b/tgui/packages/tgui-panel/chat/renderer.js
@@ -7,7 +7,8 @@
import { EventEmitter } from 'common/events';
import { classes } from 'common/react';
import { createLogger } from 'tgui/logging';
-import { COMBINE_MAX_MESSAGES, COMBINE_MAX_TIME_WINDOW, IMAGE_RETRY_DELAY, IMAGE_RETRY_LIMIT, IMAGE_RETRY_MESSAGE_AGE, MAX_PERSISTED_MESSAGES, MAX_VISIBLE_MESSAGES, MESSAGE_PRUNE_INTERVAL, MESSAGE_TYPES, MESSAGE_TYPE_INTERNAL, MESSAGE_TYPE_UNKNOWN } from './constants';
+
+import { COMBINE_MAX_MESSAGES, COMBINE_MAX_TIME_WINDOW, IMAGE_RETRY_DELAY, IMAGE_RETRY_LIMIT, IMAGE_RETRY_MESSAGE_AGE, MAX_PERSISTED_MESSAGES, MAX_VISIBLE_MESSAGES, MESSAGE_PRUNE_INTERVAL, MESSAGE_TYPE_INTERNAL, MESSAGE_TYPE_UNKNOWN, MESSAGE_TYPES } from './constants';
import { canPageAcceptType, createMessage, isSameMessage } from './model';
import { highlightNode, linkifyNode } from './replaceInTextNode';
diff --git a/tgui/packages/tgui-panel/game/hooks.js b/tgui/packages/tgui-panel/game/hooks.js
index e9567b916b..78ac5ebc17 100644
--- a/tgui/packages/tgui-panel/game/hooks.js
+++ b/tgui/packages/tgui-panel/game/hooks.js
@@ -5,6 +5,7 @@
*/
import { useSelector } from 'common/redux';
+
import { selectGame } from './selectors';
export const useGame = context => {
diff --git a/tgui/packages/tgui-panel/game/middleware.js b/tgui/packages/tgui-panel/game/middleware.js
index 854369dc54..1f48d7ae08 100644
--- a/tgui/packages/tgui-panel/game/middleware.js
+++ b/tgui/packages/tgui-panel/game/middleware.js
@@ -6,8 +6,8 @@
import { pingSuccess } from '../ping/actions';
import { connectionLost, connectionRestored, roundRestarted } from './actions';
-import { selectGame } from './selectors';
import { CONNECTION_LOST_AFTER } from './constants';
+import { selectGame } from './selectors';
const withTimestamp = action => ({
...action,
diff --git a/tgui/packages/tgui-panel/index.js b/tgui/packages/tgui-panel/index.js
index d635db2b47..a4db6ca8d4 100644
--- a/tgui/packages/tgui-panel/index.js
+++ b/tgui/packages/tgui-panel/index.js
@@ -10,11 +10,12 @@ import './styles/themes/light.scss';
import { perf } from 'common/perf';
import { combineReducers } from 'common/redux';
-import { setupHotReloading } from 'tgui-dev-server/link/client.cjs';
import { setupGlobalEvents } from 'tgui/events';
import { captureExternalLinks } from 'tgui/links';
import { createRenderer } from 'tgui/renderer';
import { configureStore, StoreProvider } from 'tgui/store';
+import { setupHotReloading } from 'tgui-dev-server/link/client.cjs';
+
import { audioMiddleware, audioReducer } from './audio';
import { chatMiddleware, chatReducer } from './chat';
import { gameMiddleware, gameReducer } from './game';
diff --git a/tgui/packages/tgui-panel/ping/PingIndicator.js b/tgui/packages/tgui-panel/ping/PingIndicator.js
index b663cd3a18..6f1e526a8b 100644
--- a/tgui/packages/tgui-panel/ping/PingIndicator.js
+++ b/tgui/packages/tgui-panel/ping/PingIndicator.js
@@ -8,6 +8,7 @@ import { Color } from 'common/color';
import { toFixed } from 'common/math';
import { useSelector } from 'common/redux';
import { Box } from 'tgui/components';
+
import { selectPing } from './selectors';
export const PingIndicator = (props, context) => {
diff --git a/tgui/packages/tgui-panel/ping/middleware.js b/tgui/packages/tgui-panel/ping/middleware.js
index b7d8e25a76..70e59e90e2 100644
--- a/tgui/packages/tgui-panel/ping/middleware.js
+++ b/tgui/packages/tgui-panel/ping/middleware.js
@@ -5,6 +5,7 @@
*/
import { sendMessage } from 'tgui/backend';
+
import { pingFail, pingSuccess } from './actions';
import { PING_INTERVAL, PING_QUEUE_SIZE, PING_TIMEOUT } from './constants';
diff --git a/tgui/packages/tgui-panel/ping/reducer.js b/tgui/packages/tgui-panel/ping/reducer.js
index 22d146f8b8..c808b2df83 100644
--- a/tgui/packages/tgui-panel/ping/reducer.js
+++ b/tgui/packages/tgui-panel/ping/reducer.js
@@ -5,6 +5,7 @@
*/
import { clamp01, scale } from 'common/math';
+
import { pingFail, pingSuccess } from './actions';
import { PING_MAX_FAILS, PING_ROUNDTRIP_BEST, PING_ROUNDTRIP_WORST } from './constants';
diff --git a/tgui/packages/tgui-panel/settings/SettingsPanel.js b/tgui/packages/tgui-panel/settings/SettingsPanel.js
index 01df419ce2..93ca1520d2 100644
--- a/tgui/packages/tgui-panel/settings/SettingsPanel.js
+++ b/tgui/packages/tgui-panel/settings/SettingsPanel.js
@@ -5,9 +5,10 @@
*/
import { toFixed } from 'common/math';
-import { useLocalState } from 'tgui/backend';
import { useDispatch, useSelector } from 'common/redux';
+import { useLocalState } from 'tgui/backend';
import { Box, Button, ColorBox, Divider, Dropdown, Flex, Input, LabeledList, NumberInput, Section, Stack, Tabs, TextArea } from 'tgui/components';
+
import { ChatPageSettings } from '../chat';
import { rebuildChat, saveChatToDisk } from '../chat/actions';
import { THEMES } from '../themes';
diff --git a/tgui/packages/tgui-panel/settings/hooks.js b/tgui/packages/tgui-panel/settings/hooks.js
index 1cdcaac736..3e3237c331 100644
--- a/tgui/packages/tgui-panel/settings/hooks.js
+++ b/tgui/packages/tgui-panel/settings/hooks.js
@@ -5,7 +5,8 @@
*/
import { useDispatch, useSelector } from 'common/redux';
-import { updateSettings, toggleSettings } from './actions';
+
+import { toggleSettings, updateSettings } from './actions';
import { selectSettings } from './selectors';
export const useSettings = context => {
diff --git a/tgui/packages/tgui-panel/settings/middleware.js b/tgui/packages/tgui-panel/settings/middleware.js
index b5ce06c5cc..1b630c0ad2 100644
--- a/tgui/packages/tgui-panel/settings/middleware.js
+++ b/tgui/packages/tgui-panel/settings/middleware.js
@@ -5,10 +5,11 @@
*/
import { storage } from 'common/storage';
+
import { setClientTheme } from '../themes';
import { loadSettings, updateSettings } from './actions';
-import { selectSettings } from './selectors';
import { FONTS_DISABLED } from './constants';
+import { selectSettings } from './selectors';
const setGlobalFontSize = fontSize => {
document.documentElement.style
diff --git a/tgui/packages/tgui-panel/telemetry.js b/tgui/packages/tgui-panel/telemetry.js
index 31b8541c21..7648b6c59f 100644
--- a/tgui/packages/tgui-panel/telemetry.js
+++ b/tgui/packages/tgui-panel/telemetry.js
@@ -4,8 +4,8 @@
* @license MIT
*/
-import { sendMessage } from 'tgui/backend';
import { storage } from 'common/storage';
+import { sendMessage } from 'tgui/backend';
import { createLogger } from 'tgui/logging';
const logger = createLogger('telemetry');
diff --git a/tgui/packages/tgui/backend.ts b/tgui/packages/tgui/backend.ts
index b5ce52f5e0..ddefc4d752 100644
--- a/tgui/packages/tgui/backend.ts
+++ b/tgui/packages/tgui/backend.ts
@@ -13,6 +13,7 @@
import { perf } from 'common/perf';
import { createAction } from 'common/redux';
+
import { setupDrag } from './drag';
import { focusMap } from './focus';
import { createLogger } from './logging';
diff --git a/tgui/packages/tgui/components/BlockQuote.js b/tgui/packages/tgui/components/BlockQuote.js
index 62a0521572..ba568ff85c 100644
--- a/tgui/packages/tgui/components/BlockQuote.js
+++ b/tgui/packages/tgui/components/BlockQuote.js
@@ -5,6 +5,7 @@
*/
import { classes } from 'common/react';
+
import { Box } from './Box';
export const BlockQuote = props => {
diff --git a/tgui/packages/tgui/components/Box.tsx b/tgui/packages/tgui/components/Box.tsx
index 9b0682661f..c4b327a68e 100644
--- a/tgui/packages/tgui/components/Box.tsx
+++ b/tgui/packages/tgui/components/Box.tsx
@@ -7,6 +7,7 @@
import { BooleanLike, classes, pureComponentHooks } from 'common/react';
import { createVNode, InfernoNode } from 'inferno';
import { ChildFlags, VNodeFlags } from 'inferno-vnode-flags';
+
import { CSS_COLORS } from '../constants';
export interface BoxProps {
diff --git a/tgui/packages/tgui/components/Button.js b/tgui/packages/tgui/components/Button.js
index a56c7dfa0d..68c283adae 100644
--- a/tgui/packages/tgui/components/Button.js
+++ b/tgui/packages/tgui/components/Button.js
@@ -7,6 +7,7 @@
import { KEY_ENTER, KEY_ESCAPE, KEY_SPACE } from 'common/keycodes';
import { classes, pureComponentHooks } from 'common/react';
import { Component, createRef } from 'inferno';
+
import { createLogger } from '../logging';
import { Box } from './Box';
import { Icon } from './Icon';
diff --git a/tgui/packages/tgui/components/ByondUi.js b/tgui/packages/tgui/components/ByondUi.js
index 07be451e9d..5ab74ec4a2 100644
--- a/tgui/packages/tgui/components/ByondUi.js
+++ b/tgui/packages/tgui/components/ByondUi.js
@@ -7,6 +7,7 @@
import { shallowDiffers } from 'common/react';
import { debounce } from 'common/timer';
import { Component, createRef } from 'inferno';
+
import { createLogger } from '../logging';
import { computeBoxProps } from './Box';
diff --git a/tgui/packages/tgui/components/Chart.js b/tgui/packages/tgui/components/Chart.js
index 77913779db..6b57ea2880 100644
--- a/tgui/packages/tgui/components/Chart.js
+++ b/tgui/packages/tgui/components/Chart.js
@@ -7,6 +7,7 @@
import { map, zipWith } from 'common/collections';
import { pureComponentHooks } from 'common/react';
import { Component, createRef } from 'inferno';
+
import { Box } from './Box';
const normalizeData = (data, scale, rangeX, rangeY) => {
diff --git a/tgui/packages/tgui/components/Collapsible.js b/tgui/packages/tgui/components/Collapsible.js
index 8b915814ba..fdfea7754d 100644
--- a/tgui/packages/tgui/components/Collapsible.js
+++ b/tgui/packages/tgui/components/Collapsible.js
@@ -5,6 +5,7 @@
*/
import { Component } from 'inferno';
+
import { Box } from './Box';
import { Button } from './Button';
diff --git a/tgui/packages/tgui/components/ColorBox.js b/tgui/packages/tgui/components/ColorBox.js
index 10306cf465..578a0d1c24 100644
--- a/tgui/packages/tgui/components/ColorBox.js
+++ b/tgui/packages/tgui/components/ColorBox.js
@@ -5,6 +5,7 @@
*/
import { classes, pureComponentHooks } from 'common/react';
+
import { computeBoxClassName, computeBoxProps } from './Box';
export const ColorBox = props => {
diff --git a/tgui/packages/tgui/components/Dimmer.js b/tgui/packages/tgui/components/Dimmer.js
index d97c3626a3..2f1aec4fd5 100644
--- a/tgui/packages/tgui/components/Dimmer.js
+++ b/tgui/packages/tgui/components/Dimmer.js
@@ -5,6 +5,7 @@
*/
import { classes } from 'common/react';
+
import { Box } from './Box';
export const Dimmer = props => {
diff --git a/tgui/packages/tgui/components/DraggableControl.js b/tgui/packages/tgui/components/DraggableControl.js
index dfb47e8f4d..c9577db5f7 100644
--- a/tgui/packages/tgui/components/DraggableControl.js
+++ b/tgui/packages/tgui/components/DraggableControl.js
@@ -7,6 +7,7 @@
import { clamp } from 'common/math';
import { pureComponentHooks } from 'common/react';
import { Component, createRef } from 'inferno';
+
import { AnimatedNumber } from './AnimatedNumber';
const DEFAULT_UPDATE_RATE = 400;
diff --git a/tgui/packages/tgui/components/Dropdown.js b/tgui/packages/tgui/components/Dropdown.js
index 7486807e3f..8e35f5972f 100644
--- a/tgui/packages/tgui/components/Dropdown.js
+++ b/tgui/packages/tgui/components/Dropdown.js
@@ -6,6 +6,7 @@
import { classes } from 'common/react';
import { Component } from 'inferno';
+
import { Box } from './Box';
import { Icon } from './Icon';
diff --git a/tgui/packages/tgui/components/Flex.tsx b/tgui/packages/tgui/components/Flex.tsx
index fbb5ab0b96..fde35dd811 100644
--- a/tgui/packages/tgui/components/Flex.tsx
+++ b/tgui/packages/tgui/components/Flex.tsx
@@ -5,6 +5,7 @@
*/
import { BooleanLike, classes, pureComponentHooks } from 'common/react';
+
import { Box, BoxProps, unit } from './Box';
export interface FlexProps extends BoxProps {
diff --git a/tgui/packages/tgui/components/Grid.js b/tgui/packages/tgui/components/Grid.js
index 3269b67200..5b5b2f9745 100644
--- a/tgui/packages/tgui/components/Grid.js
+++ b/tgui/packages/tgui/components/Grid.js
@@ -4,9 +4,10 @@
* @license MIT
*/
-import { Table } from './Table';
import { pureComponentHooks } from 'common/react';
+import { Table } from './Table';
+
/** @deprecated */
export const Grid = props => {
const { children, ...rest } = props;
diff --git a/tgui/packages/tgui/components/Icon.js b/tgui/packages/tgui/components/Icon.js
index 13efaffca7..afdaa35482 100644
--- a/tgui/packages/tgui/components/Icon.js
+++ b/tgui/packages/tgui/components/Icon.js
@@ -7,6 +7,7 @@
*/
import { classes, pureComponentHooks } from 'common/react';
+
import { Box } from './Box';
const FA_OUTLINE_REGEX = /-o$/;
diff --git a/tgui/packages/tgui/components/InfinitePlane.js b/tgui/packages/tgui/components/InfinitePlane.js
index 393ac1de81..844fbe7a42 100644
--- a/tgui/packages/tgui/components/InfinitePlane.js
+++ b/tgui/packages/tgui/components/InfinitePlane.js
@@ -1,9 +1,10 @@
-import { computeBoxProps } from "./Box";
-import { Stack } from "./Stack";
-import { ProgressBar } from "./ProgressBar";
-import { Button } from "./Button";
import { Component } from 'inferno';
+import { computeBoxProps } from "./Box";
+import { Button } from "./Button";
+import { ProgressBar } from "./ProgressBar";
+import { Stack } from "./Stack";
+
const ZOOM_MIN_VAL = 0.5;
const ZOOM_MAX_VAL = 1.5;
diff --git a/tgui/packages/tgui/components/Input.js b/tgui/packages/tgui/components/Input.js
index b0c5f3f0cb..b70cc34a39 100644
--- a/tgui/packages/tgui/components/Input.js
+++ b/tgui/packages/tgui/components/Input.js
@@ -4,10 +4,11 @@
* @license MIT
*/
+import { KEY_ENTER, KEY_ESCAPE } from 'common/keycodes';
import { classes } from 'common/react';
import { Component, createRef } from 'inferno';
+
import { Box } from './Box';
-import { KEY_ESCAPE, KEY_ENTER } from 'common/keycodes';
export const toInputValue = value => (
typeof value !== 'number' && typeof value !== 'string'
diff --git a/tgui/packages/tgui/components/Knob.js b/tgui/packages/tgui/components/Knob.js
index 175792471b..8b79273621 100644
--- a/tgui/packages/tgui/components/Knob.js
+++ b/tgui/packages/tgui/components/Knob.js
@@ -6,6 +6,7 @@
import { keyOfMatchingRange, scale } from 'common/math';
import { classes } from 'common/react';
+
import { computeBoxClassName, computeBoxProps } from './Box';
import { DraggableControl } from './DraggableControl';
import { NumberInput } from './NumberInput';
diff --git a/tgui/packages/tgui/components/LabeledList.tsx b/tgui/packages/tgui/components/LabeledList.tsx
index 0417fefc8c..5808d85e21 100644
--- a/tgui/packages/tgui/components/LabeledList.tsx
+++ b/tgui/packages/tgui/components/LabeledList.tsx
@@ -6,6 +6,7 @@
import { BooleanLike, classes, pureComponentHooks } from 'common/react';
import { InfernoNode } from 'inferno';
+
import { Box, unit } from './Box';
import { Divider } from './Divider';
diff --git a/tgui/packages/tgui/components/Modal.js b/tgui/packages/tgui/components/Modal.js
index aa420af675..98034d8209 100644
--- a/tgui/packages/tgui/components/Modal.js
+++ b/tgui/packages/tgui/components/Modal.js
@@ -5,6 +5,7 @@
*/
import { classes } from 'common/react';
+
import { computeBoxClassName, computeBoxProps } from './Box';
import { Dimmer } from './Dimmer';
diff --git a/tgui/packages/tgui/components/NoticeBox.js b/tgui/packages/tgui/components/NoticeBox.js
index 0277c63b34..e7393f596b 100644
--- a/tgui/packages/tgui/components/NoticeBox.js
+++ b/tgui/packages/tgui/components/NoticeBox.js
@@ -5,6 +5,7 @@
*/
import { classes, pureComponentHooks } from 'common/react';
+
import { Box } from './Box';
export const NoticeBox = props => {
diff --git a/tgui/packages/tgui/components/NumberInput.js b/tgui/packages/tgui/components/NumberInput.js
index 306772c8a5..5548cba1e9 100644
--- a/tgui/packages/tgui/components/NumberInput.js
+++ b/tgui/packages/tgui/components/NumberInput.js
@@ -7,6 +7,7 @@
import { clamp } from 'common/math';
import { classes, pureComponentHooks } from 'common/react';
import { Component, createRef } from 'inferno';
+
import { AnimatedNumber } from './AnimatedNumber';
import { Box } from './Box';
diff --git a/tgui/packages/tgui/components/ProgressBar.js b/tgui/packages/tgui/components/ProgressBar.js
index 1ec2b76293..2ec784fb79 100644
--- a/tgui/packages/tgui/components/ProgressBar.js
+++ b/tgui/packages/tgui/components/ProgressBar.js
@@ -4,8 +4,9 @@
* @license MIT
*/
-import { clamp01, scale, keyOfMatchingRange, toFixed } from 'common/math';
+import { clamp01, keyOfMatchingRange, scale, toFixed } from 'common/math';
import { classes, pureComponentHooks } from 'common/react';
+
import { computeBoxClassName, computeBoxProps } from './Box';
export const ProgressBar = props => {
diff --git a/tgui/packages/tgui/components/RestrictedInput.js b/tgui/packages/tgui/components/RestrictedInput.js
index 0a6e2cb440..4a38ee87b6 100644
--- a/tgui/packages/tgui/components/RestrictedInput.js
+++ b/tgui/packages/tgui/components/RestrictedInput.js
@@ -1,8 +1,9 @@
-import { classes } from 'common/react';
+import { KEY_ENTER, KEY_ESCAPE } from 'common/keycodes';
import { clamp } from 'common/math';
+import { classes } from 'common/react';
import { Component, createRef } from 'inferno';
+
import { Box } from './Box';
-import { KEY_ESCAPE, KEY_ENTER } from 'common/keycodes';
const DEFAULT_MIN = 0;
const DEFAULT_MAX = 10000;
diff --git a/tgui/packages/tgui/components/RoundGauge.js b/tgui/packages/tgui/components/RoundGauge.js
index cbe1f910a6..8df3e923e3 100644
--- a/tgui/packages/tgui/components/RoundGauge.js
+++ b/tgui/packages/tgui/components/RoundGauge.js
@@ -6,6 +6,7 @@
import { clamp01, keyOfMatchingRange, scale } from 'common/math';
import { classes } from 'common/react';
+
import { AnimatedNumber } from './AnimatedNumber';
import { Box, computeBoxClassName, computeBoxProps } from './Box';
diff --git a/tgui/packages/tgui/components/Section.tsx b/tgui/packages/tgui/components/Section.tsx
index 77cf03a076..22df3648d8 100644
--- a/tgui/packages/tgui/components/Section.tsx
+++ b/tgui/packages/tgui/components/Section.tsx
@@ -6,6 +6,7 @@
import { canRender, classes } from 'common/react';
import { Component, createRef, InfernoNode, RefObject } from 'inferno';
+
import { addScrollableNode, removeScrollableNode } from '../events';
import { BoxProps, computeBoxClassName, computeBoxProps } from './Box';
diff --git a/tgui/packages/tgui/components/Slider.js b/tgui/packages/tgui/components/Slider.js
index 005e6c1f8f..0e93c4952b 100644
--- a/tgui/packages/tgui/components/Slider.js
+++ b/tgui/packages/tgui/components/Slider.js
@@ -6,6 +6,7 @@
import { clamp01, keyOfMatchingRange, scale } from 'common/math';
import { classes } from 'common/react';
+
import { computeBoxClassName, computeBoxProps } from './Box';
import { DraggableControl } from './DraggableControl';
import { NumberInput } from './NumberInput';
diff --git a/tgui/packages/tgui/components/Stack.tsx b/tgui/packages/tgui/components/Stack.tsx
index e486a77c1e..1ce9ae0376 100644
--- a/tgui/packages/tgui/components/Stack.tsx
+++ b/tgui/packages/tgui/components/Stack.tsx
@@ -5,6 +5,7 @@
*/
import { classes } from 'common/react';
+
import { Flex, FlexItemProps, FlexProps } from './Flex';
interface StackProps extends FlexProps {
diff --git a/tgui/packages/tgui/components/Table.js b/tgui/packages/tgui/components/Table.js
index 545e26f593..b108330654 100644
--- a/tgui/packages/tgui/components/Table.js
+++ b/tgui/packages/tgui/components/Table.js
@@ -5,6 +5,7 @@
*/
import { classes, pureComponentHooks } from 'common/react';
+
import { computeBoxClassName, computeBoxProps } from './Box';
export const Table = props => {
diff --git a/tgui/packages/tgui/components/Tabs.js b/tgui/packages/tgui/components/Tabs.js
index ca0453f8da..3e897638f0 100644
--- a/tgui/packages/tgui/components/Tabs.js
+++ b/tgui/packages/tgui/components/Tabs.js
@@ -5,6 +5,7 @@
*/
import { canRender, classes } from 'common/react';
+
import { computeBoxClassName, computeBoxProps } from './Box';
import { Icon } from './Icon';
diff --git a/tgui/packages/tgui/components/TextArea.js b/tgui/packages/tgui/components/TextArea.js
index 00e1605a3b..ed887324a4 100644
--- a/tgui/packages/tgui/components/TextArea.js
+++ b/tgui/packages/tgui/components/TextArea.js
@@ -5,11 +5,12 @@
* @license MIT
*/
+import { KEY_ESCAPE } from 'common/keycodes';
import { classes } from 'common/react';
import { Component, createRef } from 'inferno';
+
import { Box } from './Box';
import { toInputValue } from './Input';
-import { KEY_ESCAPE } from 'common/keycodes';
export class TextArea extends Component {
constructor(props, context) {
diff --git a/tgui/packages/tgui/components/TimeDisplay.js b/tgui/packages/tgui/components/TimeDisplay.js
index fdba84563a..d2a49e4de1 100644
--- a/tgui/packages/tgui/components/TimeDisplay.js
+++ b/tgui/packages/tgui/components/TimeDisplay.js
@@ -1,6 +1,7 @@
-import { formatTime } from '../format';
import { Component } from 'inferno';
+import { formatTime } from '../format';
+
// AnimatedNumber Copypaste
const isSafeNumber = value => {
return typeof value === 'number'
diff --git a/tgui/packages/tgui/components/index.js b/tgui/packages/tgui/components/index.js
index 94a50d2339..21a82a2219 100644
--- a/tgui/packages/tgui/components/index.js
+++ b/tgui/packages/tgui/components/index.js
@@ -29,8 +29,8 @@ export { LabeledList } from './LabeledList';
export { Modal } from './Modal';
export { NoticeBox } from './NoticeBox';
export { NumberInput } from './NumberInput';
-export { ProgressBar } from './ProgressBar';
export { Popper } from './Popper';
+export { ProgressBar } from './ProgressBar';
export { RestrictedInput } from './RestrictedInput';
export { RoundGauge } from './RoundGauge';
export { Section } from './Section';
diff --git a/tgui/packages/tgui/debug/hooks.js b/tgui/packages/tgui/debug/hooks.js
index 0b1a3f105e..a09dcb8cb9 100644
--- a/tgui/packages/tgui/debug/hooks.js
+++ b/tgui/packages/tgui/debug/hooks.js
@@ -5,6 +5,7 @@
*/
import { useSelector } from 'common/redux';
+
import { selectDebug } from './selectors';
export const useDebug = context => useSelector(context, selectDebug);
diff --git a/tgui/packages/tgui/debug/middleware.js b/tgui/packages/tgui/debug/middleware.js
index 8dceaf9573..519644899d 100644
--- a/tgui/packages/tgui/debug/middleware.js
+++ b/tgui/packages/tgui/debug/middleware.js
@@ -5,6 +5,7 @@
*/
import { KEY_BACKSPACE, KEY_F10, KEY_F11, KEY_F12 } from 'common/keycodes';
+
import { globalEvents } from '../events';
import { acquireHotKey } from '../hotkeys';
import { openExternalBrowser, toggleDebugLayout, toggleKitchenSink } from './actions';
diff --git a/tgui/packages/tgui/drag.js b/tgui/packages/tgui/drag.js
index d6f0967a8d..2a0804353a 100644
--- a/tgui/packages/tgui/drag.js
+++ b/tgui/packages/tgui/drag.js
@@ -6,6 +6,7 @@
import { storage } from 'common/storage';
import { vecAdd, vecInverse, vecMultiply, vecScale } from 'common/vector';
+
import { createLogger } from './logging';
const logger = createLogger('drag');
diff --git a/tgui/packages/tgui/hotkeys.ts b/tgui/packages/tgui/hotkeys.ts
index 1358ff2510..61113f737d 100644
--- a/tgui/packages/tgui/hotkeys.ts
+++ b/tgui/packages/tgui/hotkeys.ts
@@ -5,6 +5,7 @@
*/
import * as keycodes from 'common/keycodes';
+
import { globalEvents, KeyEvent } from './events';
import { createLogger } from './logging';
diff --git a/tgui/packages/tgui/index.js b/tgui/packages/tgui/index.js
index bd6f3f5302..dc17b56cca 100644
--- a/tgui/packages/tgui/index.js
+++ b/tgui/packages/tgui/index.js
@@ -21,11 +21,12 @@ import './styles/themes/clockcult.scss';
import { perf } from 'common/perf';
import { setupHotReloading } from 'tgui-dev-server/link/client.cjs';
+
+import { setupGlobalEvents } from './events';
import { setupHotKeys } from './hotkeys';
import { captureExternalLinks } from './links';
import { createRenderer } from './renderer';
import { configureStore, StoreProvider } from './store';
-import { setupGlobalEvents } from './events';
perf.mark('inception', window.performance?.timing?.navigationStart);
perf.mark('init');
diff --git a/tgui/packages/tgui/interfaces/AdventureBrowser.tsx b/tgui/packages/tgui/interfaces/AdventureBrowser.tsx
index d713f46ac6..8739e2591e 100644
--- a/tgui/packages/tgui/interfaces/AdventureBrowser.tsx
+++ b/tgui/packages/tgui/interfaces/AdventureBrowser.tsx
@@ -1,8 +1,8 @@
import { useBackend, useLocalState } from '../backend';
-import { Button, LabeledList, Section, Box, NoticeBox, Table } from '../components';
+import { Box, Button, LabeledList, NoticeBox, Section, Table } from '../components';
+import { formatTime } from '../format';
import { Window } from '../layouts';
import { AdventureDataProvider, AdventureScreen } from './ExodroneConsole';
-import { formatTime } from '../format';
type Adventure = {
ref: string;
diff --git a/tgui/packages/tgui/interfaces/AirAlarm.js b/tgui/packages/tgui/interfaces/AirAlarm.js
index 5d5bf0e0f4..fdf731569a 100644
--- a/tgui/packages/tgui/interfaces/AirAlarm.js
+++ b/tgui/packages/tgui/interfaces/AirAlarm.js
@@ -1,5 +1,6 @@
import { toFixed } from 'common/math';
import { Fragment } from 'inferno';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, LabeledList, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/AlertModal.tsx b/tgui/packages/tgui/interfaces/AlertModal.tsx
index 965faf6838..ef99e91b44 100644
--- a/tgui/packages/tgui/interfaces/AlertModal.tsx
+++ b/tgui/packages/tgui/interfaces/AlertModal.tsx
@@ -1,8 +1,8 @@
-import { Loader } from './common/Loader';
-import { useBackend, useLocalState } from '../backend';
import { KEY_ENTER, KEY_ESCAPE, KEY_LEFT, KEY_RIGHT, KEY_SPACE, KEY_TAB } from '../../common/keycodes';
+import { useBackend, useLocalState } from '../backend';
import { Autofocus, Box, Button, Flex, Section, Stack } from '../components';
import { Window } from '../layouts';
+import { Loader } from './common/Loader';
type AlertModalData = {
autofocus: boolean;
diff --git a/tgui/packages/tgui/interfaces/AntagInfoBrainwashed.tsx b/tgui/packages/tgui/interfaces/AntagInfoBrainwashed.tsx
index 8e88760ab2..1d9fecc6ec 100644
--- a/tgui/packages/tgui/interfaces/AntagInfoBrainwashed.tsx
+++ b/tgui/packages/tgui/interfaces/AntagInfoBrainwashed.tsx
@@ -1,6 +1,7 @@
-import { useBackend, useLocalState } from '../backend';
-import { Blink, BlockQuote, Box, Dimmer, Icon, Section, Stack } from '../components';
import { BooleanLike } from 'common/react';
+
+import { useBackend } from '../backend';
+import { Icon, Section, Stack } from '../components';
import { Window } from '../layouts';
type Objective = {
diff --git a/tgui/packages/tgui/interfaces/AntagInfoClockwork.tsx b/tgui/packages/tgui/interfaces/AntagInfoClockwork.tsx
index 2d03d8f74d..cd4791c228 100644
--- a/tgui/packages/tgui/interfaces/AntagInfoClockwork.tsx
+++ b/tgui/packages/tgui/interfaces/AntagInfoClockwork.tsx
@@ -1,4 +1,5 @@
import { BooleanLike } from 'common/react';
+
import { useBackend } from '../backend';
import { Section, Stack } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/AntagInfoTraitor.tsx b/tgui/packages/tgui/interfaces/AntagInfoTraitor.tsx
index 04a93ccb46..9241b3403e 100644
--- a/tgui/packages/tgui/interfaces/AntagInfoTraitor.tsx
+++ b/tgui/packages/tgui/interfaces/AntagInfoTraitor.tsx
@@ -1,7 +1,8 @@
-import { useBackend, useLocalState } from '../backend';
-import { multiline } from 'common/string';
-import { BlockQuote, Button, Dimmer, Section, Stack } from '../components';
import { BooleanLike } from 'common/react';
+import { multiline } from 'common/string';
+
+import { useBackend } from '../backend';
+import { BlockQuote, Button, Dimmer, Section, Stack } from '../components';
import { Window } from '../layouts';
const allystyle = {
diff --git a/tgui/packages/tgui/interfaces/AntagInfoWizard.tsx b/tgui/packages/tgui/interfaces/AntagInfoWizard.tsx
index 046030a7bc..4186f581bb 100644
--- a/tgui/packages/tgui/interfaces/AntagInfoWizard.tsx
+++ b/tgui/packages/tgui/interfaces/AntagInfoWizard.tsx
@@ -1,6 +1,7 @@
-import { useBackend, useLocalState } from '../backend';
-import { Blink, BlockQuote, Box, Dimmer, Icon, Section, Stack } from '../components';
import { BooleanLike } from 'common/react';
+
+import { useBackend } from '../backend';
+import { Section, Stack } from '../components';
import { Window } from '../layouts';
const teleportstyle = {
diff --git a/tgui/packages/tgui/interfaces/ApcControl.js b/tgui/packages/tgui/interfaces/ApcControl.js
index 0005476d4a..b2ff078a82 100644
--- a/tgui/packages/tgui/interfaces/ApcControl.js
+++ b/tgui/packages/tgui/interfaces/ApcControl.js
@@ -1,8 +1,9 @@
import { map, sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { pureComponentHooks } from 'common/react';
+
import { useBackend, useLocalState } from '../backend';
-import { Box, Button, Dimmer, Icon, Table, Tabs, Stack, Section } from '../components';
+import { Box, Button, Dimmer, Icon, Section, Stack, Table, Tabs } from '../components';
import { Window } from '../layouts';
import { AreaCharge, powerRank } from './PowerMonitor';
diff --git a/tgui/packages/tgui/interfaces/Aquarium.js b/tgui/packages/tgui/interfaces/Aquarium.js
index a9049b554b..5758f80153 100644
--- a/tgui/packages/tgui/interfaces/Aquarium.js
+++ b/tgui/packages/tgui/interfaces/Aquarium.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Button, Dropdown, Flex, Knob, LabeledControls, Section } from '../components';
+import { Button, Flex, Knob, LabeledControls, Section } from '../components';
import { Window } from '../layouts';
export const Aquarium = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/AtmosControlConsole.js b/tgui/packages/tgui/interfaces/AtmosControlConsole.js
index 47b5fac47d..da918458ef 100644
--- a/tgui/packages/tgui/interfaces/AtmosControlConsole.js
+++ b/tgui/packages/tgui/interfaces/AtmosControlConsole.js
@@ -1,5 +1,6 @@
import { map } from 'common/collections';
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { Button, LabeledList, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/AtmosControlPanel.js b/tgui/packages/tgui/interfaces/AtmosControlPanel.js
index 6982fd0655..c9d4b5815c 100644
--- a/tgui/packages/tgui/interfaces/AtmosControlPanel.js
+++ b/tgui/packages/tgui/interfaces/AtmosControlPanel.js
@@ -1,5 +1,6 @@
import { map, sortBy } from 'common/collections';
import { flow } from 'common/fp';
+
import { useBackend } from '../backend';
import { Box, Button, Flex, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Autolathe.js b/tgui/packages/tgui/interfaces/Autolathe.js
index 2ed62eb52f..9bf772773b 100644
--- a/tgui/packages/tgui/interfaces/Autolathe.js
+++ b/tgui/packages/tgui/interfaces/Autolathe.js
@@ -1,8 +1,9 @@
-import { useBackend, useLocalState } from '../backend';
-import { Button, LabeledList, Section, ProgressBar, Flex, Box, Table, Collapsible, Input, Dimmer, Icon } from '../components';
-import { Window } from '../layouts';
import { capitalize } from "common/string";
+import { useBackend, useLocalState } from '../backend';
+import { Box, Button, Collapsible, Dimmer, Flex, Icon, Input, LabeledList, ProgressBar, Section, Table } from '../components';
+import { Window } from '../layouts';
+
export const Autolathe = (props, context) => {
const { act, data } = useBackend(context);
// Extract `health` and `color` variables from the `data` object.
diff --git a/tgui/packages/tgui/interfaces/AutomatedAnnouncement.js b/tgui/packages/tgui/interfaces/AutomatedAnnouncement.js
index 0baea4de97..e34506ff18 100644
--- a/tgui/packages/tgui/interfaces/AutomatedAnnouncement.js
+++ b/tgui/packages/tgui/interfaces/AutomatedAnnouncement.js
@@ -1,4 +1,5 @@
import { multiline } from 'common/string';
+
import { useBackend } from '../backend';
import { Button, Input, LabeledList, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Biogenerator.js b/tgui/packages/tgui/interfaces/Biogenerator.js
index e4fae18abb..4486d22844 100644
--- a/tgui/packages/tgui/interfaces/Biogenerator.js
+++ b/tgui/packages/tgui/interfaces/Biogenerator.js
@@ -1,5 +1,6 @@
import { classes } from 'common/react';
import { createSearch } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Dimmer, Flex, Icon, Input, NoticeBox, NumberInput, Section, Table, Tabs } from '../components';
import { formatMoney } from '../format';
diff --git a/tgui/packages/tgui/interfaces/BluespaceSender.js b/tgui/packages/tgui/interfaces/BluespaceSender.js
index d1deed2a90..88a1c4bf53 100644
--- a/tgui/packages/tgui/interfaces/BluespaceSender.js
+++ b/tgui/packages/tgui/interfaces/BluespaceSender.js
@@ -1,8 +1,9 @@
import { filter, sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
-import { Button, Divider, LabeledList, NumberInput, ProgressBar, Section, Stack, Box, AnimatedNumber } from '../components';
+import { Box, Button, Divider, LabeledList, NumberInput, ProgressBar, Section, Stack } from '../components';
import { getGasColor, getGasLabel } from '../constants';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/BluespaceVendor.js b/tgui/packages/tgui/interfaces/BluespaceVendor.js
index 7491bc7a1d..bbdacfbb80 100644
--- a/tgui/packages/tgui/interfaces/BluespaceVendor.js
+++ b/tgui/packages/tgui/interfaces/BluespaceVendor.js
@@ -2,8 +2,9 @@ import { filter, sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { toFixed } from 'common/math';
import { multiline } from 'common/string';
+
import { useBackend } from '../backend';
-import { Button, Divider, LabeledList, NumberInput, ProgressBar, Section, Stack, Box } from '../components';
+import { Button, Divider, LabeledList, NumberInput, ProgressBar, Section, Stack } from '../components';
import { getGasColor, getGasLabel } from '../constants';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/CameraConsole.js b/tgui/packages/tgui/interfaces/CameraConsole.js
index c087e10adc..d35aed5175 100644
--- a/tgui/packages/tgui/interfaces/CameraConsole.js
+++ b/tgui/packages/tgui/interfaces/CameraConsole.js
@@ -2,6 +2,7 @@ import { filter, sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { classes } from 'common/react';
import { createSearch } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
import { Button, ByondUi, Flex, Input, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Canister.js b/tgui/packages/tgui/interfaces/Canister.js
index 608ba72e26..97a300e425 100644
--- a/tgui/packages/tgui/interfaces/Canister.js
+++ b/tgui/packages/tgui/interfaces/Canister.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { Box, Button, Flex, Icon, Knob, LabeledControls, LabeledList, RoundGauge, Section, Tooltip } from '../components';
import { formatSiUnit } from '../format';
diff --git a/tgui/packages/tgui/interfaces/Canvas.js b/tgui/packages/tgui/interfaces/Canvas.js
index 4a73fc6055..6e4ad8766a 100644
--- a/tgui/packages/tgui/interfaces/Canvas.js
+++ b/tgui/packages/tgui/interfaces/Canvas.js
@@ -1,4 +1,5 @@
import { Component, createRef } from 'inferno';
+
import { useBackend } from '../backend';
import { Box, Button } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Cargo.js b/tgui/packages/tgui/interfaces/Cargo.js
index 172e21e7f6..b75fc45cbd 100644
--- a/tgui/packages/tgui/interfaces/Cargo.js
+++ b/tgui/packages/tgui/interfaces/Cargo.js
@@ -1,5 +1,6 @@
import { toArray } from 'common/collections';
import { Fragment } from 'inferno';
+
import { useBackend, useSharedState } from '../backend';
import { AnimatedNumber, Box, Button, Flex, LabeledList, Section, Table, Tabs } from '../components';
import { formatMoney } from '../format';
diff --git a/tgui/packages/tgui/interfaces/CellularEmporium.tsx b/tgui/packages/tgui/interfaces/CellularEmporium.tsx
index 246e930960..0031ea47bb 100644
--- a/tgui/packages/tgui/interfaces/CellularEmporium.tsx
+++ b/tgui/packages/tgui/interfaces/CellularEmporium.tsx
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Button, Section, Icon, Stack, LabeledList, Box, NoticeBox } from '../components';
+import { Box, Button, Icon, LabeledList, NoticeBox, Section, Stack } from '../components';
import { Window } from '../layouts';
type CellularEmporiumContext = {
diff --git a/tgui/packages/tgui/interfaces/CentcomPodLauncher.js b/tgui/packages/tgui/interfaces/CentcomPodLauncher.js
index 84811a25eb..168d9d9576 100644
--- a/tgui/packages/tgui/interfaces/CentcomPodLauncher.js
+++ b/tgui/packages/tgui/interfaces/CentcomPodLauncher.js
@@ -4,6 +4,7 @@ import { storage } from 'common/storage';
import { multiline } from 'common/string';
import { createUuid } from 'common/uuid';
import { Component, Fragment } from 'inferno';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, ByondUi, Divider, Input, Knob, LabeledControls, NumberInput, Section, Stack } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ChameleonCard.js b/tgui/packages/tgui/interfaces/ChameleonCard.js
index 9733ac19b0..0cb5c6eb20 100644
--- a/tgui/packages/tgui/interfaces/ChameleonCard.js
+++ b/tgui/packages/tgui/interfaces/ChameleonCard.js
@@ -1,6 +1,6 @@
import { useBackend } from '../backend';
-import { AccessList } from './common/AccessList';
import { Window } from '../layouts';
+import { AccessList } from './common/AccessList';
export const ChameleonCard = (props, context) => {
const { act, data } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/Changelog.js b/tgui/packages/tgui/interfaces/Changelog.js
index 6c240c74e2..41b91809c2 100644
--- a/tgui/packages/tgui/interfaces/Changelog.js
+++ b/tgui/packages/tgui/interfaces/Changelog.js
@@ -1,6 +1,10 @@
import { classes } from 'common/react';
-import { useBackend } from '../backend';
+import dateformat from 'dateformat';
import { Component, Fragment } from 'inferno';
+import yaml from 'js-yaml';
+
+import { resolveAsset } from '../assets';
+import { useBackend } from '../backend';
import {
Box,
Button,
@@ -11,9 +15,6 @@ import {
Table,
} from '../components';
import { Window } from '../layouts';
-import { resolveAsset } from '../assets';
-import dateformat from 'dateformat';
-import yaml from 'js-yaml';
const icons = {
bugfix: { icon: 'bug', color: 'green' },
diff --git a/tgui/packages/tgui/interfaces/CharacterDirectory.js b/tgui/packages/tgui/interfaces/CharacterDirectory.js
index a1664eadb2..0f9e01b830 100644
--- a/tgui/packages/tgui/interfaces/CharacterDirectory.js
+++ b/tgui/packages/tgui/interfaces/CharacterDirectory.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Icon, LabeledList, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ChemDebugSynthesizer.js b/tgui/packages/tgui/interfaces/ChemDebugSynthesizer.js
index 7171d42ed8..18be6dc9ff 100644
--- a/tgui/packages/tgui/interfaces/ChemDebugSynthesizer.js
+++ b/tgui/packages/tgui/interfaces/ChemDebugSynthesizer.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend } from '../backend';
import { AnimatedNumber, Box, Button, LabeledList, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ChemDispenser.js b/tgui/packages/tgui/interfaces/ChemDispenser.js
index 0004cdbdf2..6e790ab280 100644
--- a/tgui/packages/tgui/interfaces/ChemDispenser.js
+++ b/tgui/packages/tgui/interfaces/ChemDispenser.js
@@ -1,8 +1,9 @@
import { toFixed } from 'common/math';
import { toTitleCase } from 'common/string';
import { Fragment } from 'inferno';
+
import { useBackend, useLocalState } from '../backend';
-import { AnimatedNumber, Box, Button, Icon, LabeledList, ProgressBar, Section, Table, NumberInput } from '../components';
+import { AnimatedNumber, Box, Button, Icon, LabeledList, NumberInput, ProgressBar, Section, Table } from '../components';
import { Window } from '../layouts';
export const ChemDispenser = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/ChemFilter.js b/tgui/packages/tgui/interfaces/ChemFilter.js
index a48215a5a5..5cc2726575 100644
--- a/tgui/packages/tgui/interfaces/ChemFilter.js
+++ b/tgui/packages/tgui/interfaces/ChemFilter.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend, useLocalState } from '../backend';
import { Button, Flex, Input, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ChemHeater.js b/tgui/packages/tgui/interfaces/ChemHeater.js
index 0c17340760..82a442351b 100644
--- a/tgui/packages/tgui/interfaces/ChemHeater.js
+++ b/tgui/packages/tgui/interfaces/ChemHeater.js
@@ -1,5 +1,6 @@
import { round, toFixed } from 'common/math';
import { Fragment } from 'inferno';
+
import { useBackend } from '../backend';
import { AnimatedNumber, Box, Button, LabeledList, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ChemMaster.js b/tgui/packages/tgui/interfaces/ChemMaster.js
index 450518288c..53216b5551 100644
--- a/tgui/packages/tgui/interfaces/ChemMaster.js
+++ b/tgui/packages/tgui/interfaces/ChemMaster.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend, useSharedState } from '../backend';
import { AnimatedNumber, Box, Button, ColorBox, LabeledList, NumberInput, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ChemReactionChamber.js b/tgui/packages/tgui/interfaces/ChemReactionChamber.js
index 0507686201..60bb3c69c2 100644
--- a/tgui/packages/tgui/interfaces/ChemReactionChamber.js
+++ b/tgui/packages/tgui/interfaces/ChemReactionChamber.js
@@ -1,5 +1,6 @@
import { map } from 'common/collections';
import { classes } from 'common/react';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Input, LabeledList, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ChemRecipeDebug.js b/tgui/packages/tgui/interfaces/ChemRecipeDebug.js
index 5238fc5338..369d856123 100644
--- a/tgui/packages/tgui/interfaces/ChemRecipeDebug.js
+++ b/tgui/packages/tgui/interfaces/ChemRecipeDebug.js
@@ -1,4 +1,5 @@
import { round } from 'common/math';
+
import { useBackend } from '../backend';
import { AnimatedNumber, Box, Button, Flex, LabeledList, NumberInput, ProgressBar, RoundGauge, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ChemSplitter.js b/tgui/packages/tgui/interfaces/ChemSplitter.js
index b45d6bbdba..a2cdad6676 100644
--- a/tgui/packages/tgui/interfaces/ChemSplitter.js
+++ b/tgui/packages/tgui/interfaces/ChemSplitter.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { LabeledList, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ChemSynthesizer.js b/tgui/packages/tgui/interfaces/ChemSynthesizer.js
index 536173f039..caf9861bfa 100644
--- a/tgui/packages/tgui/interfaces/ChemSynthesizer.js
+++ b/tgui/packages/tgui/interfaces/ChemSynthesizer.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { Box, Button, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/CircuitAdminPanel.tsx b/tgui/packages/tgui/interfaces/CircuitAdminPanel.tsx
index 814a147fc1..74dd4fdb85 100644
--- a/tgui/packages/tgui/interfaces/CircuitAdminPanel.tsx
+++ b/tgui/packages/tgui/interfaces/CircuitAdminPanel.tsx
@@ -1,4 +1,5 @@
import { BooleanLike } from "common/react";
+
import { useBackend } from "../backend";
import { Button, Table } from "../components";
import { Window } from "../layouts";
diff --git a/tgui/packages/tgui/interfaces/CircuitModule.js b/tgui/packages/tgui/interfaces/CircuitModule.js
index 8636906c99..8b10896425 100644
--- a/tgui/packages/tgui/interfaces/CircuitModule.js
+++ b/tgui/packages/tgui/interfaces/CircuitModule.js
@@ -1,5 +1,5 @@
import { useBackend } from "../backend";
-import { Stack, Section, Input, Button, Dropdown } from "../components";
+import { Button, Dropdown, Input, Section, Stack } from "../components";
import { Window } from "../layouts";
export const CircuitModule = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/Clipboard.js b/tgui/packages/tgui/interfaces/Clipboard.js
index e6e377e6b1..b170ca9fca 100644
--- a/tgui/packages/tgui/interfaces/Clipboard.js
+++ b/tgui/packages/tgui/interfaces/Clipboard.js
@@ -3,8 +3,8 @@ import {
Box,
Button,
Divider,
- LabeledList,
Flex,
+ LabeledList,
Section,
} from "../components";
import { Window } from "../layouts";
diff --git a/tgui/packages/tgui/interfaces/ClockworkSlab.js b/tgui/packages/tgui/interfaces/ClockworkSlab.js
index 47c8069ade..d0ce5a38f5 100644
--- a/tgui/packages/tgui/interfaces/ClockworkSlab.js
+++ b/tgui/packages/tgui/interfaces/ClockworkSlab.js
@@ -6,11 +6,12 @@
* @license MIT
*/
-import { useBackend, useLocalState, useSharedState } from '../backend';
-import { createSearch } from 'common/string';
import { map } from 'common/collections';
-import { Section, Tabs, Table, Button, Box, NoticeBox, Divider, Input } from '../components';
+import { createSearch } from 'common/string';
import { Fragment } from 'inferno';
+
+import { useBackend, useLocalState, useSharedState } from '../backend';
+import { Box, Button, Divider, Input, NoticeBox, Section, Table, Tabs } from '../components';
import { Window } from '../layouts';
const MAX_SEARCH_RESULTS = 25;
diff --git a/tgui/packages/tgui/interfaces/CloningConsole.js b/tgui/packages/tgui/interfaces/CloningConsole.js
index b37df5fd9a..5f8a500805 100644
--- a/tgui/packages/tgui/interfaces/CloningConsole.js
+++ b/tgui/packages/tgui/interfaces/CloningConsole.js
@@ -1,4 +1,3 @@
-import { map } from 'common/collections';
import { useBackend } from '../backend';
import { Box, Button, Collapsible, NoticeBox, ProgressBar, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Colormate.js b/tgui/packages/tgui/interfaces/Colormate.js
index 02810f2943..0013d7f12a 100644
--- a/tgui/packages/tgui/interfaces/Colormate.js
+++ b/tgui/packages/tgui/interfaces/Colormate.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Button, Icon, NoticeBox, NumberInput, Section, Table, Tabs, Slider } from '../components';
+import { Button, Icon, NoticeBox, NumberInput, Section, Slider, Table, Tabs } from '../components';
import { Window } from '../layouts';
export const Colormate = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/CommunicationsConsole.js b/tgui/packages/tgui/interfaces/CommunicationsConsole.js
index 7ab796049e..afac8f835b 100644
--- a/tgui/packages/tgui/interfaces/CommunicationsConsole.js
+++ b/tgui/packages/tgui/interfaces/CommunicationsConsole.js
@@ -1,10 +1,11 @@
import { sortBy } from "common/collections";
import { capitalize } from "common/string";
+
import { useBackend, useLocalState } from "../backend";
-import { Blink, Box, Button, Dimmer, Flex, Icon, Input, Modal, Section, TextArea, LabeledList } from "../components";
+import { Blink, Box, Button, Dimmer, Flex, Icon, Input, LabeledList, Modal, Section, TextArea } from "../components";
+import { formatMoney } from '../format';
import { Window } from "../layouts";
import { sanitizeText } from "../sanitize";
-import { formatMoney } from '../format';
const STATE_BUYING_SHUTTLE = "buying_shuttle";
const STATE_CHANGING_STATUS = "changing_status";
diff --git a/tgui/packages/tgui/interfaces/ComponentPrinter.tsx b/tgui/packages/tgui/interfaces/ComponentPrinter.tsx
index 3a0c0a876e..c0363d0827 100644
--- a/tgui/packages/tgui/interfaces/ComponentPrinter.tsx
+++ b/tgui/packages/tgui/interfaces/ComponentPrinter.tsx
@@ -1,8 +1,9 @@
import { createSearch } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
-import { Material, MaterialAmount, MaterialFormatting, Materials, MATERIAL_KEYS } from './common/Materials';
-import { Window } from '../layouts';
import { Box, Button, Input, Section, Stack, Tabs } from '../components';
+import { Window } from '../layouts';
+import { Material, MATERIAL_KEYS, MaterialAmount, MaterialFormatting, Materials } from './common/Materials';
const CATEGORY_ALL = "All";
diff --git a/tgui/packages/tgui/interfaces/ComputerFabricator.js b/tgui/packages/tgui/interfaces/ComputerFabricator.js
index aa00e084a9..1e8eb204a1 100644
--- a/tgui/packages/tgui/interfaces/ComputerFabricator.js
+++ b/tgui/packages/tgui/interfaces/ComputerFabricator.js
@@ -1,4 +1,5 @@
import { multiline } from 'common/string';
+
import { useBackend } from '../backend';
import { Box, Button, Grid, Section, Table, Tooltip } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/CrewConsole.js b/tgui/packages/tgui/interfaces/CrewConsole.js
index ec9ec12ed6..1fbc9a3441 100644
--- a/tgui/packages/tgui/interfaces/CrewConsole.js
+++ b/tgui/packages/tgui/interfaces/CrewConsole.js
@@ -1,4 +1,3 @@
-import { sortBy } from 'common/collections';
import { useBackend } from '../backend';
import { Box, Button, ColorBox, Section, Table } from '../components';
import { COLORS } from '../constants';
diff --git a/tgui/packages/tgui/interfaces/CrewManifest.js b/tgui/packages/tgui/interfaces/CrewManifest.js
index 21ab5eece5..9b7c03316d 100644
--- a/tgui/packages/tgui/interfaces/CrewManifest.js
+++ b/tgui/packages/tgui/interfaces/CrewManifest.js
@@ -1,4 +1,5 @@
import { classes } from 'common/react';
+
import { useBackend } from "../backend";
import { Icon, Section, Table, Tooltip } from "../components";
import { Window } from "../layouts";
diff --git a/tgui/packages/tgui/interfaces/Cryo.js b/tgui/packages/tgui/interfaces/Cryo.js
index 9c3fcd7967..8682a93c6e 100644
--- a/tgui/packages/tgui/interfaces/Cryo.js
+++ b/tgui/packages/tgui/interfaces/Cryo.js
@@ -1,7 +1,7 @@
import { useBackend } from '../backend';
import { AnimatedNumber, Button, LabeledList, ProgressBar, Section } from '../components';
-import { BeakerContents } from './common/BeakerContents';
import { Window } from '../layouts';
+import { BeakerContents } from './common/BeakerContents';
const damageTypes = [
{
diff --git a/tgui/packages/tgui/interfaces/CryopodConsole.js b/tgui/packages/tgui/interfaces/CryopodConsole.js
index d0108e8c7c..988a088560 100644
--- a/tgui/packages/tgui/interfaces/CryopodConsole.js
+++ b/tgui/packages/tgui/interfaces/CryopodConsole.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Box, Button, LabeledList, NoticeBox, Section, Stack } from '../components';
+import { Button, LabeledList, NoticeBox, Section, Stack } from '../components';
import { Window } from '../layouts';
export const CryopodConsole = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/Crystallizer.js b/tgui/packages/tgui/interfaces/Crystallizer.js
index 2656720ca9..ff343bc520 100644
--- a/tgui/packages/tgui/interfaces/Crystallizer.js
+++ b/tgui/packages/tgui/interfaces/Crystallizer.js
@@ -1,7 +1,8 @@
-import { useBackend } from '../backend';
-import { AnimatedNumber, Button, Flex, Input, LabeledList, ProgressBar, Section, Table, NumberInput, Box } from '../components';
-import { getGasColor, getGasLabel } from '../constants';
import { toFixed } from 'common/math';
+
+import { useBackend } from '../backend';
+import { Box, Button, LabeledList, NumberInput, ProgressBar, Section } from '../components';
+import { getGasColor, getGasLabel } from '../constants';
import { Window } from '../layouts';
const logScale = value => Math.log2(16 + Math.max(0, value)) - 4;
diff --git a/tgui/packages/tgui/interfaces/CyborgBootDebug.js b/tgui/packages/tgui/interfaces/CyborgBootDebug.js
index f4bfe2ae0b..0fb3e58eab 100644
--- a/tgui/packages/tgui/interfaces/CyborgBootDebug.js
+++ b/tgui/packages/tgui/interfaces/CyborgBootDebug.js
@@ -1,4 +1,5 @@
import { multiline } from 'common/string';
+
import { useBackend } from '../backend';
import { Button, Input, LabeledList, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/DnaConsole.js b/tgui/packages/tgui/interfaces/DnaConsole.js
index 06cb2c61d9..1a3a16d0a7 100644
--- a/tgui/packages/tgui/interfaces/DnaConsole.js
+++ b/tgui/packages/tgui/interfaces/DnaConsole.js
@@ -3,6 +3,7 @@ import { flow } from 'common/fp';
import { classes } from 'common/react';
import { capitalize } from 'common/string';
import { Fragment } from 'inferno';
+
import { resolveAsset } from '../assets';
import { useBackend } from '../backend';
import { Box, Button, Collapsible, Dimmer, Divider, Dropdown, Flex, Icon, LabeledList, NumberInput, ProgressBar, Section } from '../components';
diff --git a/tgui/packages/tgui/interfaces/DogborgSleeper.js b/tgui/packages/tgui/interfaces/DogborgSleeper.js
index ddad8fe0ef..240f0e8e5b 100644
--- a/tgui/packages/tgui/interfaces/DogborgSleeper.js
+++ b/tgui/packages/tgui/interfaces/DogborgSleeper.js
@@ -1,6 +1,7 @@
-import { useBackend } from '../backend';
-import { Box, Section, LabeledList, Button, ProgressBar, NoticeBox } from '../components';
import { Fragment } from 'inferno';
+
+import { useBackend } from '../backend';
+import { Box, Button, LabeledList, NoticeBox, ProgressBar, Section } from '../components';
import { Window } from '../layouts';
const damageTypes = [
diff --git a/tgui/packages/tgui/interfaces/EightBallVote.js b/tgui/packages/tgui/interfaces/EightBallVote.js
index f8ce25f6f8..accddc73a5 100644
--- a/tgui/packages/tgui/interfaces/EightBallVote.js
+++ b/tgui/packages/tgui/interfaces/EightBallVote.js
@@ -1,6 +1,7 @@
-import { useBackend } from '../backend';
-import { Box, Button, Grid, Section, NoticeBox } from '../components';
import { toTitleCase } from 'common/string';
+
+import { useBackend } from '../backend';
+import { Box, Button, Grid, NoticeBox, Section } from '../components';
import { Window } from '../layouts';
export const EightBallVote = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/Electropack.js b/tgui/packages/tgui/interfaces/Electropack.js
index 5778048f45..b9a4907522 100644
--- a/tgui/packages/tgui/interfaces/Electropack.js
+++ b/tgui/packages/tgui/interfaces/Electropack.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { Button, LabeledList, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/EngravedMessage.js b/tgui/packages/tgui/interfaces/EngravedMessage.js
index 89c948b493..6ab1de8973 100644
--- a/tgui/packages/tgui/interfaces/EngravedMessage.js
+++ b/tgui/packages/tgui/interfaces/EngravedMessage.js
@@ -1,4 +1,5 @@
import { decodeHtmlEntities } from 'common/string';
+
import { useBackend } from '../backend';
import { Box, Button, LabeledList, Section, Stack } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ExodroneConsole.tsx b/tgui/packages/tgui/interfaces/ExodroneConsole.tsx
index b70fc36920..53f37f7fc0 100644
--- a/tgui/packages/tgui/interfaces/ExodroneConsole.tsx
+++ b/tgui/packages/tgui/interfaces/ExodroneConsole.tsx
@@ -1,11 +1,12 @@
+import { capitalize } from 'common/string';
+import { Fragment } from 'inferno';
+
+import { resolveAsset } from '../assets';
+import nt_logo from '../assets/bg-nanotrasen.svg';
import { useBackend, useLocalState } from '../backend';
import { BlockQuote, Box, Button, Dimmer, Icon, LabeledList, Modal, ProgressBar, Section, Stack } from '../components';
-import { Window } from '../layouts';
-import { resolveAsset } from '../assets';
import { formatTime } from '../format';
-import { capitalize } from 'common/string';
-import nt_logo from '../assets/bg-nanotrasen.svg';
-import { Fragment } from 'inferno';
+import { Window } from '../layouts';
type ExplorationEventData = {
name: string,
diff --git a/tgui/packages/tgui/interfaces/ExoscannerConsole.tsx b/tgui/packages/tgui/interfaces/ExoscannerConsole.tsx
index af165ce02c..1442cae6e0 100644
--- a/tgui/packages/tgui/interfaces/ExoscannerConsole.tsx
+++ b/tgui/packages/tgui/interfaces/ExoscannerConsole.tsx
@@ -1,7 +1,7 @@
import { useBackend } from '../backend';
-import { BlockQuote, Box, Button, Flex, Icon, Modal, Section, LabeledList, NoticeBox, Stack } from '../components';
-import { Window } from '../layouts';
+import { BlockQuote, Box, Button, Flex, Icon, LabeledList, Modal, NoticeBox, Section, Stack } from '../components';
import { formatTime } from '../format';
+import { Window } from '../layouts';
type SiteData = {
diff --git a/tgui/packages/tgui/interfaces/ExosuitControlConsole.js b/tgui/packages/tgui/interfaces/ExosuitControlConsole.js
index 18d25a4c66..7080242ae9 100644
--- a/tgui/packages/tgui/interfaces/ExosuitControlConsole.js
+++ b/tgui/packages/tgui/interfaces/ExosuitControlConsole.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { AnimatedNumber, Box, Button, LabeledList, NoticeBox, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ExosuitFabricator.js b/tgui/packages/tgui/interfaces/ExosuitFabricator.js
index cc2a685b56..5657257dce 100644
--- a/tgui/packages/tgui/interfaces/ExosuitFabricator.js
+++ b/tgui/packages/tgui/interfaces/ExosuitFabricator.js
@@ -1,11 +1,12 @@
import { uniqBy } from 'common/collections';
import { createSearch } from 'common/string';
import { Fragment } from 'inferno';
+
import { useBackend, useSharedState } from '../backend';
import { Box, Button, Icon, Input, ProgressBar, Section, Stack } from '../components';
-import { Materials, MaterialAmount, MaterialFormatting } from './common/Materials';
import { formatMoney } from '../format';
import { Window } from '../layouts';
+import { MaterialAmount, MaterialFormatting, Materials } from './common/Materials';
const COLOR_NONE = 0;
const COLOR_AVERAGE = 1;
diff --git a/tgui/packages/tgui/interfaces/ExperimentConfigure.js b/tgui/packages/tgui/interfaces/ExperimentConfigure.js
index 22993558c1..289b658110 100644
--- a/tgui/packages/tgui/interfaces/ExperimentConfigure.js
+++ b/tgui/packages/tgui/interfaces/ExperimentConfigure.js
@@ -1,8 +1,9 @@
-import { Window } from '../layouts';
-import { useBackend } from '../backend';
-import { Section, Box, Button, Flex, Icon, LabeledList, Table, Tooltip } from '../components';
import { sortBy } from 'common/collections';
+import { useBackend } from '../backend';
+import { Box, Button, Flex, Icon, LabeledList, Section, Table, Tooltip } from '../components';
+import { Window } from '../layouts';
+
const ExperimentStages = props => {
return (
diff --git a/tgui/packages/tgui/interfaces/Filteriffic.js b/tgui/packages/tgui/interfaces/Filteriffic.js
index cf93763471..d91e9197bb 100644
--- a/tgui/packages/tgui/interfaces/Filteriffic.js
+++ b/tgui/packages/tgui/interfaces/Filteriffic.js
@@ -1,5 +1,6 @@
import { map } from 'common/collections';
import { toFixed } from 'common/math';
+
import { numberOfDecimalDigits } from '../../common/math';
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Collapsible, ColorBox, Dropdown, Input, LabeledList, NoticeBox, NumberInput, Section } from '../components';
diff --git a/tgui/packages/tgui/interfaces/FishCatalog.js b/tgui/packages/tgui/interfaces/FishCatalog.js
index 33e6544a5c..8c1712d03d 100644
--- a/tgui/packages/tgui/interfaces/FishCatalog.js
+++ b/tgui/packages/tgui/interfaces/FishCatalog.js
@@ -1,10 +1,11 @@
import { sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { classes } from 'common/react';
+import { capitalize } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, LabeledList, Section, Stack } from '../components';
import { Window } from '../layouts';
-import { capitalize } from 'common/string';
export const FishCatalog = (props, context) => {
const { act, data } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/ForbiddenLore.js b/tgui/packages/tgui/interfaces/ForbiddenLore.js
index 52699fc780..fdd2896a36 100644
--- a/tgui/packages/tgui/interfaces/ForbiddenLore.js
+++ b/tgui/packages/tgui/interfaces/ForbiddenLore.js
@@ -1,5 +1,6 @@
import { sortBy } from 'common/collections';
import { flow } from 'common/fp';
+
import { useBackend } from '../backend';
import { Box, Button, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ForceEvent.tsx b/tgui/packages/tgui/interfaces/ForceEvent.tsx
index a486f52482..1c1b8a732a 100644
--- a/tgui/packages/tgui/interfaces/ForceEvent.tsx
+++ b/tgui/packages/tgui/interfaces/ForceEvent.tsx
@@ -1,6 +1,7 @@
import { paginate } from 'common/collections';
+
import { useBackend, useLocalState } from '../backend';
-import { Stack, Button, Icon, Input, Section, Tabs } from '../components';
+import { Button, Icon, Input, Section, Stack, Tabs } from '../components';
import { Window } from '../layouts';
const CATEGORY_PAGE_ITEMS = 4;
diff --git a/tgui/packages/tgui/interfaces/GenitalArousalPermission.tsx b/tgui/packages/tgui/interfaces/GenitalArousalPermission.tsx
index d3dcb5ee24..89db0cf1f7 100644
--- a/tgui/packages/tgui/interfaces/GenitalArousalPermission.tsx
+++ b/tgui/packages/tgui/interfaces/GenitalArousalPermission.tsx
@@ -1,6 +1,6 @@
/* eslint-disable indent */
import { useBackend } from "../backend";
-import { Button, Flex, Section, Tooltip, Box } from "../components";
+import { Box, Button, Flex, Section, Tooltip } from "../components";
import { Window } from "../layouts";
type ChastityHypno = {
diff --git a/tgui/packages/tgui/interfaces/GenitalConfig.tsx b/tgui/packages/tgui/interfaces/GenitalConfig.tsx
index 6cb9d1cd14..3099558f5d 100644
--- a/tgui/packages/tgui/interfaces/GenitalConfig.tsx
+++ b/tgui/packages/tgui/interfaces/GenitalConfig.tsx
@@ -2,8 +2,9 @@
import { filter } from 'common/collections';
import { flow } from 'common/fp';
import { createSearch } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
-import { BlockQuote, Button, LabeledList, Icon, NumberInput, Input, Section, Table, Tabs, Stack, ProgressBar, Divider } from '../components';
+import { Button, Input, NumberInput, ProgressBar, Section, Stack, Table, Tabs } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Gps.js b/tgui/packages/tgui/interfaces/Gps.js
index ebc21a7a51..a7372b1b9f 100644
--- a/tgui/packages/tgui/interfaces/Gps.js
+++ b/tgui/packages/tgui/interfaces/Gps.js
@@ -2,6 +2,7 @@ import { map, sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { clamp } from 'common/math';
import { vecLength, vecSubtract } from 'common/vector';
+
import { useBackend } from '../backend';
import { Box, Button, Icon, LabeledList, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/GreyscaleModifyMenu.tsx b/tgui/packages/tgui/interfaces/GreyscaleModifyMenu.tsx
index b09b7eb07e..45ca49f87f 100644
--- a/tgui/packages/tgui/interfaces/GreyscaleModifyMenu.tsx
+++ b/tgui/packages/tgui/interfaces/GreyscaleModifyMenu.tsx
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Box, Button, ColorBox, Flex, Stack, Icon, Input, LabeledList, Section, Table, Divider } from '../components';
+import { Box, Button, ColorBox, Divider, Flex, Icon, Input, LabeledList, Section, Stack, Table } from '../components';
import { Window } from '../layouts';
type ColorEntry = {
diff --git a/tgui/packages/tgui/interfaces/Hypertorus.js b/tgui/packages/tgui/interfaces/Hypertorus.js
index 6ec2c524e0..ab3a196922 100644
--- a/tgui/packages/tgui/interfaces/Hypertorus.js
+++ b/tgui/packages/tgui/interfaces/Hypertorus.js
@@ -1,8 +1,9 @@
import { filter, sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
-import { Button, LabeledList, NumberInput, ProgressBar, Section, Stack, Box } from '../components';
+import { Box, Button, LabeledList, NumberInput, ProgressBar, Section, Stack } from '../components';
import { getGasColor, getGasLabel } from '../constants';
import { formatSiBaseTenUnit, formatSiUnit } from '../format';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/InfraredEmitter.js b/tgui/packages/tgui/interfaces/InfraredEmitter.js
index a81e5ed767..3c18bf30ad 100644
--- a/tgui/packages/tgui/interfaces/InfraredEmitter.js
+++ b/tgui/packages/tgui/interfaces/InfraredEmitter.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Button, Section, LabeledList } from '../components';
+import { Button, LabeledList, Section } from '../components';
import { Window } from '../layouts';
export const InfraredEmitter = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/BasicInput.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/BasicInput.js
index 4cc9de3e57..54c5a2268b 100644
--- a/tgui/packages/tgui/interfaces/IntegratedCircuit/BasicInput.js
+++ b/tgui/packages/tgui/interfaces/IntegratedCircuit/BasicInput.js
@@ -1,4 +1,4 @@
-import { Stack, Button } from '../../components';
+import { Button, Stack } from '../../components';
export const BasicInput = (props, context) => {
const { children, name, setValue, defaultValue, value } = props;
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/CircuitInfo.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/CircuitInfo.js
index 8fd1263b7a..8f71ac33e8 100644
--- a/tgui/packages/tgui/interfaces/IntegratedCircuit/CircuitInfo.js
+++ b/tgui/packages/tgui/interfaces/IntegratedCircuit/CircuitInfo.js
@@ -1,4 +1,4 @@
-import { Button, Section, Stack, Box } from '../../components';
+import { Box, Button, Stack } from '../../components';
export const CircuitInfo = (props, context) => {
const {
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/Connections.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/Connections.js
index 42f5113581..1f7da1bf11 100644
--- a/tgui/packages/tgui/interfaces/IntegratedCircuit/Connections.js
+++ b/tgui/packages/tgui/interfaces/IntegratedCircuit/Connections.js
@@ -1,6 +1,6 @@
+import { classes } from '../../../common/react';
import { CSS_COLORS } from '../../constants';
import { SVG_CURVE_INTENSITY } from './constants';
-import { classes } from '../../../common/react';
export const Connections = (props, context) => {
const { connections } = props;
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayName.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayName.js
index b281cbd00a..72999ddce6 100644
--- a/tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayName.js
+++ b/tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayName.js
@@ -1,7 +1,6 @@
import { useBackend } from '../../backend';
import { Box, Button, Flex } from '../../components';
-import { FUNDAMENTAL_DATA_TYPES, DATATYPE_DISPLAY_HANDLERS } from './FundamentalTypes';
-import { NULL_REF } from './constants';
+import { DATATYPE_DISPLAY_HANDLERS, FUNDAMENTAL_DATA_TYPES } from './FundamentalTypes';
export const DisplayName = (props, context) => {
const { act } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/FundamentalTypes.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/FundamentalTypes.js
index d895e608e7..203c0473c9 100644
--- a/tgui/packages/tgui/interfaces/IntegratedCircuit/FundamentalTypes.js
+++ b/tgui/packages/tgui/interfaces/IntegratedCircuit/FundamentalTypes.js
@@ -1,5 +1,5 @@
+import { Button, Dropdown, Input, NumberInput, Stack } from '../../components';
import { BasicInput } from './BasicInput';
-import { NumberInput, Button, Stack, Input, Dropdown, Box } from '../../components';
export const FUNDAMENTAL_DATA_TYPES = {
'string': (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/ObjectComponent.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/ObjectComponent.js
index 08b7e75094..8a4d44c985 100644
--- a/tgui/packages/tgui/interfaces/IntegratedCircuit/ObjectComponent.js
+++ b/tgui/packages/tgui/interfaces/IntegratedCircuit/ObjectComponent.js
@@ -1,10 +1,11 @@
+import { Component } from 'inferno';
+
+import { shallowDiffers } from '../../../common/react';
import { useBackend } from '../../backend';
import {
Box,
- Stack, Button, Dropdown,
-} from '../../components';
-import { Component } from 'inferno';
-import { shallowDiffers } from '../../../common/react';
+Button,
+ Stack } from '../../components';
import { ABSOLUTE_Y_OFFSET } from './constants';
import { Port } from "./Port";
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/Port.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/Port.js
index 305a3c30d0..28480c5e9d 100644
--- a/tgui/packages/tgui/interfaces/IntegratedCircuit/Port.js
+++ b/tgui/packages/tgui/interfaces/IntegratedCircuit/Port.js
@@ -1,8 +1,9 @@
-import {
- Stack,
- Icon,
-} from '../../components';
import { Component, createRef } from 'inferno';
+
+import {
+ Icon,
+ Stack,
+} from '../../components';
import { DisplayName } from "./DisplayName";
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/VariableMenu.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/VariableMenu.js
index ee7d19f5a7..545d527d06 100644
--- a/tgui/packages/tgui/interfaces/IntegratedCircuit/VariableMenu.js
+++ b/tgui/packages/tgui/interfaces/IntegratedCircuit/VariableMenu.js
@@ -1,12 +1,11 @@
import { useLocalState } from '../../backend';
import {
Box,
- Stack,
- Icon,
- Section,
Button,
- Input,
Dropdown,
+ Input,
+ Section,
+ Stack,
} from '../../components';
export const VariableMenu = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/index.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/index.js
index a2e027e9d0..7ed4e016b3 100644
--- a/tgui/packages/tgui/interfaces/IntegratedCircuit/index.js
+++ b/tgui/packages/tgui/interfaces/IntegratedCircuit/index.js
@@ -1,18 +1,18 @@
+import { Component } from 'inferno';
+
+import { resolveAsset } from '../../assets';
import { useBackend } from '../../backend';
import {
- Input,
- InfinitePlane,
- Stack,
Box,
Button,
- Section,
+ InfinitePlane,
+ Input,
+ Stack,
} from '../../components';
-import { Component } from 'inferno';
-import { Layout, Window } from '../../layouts';
-import { resolveAsset } from '../../assets';
+import { Window } from '../../layouts';
import { CircuitInfo } from './CircuitInfo';
-import { NULL_REF, ABSOLUTE_Y_OFFSET, MOUSE_BUTTON_LEFT } from './constants';
import { Connections } from './Connections';
+import { ABSOLUTE_Y_OFFSET, MOUSE_BUTTON_LEFT } from './constants';
import { ObjectComponent } from './ObjectComponent';
import { VariableMenu } from './VariableMenu';
diff --git a/tgui/packages/tgui/interfaces/Interview.js b/tgui/packages/tgui/interfaces/Interview.js
index 143a4d2e4d..9ba61d497f 100644
--- a/tgui/packages/tgui/interfaces/Interview.js
+++ b/tgui/packages/tgui/interfaces/Interview.js
@@ -1,12 +1,12 @@
+import { useBackend } from '../backend';
import {
- Button,
- TextArea,
- Section,
BlockQuote,
+ Button,
NoticeBox,
+ Section,
+ TextArea,
} from '../components';
import { Window } from '../layouts';
-import { useBackend } from '../backend';
export const Interview = (props, context) => {
const { act, data } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/InterviewManager.js b/tgui/packages/tgui/interfaces/InterviewManager.js
index ef4d8b54c9..fb95970467 100644
--- a/tgui/packages/tgui/interfaces/InterviewManager.js
+++ b/tgui/packages/tgui/interfaces/InterviewManager.js
@@ -1,6 +1,6 @@
+import { useBackend } from '../backend';
import { Button, Section } from '../components';
import { Window } from '../layouts';
-import { useBackend } from '../backend';
export const InterviewManager = (props, context) => {
const { act, data } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/Jukebox.js b/tgui/packages/tgui/interfaces/Jukebox.js
index 99ddf90be0..50b2f0dd6b 100644
--- a/tgui/packages/tgui/interfaces/Jukebox.js
+++ b/tgui/packages/tgui/interfaces/Jukebox.js
@@ -1,7 +1,8 @@
import { sortBy } from 'common/collections';
import { flow } from 'common/fp';
+
import { useBackend } from '../backend';
-import { Box, Button, Dropdown, Section, Knob, LabeledControls, LabeledList, Stack, Tabs } from '../components';
+import { Box, Button, Dropdown, Knob, LabeledControls, LabeledList, Section, Stack, Tabs } from '../components';
import { Window } from '../layouts';
export const Jukebox = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/LaborClaimConsole.js b/tgui/packages/tgui/interfaces/LaborClaimConsole.js
index 4b53968506..337fd5d472 100644
--- a/tgui/packages/tgui/interfaces/LaborClaimConsole.js
+++ b/tgui/packages/tgui/interfaces/LaborClaimConsole.js
@@ -1,4 +1,5 @@
import { toTitleCase } from 'common/string';
+
import { useBackend } from '../backend';
import { Box, Button, LabeledList, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Limbgrower.js b/tgui/packages/tgui/interfaces/Limbgrower.js
index 549865f6c3..2fe4f07f9c 100644
--- a/tgui/packages/tgui/interfaces/Limbgrower.js
+++ b/tgui/packages/tgui/interfaces/Limbgrower.js
@@ -1,5 +1,5 @@
import { useBackend, useSharedState } from '../backend';
-import { Box, Button, Dimmer, Icon, LabeledList, Section, Tabs, ProgressBar } from '../components';
+import { Box, Button, Dimmer, Icon, LabeledList, ProgressBar, Section, Tabs } from '../components';
import { Window } from '../layouts';
export const Limbgrower = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/ListInputModal.tsx b/tgui/packages/tgui/interfaces/ListInputModal.tsx
index ddfa50062a..337a333971 100644
--- a/tgui/packages/tgui/interfaces/ListInputModal.tsx
+++ b/tgui/packages/tgui/interfaces/ListInputModal.tsx
@@ -1,9 +1,9 @@
-import { Loader } from './common/Loader';
-import { InputButtons } from './common/InputButtons';
-import { Button, Input, Section, Stack } from '../components';
+import { KEY_A, KEY_DOWN, KEY_ENTER, KEY_ESCAPE, KEY_UP, KEY_Z } from '../../common/keycodes';
import { useBackend, useLocalState } from '../backend';
-import { KEY_A, KEY_DOWN, KEY_ESCAPE, KEY_ENTER, KEY_UP, KEY_Z } from '../../common/keycodes';
+import { Button, Input, Section, Stack } from '../components';
import { Window } from '../layouts';
+import { InputButtons } from './common/InputButtons';
+import { Loader } from './common/Loader';
type ListInputData = {
init_value: string;
diff --git a/tgui/packages/tgui/interfaces/MODpaint.js b/tgui/packages/tgui/interfaces/MODpaint.js
index 9a329688eb..13bbf76132 100644
--- a/tgui/packages/tgui/interfaces/MODpaint.js
+++ b/tgui/packages/tgui/interfaces/MODpaint.js
@@ -1,8 +1,9 @@
-import { useBackend } from '../backend';
-import { Box, Stack, Section, ByondUi, Slider, Flex, Button } from '../components';
-import { Window } from '../layouts';
import { capitalize } from 'common/string';
+import { useBackend } from '../backend';
+import { Box, Button, ByondUi, Flex, Section, Slider, Stack } from '../components';
+import { Window } from '../layouts';
+
const colorToMatrix = (param) => {
switch (param) {
case 'red':
diff --git a/tgui/packages/tgui/interfaces/MODsuit.js b/tgui/packages/tgui/interfaces/MODsuit.js
index 7975facad6..2457cb7e16 100644
--- a/tgui/packages/tgui/interfaces/MODsuit.js
+++ b/tgui/packages/tgui/interfaces/MODsuit.js
@@ -1,5 +1,5 @@
import { useBackend, useLocalState } from '../backend';
-import { Button, ColorBox, LabeledList, ProgressBar, Section, Collapsible, Box, Icon, Stack, Table, Dimmer, NumberInput, Flex, AnimatedNumber, Dropdown } from '../components';
+import { AnimatedNumber, Box, Button, Collapsible, ColorBox, Dimmer, Dropdown, Flex, Icon, LabeledList, NumberInput, ProgressBar, Section, Stack, Table } from '../components';
import { Window } from '../layouts';
const ConfigureNumberEntry = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/MafiaPanel.js b/tgui/packages/tgui/interfaces/MafiaPanel.js
index 1a09f45843..2d288f9fec 100644
--- a/tgui/packages/tgui/interfaces/MafiaPanel.js
+++ b/tgui/packages/tgui/interfaces/MafiaPanel.js
@@ -1,5 +1,6 @@
import { classes } from 'common/react';
import { multiline } from 'common/string';
+
import { useBackend } from '../backend';
import { Box, Button, Collapsible, Flex, NoticeBox, Section, Stack, TimeDisplay } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/MassDriverControl.js b/tgui/packages/tgui/interfaces/MassDriverControl.js
index 7f7136bcbe..86f8a954bb 100644
--- a/tgui/packages/tgui/interfaces/MassDriverControl.js
+++ b/tgui/packages/tgui/interfaces/MassDriverControl.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Box, Button, Section, LabeledList, NumberInput } from '../components';
+import { Box, Button, LabeledList, NumberInput, Section } from '../components';
import { Window } from '../layouts';
export const MassDriverControl = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/MassSpec.js b/tgui/packages/tgui/interfaces/MassSpec.js
index 310400a509..caf3dadb39 100644
--- a/tgui/packages/tgui/interfaces/MassSpec.js
+++ b/tgui/packages/tgui/interfaces/MassSpec.js
@@ -1,4 +1,5 @@
import { round } from 'common/math';
+
import { useBackend } from '../backend';
import { Box, Button, Dimmer, Icon, Section, Slider, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/MechpadConsole.js b/tgui/packages/tgui/interfaces/MechpadConsole.js
index c8eb904735..3beb6504a1 100644
--- a/tgui/packages/tgui/interfaces/MechpadConsole.js
+++ b/tgui/packages/tgui/interfaces/MechpadConsole.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Box, Button, Divider, Flex, Grid, Input, NoticeBox, NumberInput, Section } from '../components';
+import { Box, Button, Divider, Flex, Input, NoticeBox, Section } from '../components';
import { Window } from '../layouts';
export const MechpadControl = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/MedicalKiosk.js b/tgui/packages/tgui/interfaces/MedicalKiosk.js
index 19e38c78fb..d8a57b2efd 100644
--- a/tgui/packages/tgui/interfaces/MedicalKiosk.js
+++ b/tgui/packages/tgui/interfaces/MedicalKiosk.js
@@ -1,4 +1,5 @@
import { multiline } from 'common/string';
+
import { useBackend, useSharedState } from '../backend';
import { AnimatedNumber, Box, Button, Flex, Icon, LabeledList, ProgressBar, Section, Stack } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/MiningVendor.js b/tgui/packages/tgui/interfaces/MiningVendor.js
index 98b0db1a28..7edbb9777a 100644
--- a/tgui/packages/tgui/interfaces/MiningVendor.js
+++ b/tgui/packages/tgui/interfaces/MiningVendor.js
@@ -1,4 +1,5 @@
import { classes } from 'common/react';
+
import { useBackend } from '../backend';
import { Box, Button, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/MobInteraction.tsx b/tgui/packages/tgui/interfaces/MobInteraction.tsx
index 5e3aa9ad42..98e9c19352 100644
--- a/tgui/packages/tgui/interfaces/MobInteraction.tsx
+++ b/tgui/packages/tgui/interfaces/MobInteraction.tsx
@@ -1,10 +1,11 @@
-import { filter, map, sortBy } from 'common/collections';
+import { filter, sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { clamp } from 'common/math';
import { createSearch } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
-import { BlockQuote, Button, Flex, LabeledList, Icon, Input, Section, Table, Tabs, Stack, ProgressBar, Divider } from '../components';
-import { TableCell, TableRow } from '../components/Table';
+import { BlockQuote, Button, Flex, Icon, Input, LabeledList, ProgressBar, Section, Stack, Table, Tabs } from '../components';
+import { TableCell } from '../components/Table';
import { Window } from '../layouts';
type HeaderInfo = {
diff --git a/tgui/packages/tgui/interfaces/NaniteChamberControl.js b/tgui/packages/tgui/interfaces/NaniteChamberControl.js
index 9088db9486..c6756be569 100644
--- a/tgui/packages/tgui/interfaces/NaniteChamberControl.js
+++ b/tgui/packages/tgui/interfaces/NaniteChamberControl.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend } from '../backend';
import { Box, Button, Collapsible, Grid, LabeledList, NoticeBox, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/NaniteCloudControl.js b/tgui/packages/tgui/interfaces/NaniteCloudControl.js
index 3fe62afc49..0eca464e1b 100644
--- a/tgui/packages/tgui/interfaces/NaniteCloudControl.js
+++ b/tgui/packages/tgui/interfaces/NaniteCloudControl.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend } from '../backend';
import { Box, Button, Collapsible, Grid, LabeledList, NoticeBox, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/NaniteProgramHub.js b/tgui/packages/tgui/interfaces/NaniteProgramHub.js
index fa3e59a1de..dc578a0c8e 100644
--- a/tgui/packages/tgui/interfaces/NaniteProgramHub.js
+++ b/tgui/packages/tgui/interfaces/NaniteProgramHub.js
@@ -1,5 +1,6 @@
import { map } from 'common/collections';
import { Fragment } from 'inferno';
+
import { useBackend, useSharedState } from '../backend';
import { Button, Flex, LabeledList, NoticeBox, Section, Tabs } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/NaniteProgrammer.js b/tgui/packages/tgui/interfaces/NaniteProgrammer.js
index 9f85a94a27..87d9a85b2e 100644
--- a/tgui/packages/tgui/interfaces/NaniteProgrammer.js
+++ b/tgui/packages/tgui/interfaces/NaniteProgrammer.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend } from '../backend';
import { Button, Dropdown, Grid, Input, LabeledList, NoticeBox, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/NaniteRemote.js b/tgui/packages/tgui/interfaces/NaniteRemote.js
index 3f911074c0..318d827dbe 100644
--- a/tgui/packages/tgui/interfaces/NaniteRemote.js
+++ b/tgui/packages/tgui/interfaces/NaniteRemote.js
@@ -1,6 +1,7 @@
import { Fragment } from 'inferno';
+
import { useBackend } from '../backend';
-import { Button, LabeledList, NumberInput, Section, NoticeBox, Input, Table } from '../components';
+import { Button, Input, LabeledList, NoticeBox, NumberInput, Section, Table } from '../components';
import { Window } from '../layouts';
export const NaniteRemote = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/NotificationPreferences.js b/tgui/packages/tgui/interfaces/NotificationPreferences.js
index bb0306e33c..97b13b21d3 100644
--- a/tgui/packages/tgui/interfaces/NotificationPreferences.js
+++ b/tgui/packages/tgui/interfaces/NotificationPreferences.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Section, Button } from '../components';
+import { Button, Section } from '../components';
import { Window } from '../layouts';
export const NotificationPreferences = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/NtnetRelay.js b/tgui/packages/tgui/interfaces/NtnetRelay.js
index b41723edad..5df8377418 100644
--- a/tgui/packages/tgui/interfaces/NtnetRelay.js
+++ b/tgui/packages/tgui/interfaces/NtnetRelay.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Box, Button, ProgressBar, Section, AnimatedNumber } from '../components';
+import { AnimatedNumber, Box, Button, ProgressBar, Section } from '../components';
import { Window } from '../layouts';
export const NtnetRelay = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/NtosAtmos.js b/tgui/packages/tgui/interfaces/NtosAtmos.js
index 3d357ab7cc..3236c72ec4 100644
--- a/tgui/packages/tgui/interfaces/NtosAtmos.js
+++ b/tgui/packages/tgui/interfaces/NtosAtmos.js
@@ -1,6 +1,7 @@
import { filter, sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { LabeledList, ProgressBar, Section } from '../components';
import { getGasColor, getGasLabel } from '../constants';
diff --git a/tgui/packages/tgui/interfaces/NtosCard.js b/tgui/packages/tgui/interfaces/NtosCard.js
index abdfb21e92..60c0380bae 100644
--- a/tgui/packages/tgui/interfaces/NtosCard.js
+++ b/tgui/packages/tgui/interfaces/NtosCard.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Flex, Input, NoticeBox, Section, Tabs } from '../components';
import { NtosWindow } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/NtosCargo.js b/tgui/packages/tgui/interfaces/NtosCargo.js
index b5cf7392f9..5a99ec718a 100644
--- a/tgui/packages/tgui/interfaces/NtosCargo.js
+++ b/tgui/packages/tgui/interfaces/NtosCargo.js
@@ -1,5 +1,5 @@
-import { CargoContent } from './Cargo.js';
import { NtosWindow } from '../layouts';
+import { CargoContent } from './Cargo.js';
export const NtosCargo = (props, context) => {
return (
diff --git a/tgui/packages/tgui/interfaces/NtosCrewManifest.js b/tgui/packages/tgui/interfaces/NtosCrewManifest.js
index 11239f365a..50cad6c868 100644
--- a/tgui/packages/tgui/interfaces/NtosCrewManifest.js
+++ b/tgui/packages/tgui/interfaces/NtosCrewManifest.js
@@ -1,4 +1,5 @@
import { map } from 'common/collections';
+
import { useBackend } from '../backend';
import { Button, Section, Table } from '../components';
import { NtosWindow } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/NtosJobManager.js b/tgui/packages/tgui/interfaces/NtosJobManager.js
index d8ca2d94b0..f83e679bde 100644
--- a/tgui/packages/tgui/interfaces/NtosJobManager.js
+++ b/tgui/packages/tgui/interfaces/NtosJobManager.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Button, Section, Table, NoticeBox, Dimmer, Box } from '../components';
+import { Box, Button, Dimmer, NoticeBox, Section, Table } from '../components';
import { NtosWindow } from '../layouts';
export const NtosJobManager = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/NtosNetDownloader.js b/tgui/packages/tgui/interfaces/NtosNetDownloader.js
index 287b5b8ba8..6fd4896cee 100644
--- a/tgui/packages/tgui/interfaces/NtosNetDownloader.js
+++ b/tgui/packages/tgui/interfaces/NtosNetDownloader.js
@@ -1,8 +1,9 @@
-import { scale, toFixed } from 'common/math';
-import { useBackend, useLocalState } from '../backend';
-import { Box, Button, Stack, Icon, LabeledList, NoticeBox, ProgressBar, Section, Tabs } from '../components';
-import { flow } from 'common/fp';
import { filter, sortBy } from 'common/collections';
+import { flow } from 'common/fp';
+import { scale, toFixed } from 'common/math';
+
+import { useBackend, useLocalState } from '../backend';
+import { Box, Button, Icon, LabeledList, NoticeBox, ProgressBar, Section, Stack, Tabs } from '../components';
import { NtosWindow } from '../layouts';
export const NtosNetDownloader = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/NtosRadar.js b/tgui/packages/tgui/interfaces/NtosRadar.js
index 8662499e78..ebd4227f66 100644
--- a/tgui/packages/tgui/interfaces/NtosRadar.js
+++ b/tgui/packages/tgui/interfaces/NtosRadar.js
@@ -1,4 +1,5 @@
import { classes } from 'common/react';
+
import { resolveAsset } from '../assets';
import { useBackend } from '../backend';
import { Box, Button, Flex, Icon, NoticeBox, Section } from '../components';
diff --git a/tgui/packages/tgui/interfaces/NtosRbmkStats.js b/tgui/packages/tgui/interfaces/NtosRbmkStats.js
index 9d44e0b9e9..d0b4ba03db 100644
--- a/tgui/packages/tgui/interfaces/NtosRbmkStats.js
+++ b/tgui/packages/tgui/interfaces/NtosRbmkStats.js
@@ -1,11 +1,7 @@
-import { map, sortBy } from 'common/collections';
-import { flow } from 'common/fp';
-import { toFixed } from 'common/math';
-import { pureComponentHooks } from 'common/react';
-import { Component, Fragment } from 'inferno';
-import { Box, Button, Chart, ColorBox, Flex, Icon, LabeledList, ProgressBar, Section, Table } from '../components';
+
+import { useBackend } from '../backend';
+import { Button, Chart, ProgressBar, Section } from '../components';
import { NtosWindow } from '../layouts';
-import { useBackend, useLocalState } from '../backend';
export const NtosRbmkStats = (props, context) => {
const { act, data } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/NtosRequestKiosk.js b/tgui/packages/tgui/interfaces/NtosRequestKiosk.js
index 13178114f2..cd7ff5ff27 100644
--- a/tgui/packages/tgui/interfaces/NtosRequestKiosk.js
+++ b/tgui/packages/tgui/interfaces/NtosRequestKiosk.js
@@ -1,5 +1,5 @@
-import { RequestKioskContent } from './RequestKiosk';
import { NtosWindow } from '../layouts';
+import { RequestKioskContent } from './RequestKiosk';
export const NtosRequestKiosk = (props, context) => {
return (
diff --git a/tgui/packages/tgui/interfaces/NtosRevelation.js b/tgui/packages/tgui/interfaces/NtosRevelation.js
index 6431375011..d7d67ee7d6 100644
--- a/tgui/packages/tgui/interfaces/NtosRevelation.js
+++ b/tgui/packages/tgui/interfaces/NtosRevelation.js
@@ -1,5 +1,5 @@
-import { Section, Button, LabeledList } from '../components';
import { useBackend } from '../backend';
+import { Button, LabeledList, Section } from '../components';
import { NtosWindow } from '../layouts';
export const NtosRevelation = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/NtosSecurEye.js b/tgui/packages/tgui/interfaces/NtosSecurEye.js
index 8d4bc62745..fc8b040e3d 100644
--- a/tgui/packages/tgui/interfaces/NtosSecurEye.js
+++ b/tgui/packages/tgui/interfaces/NtosSecurEye.js
@@ -1,13 +1,8 @@
-import { filter, sortBy } from 'common/collections';
-import { flow } from 'common/fp';
-import { classes } from 'common/react';
-import { createSearch } from 'common/string';
-import { Fragment } from 'inferno';
-import { useBackend, useLocalState } from '../backend';
-import { Button, ByondUi, Input, Section } from '../components';
+
+import { useBackend } from '../backend';
+import { Button, ByondUi } from '../components';
import { NtosWindow } from '../layouts';
-import { prevNextCamera, selectCameras, CameraConsoleContent } from './CameraConsole';
-import { logger } from "../logging";
+import { CameraConsoleContent, prevNextCamera, selectCameras } from './CameraConsole';
export const NtosSecurEye = (props, context) => {
const { act, data, config } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/NtosSignaler.js b/tgui/packages/tgui/interfaces/NtosSignaler.js
index 5f948c8547..440273e99d 100644
--- a/tgui/packages/tgui/interfaces/NtosSignaler.js
+++ b/tgui/packages/tgui/interfaces/NtosSignaler.js
@@ -1,5 +1,5 @@
-import { SignalerContent } from './Signaler';
import { NtosWindow } from '../layouts';
+import { SignalerContent } from './Signaler';
export const NtosSignaler = (props, context) => {
return (
diff --git a/tgui/packages/tgui/interfaces/NtosTechweb.js b/tgui/packages/tgui/interfaces/NtosTechweb.js
index a7ff19c8f0..2eb6e063d2 100644
--- a/tgui/packages/tgui/interfaces/NtosTechweb.js
+++ b/tgui/packages/tgui/interfaces/NtosTechweb.js
@@ -1,6 +1,6 @@
-import { AppTechweb } from './Techweb.js';
-import { useBackend, useLocalState } from '../backend';
+import { useBackend } from '../backend';
import { createLogger } from '../logging';
+import { AppTechweb } from './Techweb.js';
const logger = createLogger('backend');
diff --git a/tgui/packages/tgui/interfaces/NuclearBomb.js b/tgui/packages/tgui/interfaces/NuclearBomb.js
index 0a4a3324b1..c2d291ecd3 100644
--- a/tgui/packages/tgui/interfaces/NuclearBomb.js
+++ b/tgui/packages/tgui/interfaces/NuclearBomb.js
@@ -1,4 +1,5 @@
import { classes } from 'common/react';
+
import { useBackend } from '../backend';
import { Box, Button, Flex, Grid, Icon } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/NumberInputModal.tsx b/tgui/packages/tgui/interfaces/NumberInputModal.tsx
index b662205a63..d953e999a9 100644
--- a/tgui/packages/tgui/interfaces/NumberInputModal.tsx
+++ b/tgui/packages/tgui/interfaces/NumberInputModal.tsx
@@ -1,9 +1,9 @@
-import { Loader } from './common/Loader';
-import { InputButtons } from './common/InputButtons';
import { KEY_ENTER, KEY_ESCAPE } from '../../common/keycodes';
import { useBackend, useLocalState } from '../backend';
import { Box, Button, RestrictedInput, Section, Stack } from '../components';
import { Window } from '../layouts';
+import { InputButtons } from './common/InputButtons';
+import { Loader } from './common/Loader';
type NumberInputData = {
init_value: number;
diff --git a/tgui/packages/tgui/interfaces/OperatingComputer.js b/tgui/packages/tgui/interfaces/OperatingComputer.js
index 068d85e3f0..074ca39405 100644
--- a/tgui/packages/tgui/interfaces/OperatingComputer.js
+++ b/tgui/packages/tgui/interfaces/OperatingComputer.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend, useSharedState } from '../backend';
import { AnimatedNumber, Button, LabeledList, NoticeBox, ProgressBar, Section, Tabs } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Orbit.js b/tgui/packages/tgui/interfaces/Orbit.js
index 0ade3eb716..e3964da80a 100644
--- a/tgui/packages/tgui/interfaces/Orbit.js
+++ b/tgui/packages/tgui/interfaces/Orbit.js
@@ -1,6 +1,7 @@
import { classes } from 'common/react';
import { createSearch } from 'common/string';
import { multiline } from 'common/string';
+
import { resolveAsset } from '../assets';
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Divider, Flex, Icon, Input, Section } from '../components';
diff --git a/tgui/packages/tgui/interfaces/OreBox.js b/tgui/packages/tgui/interfaces/OreBox.js
index e670a8beef..1cc4291f11 100644
--- a/tgui/packages/tgui/interfaces/OreBox.js
+++ b/tgui/packages/tgui/interfaces/OreBox.js
@@ -1,6 +1,7 @@
import { toTitleCase } from 'common/string';
-import { Box, Button, Section, Table } from '../components';
+
import { useBackend } from '../backend';
+import { Box, Button, Section, Table } from '../components';
import { Window } from '../layouts';
export const OreBox = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/OreRedemptionMachine.js b/tgui/packages/tgui/interfaces/OreRedemptionMachine.js
index 05a2e8a993..1664536a47 100644
--- a/tgui/packages/tgui/interfaces/OreRedemptionMachine.js
+++ b/tgui/packages/tgui/interfaces/OreRedemptionMachine.js
@@ -1,4 +1,5 @@
import { toTitleCase } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
import { BlockQuote, Box, Button, NumberInput, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/OrionGame.js b/tgui/packages/tgui/interfaces/OrionGame.js
index e4902bcfe3..8824cb56b2 100644
--- a/tgui/packages/tgui/interfaces/OrionGame.js
+++ b/tgui/packages/tgui/interfaces/OrionGame.js
@@ -1,6 +1,5 @@
-import { multiline } from 'common/string';
-import { useBackend, useLocalState } from '../backend';
-import { Box, Button, Dimmer, Divider, Icon, NumberInput, Section, Stack } from '../components';
+import { useBackend } from '../backend';
+import { Box, Button, Divider, Section, Stack } from '../components';
import { Window } from '../layouts';
const buttonWidth = 2;
diff --git a/tgui/packages/tgui/interfaces/PaintingMachine.js b/tgui/packages/tgui/interfaces/PaintingMachine.js
index da2cc59963..30b17781a1 100644
--- a/tgui/packages/tgui/interfaces/PaintingMachine.js
+++ b/tgui/packages/tgui/interfaces/PaintingMachine.js
@@ -1,6 +1,6 @@
import { useBackend, useSharedState } from '../backend';
-import { Window } from '../layouts';
import { Button, Dropdown, Section, Stack } from '../components';
+import { Window } from '../layouts';
export const PaintingMachine = (props, context) => {
const { act, data } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/Pandemic.js b/tgui/packages/tgui/interfaces/Pandemic.js
index 3ff26951ef..a319339305 100644
--- a/tgui/packages/tgui/interfaces/Pandemic.js
+++ b/tgui/packages/tgui/interfaces/Pandemic.js
@@ -1,4 +1,5 @@
import { map } from 'common/collections';
+
import { useBackend } from '../backend';
import { Box, Button, Collapsible, Grid, Input, LabeledList, NoticeBox, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/PaperSheet.js b/tgui/packages/tgui/interfaces/PaperSheet.js
index f9bf30fa6c..4d56aadd21 100644
--- a/tgui/packages/tgui/interfaces/PaperSheet.js
+++ b/tgui/packages/tgui/interfaces/PaperSheet.js
@@ -9,15 +9,16 @@
* @license MIT
*/
+import { clamp } from 'common/math';
import { classes } from 'common/react';
import { Component } from 'inferno';
+import katex from 'katex';
import { marked } from 'marked';
+
import { useBackend } from '../backend';
import { Box, Flex, Tabs, TextArea } from '../components';
import { Window } from '../layouts';
-import { clamp } from 'common/math';
import { sanitizeText } from '../sanitize';
-import katex from 'katex';
const MAX_PAPER_LENGTH = 5000; // Question, should we send this with ui_data?
diff --git a/tgui/packages/tgui/interfaces/ParticleAccelerator.js b/tgui/packages/tgui/interfaces/ParticleAccelerator.js
index 480fdbe05e..7a49222a5e 100644
--- a/tgui/packages/tgui/interfaces/ParticleAccelerator.js
+++ b/tgui/packages/tgui/interfaces/ParticleAccelerator.js
@@ -1,4 +1,3 @@
-import { Fragment } from 'inferno';
import { useBackend } from '../backend';
import { Box, Button, LabeledList, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Photocopier.js b/tgui/packages/tgui/interfaces/Photocopier.js
index 583778f512..e667d4491b 100644
--- a/tgui/packages/tgui/interfaces/Photocopier.js
+++ b/tgui/packages/tgui/interfaces/Photocopier.js
@@ -1,5 +1,5 @@
-import { ProgressBar, NumberInput, Button, Section, Box, Flex } from '../components';
import { useBackend } from '../backend';
+import { Box, Button, Flex, NumberInput, ProgressBar, Section } from '../components';
import { Window } from '../layouts';
export const Photocopier = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/PlayerPanel2.js b/tgui/packages/tgui/interfaces/PlayerPanel2.js
index b3178d959a..20fc9d34b4 100644
--- a/tgui/packages/tgui/interfaces/PlayerPanel2.js
+++ b/tgui/packages/tgui/interfaces/PlayerPanel2.js
@@ -1,6 +1,7 @@
import { Fragment } from "inferno";
+
import { useBackend, useLocalState } from '../backend';
-import { Input, Button, Flex, Section, Tabs, Box, NoticeBox, NumberInput, Collapsible, LabeledList, Dropdown, Slider, Tooltip } from '../components';
+import { Box, Button, Collapsible, Dropdown, Flex, Input, LabeledList, NoticeBox, NumberInput, Section, Slider, Tabs } from '../components';
import { Window } from '../layouts';
const PAGES = [
diff --git a/tgui/packages/tgui/interfaces/PortableChemMixer.js b/tgui/packages/tgui/interfaces/PortableChemMixer.js
index 48f465dc47..354b1bf2fe 100644
--- a/tgui/packages/tgui/interfaces/PortableChemMixer.js
+++ b/tgui/packages/tgui/interfaces/PortableChemMixer.js
@@ -1,5 +1,6 @@
import { sortBy } from 'common/collections';
import { toTitleCase } from 'common/string';
+
import { useBackend } from '../backend';
import { AnimatedNumber, Box, Button, LabeledList, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/PowerMonitor.js b/tgui/packages/tgui/interfaces/PowerMonitor.js
index 038695d0f4..61de69e3c5 100644
--- a/tgui/packages/tgui/interfaces/PowerMonitor.js
+++ b/tgui/packages/tgui/interfaces/PowerMonitor.js
@@ -2,6 +2,7 @@ import { map, sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { toFixed } from 'common/math';
import { pureComponentHooks } from 'common/react';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Chart, ColorBox, Flex, Icon, LabeledList, ProgressBar, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/ProduceConsole.js b/tgui/packages/tgui/interfaces/ProduceConsole.js
index c1bd4a9075..64d2b89ab4 100644
--- a/tgui/packages/tgui/interfaces/ProduceConsole.js
+++ b/tgui/packages/tgui/interfaces/ProduceConsole.js
@@ -1,4 +1,5 @@
import { multiline } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Dimmer, Divider, Icon, NumberInput, Section, Stack } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Radio.js b/tgui/packages/tgui/interfaces/Radio.js
index 738826ba63..c094b507de 100644
--- a/tgui/packages/tgui/interfaces/Radio.js
+++ b/tgui/packages/tgui/interfaces/Radio.js
@@ -1,5 +1,6 @@
import { map } from 'common/collections';
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { Box, Button, LabeledList, NumberInput, Section } from '../components';
import { RADIO_CHANNELS } from '../constants';
diff --git a/tgui/packages/tgui/interfaces/RadioactiveMicrolaser.js b/tgui/packages/tgui/interfaces/RadioactiveMicrolaser.js
index 2fd20aa658..be7bbf3025 100644
--- a/tgui/packages/tgui/interfaces/RadioactiveMicrolaser.js
+++ b/tgui/packages/tgui/interfaces/RadioactiveMicrolaser.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Button, Box, NumberInput, Section, LabeledList } from '../components';
+import { Box, Button, LabeledList, NumberInput, Section } from '../components';
import { Window } from '../layouts';
export const RadioactiveMicrolaser = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/RapidPipeDispenser.js b/tgui/packages/tgui/interfaces/RapidPipeDispenser.js
index c85256f862..368100a3fc 100644
--- a/tgui/packages/tgui/interfaces/RapidPipeDispenser.js
+++ b/tgui/packages/tgui/interfaces/RapidPipeDispenser.js
@@ -1,4 +1,5 @@
import { classes } from 'common/react';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, ColorBox, Flex, LabeledList, Section, Tabs } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/RbmkControlRods.js b/tgui/packages/tgui/interfaces/RbmkControlRods.js
index 13b4a95ca9..656bb60af6 100644
--- a/tgui/packages/tgui/interfaces/RbmkControlRods.js
+++ b/tgui/packages/tgui/interfaces/RbmkControlRods.js
@@ -1,6 +1,5 @@
-import { Fragment } from 'inferno';
-import { useBackend, useLocalState } from '../backend';
-import { Section, ProgressBar, Slider } from '../components';
+import { useBackend } from '../backend';
+import { ProgressBar, Section, Slider } from '../components';
import { Window } from '../layouts';
export const RbmkControlRods = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/RbmkStats.js b/tgui/packages/tgui/interfaces/RbmkStats.js
index c168023db5..2798e3f7e1 100644
--- a/tgui/packages/tgui/interfaces/RbmkStats.js
+++ b/tgui/packages/tgui/interfaces/RbmkStats.js
@@ -1,11 +1,7 @@
-import { map, sortBy } from 'common/collections';
-import { flow } from 'common/fp';
-import { toFixed } from 'common/math';
-import { pureComponentHooks } from 'common/react';
-import { Component, Fragment } from 'inferno';
-import { Box, Button, Chart, ColorBox, Flex, Icon, LabeledList, ProgressBar, Section, Table } from '../components';
+
+import { useBackend } from '../backend';
+import { Chart, ProgressBar, Section } from '../components';
import { Window } from '../layouts';
-import { useBackend, useLocalState } from '../backend';
export const RbmkStats = (props, context) => {
const { act, data } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/ReligiousTool.js b/tgui/packages/tgui/interfaces/ReligiousTool.js
index 981889507f..874bc7464a 100644
--- a/tgui/packages/tgui/interfaces/ReligiousTool.js
+++ b/tgui/packages/tgui/interfaces/ReligiousTool.js
@@ -1,6 +1,5 @@
-import { capitalize } from 'common/string';
import { useBackend, useSharedState } from '../backend';
-import { AnimatedNumber, BlockQuote, Box, Button, Collapsible, Dimmer, Icon, LabeledList, NoticeBox, ProgressBar, Section, Stack, Tabs } from '../components';
+import { BlockQuote, Box, Button, Collapsible, Dimmer, Icon, Section, Stack, Tabs } from '../components';
import { Window } from '../layouts';
const ALIGNMENT2COLOR = {
diff --git a/tgui/packages/tgui/interfaces/RemoteRobotControl.js b/tgui/packages/tgui/interfaces/RemoteRobotControl.js
index 37faa9bd77..93f86ed8f2 100644
--- a/tgui/packages/tgui/interfaces/RemoteRobotControl.js
+++ b/tgui/packages/tgui/interfaces/RemoteRobotControl.js
@@ -1,6 +1,7 @@
import { decodeHtmlEntities } from 'common/string';
+
import { useBackend } from '../backend';
-import { Box, Button, NoticeBox, Section, LabeledList } from '../components';
+import { Box, Button, LabeledList, NoticeBox, Section } from '../components';
import { Window } from '../layouts';
export const RemoteRobotControl = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/Roulette.js b/tgui/packages/tgui/interfaces/Roulette.js
index 3a60b48c70..0086270e81 100644
--- a/tgui/packages/tgui/interfaces/Roulette.js
+++ b/tgui/packages/tgui/interfaces/Roulette.js
@@ -1,4 +1,5 @@
import { classes } from 'common/react';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Grid, NumberInput, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Safe.js b/tgui/packages/tgui/interfaces/Safe.js
index 7394c13380..c83c9dcd89 100644
--- a/tgui/packages/tgui/interfaces/Safe.js
+++ b/tgui/packages/tgui/interfaces/Safe.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { resolveAsset } from '../assets';
import { useBackend } from '../backend';
import { Box, Button, Icon, Section } from '../components';
diff --git a/tgui/packages/tgui/interfaces/ScannerGate.js b/tgui/packages/tgui/interfaces/ScannerGate.js
index 3ade2a96f2..6afae61b49 100644
--- a/tgui/packages/tgui/interfaces/ScannerGate.js
+++ b/tgui/packages/tgui/interfaces/ScannerGate.js
@@ -1,8 +1,9 @@
import { Fragment } from 'inferno';
+
import { useBackend } from '../backend';
import { Box, Button, LabeledList, NumberInput, Section } from '../components';
-import { InterfaceLockNoticeBox } from './common/InterfaceLockNoticeBox';
import { Window } from '../layouts';
+import { InterfaceLockNoticeBox } from './common/InterfaceLockNoticeBox';
const DISEASE_THEASHOLD_LIST = [
'Positive',
diff --git a/tgui/packages/tgui/interfaces/Secrets.js b/tgui/packages/tgui/interfaces/Secrets.js
index b08e7c175b..7bdf4f4c27 100644
--- a/tgui/packages/tgui/interfaces/Secrets.js
+++ b/tgui/packages/tgui/interfaces/Secrets.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend, useLocalState } from '../backend';
import { Button, Flex, LabeledControls, NoticeBox, RoundGauge, Section, Stack } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/SeedExtractor.js b/tgui/packages/tgui/interfaces/SeedExtractor.js
index aeac46057f..2491f2c14d 100644
--- a/tgui/packages/tgui/interfaces/SeedExtractor.js
+++ b/tgui/packages/tgui/interfaces/SeedExtractor.js
@@ -1,6 +1,7 @@
import { sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { toTitleCase } from 'common/string';
+
import { useBackend } from '../backend';
import { Button, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/SelectEquipment.js b/tgui/packages/tgui/interfaces/SelectEquipment.js
index 274f3efce4..9b84d296d7 100644
--- a/tgui/packages/tgui/interfaces/SelectEquipment.js
+++ b/tgui/packages/tgui/interfaces/SelectEquipment.js
@@ -1,6 +1,7 @@
import { filter, map, sortBy, uniq } from 'common/collections';
import { flow } from 'common/fp';
import { createSearch } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Dropdown, Icon, Input, Section, Stack, Tabs } from '../components';
import { ButtonCheckbox } from '../components/Button';
diff --git a/tgui/packages/tgui/interfaces/SentienceFunBalloon.js b/tgui/packages/tgui/interfaces/SentienceFunBalloon.js
index 8a9ddc2399..9ac42080eb 100644
--- a/tgui/packages/tgui/interfaces/SentienceFunBalloon.js
+++ b/tgui/packages/tgui/interfaces/SentienceFunBalloon.js
@@ -1,5 +1,5 @@
import { useBackend } from "../backend";
-import { Button, NumberInput, Section, Stack, Input, LabeledList } from '../components';
+import { Button, Input, LabeledList, NumberInput, Section, Stack } from '../components';
import { Window } from "../layouts";
export const SentienceFunBalloon = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/ShuttleManipulator.js b/tgui/packages/tgui/interfaces/ShuttleManipulator.js
index 49f7afd64b..e128da918c 100644
--- a/tgui/packages/tgui/interfaces/ShuttleManipulator.js
+++ b/tgui/packages/tgui/interfaces/ShuttleManipulator.js
@@ -1,4 +1,5 @@
import { map } from 'common/collections';
+
import { useBackend, useLocalState } from '../backend';
import { Button, Flex, LabeledList, Section, Table, Tabs } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Signaler.js b/tgui/packages/tgui/interfaces/Signaler.js
index 1eaf986837..ce03a9ffb0 100644
--- a/tgui/packages/tgui/interfaces/Signaler.js
+++ b/tgui/packages/tgui/interfaces/Signaler.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { Button, Grid, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/SkillPanel.js b/tgui/packages/tgui/interfaces/SkillPanel.js
index f83e3cac09..2c93521c9a 100644
--- a/tgui/packages/tgui/interfaces/SkillPanel.js
+++ b/tgui/packages/tgui/interfaces/SkillPanel.js
@@ -1,7 +1,8 @@
+import { Fragment } from 'inferno';
+
import { useBackend } from '../backend';
import { Box, Button, LabeledList, ProgressBar, Section } from '../components';
import { Window } from '../layouts';
-import { Fragment } from 'inferno';
const skillgreen = {
color: 'lightgreen',
diff --git a/tgui/packages/tgui/interfaces/SkillStation.js b/tgui/packages/tgui/interfaces/SkillStation.js
index c3ff64ed97..5733bc3d30 100644
--- a/tgui/packages/tgui/interfaces/SkillStation.js
+++ b/tgui/packages/tgui/interfaces/SkillStation.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { Box, Button, Flex, Icon, LabeledList, NoticeBox, Section, Stack, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/SlaveConsole.js b/tgui/packages/tgui/interfaces/SlaveConsole.js
index d133b4363b..bff0fbd563 100644
--- a/tgui/packages/tgui/interfaces/SlaveConsole.js
+++ b/tgui/packages/tgui/interfaces/SlaveConsole.js
@@ -1,11 +1,12 @@
import { map, sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { vecLength, vecSubtract } from 'common/vector';
+
import { useBackend, useSharedState } from '../backend';
-import { Box, Button, Icon, LabeledList, Section, Tabs, Flex, NoticeBox, Fragment } from '../components';
+import { Box, Button, Flex, Fragment, Icon, LabeledList, NoticeBox, Section, Tabs } from '../components';
+import { formatMoney } from '../format';
import { Window } from '../layouts';
import { GenericUplink } from './Uplink';
-import { formatMoney } from '../format';
const coordsToVec = coords => map(parseFloat)(coords.split(', '));
diff --git a/tgui/packages/tgui/interfaces/SlimeBodySwapper.js b/tgui/packages/tgui/interfaces/SlimeBodySwapper.js
index 6ec031c269..169bf814be 100644
--- a/tgui/packages/tgui/interfaces/SlimeBodySwapper.js
+++ b/tgui/packages/tgui/interfaces/SlimeBodySwapper.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Section, LabeledList, Button, Box } from '../components';
+import { Box, Button, LabeledList, Section } from '../components';
import { Window } from '../layouts';
const statusMap = {
diff --git a/tgui/packages/tgui/interfaces/SmartVend.js b/tgui/packages/tgui/interfaces/SmartVend.js
index e27dde9805..f4499f0a2d 100644
--- a/tgui/packages/tgui/interfaces/SmartVend.js
+++ b/tgui/packages/tgui/interfaces/SmartVend.js
@@ -1,4 +1,5 @@
import { map } from 'common/collections';
+
import { useBackend } from '../backend';
import { Button, NoticeBox, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/SpaceHeater.js b/tgui/packages/tgui/interfaces/SpaceHeater.js
index 3c3aedf54d..2e92a28a64 100644
--- a/tgui/packages/tgui/interfaces/SpaceHeater.js
+++ b/tgui/packages/tgui/interfaces/SpaceHeater.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend } from '../backend';
import { Box, Button, LabeledList, NumberInput, ProgressBar, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Spellbook.js b/tgui/packages/tgui/interfaces/Spellbook.js
index f054c6fad2..e699f89c58 100644
--- a/tgui/packages/tgui/interfaces/Spellbook.js
+++ b/tgui/packages/tgui/interfaces/Spellbook.js
@@ -1,6 +1,7 @@
import { multiline } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
-import { Blink, Box, Button, Dimmer, Divider, Icon, Modal, NoticeBox, ProgressBar, Section, Stack } from '../components';
+import { Box, Button, Dimmer, Divider, Icon, NoticeBox, ProgressBar, Section, Stack } from '../components';
import { Window } from '../layouts';
const TAB2NAME = [
diff --git a/tgui/packages/tgui/interfaces/SplurtCrewManifest.js b/tgui/packages/tgui/interfaces/SplurtCrewManifest.js
index 68e98a3a17..87f94ca10b 100644
--- a/tgui/packages/tgui/interfaces/SplurtCrewManifest.js
+++ b/tgui/packages/tgui/interfaces/SplurtCrewManifest.js
@@ -1,4 +1,5 @@
import { classes } from 'common/react';
+
import { useBackend } from "../backend";
import { Icon, Section, Table, Tooltip } from "../components";
import { Window } from "../layouts";
diff --git a/tgui/packages/tgui/interfaces/Stack.js b/tgui/packages/tgui/interfaces/Stack.js
index a38e5dde81..6c08ade20f 100644
--- a/tgui/packages/tgui/interfaces/Stack.js
+++ b/tgui/packages/tgui/interfaces/Stack.js
@@ -1,7 +1,8 @@
-import { createSearch } from 'common/string';
import { sortBy } from 'common/collections';
+import { createSearch } from 'common/string';
+
import { useBackend, useLocalState } from "../backend";
-import { Box, Button, Input, NoticeBox, Section, Collapsible, Table } from "../components";
+import { Box, Button, Collapsible, Input, NoticeBox, Section, Table } from "../components";
import { Window } from "../layouts";
export const Stack = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/StationTraitsPanel.tsx b/tgui/packages/tgui/interfaces/StationTraitsPanel.tsx
index d09d109d62..02b87ccbb4 100644
--- a/tgui/packages/tgui/interfaces/StationTraitsPanel.tsx
+++ b/tgui/packages/tgui/interfaces/StationTraitsPanel.tsx
@@ -1,6 +1,7 @@
import { filterMap } from 'common/collections';
import { exhaustiveCheck } from 'common/exhaustive';
import { BooleanLike } from 'common/react';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Divider, Dropdown, Stack, Tabs } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/StripMenu.tsx b/tgui/packages/tgui/interfaces/StripMenu.tsx
index 048bf7f469..abf7c8ed2f 100644
--- a/tgui/packages/tgui/interfaces/StripMenu.tsx
+++ b/tgui/packages/tgui/interfaces/StripMenu.tsx
@@ -1,5 +1,6 @@
import { range } from "common/collections";
import { BooleanLike } from "common/react";
+
import { resolveAsset } from "../assets";
import { useBackend } from "../backend";
import { Box, Button, Icon, Stack } from "../components";
diff --git a/tgui/packages/tgui/interfaces/SuitStorageUnit.js b/tgui/packages/tgui/interfaces/SuitStorageUnit.js
index 70bec672f7..6ae303569b 100644
--- a/tgui/packages/tgui/interfaces/SuitStorageUnit.js
+++ b/tgui/packages/tgui/interfaces/SuitStorageUnit.js
@@ -1,4 +1,5 @@
import { Fragment } from 'inferno';
+
import { useBackend } from '../backend';
import { Box, Button, Icon, LabeledList, NoticeBox, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/SupermatterMonitor.js b/tgui/packages/tgui/interfaces/SupermatterMonitor.js
index 0ef276999d..ce659a86cb 100644
--- a/tgui/packages/tgui/interfaces/SupermatterMonitor.js
+++ b/tgui/packages/tgui/interfaces/SupermatterMonitor.js
@@ -1,6 +1,7 @@
import { sortBy } from 'common/collections';
import { flow } from 'common/fp';
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { Button, LabeledList, ProgressBar, Section, Stack, Table } from '../components';
import { getGasColor, getGasLabel } from '../constants';
diff --git a/tgui/packages/tgui/interfaces/SyndContractor.js b/tgui/packages/tgui/interfaces/SyndContractor.js
index 3bba93345a..359a549e33 100644
--- a/tgui/packages/tgui/interfaces/SyndContractor.js
+++ b/tgui/packages/tgui/interfaces/SyndContractor.js
@@ -1,4 +1,5 @@
import { Component, Fragment } from 'inferno';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Flex, Grid, Icon, LabeledList, Modal, NoticeBox, Section, Table, Tabs } from '../components';
import { NtosWindow } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Tank.js b/tgui/packages/tgui/interfaces/Tank.js
index 7b5f20b834..f7b6601258 100644
--- a/tgui/packages/tgui/interfaces/Tank.js
+++ b/tgui/packages/tgui/interfaces/Tank.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { Button, LabeledControls, NumberInput, RoundGauge, Section } from '../components';
import { formatSiUnit } from '../format';
diff --git a/tgui/packages/tgui/interfaces/Techweb.js b/tgui/packages/tgui/interfaces/Techweb.js
index f1590dccca..d564eee464 100644
--- a/tgui/packages/tgui/interfaces/Techweb.js
+++ b/tgui/packages/tgui/interfaces/Techweb.js
@@ -1,8 +1,9 @@
import { filter, map, sortBy } from 'common/collections';
import { flow } from 'common/fp';
+
import { useBackend, useLocalState } from '../backend';
-import { Button, Section, Modal, Dropdown, Tabs, Box, Input, Flex, ProgressBar, Collapsible, Icon, Divider } from '../components';
-import { Window, NtosWindow } from '../layouts';
+import { Box, Button, Collapsible, Divider, Dropdown, Flex, Icon, Input, Modal, ProgressBar, Section, Tabs } from '../components';
+import { NtosWindow, Window } from '../layouts';
import { Experiment } from './ExperimentConfigure';
// Data reshaping / ingestion (thanks stylemistake for the help, very cool!)
diff --git a/tgui/packages/tgui/interfaces/Telecomms.js b/tgui/packages/tgui/interfaces/Telecomms.js
index 6b182a6b66..67371268d1 100644
--- a/tgui/packages/tgui/interfaces/Telecomms.js
+++ b/tgui/packages/tgui/interfaces/Telecomms.js
@@ -1,7 +1,6 @@
-import { map, sortBy } from 'common/collections';
-import { flow } from 'common/fp';
+
import { useBackend } from '../backend';
-import { Button, Input, LabeledList, Section, Table, NoticeBox, NumberInput, LabeledControls, Box } from '../components';
+import { Box, Button, Input, LabeledControls, LabeledList, NoticeBox, NumberInput, Section, Table } from '../components';
import { RADIO_CHANNELS } from '../constants';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/TelecommsInteraction.js b/tgui/packages/tgui/interfaces/TelecommsInteraction.js
index 6fcb322a9f..cdb733b84c 100644
--- a/tgui/packages/tgui/interfaces/TelecommsInteraction.js
+++ b/tgui/packages/tgui/interfaces/TelecommsInteraction.js
@@ -3,11 +3,12 @@
* @copyright 2020 LetterN (https://github.com/LetterN)
* @license MIT
*/
-import { Window } from '../layouts';
-import { useBackend } from '../backend';
import { toFixed } from 'common/math';
+
+import { useBackend } from '../backend';
+import { Button, Input, LabeledList, NoticeBox, NumberInput, Section } from '../components';
import { RADIO_CHANNELS } from '../constants';
-import { Button, LabeledList, NumberInput, NoticeBox, Section, Input } from '../components';
+import { Window } from '../layouts';
export const TelecommsInteraction = (props, context) => {
const { act, data } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/TelecommsLogBrowser.js b/tgui/packages/tgui/interfaces/TelecommsLogBrowser.js
index 3c5eda1244..301109adb0 100644
--- a/tgui/packages/tgui/interfaces/TelecommsLogBrowser.js
+++ b/tgui/packages/tgui/interfaces/TelecommsLogBrowser.js
@@ -4,9 +4,10 @@
* @license MIT
*/
import { Fragment } from 'inferno';
-import { Window } from '../layouts';
+
import { useBackend, useSharedState } from '../backend';
-import { Button, LabeledList, NoticeBox, Section, Tabs, Input } from '../components';
+import { Button, Input, LabeledList, NoticeBox, Section, Tabs } from '../components';
+import { Window } from '../layouts';
export const TelecommsLogBrowser = (props, context) => {
const { act, data } = useBackend(context);
diff --git a/tgui/packages/tgui/interfaces/TelecommsMonitor.js b/tgui/packages/tgui/interfaces/TelecommsMonitor.js
index 0251e6e936..94507c9f54 100644
--- a/tgui/packages/tgui/interfaces/TelecommsMonitor.js
+++ b/tgui/packages/tgui/interfaces/TelecommsMonitor.js
@@ -4,10 +4,11 @@
* @license MIT
*/
import { Fragment } from 'inferno';
-import { Window } from '../layouts';
+
import { useBackend, useSharedState } from '../backend';
+import { Box, Button, Input, LabeledList, NoticeBox, ProgressBar, Section, Tabs } from '../components';
import { RADIO_CHANNELS } from '../constants';
-import { Box, Button, LabeledList, NoticeBox, Section, Tabs, Input, ProgressBar } from '../components';
+import { Window } from '../layouts';
export const TelecommsMonitor = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/TelecommsPDALog.js b/tgui/packages/tgui/interfaces/TelecommsPDALog.js
index 98cad21e7b..f875868171 100644
--- a/tgui/packages/tgui/interfaces/TelecommsPDALog.js
+++ b/tgui/packages/tgui/interfaces/TelecommsPDALog.js
@@ -4,9 +4,10 @@
* @license MIT
*/
import { Fragment } from 'inferno';
-import { Window } from '../layouts';
+
import { useBackend, useSharedState } from '../backend';
-import { Button, LabeledList, NoticeBox, Section, Tabs, Input } from '../components';
+import { Button, Input, LabeledList, NoticeBox, Section, Tabs } from '../components';
+import { Window } from '../layouts';
// This is the entrypoint, don't mind the others
export const TelecommsPDALog = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/Telesci.js b/tgui/packages/tgui/interfaces/Telesci.js
index fa20c9ea9c..0d92eac166 100644
--- a/tgui/packages/tgui/interfaces/Telesci.js
+++ b/tgui/packages/tgui/interfaces/Telesci.js
@@ -1,6 +1,5 @@
-import { map } from 'common/collections';
import { useBackend } from '../backend';
-import { Box, Blink, Button, Section, Slider } from '../components';
+import { Blink, Box, Button, Section, Slider } from '../components';
import { Window } from '../layouts';
export const Telesci = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/TextInputModal.tsx b/tgui/packages/tgui/interfaces/TextInputModal.tsx
index ee9881c6e4..c7b31354b2 100644
--- a/tgui/packages/tgui/interfaces/TextInputModal.tsx
+++ b/tgui/packages/tgui/interfaces/TextInputModal.tsx
@@ -1,9 +1,9 @@
-import { Loader } from './common/Loader';
-import { InputButtons } from './common/InputButtons';
-import { useBackend, useLocalState } from '../backend';
import { KEY_ENTER, KEY_ESCAPE } from '../../common/keycodes';
+import { useBackend, useLocalState } from '../backend';
import { Box, Section, Stack, TextArea } from '../components';
import { Window } from '../layouts';
+import { InputButtons } from './common/InputButtons';
+import { Loader } from './common/Loader';
type TextInputData = {
large_buttons: boolean;
diff --git a/tgui/packages/tgui/interfaces/ThermoMachine.js b/tgui/packages/tgui/interfaces/ThermoMachine.js
index bac4f91d4d..3f85a38a8b 100644
--- a/tgui/packages/tgui/interfaces/ThermoMachine.js
+++ b/tgui/packages/tgui/interfaces/ThermoMachine.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { AnimatedNumber, Button, LabeledList, NumberInput, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Thermometer.js b/tgui/packages/tgui/interfaces/Thermometer.js
index 3ddbd4e604..6fe3f326e9 100644
--- a/tgui/packages/tgui/interfaces/Thermometer.js
+++ b/tgui/packages/tgui/interfaces/Thermometer.js
@@ -1,4 +1,5 @@
import { Component } from 'inferno';
+
import { useBackend } from '../backend';
import { Box, Stack } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/TrackedPlaytime.js b/tgui/packages/tgui/interfaces/TrackedPlaytime.js
index a490053b6e..9b0c49137f 100644
--- a/tgui/packages/tgui/interfaces/TrackedPlaytime.js
+++ b/tgui/packages/tgui/interfaces/TrackedPlaytime.js
@@ -1,4 +1,5 @@
import { sortBy } from "common/collections";
+
import { useBackend } from "../backend";
import { Box, Button, Flex, ProgressBar, Section, Table } from "../components";
import { Window } from "../layouts";
diff --git a/tgui/packages/tgui/interfaces/TramControl.js b/tgui/packages/tgui/interfaces/TramControl.js
index f6590b011d..43b7016f85 100644
--- a/tgui/packages/tgui/interfaces/TramControl.js
+++ b/tgui/packages/tgui/interfaces/TramControl.js
@@ -1,4 +1,3 @@
-import { classes } from 'common/react';
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Dimmer, Icon, Section, Stack } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Uplink.js b/tgui/packages/tgui/interfaces/Uplink.js
index 5b9720107b..10f95b34ec 100644
--- a/tgui/packages/tgui/interfaces/Uplink.js
+++ b/tgui/packages/tgui/interfaces/Uplink.js
@@ -1,6 +1,7 @@
import { createSearch, decodeHtmlEntities } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
-import { Box, Button, Flex, Input, Section, Table, Tabs, NoticeBox } from '../components';
+import { Box, Button, Flex, Input, NoticeBox, Section, Table, Tabs } from '../components';
import { formatMoney } from '../format';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/VaultController.js b/tgui/packages/tgui/interfaces/VaultController.js
index 510c602954..868f482b07 100644
--- a/tgui/packages/tgui/interfaces/VaultController.js
+++ b/tgui/packages/tgui/interfaces/VaultController.js
@@ -1,4 +1,5 @@
import { toFixed } from 'common/math';
+
import { useBackend } from '../backend';
import { Button, LabeledList, ProgressBar, Section } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/Vending.tsx b/tgui/packages/tgui/interfaces/Vending.tsx
index 53a6e77f40..e5fc27baa6 100644
--- a/tgui/packages/tgui/interfaces/Vending.tsx
+++ b/tgui/packages/tgui/interfaces/Vending.tsx
@@ -2,6 +2,7 @@ import { filter } from 'common/collections';
import { flow } from 'common/fp';
import { classes } from 'common/react';
import { createSearch } from 'common/string';
+
import { useBackend, useLocalState } from '../backend';
import { Box, Button, Icon, Input, Section, Table } from '../components';
import { Window } from '../layouts';
diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js
index 81afdbaa17..0d86144967 100644
--- a/tgui/packages/tgui/interfaces/VorePanel.js
+++ b/tgui/packages/tgui/interfaces/VorePanel.js
@@ -1,7 +1,8 @@
/* eslint-disable max-len */
import { Fragment } from 'inferno';
+
import { useBackend, useLocalState } from "../backend";
-import { Box, Button, Flex, Collapsible, Icon, LabeledList, NoticeBox, Section, Tabs } from "../components";
+import { Box, Button, Collapsible, Flex, Icon, LabeledList, NoticeBox, Section, Tabs } from "../components";
import { Window } from "../layouts";
const stats = [
diff --git a/tgui/packages/tgui/interfaces/Vote.js b/tgui/packages/tgui/interfaces/Vote.js
index 9d16a6614b..99b6812492 100644
--- a/tgui/packages/tgui/interfaces/Vote.js
+++ b/tgui/packages/tgui/interfaces/Vote.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Box, Icon, Stack, Button, Section, NoticeBox, LabeledList, Collapsible } from '../components';
+import { Box, Button, Collapsible, Icon, LabeledList, NoticeBox, Section, Stack } from '../components';
import { Window } from '../layouts';
export const Vote = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/VrSleeper.js b/tgui/packages/tgui/interfaces/VrSleeper.js
index 58de36fab2..40385715c7 100644
--- a/tgui/packages/tgui/interfaces/VrSleeper.js
+++ b/tgui/packages/tgui/interfaces/VrSleeper.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Button, ProgressBar, Section, Box, LabeledList } from '../components';
+import { Box, Button, LabeledList, ProgressBar, Section } from '../components';
import { Window } from '../layouts';
export const VrSleeper = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/Wires.js b/tgui/packages/tgui/interfaces/Wires.js
index eb6734aab7..0ab2ae17da 100644
--- a/tgui/packages/tgui/interfaces/Wires.js
+++ b/tgui/packages/tgui/interfaces/Wires.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Box, Button, LabeledList, Section, NoticeBox } from '../components';
+import { Box, Button, LabeledList, NoticeBox, Section } from '../components';
import { Window } from '../layouts';
export const Wires = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/centcomCommunications.js b/tgui/packages/tgui/interfaces/centcomCommunications.js
index 41334c0703..941fbded3f 100644
--- a/tgui/packages/tgui/interfaces/centcomCommunications.js
+++ b/tgui/packages/tgui/interfaces/centcomCommunications.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Fragment, Button, Section, Box, LabeledList, ColorBox } from '../components';
+import { Box, Button, ColorBox, Fragment, LabeledList, Section } from '../components';
import { Window } from '../layouts';
export const centcomCommunications = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/common/AccessList.js b/tgui/packages/tgui/interfaces/common/AccessList.js
index a0fe605be8..f00fc97c29 100644
--- a/tgui/packages/tgui/interfaces/common/AccessList.js
+++ b/tgui/packages/tgui/interfaces/common/AccessList.js
@@ -1,5 +1,6 @@
import { sortBy } from 'common/collections';
import { Fragment } from 'inferno';
+
import { useLocalState } from '../../backend';
import { Button, Flex, Grid, Section, Tabs } from '../../components';
diff --git a/tgui/packages/tgui/interfaces/common/AtmosControls.js b/tgui/packages/tgui/interfaces/common/AtmosControls.js
index fcca00188a..d560e0085c 100644
--- a/tgui/packages/tgui/interfaces/common/AtmosControls.js
+++ b/tgui/packages/tgui/interfaces/common/AtmosControls.js
@@ -1,4 +1,5 @@
import { decodeHtmlEntities } from 'common/string';
+
import { useBackend } from '../../backend';
import { Button, LabeledList, NumberInput, Section } from '../../components';
import { getGasLabel } from '../../constants';
diff --git a/tgui/packages/tgui/interfaces/common/Loader.tsx b/tgui/packages/tgui/interfaces/common/Loader.tsx
index 13ec588b00..d46edd6e43 100644
--- a/tgui/packages/tgui/interfaces/common/Loader.tsx
+++ b/tgui/packages/tgui/interfaces/common/Loader.tsx
@@ -1,6 +1,7 @@
-import { Box } from '../../components';
import { clamp01 } from 'common/math';
+import { Box } from '../../components';
+
export const Loader = (props) => {
const { value } = props;
diff --git a/tgui/packages/tgui/interfaces/common/Materials.tsx b/tgui/packages/tgui/interfaces/common/Materials.tsx
index 0d06c95091..10c277f14f 100644
--- a/tgui/packages/tgui/interfaces/common/Materials.tsx
+++ b/tgui/packages/tgui/interfaces/common/Materials.tsx
@@ -1,9 +1,10 @@
import { BooleanLike } from 'common/react';
-import { Box, Button, NumberInput, Flex } from '../../components';
import { classes } from 'common/react';
-import { formatMoney, formatSiUnit } from '../../format';
+
import { useSharedState } from '../../backend';
+import { Box, Button, Flex, NumberInput } from '../../components';
import { BoxProps } from '../../components/Box';
+import { formatMoney, formatSiUnit } from '../../format';
export const MATERIAL_KEYS = {
"iron": "sheet-metal_3",
diff --git a/tgui/packages/tgui/layouts/Layout.js b/tgui/packages/tgui/layouts/Layout.js
index cd253ae257..e954fbfc22 100644
--- a/tgui/packages/tgui/layouts/Layout.js
+++ b/tgui/packages/tgui/layouts/Layout.js
@@ -5,6 +5,7 @@
*/
import { classes } from 'common/react';
+
import { computeBoxClassName, computeBoxProps } from '../components/Box';
import { addScrollableNode, removeScrollableNode } from '../events';
diff --git a/tgui/packages/tgui/layouts/Pane.js b/tgui/packages/tgui/layouts/Pane.js
index 3cb1af048c..e2c53963a7 100644
--- a/tgui/packages/tgui/layouts/Pane.js
+++ b/tgui/packages/tgui/layouts/Pane.js
@@ -5,6 +5,7 @@
*/
import { classes } from 'common/react';
+
import { useBackend } from '../backend';
import { Box } from '../components';
import { useDebug } from '../debug';
diff --git a/tgui/packages/tgui/layouts/Window.js b/tgui/packages/tgui/layouts/Window.js
index a291cc6d5a..a740142d05 100644
--- a/tgui/packages/tgui/layouts/Window.js
+++ b/tgui/packages/tgui/layouts/Window.js
@@ -8,8 +8,9 @@ import { classes } from 'common/react';
import { useDispatch } from 'common/redux';
import { decodeHtmlEntities, toTitleCase } from 'common/string';
import { Component } from 'inferno';
+
import { backendSuspendStart, useBackend } from '../backend';
-import { Icon, Flex } from '../components';
+import { Icon } from '../components';
import { UI_DISABLED, UI_INTERACTIVE, UI_UPDATE } from '../constants';
import { useDebug } from '../debug';
import { toggleKitchenSink } from '../debug/actions';
diff --git a/tgui/packages/tgui/renderer.js b/tgui/packages/tgui/renderer.js
index 4abb7b0e6f..0a624b75d2 100644
--- a/tgui/packages/tgui/renderer.js
+++ b/tgui/packages/tgui/renderer.js
@@ -1,5 +1,6 @@
import { perf } from 'common/perf';
import { render } from 'inferno';
+
import { createLogger } from './logging';
const logger = createLogger('renderer');
diff --git a/tgui/packages/tgui/store.js b/tgui/packages/tgui/store.js
index 4035b4d1d8..d085e64b4b 100644
--- a/tgui/packages/tgui/store.js
+++ b/tgui/packages/tgui/store.js
@@ -7,6 +7,7 @@
import { flow } from 'common/fp';
import { applyMiddleware, combineReducers, createStore } from 'common/redux';
import { Component } from 'inferno';
+
import { assetMiddleware } from './assets';
import { backendMiddleware, backendReducer } from './backend';
import { debugMiddleware, debugReducer, relayMiddleware } from './debug';
diff --git a/tgui/packages/tgui/stories/Popper.stories.js b/tgui/packages/tgui/stories/Popper.stories.js
index 2f86fa0231..65340f0de4 100644
--- a/tgui/packages/tgui/stories/Popper.stories.js
+++ b/tgui/packages/tgui/stories/Popper.stories.js
@@ -1,4 +1,4 @@
-import { Component, forwardRef } from "inferno";
+
import { Box, Popper } from "../components";
export const meta = {
diff --git a/tgui/packages/tgui/stories/Storage.stories.js b/tgui/packages/tgui/stories/Storage.stories.js
index f00899f1db..8950476756 100644
--- a/tgui/packages/tgui/stories/Storage.stories.js
+++ b/tgui/packages/tgui/stories/Storage.stories.js
@@ -5,6 +5,7 @@
*/
import { storage } from 'common/storage';
+
import { Button, LabeledList, NoticeBox, Section } from '../components';
import { formatSiUnit } from '../format';
diff --git a/tgui/packages/tgui/stories/Tabs.stories.js b/tgui/packages/tgui/stories/Tabs.stories.js
index 44ee1218bc..67efa65f25 100644
--- a/tgui/packages/tgui/stories/Tabs.stories.js
+++ b/tgui/packages/tgui/stories/Tabs.stories.js
@@ -5,7 +5,7 @@
*/
import { useLocalState } from '../backend';
-import { Box, Button, Divider, Section, Tabs } from '../components';
+import { Button, Section, Tabs } from '../components';
export const meta = {
title: 'Tabs',
diff --git a/tgui/packages/tgui/stories/Tooltip.stories.js b/tgui/packages/tgui/stories/Tooltip.stories.js
index a5c4b54e99..03425a222a 100644
--- a/tgui/packages/tgui/stories/Tooltip.stories.js
+++ b/tgui/packages/tgui/stories/Tooltip.stories.js
@@ -4,7 +4,6 @@
* @license MIT
*/
-import { Placement } from '@popperjs/core';
import { Box, Button, Section, Tooltip } from '../components';
export const meta = {
diff --git a/tgui/public/tgui.html b/tgui/public/tgui.html
index 5bda2a9b81..84b00709bb 100644
--- a/tgui/public/tgui.html
+++ b/tgui/public/tgui.html
@@ -48,8 +48,9 @@ if (window.__windowId__ === '[' + 'tgui:windowId' + ']') {
// Basic checks to detect whether this page runs in BYOND
var isByond = (tridentVersion !== null || window.cef_to_byond)
&& location.hostname === '127.0.0.1'
- && location.pathname.indexOf('/tmp') === 0
&& location.search !== '?external';
+ //As of BYOND 515 the path doesn't seem to include tmp dir anymore if you're trying to open tgui in external browser and looking why it doesn't work
+ //&& location.pathname.indexOf('/tmp') === 0
// Version constants
Byond.IS_BYOND = isByond;
@@ -202,6 +203,8 @@ if (window.__windowId__ === '[' + 'tgui:windowId' + ']') {
var len = styleSheets.length;
for (var i = 0; i < len; i++) {
var styleSheet = styleSheets[i];
+ if(styleSheet.href === undefined)
+ continue;
if (styleSheet.href.indexOf(url) !== -1) {
return styleSheet.rules.length > 0;
}
diff --git a/tgui/yarn.lock b/tgui/yarn.lock
index 6d3fa91689..a00824418b 100644
--- a/tgui/yarn.lock
+++ b/tgui/yarn.lock
@@ -4846,6 +4846,24 @@ __metadata:
languageName: node
linkType: hard
+"eslint-plugin-simple-import-sort@npm:latest":
+ version: 12.0.0
+ resolution: "eslint-plugin-simple-import-sort@npm:12.0.0"
+ peerDependencies:
+ eslint: ">=5.0.0"
+ checksum: 1b97055a9e8782099a788d030d3ceb03729bd7c9fe145eb617e5857c8c429d3124f1926621f4a363e1f2fad23037285b5b43ee01c6597eedb5f19b1d2f50604b
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-sonarjs@npm:latest":
+ version: 0.24.0
+ resolution: "eslint-plugin-sonarjs@npm:0.24.0"
+ peerDependencies:
+ eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
+ checksum: 14e81d2b9efa9d309a0cf1758955708a3f73b1cdf129140607db983bb36027f1442a99fc0b254303307cf743bd241f88b07f95a68013502fbceca9565960ca02
+ languageName: node
+ linkType: hard
+
"eslint-plugin-unused-imports@npm:^3.0.0":
version: 3.0.0
resolution: "eslint-plugin-unused-imports@npm:3.0.0"
@@ -7314,7 +7332,7 @@ __metadata:
languageName: node
linkType: hard
-"loose-envify@npm:^1.4.0":
+"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
version: 1.4.0
resolution: "loose-envify@npm:1.4.0"
dependencies:
@@ -8412,6 +8430,18 @@ __metadata:
languageName: node
linkType: hard
+"react-dom@npm:^18.2.0":
+ version: 18.2.0
+ resolution: "react-dom@npm:18.2.0"
+ dependencies:
+ loose-envify: ^1.1.0
+ scheduler: ^0.23.0
+ peerDependencies:
+ react: ^18.2.0
+ checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc
+ languageName: node
+ linkType: hard
+
"react-is@npm:^16.13.1":
version: 16.13.1
resolution: "react-is@npm:16.13.1"
@@ -8433,6 +8463,15 @@ __metadata:
languageName: node
linkType: hard
+"react@npm:^18.2.0":
+ version: 18.2.0
+ resolution: "react@npm:18.2.0"
+ dependencies:
+ loose-envify: ^1.1.0
+ checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b
+ languageName: node
+ linkType: hard
+
"readable-stream@npm:^1.0.33":
version: 1.1.14
resolution: "readable-stream@npm:1.1.14"
@@ -8902,6 +8941,15 @@ __metadata:
languageName: node
linkType: hard
+"scheduler@npm:^0.23.0":
+ version: 0.23.0
+ resolution: "scheduler@npm:0.23.0"
+ dependencies:
+ loose-envify: ^1.1.0
+ checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a
+ languageName: node
+ linkType: hard
+
"schema-utils@npm:^2.6.5":
version: 2.7.1
resolution: "schema-utils@npm:2.7.1"
@@ -9759,6 +9807,8 @@ __metadata:
eslint-config-prettier: ^8.10.0
eslint-plugin-radar: ^0.2.1
eslint-plugin-react: ^7.33.2
+ eslint-plugin-simple-import-sort: latest
+ eslint-plugin-sonarjs: latest
eslint-plugin-unused-imports: ^3.0.0
globals: ^13.23.0
inferno: ^8.2.2
@@ -9768,6 +9818,8 @@ __metadata:
jsdom: ^22.1.0
katex: ^0.15.6
mini-css-extract-plugin: ^2.7.6
+ react: ^18.2.0
+ react-dom: ^18.2.0
sass: ^1.69.5
sass-loader: ^13.3.2
style-loader: ^3.3.3
diff --git a/tools/ci/check_grep.sh b/tools/ci/check_grep.sh
index eb83ab46f8..79b592e11c 100755
--- a/tools/ci/check_grep.sh
+++ b/tools/ci/check_grep.sh
@@ -117,4 +117,11 @@ do
done < <(jq -r '[.map_file] | flatten | .[]' $json)
done
+# Check for non-515 compatable .proc/ syntax
+if grep -P --exclude='__byond_version_compat.dm' '\.proc/' code/**/*.dm modular_citadel/code/**/* modular_sand/code/**/* modular_splurt/code/**/*; then
+ echo
+ echo -e "${RED}ERROR: Outdated proc reference use detected in code, please use proc reference helpers.${NC}"
+ st=1
+fi;
+
exit $st