diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index 603b34ee32..1f1c16248c 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -6,10 +6,12 @@ density = TRUE anchored = TRUE circuit = /obj/item/circuitboard/machine/colormate - var/obj/item/inserted + var/atom/movable/inserted var/activecolor = "#FFFFFF" var/list/color_matrix_last var/matrix_mode = FALSE + /// Allow holder'd mobs + var/allow_mobs = TRUE /// Minimum lightness for normal mode var/minimum_normal_lightness = 50 /// Minimum lightness for matrix mode, tested using 4 test colors of full red, green, blue, white. @@ -57,6 +59,15 @@ return if(user.a_intent == INTENT_HARM) return ..() + if(allow_mobs && istype(I, /obj/item/clothing/head/mob_holder)) + var/obj/item/clothing/head/mob_holder/H = I + var/mob/victim = H.held_mob + if(!user.transferItemToLoc(I, src)) + to_chat(user, "[I] is stuck to your hand!") + return + if(!QDELETED(H)) + H.release() + insert_mob(victim, user) if(is_type_in_list(I, allowed_types) && is_operational()) if(!user.transferItemToLoc(I, src)) @@ -71,6 +82,14 @@ else return ..() +/obj/machinery/gear_painter/proc/insert_mob(mob/victim, mob/user) + if(inserted) + return + if(user) + visible_message("[user] stuffs [victim] into [src]!") + inserted = victim + inserted.forceMove(src) + /obj/machinery/gear_painter/AllowDrop() return FALSE