From 2ce46d3b8d31ff7cb5eb37c936d2094041ab6a84 Mon Sep 17 00:00:00 2001 From: Doxxmedearly <38594443+Doxxmedearly@users.noreply.github.com> Date: Sat, 26 Jun 2021 15:13:59 -0400 Subject: [PATCH] Chem Cartridge Spawning Search (#12092) --- .../reagents/dispenser/cartridge_spawn.dm | 24 +++++++++++++++++-- .../doxxmedearly - chemdisp_spawn_search.yml | 6 +++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 html/changelogs/doxxmedearly - chemdisp_spawn_search.yml diff --git a/code/modules/reagents/dispenser/cartridge_spawn.dm b/code/modules/reagents/dispenser/cartridge_spawn.dm index 34788d0d837..f6a922af54d 100644 --- a/code/modules/reagents/dispenser/cartridge_spawn.dm +++ b/code/modules/reagents/dispenser/cartridge_spawn.dm @@ -1,7 +1,27 @@ -/client/proc/spawn_chemdisp_cartridge(size in list("small", "medium", "large"), reagent in decls_repository.get_decls_of_subtype(/decl/reagent/)) +/client/proc/spawn_chemdisp_cartridge(size in list("small", "medium", "large")) set name = "Spawn Chemical Dispenser Cartridge" set category = "Admin" + var/rtype = input("Enter full or partial reagent path.", "Reagent Search") as text + if(!rtype) + return + + var/list/matches + for(var/path in decls_repository.get_decls_of_subtype(/decl/reagent/)) + if(findtext("[path]", rtype)) + LAZYADD(matches, path) + + var/reagent + if(!LAZYLEN(matches)) + return + + if(LAZYLEN(matches) == 1) + reagent = matches[1] + else + reagent = input("Select a reagent type", "Pick reagent", matches[1]) as null|anything in matches + if(!reagent) + return + var/obj/item/reagent_containers/chem_disp_cartridge/C switch(size) if("small") C = new /obj/item/reagent_containers/chem_disp_cartridge/small(usr.loc) @@ -10,4 +30,4 @@ C.reagents.add_reagent(reagent, C.volume) var/decl/reagent/R = decls_repository.get_decl(reagent) C.setLabel(R.name) - log_admin("[key_name(usr)] spawned a [size] reagent container containing [reagent] at ([usr.x],[usr.y],[usr.z])",admin_key=key_name(usr)) + log_admin("[key_name(usr)] spawned a [size] reagent container containing [reagent] at ([usr.x],[usr.y],[usr.z])",admin_key=key_name(usr)) \ No newline at end of file diff --git a/html/changelogs/doxxmedearly - chemdisp_spawn_search.yml b/html/changelogs/doxxmedearly - chemdisp_spawn_search.yml new file mode 100644 index 00000000000..54ecb745e10 --- /dev/null +++ b/html/changelogs/doxxmedearly - chemdisp_spawn_search.yml @@ -0,0 +1,6 @@ +author: Doxxmedearly + +delete-after: True + +changes: + - tweak: "Spawning a chemical dispenser cartridge as an admin now uses a search function similar to how the spawn verb works."