From 6b2daae752ca2be6b66d011b7e91d0c3b13a7299 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Mon, 20 Jul 2015 16:27:58 +0300 Subject: [PATCH 1/2] Fixes #6264 - labeling janicart messes its ui Janicart now uses nanoui and is immune to labeling screwing up its interface I've even resisted making pointless spacing changes this time! --- code/game/objects/structures/janicart.dm | 94 ++++++++++++------------ nano/templates/janitorcart.tmpl | 30 ++++++++ 2 files changed, 79 insertions(+), 45 deletions(-) create mode 100644 nano/templates/janitorcart.tmpl diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index bd253da195..deb95a98e9 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -83,22 +83,23 @@ /obj/structure/janitorialcart/attack_hand(mob/user) - user.set_machine(src) - var/dat - if(mybag) - dat += "[mybag.name]
" - if(mymop) - dat += "[mymop.name]
" - if(myspray) - dat += "[myspray.name]
" - if(myreplacer) - dat += "[myreplacer.name]
" - if(signs) - dat += "[signs] sign\s
" - var/datum/browser/popup = new(user, "janicart", name, 240, 160) - popup.set_content(dat) - popup.open() + ui_interact(user) + return +/obj/structure/janitorialcart/ui_interact(var/mob/user, var/ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + var/data[0] + data["name"] = uppertext(copytext(name, 1, 2)) + copytext(name, 2) + data["bag"] = mybag ? uppertext(copytext(mybag.name, 1, 2)) + copytext(mybag.name, 2) : null + data["mop"] = mymop ? uppertext(copytext(mymop.name, 1, 2)) + copytext(mymop.name, 2) : null + data["spray"] = myspray ? uppertext(copytext(myspray.name, 1, 2)) + copytext(myspray.name, 2) : null + data["replacer"] = myreplacer ? uppertext(copytext(myreplacer.name, 1, 2)) + copytext(myreplacer.name, 2) : null + data["signs"] = signs ? "[signs] sign\s" : null + + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if(!ui) + ui = new(user, src, ui_key, "janitorcart.tmpl", "Janitorial cart", 240, 160) + ui.set_initial_data(data) + ui.open() /obj/structure/janitorialcart/Topic(href, href_list) if(!in_range(src, usr)) @@ -106,36 +107,39 @@ if(!isliving(usr)) return var/mob/living/user = usr - if(href_list["garbage"]) - if(mybag) - user.put_in_hands(mybag) - user << "You take [mybag] from [src]." - mybag = null - if(href_list["mop"]) - if(mymop) - user.put_in_hands(mymop) - user << "You take [mymop] from [src]." - mymop = null - if(href_list["spray"]) - if(myspray) - user.put_in_hands(myspray) - user << "You take [myspray] from [src]." - myspray = null - if(href_list["replacer"]) - if(myreplacer) - user.put_in_hands(myreplacer) - user << "You take [myreplacer] from [src]." - myreplacer = null - if(href_list["sign"]) - if(signs) - var/obj/item/weapon/caution/Sign = locate() in src - if(Sign) - user.put_in_hands(Sign) - user << "You take \a [Sign] from [src]." - signs-- - else - warning("[src] signs ([signs]) didn't match contents") - signs = 0 + + if(href_list["take"]) + switch(href_list["take"]) + if("garbage") + if(mybag) + user.put_in_hands(mybag) + user << "You take [mybag] from [src]." + mybag = null + if("mop") + if(mymop) + user.put_in_hands(mymop) + user << "You take [mymop] from [src]." + mymop = null + if("spray") + if(myspray) + user.put_in_hands(myspray) + user << "You take [myspray] from [src]." + myspray = null + if("replacer") + if(myreplacer) + user.put_in_hands(myreplacer) + user << "You take [myreplacer] from [src]." + myreplacer = null + if("sign") + if(signs) + var/obj/item/weapon/caution/Sign = locate() in src + if(Sign) + user.put_in_hands(Sign) + user << "You take \a [Sign] from [src]." + signs-- + else + warning("[src] signs ([signs]) didn't match contents") + signs = 0 update_icon() updateUsrDialog() diff --git a/nano/templates/janitorcart.tmpl b/nano/templates/janitorcart.tmpl new file mode 100644 index 0000000000..916b92bc72 --- /dev/null +++ b/nano/templates/janitorcart.tmpl @@ -0,0 +1,30 @@ +
+
+ {{:data.name}} +
+ {{if data.bag}} +
+ {{:helper.link(data.bag, '', { 'take' : 'garbage' })}} +
+ {{/if}} + {{if data.mop}} +
+ {{:helper.link(data.mop, '', { 'take' : 'mop' })}} +
+ {{/if}} + {{if data.spray}} +
+ {{:helper.link(data.spray, '', { 'take' : 'spray' })}} +
+ {{/if}} + {{if data.replacer}} +
+ {{:helper.link(data.replacer, '', { 'take' : 'replacer' })}} +
+ {{/if}} + {{if data.signs}} +
+ {{:helper.link(data.signs, '', { 'take' : 'sign' })}} +
+ {{/if}} +
\ No newline at end of file From d509bdbbfeeb91c72558de8dcf8763f8134ceacb Mon Sep 17 00:00:00 2001 From: Kelenius Date: Tue, 21 Jul 2015 11:58:39 +0300 Subject: [PATCH 2/2] Uses capitalize() --- code/game/objects/structures/janicart.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index deb95a98e9..df6e3a3341 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -88,11 +88,11 @@ /obj/structure/janitorialcart/ui_interact(var/mob/user, var/ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] - data["name"] = uppertext(copytext(name, 1, 2)) + copytext(name, 2) - data["bag"] = mybag ? uppertext(copytext(mybag.name, 1, 2)) + copytext(mybag.name, 2) : null - data["mop"] = mymop ? uppertext(copytext(mymop.name, 1, 2)) + copytext(mymop.name, 2) : null - data["spray"] = myspray ? uppertext(copytext(myspray.name, 1, 2)) + copytext(myspray.name, 2) : null - data["replacer"] = myreplacer ? uppertext(copytext(myreplacer.name, 1, 2)) + copytext(myreplacer.name, 2) : null + data["name"] = capitalize(name) + data["bag"] = mybag ? capitalize(mybag.name) : null + data["mop"] = mymop ? capitalize(mymop.name) : null + data["spray"] = myspray ? capitalize(myspray.name) : null + data["replacer"] = myreplacer ? capitalize(myreplacer.name) : null data["signs"] = signs ? "[signs] sign\s" : null ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)