From d3d805fa2ee4b3e793f1a7c75f1158e83d7943f8 Mon Sep 17 00:00:00 2001
From: Ghom <42542238+Ghommie@users.noreply.github.com>
Date: Tue, 31 Mar 2020 10:19:01 +0200
Subject: [PATCH] The spraycan color input can now be triggered with ctrl-click
while it's on your person. (#50300)
* force push
* Update crayons.dm
---
code/game/objects/items/crayons.dm | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index fe97b402b55..1d8dafd4ff9 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -88,6 +88,11 @@
refill()
+/obj/item/toy/crayon/examine(mob/user)
+ . = ..()
+ if(can_change_colour)
+ . += "Ctrl-click [src] while it's on your person to quickly recolour it."
+
/obj/item/toy/crayon/proc/refill()
if(charges == -1)
charges_left = 100
@@ -155,6 +160,12 @@
to_chat(user, "The cap on [src] is now [is_capped ? "on" : "off"].")
update_icon()
+/obj/item/toy/crayon/CtrlClick(mob/user)
+ if(can_change_colour && !isturf(loc) && user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+ select_colour(user)
+ else
+ return ..()
+
/obj/item/toy/crayon/proc/staticDrawables()
. = list()
@@ -232,14 +243,7 @@
else
paint_mode = PAINT_NORMAL
if("select_colour")
- if(can_change_colour)
- var/chosen_colour = input(usr,"","Choose Color",paint_color) as color|null
-
- if (!isnull(chosen_colour))
- paint_color = chosen_colour
- . = TRUE
- else
- . = FALSE
+ . = can_change_colour && select_colour(usr)
if("enter_text")
var/txt = stripped_input(usr,"Choose what to write.",
"Scribbles",default = text_buffer)
@@ -249,6 +253,13 @@
drawtype = "a"
update_icon()
+/obj/item/toy/crayon/proc/select_colour(mob/user)
+ var/chosen_colour = input(user, "", "Choose Color", paint_color) as color|null
+ if (!isnull(chosen_colour) && user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+ paint_color = chosen_colour
+ return TRUE
+ return FALSE
+
/obj/item/toy/crayon/proc/crayon_text_strip(text)
var/static/regex/crayon_r = new /regex(@"[^\w!?,.=%#&+\/\-]")
return replacetext(lowertext(text), crayon_r, "")