[MIRROR] Test tubes and racks [MDB IGNORE] (#21400)

* Test tubes and racks

* fixes

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
This commit is contained in:
SkyratBot
2023-05-24 17:41:32 +02:00
committed by GitHub
co-authored by Andrew ghost sheep
parent 13970a9399
commit 86aec08be8
16 changed files with 69 additions and 15 deletions
@@ -25,6 +25,7 @@
atom_storage.set_holdable(list(
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/cup/glass/waterbottle,
/obj/item/reagent_containers/condiment,
))
@@ -340,6 +340,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
new/datum/stack_recipe("bonfire", /obj/structure/bonfire, 10, time = 6 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_TOOLS), \
new/datum/stack_recipe("easel", /obj/structure/easel, 5, time = 1 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_ENTERTAINMENT), \
new/datum/stack_recipe("noticeboard", /obj/item/wallframe/noticeboard, 1, time = 1 SECONDS, one_per_turf = FALSE, on_solid_ground = FALSE, check_density = FALSE, category = CAT_FURNITURE), \
new/datum/stack_recipe("test tube rack", /obj/item/storage/test_tube_rack, 1, time = 1 SECONDS, check_density = FALSE, category = CAT_CHEMISTRY), \
null, \
new/datum/stack_recipe_list("pews", list(
new /datum/stack_recipe("pew (middle)", /obj/structure/chair/pew, 3, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_FURNITURE),
+3
View File
@@ -442,6 +442,7 @@
/obj/item/reagent_containers/cup/glass/waterbottle,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/medigel,
/obj/item/reagent_containers/pill,
/obj/item/reagent_containers/syringe,
@@ -472,6 +473,7 @@
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/hypospray/medipen,
/obj/item/reagent_containers/syringe,
))
@@ -501,6 +503,7 @@
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/syringe,
/obj/item/slime_extract,
/obj/item/swab,
+2
View File
@@ -247,6 +247,7 @@
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/vial, //SKYRAT EDIT HYPOSPRAYS
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/hypospray,
/obj/item/reagent_containers/medigel,
/obj/item/reagent_containers/pill,
@@ -871,6 +872,7 @@
/obj/item/plant_analyzer,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/spray/pestspray,
/obj/item/reagent_containers/spray/plantbgone,
/obj/item/secateurs,
+29
View File
@@ -81,6 +81,7 @@
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/pill,
/obj/item/reagent_containers/syringe,
/obj/item/reagent_containers/medigel,
@@ -734,3 +735,31 @@
/obj/item/storage/organbox/preloaded/Initialize(mapload)
. = ..()
reagents.add_reagent(/datum/reagent/cryostylane, reagents.maximum_volume)
/obj/item/storage/test_tube_rack
name = "test tube rack"
desc = "A wooden rack for storing test tubes."
icon_state = "rack"
base_icon_state = "rack"
icon = 'icons/obj/medical/chemical.dmi'
inhand_icon_state = "contsolid"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
/obj/item/storage/test_tube_rack/Initialize(mapload)
. = ..()
atom_storage.allow_quick_gather = TRUE
atom_storage.max_slots = 8
atom_storage.screen_max_columns = 4
atom_storage.screen_max_rows = 2
atom_storage.set_holdable(list(
/obj/item/reagent_containers/cup/tube,
))
/obj/item/storage/test_tube_rack/attack_self(mob/user)
emptyStorage()
/obj/item/storage/test_tube_rack/update_icon_state()
icon_state = "[base_icon_state][contents.len > 0 ? contents.len : null]"
return ..()
+2
View File
@@ -20,6 +20,7 @@
/obj/item/plant_analyzer,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/spray/pestspray,
/obj/item/reagent_containers/spray/plantbgone,
/obj/item/secateurs,
@@ -267,6 +268,7 @@
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/hypospray,
/obj/item/reagent_containers/syringe,
/obj/item/retractor,
+1
View File
@@ -17,6 +17,7 @@
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/hypospray,
/obj/item/reagent_containers/pill,
/obj/item/reagent_containers/syringe,
@@ -256,6 +256,7 @@
/obj/item/holosign_creator,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/spray,
)
hoodtype = /obj/item/clothing/head/hooded/winterhood/janitor
@@ -311,6 +312,7 @@
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/hypospray,
/obj/item/reagent_containers/pill,
/obj/item/reagent_containers/syringe,
@@ -434,6 +436,7 @@
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/hypospray,
/obj/item/reagent_containers/pill,
/obj/item/reagent_containers/syringe,
+2
View File
@@ -474,6 +474,7 @@
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/hypospray,
/obj/item/reagent_containers/pill,
/obj/item/reagent_containers/syringe,
@@ -569,6 +570,7 @@
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/cup/beaker,
/obj/item/reagent_containers/cup/bottle,
/obj/item/reagent_containers/cup/tube,
/obj/item/reagent_containers/hypospray,
/obj/item/reagent_containers/pill,
/obj/item/reagent_containers/syringe,
@@ -422,10 +422,10 @@
reagents.trans_to(P, vol_each, transfered_by = usr)
return TRUE
if(item_type == "bottle")
var/obj/item/reagent_containers/cup/bottle/P
var/obj/item/reagent_containers/cup/tube/P
for(var/i in 1 to amount)
P = new/obj/item/reagent_containers/cup/bottle(drop_location())
P.name = trim("[name] bottle")
P = new/obj/item/reagent_containers/cup/tube(drop_location())
P.name = trim("[name] test tube")
adjust_item_drop_location(P)
reagents.trans_to(P, vol_each, transfered_by = usr)
return TRUE
@@ -201,14 +201,14 @@
use_power(active_power_usage)
adv_disease = adv_disease.Copy()
var/list/data = list("viruses" = list(adv_disease))
var/obj/item/reagent_containers/cup/bottle/bottle = new(drop_location())
bottle.name = "[adv_disease.name] culture bottle"
bottle.desc = "A small bottle. Contains [adv_disease.agent] culture in synthblood medium."
var/obj/item/reagent_containers/cup/tube/bottle = new(drop_location())
bottle.name = "[adv_disease.name] culture tube"
bottle.desc = "A small test tube containing [adv_disease.agent] culture in synthblood medium."
bottle.reagents.add_reagent(/datum/reagent/blood, 20, data)
wait = TRUE
update_appearance()
var/turf/source_turf = get_turf(src)
log_virus("A culture bottle was printed for the virus [adv_disease.admin_details()] at [loc_name(source_turf)] by [key_name(usr)]")
log_virus("A culture tube was printed for the virus [adv_disease.admin_details()] at [loc_name(source_turf)] by [key_name(usr)]")
addtimer(CALLBACK(src, PROC_REF(reset_replicator_cooldown)), 5 SECONDS)
return TRUE
@@ -223,8 +223,8 @@
use_power(active_power_usage)
var/id = index
var/datum/disease/disease = SSdisease.archive_diseases[id]
var/obj/item/reagent_containers/cup/bottle/bottle = new(drop_location())
bottle.name = "[disease.name] vaccine bottle"
var/obj/item/reagent_containers/cup/tube/bottle = new(drop_location())
bottle.name = "[disease.name] vaccine tube"
bottle.reagents.add_reagent(/datum/reagent/vaccine, 15, list(id))
wait = TRUE
update_appearance()
@@ -559,3 +559,15 @@
volume = 240
icon_state = "coffeepot_bluespace"
fill_icon_thresholds = list(0)
///Test tubes created by chem master and pandemic and placed in racks
/obj/item/reagent_containers/cup/tube
name = "tube"
desc = "A small test tube."
icon_state = "test_tube"
fill_icon_state = "tube"
inhand_icon_state = "atoxinbottle"
worn_icon_state = "test_tube"
possible_transfer_amounts = list(5, 10, 15, 30)
volume = 30
fill_icon_thresholds = list(0, 1, 20, 40, 60, 80, 100)
@@ -7,8 +7,8 @@
fill_icon_state = "bottle"
inhand_icon_state = "atoxinbottle"
worn_icon_state = "bottle"
possible_transfer_amounts = list(5, 10, 15, 25, 30)
volume = 30
possible_transfer_amounts = list(5, 10, 15, 25, 50)
volume = 50
fill_icon_thresholds = list(0, 1, 20, 40, 60, 80, 100)
/obj/item/reagent_containers/cup/bottle/Initialize(mapload)
@@ -62,7 +62,6 @@
/obj/item/reagent_containers/cup/bottle/phlogiston
name = "Phlogiston bottle"
desc = "A small bottle of Phlogiston, that will set you on fire if used."
volume = 50
list_reagents = list(/datum/reagent/phlogiston = 30)
/obj/item/reagent_containers/cup/bottle/ammoniated_mercury
@@ -473,7 +472,6 @@
fill_icon_state = "syrup"
fill_icon_thresholds = list(0, 20, 40, 60, 80, 100)
possible_transfer_amounts = list(5, 10)
volume = 50
amount_per_transfer_from_this = 5
spillable = FALSE
///variable to tell if the bottle can be refilled
Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

+2 -2
View File
@@ -319,9 +319,9 @@ const PackagingControls = (props, context) => {
)}
{!condi && (
<PackagingControlsItem
label="Bottles"
label="Tubes"
amount={bottleAmount}
amountUnit="bottles"
amountUnit="tubes"
sideNote="max 30u"
onChangeAmount={(e, value) => setBottleAmount(value)}
onCreate={() =>