diff --git a/baystation12.dme b/baystation12.dme
index bbdcaa38ea..93041deb13 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -1485,6 +1485,7 @@
#include "code\modules\reagents\dispenser\_defines.dm"
#include "code\modules\reagents\dispenser\cartridge.dm"
#include "code\modules\reagents\dispenser\cartridge_presets.dm"
+#include "code\modules\reagents\dispenser\cartridge_spawn.dm"
#include "code\modules\reagents\dispenser\dispenser2.dm"
#include "code\modules\reagents\dispenser\dispenser_presets.dm"
#include "code\modules\reagents\dispenser\supply.dm"
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 7d29322163..6158c59bc8 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -997,18 +997,18 @@ var/global/floorIsLava = 0
return 0
-/datum/admins/proc/spawn_fruit()
+/datum/admins/proc/spawn_fruit(seedtype in plant_controller.seeds)
set category = "Debug"
set desc = "Spawn the product of a seed."
set name = "Spawn Fruit"
if(!check_rights(R_SPAWN)) return
- var/seedtype = input("Select a seed type", "Spawn Fruit") as null|anything in plant_controller.seeds
if(!seedtype || !plant_controller.seeds[seedtype])
return
var/datum/seed/S = plant_controller.seeds[seedtype]
S.harvest(usr,0,0,1)
+ log_admin("[key_name(usr)] spawned [seedtype] fruit at ([usr.x],[usr.y],[usr.z])")
/datum/admins/proc/spawn_custom_item()
set category = "Debug"
@@ -1050,17 +1050,17 @@ var/global/floorIsLava = 0
for(var/datum/custom_item/item in current_items)
usr << "- name: [item.name] icon: [item.item_icon] path: [item.item_path] desc: [item.item_desc]"
-/datum/admins/proc/spawn_plant()
+/datum/admins/proc/spawn_plant(seedtype in plant_controller.seeds)
set category = "Debug"
set desc = "Spawn a spreading plant effect."
set name = "Spawn Plant"
if(!check_rights(R_SPAWN)) return
- var/seedtype = input("Select a seed type", "Spawn Plant") as null|anything in plant_controller.seeds
if(!seedtype || !plant_controller.seeds[seedtype])
return
new /obj/effect/plant(get_turf(usr), plant_controller.seeds[seedtype])
+ log_admin("[key_name(usr)] spawned [seedtype] vines at ([usr.x],[usr.y],[usr.z])")
/datum/admins/proc/spawn_atom(var/object as text)
set category = "Debug"
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index c22fc85466..41acc7894b 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -123,7 +123,8 @@ var/list/admin_verbs_spawn = list(
/client/proc/FireLaser,
/client/proc/FireCannons,
/client/proc/ChangeIcarusPosition,
- /client/proc/virus2_editor
+ /client/proc/virus2_editor,
+ /client/proc/spawn_chemdisp_cartridge
)
var/list/admin_verbs_server = list(
/client/proc/Set_Holiday,
diff --git a/code/modules/reagents/dispenser/cartridge.dm b/code/modules/reagents/dispenser/cartridge.dm
index fdb5e1fe76..569da4cc73 100644
--- a/code/modules/reagents/dispenser/cartridge.dm
+++ b/code/modules/reagents/dispenser/cartridge.dm
@@ -30,19 +30,23 @@
if(!is_open_container())
user << "The cap is sealed."
-/obj/item/weapon/reagent_containers/chem_disp_cartridge/verb/setLabel(L as text)
+/obj/item/weapon/reagent_containers/chem_disp_cartridge/verb/verb_set_label(L as text)
set name = "Set Cartridge Label"
set category = "Object"
set src in view(usr, 1)
+
+ setLabel(L, usr)
+
+/obj/item/weapon/reagent_containers/chem_disp_cartridge/proc/setLabel(L, mob/user = null)
if(L)
- if(usr)
- usr << "You set the label on \the [src] to '[L]'."
+ if(user)
+ user << "You set the label on \the [src] to '[L]'."
label = L
name = "[initial(name)] - '[L]'"
else
- if(usr)
- usr << "You clear the label on \the [src]."
+ if(user)
+ user << "You clear the label on \the [src]."
label = ""
name = initial(name)
@@ -87,4 +91,4 @@
user << "You transfer [trans] units of the solution to \the [target]."
else
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/modules/reagents/dispenser/cartridge_spawn.dm b/code/modules/reagents/dispenser/cartridge_spawn.dm
new file mode 100644
index 0000000000..730e191891
--- /dev/null
+++ b/code/modules/reagents/dispenser/cartridge_spawn.dm
@@ -0,0 +1,13 @@
+/client/proc/spawn_chemdisp_cartridge(size in list("small", "medium", "large"), reagent in chemical_reagents_list)
+ set name = "Spawn Chemical Dispenser Cartridge"
+ set category = "Admin"
+
+ var/obj/item/weapon/reagent_containers/chem_disp_cartridge/C
+ switch(size)
+ if("small") C = new /obj/item/weapon/reagent_containers/chem_disp_cartridge/small(usr.loc)
+ if("medium") C = new /obj/item/weapon/reagent_containers/chem_disp_cartridge/medium(usr.loc)
+ if("large") C = new /obj/item/weapon/reagent_containers/chem_disp_cartridge(usr.loc)
+ C.reagents.add_reagent(reagent, C.volume)
+ var/datum/reagent/R = chemical_reagents_list[reagent]
+ C.setLabel(R.name)
+ log_admin("[key_name(usr)] spawned a [size] reagent container containing [reagent] at ([usr.x],[usr.y],[usr.z])")