From 4ac4375fafcc8deea08e75da4f38be5892f9ecd7 Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Tue, 25 Jun 2024 00:08:37 +0300 Subject: [PATCH] Adds pen clicking, changes most pen typechecks into writing implement checks (#84186) ## About The Pull Request Fixes #84170 Adds pen clicking and changes some of edagger and pendriver code to use it instead. Also replaces most pen typechecks to writing implement checks where it makes sense, so now you can rename things with everything you can write with (crayons) ![3d6NwcATNp](https://github.com/tgstation/tgstation/assets/44720187/f6b3ba2f-f3de-4e40-827f-2bad153a92f4) Twisting pen caps (for traitor uplinks) has been moved to ctrl + click instead. --- code/__DEFINES/paper.dm | 2 + code/game/machinery/newscaster/newspaper.dm | 2 +- .../porta_turret/portable_turret_construct.dm | 2 +- code/game/machinery/suit_storage_unit.dm | 2 +- code/game/objects/items/devices/beacon.dm | 2 +- .../objects/items/implants/implantcase.dm | 2 +- code/game/objects/items/implants/implanter.dm | 2 +- code/game/objects/items/robot/robot_parts.dm | 2 +- code/game/objects/items/signs.dm | 2 +- .../objects/items/storage/boxes/food_boxes.dm | 2 +- .../structures/crates_lockers/closets.dm | 4 +- .../crates_lockers/closets/bodybag.dm | 2 +- code/game/objects/structures/door_assembly.dm | 2 +- code/game/objects/structures/signs/_signs.dm | 6 +- .../objects/structures/windoor_assembly.dm | 2 +- code/modules/cards/singlecard.dm | 2 +- code/modules/cargo/supplypod_beacon.dm | 2 +- code/modules/food_and_drinks/pizzabox.dm | 2 +- code/modules/hydroponics/seeds.dm | 2 +- code/modules/library/book.dm | 2 +- code/modules/library/bookcase.dm | 2 +- .../living/simple_animal/bot/construction.dm | 2 +- code/modules/paperwork/folders.dm | 2 +- code/modules/paperwork/paperplane.dm | 2 +- code/modules/paperwork/pen.dm | 67 +++++++++++++----- code/modules/photography/photos/photo.dm | 2 +- .../reagents/reagent_containers/blood_pack.dm | 4 +- .../reagent_containers/cups/bottle.dm | 2 +- code/modules/recycling/sortingmachinery.dm | 2 +- code/modules/vending/_vending.dm | 2 +- icons/obj/service/bureaucracy.dmi | Bin 30507 -> 27255 bytes 31 files changed, 84 insertions(+), 49 deletions(-) diff --git a/code/__DEFINES/paper.dm b/code/__DEFINES/paper.dm index feb41c0409c..0d70a2f3ca4 100644 --- a/code/__DEFINES/paper.dm +++ b/code/__DEFINES/paper.dm @@ -16,3 +16,5 @@ #define BARCODE_SCANNER_CHECKIN "check_in" #define BARCODE_SCANNER_INVENTORY "inventory" + +#define IS_WRITING_UTENSIL(thing) (thing?.get_writing_implement_details()?["interaction_mode"] == MODE_WRITING) diff --git a/code/game/machinery/newscaster/newspaper.dm b/code/game/machinery/newscaster/newspaper.dm index d791fac6545..2bd8187b9f8 100644 --- a/code/game/machinery/newscaster/newspaper.dm +++ b/code/game/machinery/newscaster/newspaper.dm @@ -55,7 +55,7 @@ /obj/item/newspaper/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) if(held_item) - if(istype(held_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(held_item)) context[SCREENTIP_CONTEXT_LMB] = "Scribble" return CONTEXTUAL_SCREENTIP_SET if(held_item.get_temperature()) diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index 470aa0501e9..a8fa4e67b2b 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -181,7 +181,7 @@ build_step = PTURRET_CLOSED return - if(istype(used, /obj/item/pen)) //you can rename turrets like bots! + if(used.get_writing_implement_details()?["interaction_mode"] == MODE_WRITING) //you can rename turrets like bots! var/choice = tgui_input_text(user, "Enter a new turret name", "Turret Classification", finish_name, MAX_NAME_LEN) if(!choice) return diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index ce513c4000f..0b61b81bc11 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -699,7 +699,7 @@ else balloon_alert(user, "set to [choice]") - else if(!state_open && istype(weapon, /obj/item/pen)) + else if(!state_open && IS_WRITING_UTENSIL(weapon)) if(locked) balloon_alert(user, "unlock first!") return diff --git a/code/game/objects/items/devices/beacon.dm b/code/game/objects/items/devices/beacon.dm index ccd8bb413e3..a7c34a92c0d 100644 --- a/code/game/objects/items/devices/beacon.dm +++ b/code/game/objects/items/devices/beacon.dm @@ -48,7 +48,7 @@ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN /obj/item/beacon/attackby(obj/item/W, mob/user) - if(istype(W, /obj/item/pen)) // needed for things that use custom names like the locator + if(IS_WRITING_UTENSIL(W)) // needed for things that use custom names like the locator var/new_name = tgui_input_text(user, "What would you like the name to be?", "Beacon", max_length = MAX_NAME_LEN) if(!user.can_perform_action(src)) return diff --git a/code/game/objects/items/implants/implantcase.dm b/code/game/objects/items/implants/implantcase.dm index 2695529593f..ffef74de3c1 100644 --- a/code/game/objects/items/implants/implantcase.dm +++ b/code/game/objects/items/implants/implantcase.dm @@ -36,7 +36,7 @@ return ..() /obj/item/implantcase/attackby(obj/item/used_item, mob/living/user, params) - if(istype(used_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(used_item)) if(!user.can_write(used_item)) return var/new_name = tgui_input_text(user, "What would you like the label to be?", name, max_length = MAX_NAME_LEN) diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm index a5242e292a1..1f462527d53 100644 --- a/code/game/objects/items/implants/implanter.dm +++ b/code/game/objects/items/implants/implanter.dm @@ -45,7 +45,7 @@ to_chat(user, span_warning("[src] fails to implant [target].")) /obj/item/implanter/attackby(obj/item/I, mob/living/user, params) - if(!istype(I, /obj/item/pen)) + if(IS_WRITING_UTENSIL(I)) return ..() if(!user.can_write(I)) return diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 367c619333e..d74c9f98dd3 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -376,7 +376,7 @@ if(!locomotion) O.set_lockcharge(TRUE) - else if(istype(W, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(W)) to_chat(user, span_warning("You need to use a multitool to name [src]!")) else return ..() diff --git a/code/game/objects/items/signs.dm b/code/game/objects/items/signs.dm index 3bf5c36048b..85a71dc0e8f 100644 --- a/code/game/objects/items/signs.dm +++ b/code/game/objects/items/signs.dm @@ -30,7 +30,7 @@ desc = "It reads: [label]" /obj/item/picket_sign/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/pen) || istype(W, /obj/item/toy/crayon)) + if(IS_WRITING_UTENSIL(W)) retext(user, W) else return ..() diff --git a/code/game/objects/items/storage/boxes/food_boxes.dm b/code/game/objects/items/storage/boxes/food_boxes.dm index 45de0e58ff6..bab60320c95 100644 --- a/code/game/objects/items/storage/boxes/food_boxes.dm +++ b/code/game/objects/items/storage/boxes/food_boxes.dm @@ -95,7 +95,7 @@ return ..() /obj/item/storage/box/papersack/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - if(istype(inserted, /obj/item/pen)) + if(IS_WRITING_UTENSIL(inserted)) var/choice = show_radial_menu(user, src , papersack_designs, custom_check = CALLBACK(src, PROC_REF(check_menu), user, inserted), radius = 36, require_near = TRUE) if(!choice || choice == design_choice) return FALSE diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index f98b29e1932..8fd16036811 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -399,7 +399,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets) screentip_change = TRUE if(!locked && !opened) - if(id_card && istype(held_item, /obj/item/pen)) + if(id_card && IS_WRITING_UTENSIL(held_item)) context[SCREENTIP_CONTEXT_LMB] = "Rename" screentip_change = TRUE if(secure && card_reader_installed && !broken) @@ -817,7 +817,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets) else balloon_alert(user, "set to [choice]") - else if(!opened && istype(weapon, /obj/item/pen)) + else if(!opened && IS_WRITING_UTENSIL(weapon)) if(locked) balloon_alert(user, "unlock first!") return diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm index 38482fcfd9b..8eb5cc3b8c0 100644 --- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm @@ -47,7 +47,7 @@ return ..() /obj/structure/closet/body_bag/attackby(obj/item/interact_tool, mob/user, params) - if (istype(interact_tool, /obj/item/pen) || istype(interact_tool, /obj/item/toy/crayon)) + if (IS_WRITING_UTENSIL(interact_tool)) if(!user.can_write(interact_tool)) return var/t = tgui_input_text(user, "What would you like the label to be?", name, max_length = 53) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 86d8e01f98e..9493a7c9414 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -82,7 +82,7 @@ . += span_notice("There is a small paper placard on the assembly, written on it is '[created_name]'.") /obj/structure/door_assembly/attackby(obj/item/W, mob/living/user, params) - if(istype(W, /obj/item/pen) && !user.combat_mode) + if(IS_WRITING_UTENSIL(W) && !user.combat_mode) var/t = tgui_input_text(user, "Enter the name for the door", "Airlock Renaming", created_name, MAX_NAME_LEN) if(!t) return diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm index eefbe49ef32..9268cb9c059 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -85,7 +85,7 @@ return TRUE /obj/structure/sign/attackby(obj/item/I, mob/user, params) - if(is_editable && istype(I, /obj/item/pen)) + if(is_editable && IS_WRITING_UTENSIL(I)) if(!length(GLOB.editable_sign_types)) CRASH("GLOB.editable_sign_types failed to populate") var/choice = tgui_input_list(user, "Select a sign type", "Sign Customization", GLOB.editable_sign_types) @@ -187,12 +187,12 @@ /obj/item/sign/add_context(atom/source, list/context, obj/item/held_item, mob/user) . = ..() - if(is_editable && istype(held_item, /obj/item/pen)) + if(is_editable && IS_WRITING_UTENSIL(held_item)) context[SCREENTIP_CONTEXT_LMB] = "Change design" return CONTEXTUAL_SCREENTIP_SET /obj/item/sign/attackby(obj/item/I, mob/user, params) - if(is_editable && istype(I, /obj/item/pen)) + if(is_editable && IS_WRITING_UTENSIL(I)) if(!length(GLOB.editable_sign_types)) CRASH("GLOB.editable_sign_types failed to populate") var/choice = tgui_input_list(user, "Select a sign type", "Sign Customization", GLOB.editable_sign_types) diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 3437e2a5ae0..195fbbc643e 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -246,7 +246,7 @@ electronics = null ae.forceMove(drop_location()) - else if(istype(W, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(W)) var/t = tgui_input_text(user, "Enter the name for the door", "Windoor Renaming", created_name, MAX_NAME_LEN) if(!t) return diff --git a/code/modules/cards/singlecard.dm b/code/modules/cards/singlecard.dm index 0c228fbbb17..300523254ed 100644 --- a/code/modules/cards/singlecard.dm +++ b/code/modules/cards/singlecard.dm @@ -95,7 +95,7 @@ context[SCREENTIP_CONTEXT_LMB] = "Combine cards" return CONTEXTUAL_SCREENTIP_SET - if(istype(held_item, /obj/item/toy/crayon) || istype(held_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(held_item)) context[SCREENTIP_CONTEXT_LMB] = blank ? "Write on card" : "Mark card" return CONTEXTUAL_SCREENTIP_SET diff --git a/code/modules/cargo/supplypod_beacon.dm b/code/modules/cargo/supplypod_beacon.dm index 8f1166002de..2d9a618bb41 100644 --- a/code/modules/cargo/supplypod_beacon.dm +++ b/code/modules/cargo/supplypod_beacon.dm @@ -103,7 +103,7 @@ return CLICK_ACTION_SUCCESS /obj/item/supplypod_beacon/attackby(obj/item/W, mob/user) - if(!istype(W, /obj/item/pen)) //give a tag that is visible from the linked express console + if(IS_WRITING_UTENSIL(W)) //give a tag that is visible from the linked express console return ..() var/new_beacon_name = tgui_input_text(user, "What would you like the tag to be?", "Beacon Tag", max_length = MAX_NAME_LEN) if(isnull(new_beacon_name)) diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index a847b15e861..417ac543612 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -228,7 +228,7 @@ return else if(bomb) balloon_alert(user, "already rigged!") - else if(istype(I, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(I)) if(!open) if(!user.can_write(I)) return diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index f46f4c3912a..fefd4d99938 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -462,7 +462,7 @@ return /obj/item/seeds/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/pen)) + if(IS_WRITING_UTENSIL(O)) var/choice = tgui_input_list(usr, "What would you like to change?", "Seed Alteration", list("Plant Name", "Seed Description", "Product Description")) if(isnull(choice)) return diff --git a/code/modules/library/book.dm b/code/modules/library/book.dm index 19b65f82489..5ae9afcdcbe 100644 --- a/code/modules/library/book.dm +++ b/code/modules/library/book.dm @@ -101,7 +101,7 @@ if(burn_paper_product_attackby_check(attacking_item, user)) return - if(istype(attacking_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(attacking_item)) if(!user.can_perform_action(src) || !user.can_write(attacking_item)) return if(user.is_blind()) diff --git a/code/modules/library/bookcase.dm b/code/modules/library/bookcase.dm index 822e4ae583c..16925dd5138 100644 --- a/code/modules/library/bookcase.dm +++ b/code/modules/library/bookcase.dm @@ -130,7 +130,7 @@ atom_storage.attempt_remove(T, src) to_chat(user, span_notice("You empty \the [I] into \the [src].")) update_appearance() - else if(istype(I, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(I)) if(!user.can_perform_action(src) || !user.can_write(I)) return var/newname = tgui_input_text(user, "What would you like to title this bookshelf?", "Bookshelf Renaming", max_length = MAX_NAME_LEN) diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index 7d4565b46f4..a349ca64995 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -12,7 +12,7 @@ /obj/item/bot_assembly/attackby(obj/item/I, mob/user, params) ..() - if(istype(I, /obj/item/pen)) + if(IS_WRITING_UTENSIL(I)) rename_bot() return diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 4d0a0efe596..3ee556b3adf 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -77,7 +77,7 @@ return to_chat(user, span_notice("You put [weapon] into [src].")) update_appearance() - else if(istype(weapon, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(weapon)) rename(user, weapon) /obj/item/folder/attack_self(mob/user) diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index 0b9c4feccb1..7b734c15306 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -78,7 +78,7 @@ /obj/item/paperplane/attackby(obj/item/attacking_item, mob/user, params) if(burn_paper_product_attackby_check(attacking_item, user)) return - if(istype(attacking_item, /obj/item/pen) || istype(attacking_item, /obj/item/toy/crayon)) + if(IS_WRITING_UTENSIL(attacking_item)) to_chat(user, span_warning("You should unfold [src] before changing it!")) return else if(istype(attacking_item, /obj/item/stamp)) //we don't randomize stamps on a paperplane diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 53df8dbd35b..6043890bebd 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -34,6 +34,8 @@ var/dart_insert_icon = 'icons/obj/weapons/guns/toy.dmi' var/dart_insert_casing_icon_state = "overlay_pen" var/dart_insert_projectile_icon_state = "overlay_pen_proj" + /// If this pen can be clicked in order to retract it + var/can_click = TRUE /obj/item/pen/Initialize(mapload) . = ..() @@ -47,6 +49,34 @@ AddElement(/datum/element/tool_renaming) RegisterSignal(src, COMSIG_DART_INSERT_ADDED, PROC_REF(on_inserted_into_dart)) RegisterSignal(src, COMSIG_DART_INSERT_REMOVED, PROC_REF(on_removed_from_dart)) + if (!can_click) + return + create_transform_component() + RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) + +/// Proc that child classes can override to have custom transforms, like edaggers or pendrivers +/obj/item/pen/proc/create_transform_component() + AddComponent( \ + /datum/component/transforming, \ + sharpness_on = NONE, \ + inhand_icon_change = FALSE, \ + ) + +/* + * Signal proc for [COMSIG_TRANSFORMING_ON_TRANSFORM]. + * + * Clicks the pen to make an annoying sound. Clickity clickery click! + */ +/obj/item/pen/proc/on_transform(obj/item/source, mob/user, active) + SIGNAL_HANDLER + + if(user) + balloon_alert(user, "clicked") + playsound(src, 'sound/machines/click.ogg', 30, TRUE, -3) + icon_state = initial(icon_state) + (active ? "_retracted" : "") + update_appearance(UPDATE_ICON) + + return COMPONENT_NO_DEFAULT_MESSAGE /obj/item/pen/proc/on_inserted_into_dart(datum/source, obj/projectile/dart, mob/user, embedded = FALSE) SIGNAL_HANDLER @@ -90,6 +120,7 @@ name = "four-color pen" icon_state = "pen_4color" colour = COLOR_BLACK + can_click = FALSE /obj/item/pen/fourcolor/attack_self(mob/living/carbon/user) . = ..() @@ -110,6 +141,8 @@ colour = COLOR_BLACK to_chat(user, span_notice("\The [src] will now write in [chosen_color].")) desc = "It's a fancy four-color ink pen, set to [chosen_color]." + balloon_alert(user, "clicked") + playsound(src, 'sound/machines/click.ogg', 30, TRUE, -3) /obj/item/pen/fountain name = "fountain pen" @@ -119,6 +152,7 @@ requires_gravity = FALSE // fancy spess pens dart_insert_casing_icon_state = "overlay_fountainpen" dart_insert_projectile_icon_state = "overlay_fountainpen_proj" + can_click = FALSE /obj/item/pen/charcoal name = "charcoal stylus" @@ -129,6 +163,7 @@ custom_materials = null grind_results = list(/datum/reagent/ash = 5, /datum/reagent/cellulose = 10) requires_gravity = FALSE // this is technically a pencil + can_click = FALSE /datum/crafting_recipe/charcoal_stylus name = "Charcoal Stylus" @@ -187,19 +222,17 @@ insert_comp.casing_overlay_icon_state = overlay_reskin[current_skin] insert_comp.projectile_overlay_icon_state = "[overlay_reskin[current_skin]]_proj" -/obj/item/pen/attack_self(mob/living/carbon/user) - . = ..() - if(.) - return +/obj/item/pen/item_ctrl_click(mob/living/carbon/user) if(loc != user) to_chat(user, span_warning("You must be holding the pen to continue!")) - return + return CLICK_ACTION_BLOCKING var/deg = tgui_input_number(user, "What angle would you like to rotate the pen head to? (0-360)", "Rotate Pen Head", max_value = 360) if(isnull(deg) || QDELETED(user) || QDELETED(src) || !user.can_perform_action(src, FORBID_TELEKINESIS_REACH) || loc != user) - return + return CLICK_ACTION_BLOCKING degrees = deg to_chat(user, span_notice("You rotate the top of the pen to [deg] degrees.")) SEND_SIGNAL(src, COMSIG_PEN_ROTATED, deg, user) + return CLICK_ACTION_SUCCESS /obj/item/pen/attack(mob/living/M, mob/user, params) if(force) // If the pen has a force value, call the normal attack procs. Used for e-daggers and captain's pen mostly. @@ -212,6 +245,8 @@ return TRUE /obj/item/pen/get_writing_implement_details() + if (HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE)) + return null return list( interaction_mode = MODE_WRITING, font = font, @@ -287,6 +322,9 @@ speed = 6 SECONDS, \ butcher_sound = 'sound/weapons/blade1.ogg', \ ) + RegisterSignal(src, COMSIG_DETECTIVE_SCANNED, PROC_REF(on_scan)) + +/obj/item/pen/edagger/create_transform_component() AddComponent( \ /datum/component/transforming, \ force_on = 18, \ @@ -296,8 +334,6 @@ w_class_on = WEIGHT_CLASS_NORMAL, \ inhand_icon_change = FALSE, \ ) - RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) - RegisterSignal(src, COMSIG_DETECTIVE_SCANNED, PROC_REF(on_scan)) /obj/item/pen/edagger/on_inserted_into_dart(datum/source, obj/item/ammo_casing/dart, mob/user) . = ..() @@ -369,9 +405,7 @@ * Handles swapping their icon files to edagger related icon files - * as they're supposed to look like a normal pen. */ -/obj/item/pen/edagger/proc/on_transform(obj/item/source, mob/user, active) - SIGNAL_HANDLER - +/obj/item/pen/edagger/on_transform(obj/item/source, mob/user, active) if(active) name = hidden_name desc = hidden_desc @@ -418,6 +452,7 @@ colour = COLOR_BLUE dart_insert_casing_icon_state = "overlay_survivalpen" dart_insert_projectile_icon_state = "overlay_survivalpen_proj" + can_click = FALSE /obj/item/pen/survival/on_inserted_into_dart(datum/source, obj/item/ammo_casing/dart, mob/user) . = ..() @@ -456,6 +491,9 @@ /obj/item/pen/screwdriver/Initialize(mapload) . = ..() + AddElement(/datum/element/update_icon_updates_onmob) + +/obj/item/pen/screwdriver/create_transform_component() AddComponent( \ /datum/component/transforming, \ throwforce_on = 5, \ @@ -464,12 +502,7 @@ inhand_icon_change = FALSE, \ ) - RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(toggle_screwdriver)) - AddElement(/datum/element/update_icon_updates_onmob) - -/obj/item/pen/screwdriver/proc/toggle_screwdriver(obj/item/source, mob/user, active) - SIGNAL_HANDLER - +/obj/item/pen/screwdriver/on_transform(obj/item/source, mob/user, active) if(user) balloon_alert(user, active ? "extended" : "retracted") playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm index b34ff459c00..b009c5b2e79 100644 --- a/code/modules/photography/photos/photo.dm +++ b/code/modules/photography/photos/photo.dm @@ -68,7 +68,7 @@ /obj/item/photo/attackby(obj/item/P, mob/user, params) if(burn_paper_product_attackby_check(P, user)) return - if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon)) + if(IS_WRITING_UTENSIL(P)) if(!user.can_write(P)) return var/txt = tgui_input_text(user, "What would you like to write on the back?", "Photo Writing", max_length = 128) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 89b9e7c748c..75fc8aef892 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -74,7 +74,7 @@ /obj/item/reagent_containers/blood/snail blood_type = "S" unique_blood = /datum/reagent/lube - + /obj/item/reagent_containers/blood/snail/examine() . = ..() . += span_notice("It's a bit slimy... The label indicates that this is meant for snails.") @@ -100,7 +100,7 @@ blood_type = "U" /obj/item/reagent_containers/blood/attackby(obj/item/tool, mob/user, params) - if (istype(tool, /obj/item/pen) || istype(tool, /obj/item/toy/crayon)) + if (IS_WRITING_UTENSIL(tool)) if(!user.can_write(tool)) return var/custom_label = tgui_input_text(user, "What would you like to label the blood pack?", "Blood Pack", name, MAX_NAME_LEN) diff --git a/code/modules/reagents/reagent_containers/cups/bottle.dm b/code/modules/reagents/reagent_containers/cups/bottle.dm index 0b47a89e4b2..97906b26240 100644 --- a/code/modules/reagents/reagent_containers/cups/bottle.dm +++ b/code/modules/reagents/reagent_containers/cups/bottle.dm @@ -510,7 +510,7 @@ balloon_alert(user, "transferred [transfer_amount] unit\s") flick("syrup_anim",src) - if(istype(attacking_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(attacking_item)) rename(user, attacking_item) attacking_item.update_appearance() diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index f02bfff4a09..a6be96a43a8 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -113,7 +113,7 @@ sort_tag = dest_tagger.currTag playsound(loc, 'sound/machines/twobeep_high.ogg', 100, TRUE) update_appearance() - else if(istype(item, /obj/item/pen)) + else if(IS_WRITING_UTENSIL(item)) if(!user.can_write(item)) return var/str = tgui_input_text(user, "Label text?", "Set label", max_length = MAX_NAME_LEN) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index ed6d085abe5..9ca0d41d853 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -1778,7 +1778,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock) speak("\The [src] has been linked to [card_used].") if(compartmentLoadAccessCheck(user)) - if(istype(attack_item, /obj/item/pen)) + if(IS_WRITING_UTENSIL(attack_item)) name = tgui_input_text(user, "Set name", "Name", name, 20) desc = tgui_input_text(user, "Set description", "Description", desc, 60) slogan_list += tgui_input_text(user, "Set slogan", "Slogan", "Epic", 60) diff --git a/icons/obj/service/bureaucracy.dmi b/icons/obj/service/bureaucracy.dmi index e9f8347b0487bc8c106b402203de4aa3235fa963..b400b7aee8b72339cb176bbb5da95b4d29324e26 100644 GIT binary patch literal 27255 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 MOFN5lbC1~n0Fa+aGXMYp literal 30507 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 oPPY1AgwFrtQu