diff --git a/code/modules/paperwork/handlabeler.dm b/code/modules/paperwork/handlabeler.dm index 8ae7517cb62..6d1008ca8d7 100644 --- a/code/modules/paperwork/handlabeler.dm +++ b/code/modules/paperwork/handlabeler.dm @@ -28,6 +28,9 @@ if(issilicon(A)) user << "You can't label cyborgs." return + if(istype(A, /obj/item/weapon/reagent_containers/glass)) + user << "The label can't stick to the [A.name]. (Try using a pen)" + return user.visible_message("[user] labels [A] as [label].", \ "You label [A] as [label].") diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index af30187c1dc..9c8b004c479 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -4,6 +4,7 @@ //////////////////////////////////////////////////////////////////////////////// /obj/item/weapon/reagent_containers/glass name = " " + var/base_name = " " desc = " " icon = 'icons/obj/chemical.dmi' icon_state = "null" @@ -13,6 +14,8 @@ volume = 50 flags = FPRINT | TABLEPASS | OPENCONTAINER + var/label_text = "" + var/list/can_be_placed_into = list( /obj/machinery/chem_master/, /obj/machinery/chem_dispenser/, @@ -34,14 +37,17 @@ /mob/living/simple_animal/hostile/retaliate/goat, /obj/machinery/computer/centrifuge ) + New() + ..() + base_name = name + examine() set src in view() ..() if (!(usr in view(2)) && usr!=src.loc) return usr << "\blue It contains:" if(reagents && reagents.reagent_list.len) - for(var/datum/reagent/R in reagents.reagent_list) - usr << "\blue [R.volume] units of [R.name]" + usr << "\blue [src.reagents.total_volume] units of liquid." else usr << "\blue Nothing." if (!is_open_container()) @@ -122,6 +128,22 @@ spawn(5) src.reagents.clear_reagents() return + attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/device/flashlight/pen)) + var/tmp_label = sanitize(input(user, "Enter a label for [src.name]","Label",src.label_text)) + if(length(tmp_label) > 10) + user << "\red The label can be at most 10 characters long." + else + user << "\blue You set the label to \"[tmp_label]\"." + src.label_text = tmp_label + src.update_name_label() + + proc/update_name_label() + if(src.label_text == "") + src.name = src.base_name + else + src.name = "[src.base_name] ([src.label_text])" + /obj/item/weapon/reagent_containers/glass/beaker name = "beaker" desc = "A beaker. Can hold up to 50 units." diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 8551a16f2af..d0364d1e4cc 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -88,8 +88,7 @@ /obj/item/weapon/reagent_containers/spray/examine() set src in usr ..() - for(var/datum/reagent/R in reagents.reagent_list) - usr << "[round(R.volume)] units of [R.name] left." + usr << "[round(src.reagents.total_volume)] units left." return /obj/item/weapon/reagent_containers/spray/verb/empty()