From d5a6e09b7fa3c106fb1ad043f4fe5dd6d4aa3f3e Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Tue, 23 Nov 2021 15:03:19 +0000 Subject: [PATCH] [MIRROR] Cleanup signals.dm [MDB IGNORE] (#9621) * Cleanup signals.dm * Bye bye signals.dm Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com> Co-authored-by: GoldenAlpharex --- code/__DEFINES/dcs/signals.dm | 1624 ----------------- code/__DEFINES/dcs/signals/signals_NTNet.dm | 16 + code/__DEFINES/dcs/signals/signals_action.dm | 5 + code/__DEFINES/dcs/signals/signals_admin.dm | 7 + .../dcs/signals/signals_adventure.dm | 23 + .../dcs/signals/signals_antagonist.dm | 6 + code/__DEFINES/dcs/signals/signals_area.dm | 20 + .../signals_atom/signals_atom_attack.dm | 40 + .../signals_atom/signals_atom_explosion.dm | 14 + .../signals_atom/signals_atom_lighting.dm | 29 + .../signals/signals_atom/signals_atom_main.dm | 85 + .../signals_atom/signals_atom_mouse.dm | 26 + .../signals_atom/signals_atom_movable.dm | 74 + .../signals_atom/signals_atom_movement.dm | 38 + .../signals_atom/signals_atom_x_act.dm | 40 + code/__DEFINES/dcs/signals/signals_bot.dm | 8 + code/__DEFINES/dcs/signals/signals_circuit.dm | 66 + .../dcs/signals/signals_container.dm | 3 + .../dcs/signals/signals_customizable.dm | 3 + .../__DEFINES/dcs/signals/signals_cytology.dm | 4 + code/__DEFINES/dcs/signals/signals_datum.dm | 33 + code/__DEFINES/dcs/signals/signals_food.dm | 24 + code/__DEFINES/dcs/signals/signals_gib.dm | 5 + code/__DEFINES/dcs/signals/signals_global.dm | 57 + .../dcs/signals/signals_global_object.dm | 13 + .../dcs/signals/signals_greyscale.dm | 1 + .../dcs/signals/signals_hydroponic.dm | 35 + code/__DEFINES/dcs/signals/signals_janitor.dm | 17 + .../dcs/signals/signals_light_eater.dm | 9 + .../signals/signals_mob/signals_mob_carbon.dm | 78 + .../signals/signals_mob/signals_mob_living.dm | 79 + .../signals/signals_mob/signals_mob_main.dm | 119 ++ .../signals_mob/signals_mob_silicon.dm | 4 + .../signals/signals_mob/signals_mob_simple.dm | 15 + code/__DEFINES/dcs/signals/signals_mood.dm | 7 + .../__DEFINES/dcs/signals/signals_movetype.dm | 7 + code/__DEFINES/dcs/signals/signals_music.dm | 6 + code/__DEFINES/dcs/signals/signals_object.dm | 360 ++++ .../dcs/signals/signals_radiation.dm | 22 + code/__DEFINES/dcs/signals/signals_reagent.dm | 55 + .../dcs/signals/signals_restaurant.dm | 7 + .../__DEFINES/dcs/signals/signals_scangate.dm | 8 + code/__DEFINES/dcs/signals/signals_specie.dm | 5 + code/__DEFINES/dcs/signals/signals_storage.dm | 32 + .../dcs/signals/signals_subsystem.dm | 25 + code/__DEFINES/dcs/signals/signals_swab.dm | 3 + code/__DEFINES/dcs/signals/signals_techweb.dm | 5 + code/__DEFINES/dcs/signals/signals_tram.dm | 5 + .../dcs/signals/signals_transform.dm | 10 + code/__DEFINES/dcs/signals/signals_turf.dm | 21 + code/__DEFINES/dcs/signals/signals_twohand.dm | 7 + code/__DEFINES/dcs/signals/signals_wash.dm | 4 + .../dcs/signals/signals_xeno_control.dm | 14 + tgstation.dme | 53 +- 54 files changed, 1651 insertions(+), 1625 deletions(-) delete mode 100644 code/__DEFINES/dcs/signals.dm create mode 100644 code/__DEFINES/dcs/signals/signals_NTNet.dm create mode 100644 code/__DEFINES/dcs/signals/signals_action.dm create mode 100644 code/__DEFINES/dcs/signals/signals_admin.dm create mode 100644 code/__DEFINES/dcs/signals/signals_adventure.dm create mode 100644 code/__DEFINES/dcs/signals/signals_antagonist.dm create mode 100644 code/__DEFINES/dcs/signals/signals_area.dm create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.dm create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_explosion.dm create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_lighting.dm create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm create mode 100644 code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm create mode 100644 code/__DEFINES/dcs/signals/signals_bot.dm create mode 100644 code/__DEFINES/dcs/signals/signals_circuit.dm create mode 100644 code/__DEFINES/dcs/signals/signals_container.dm create mode 100644 code/__DEFINES/dcs/signals/signals_customizable.dm create mode 100644 code/__DEFINES/dcs/signals/signals_cytology.dm create mode 100644 code/__DEFINES/dcs/signals/signals_datum.dm create mode 100644 code/__DEFINES/dcs/signals/signals_food.dm create mode 100644 code/__DEFINES/dcs/signals/signals_gib.dm create mode 100644 code/__DEFINES/dcs/signals/signals_global.dm create mode 100644 code/__DEFINES/dcs/signals/signals_global_object.dm create mode 100644 code/__DEFINES/dcs/signals/signals_greyscale.dm create mode 100644 code/__DEFINES/dcs/signals/signals_hydroponic.dm create mode 100644 code/__DEFINES/dcs/signals/signals_janitor.dm create mode 100644 code/__DEFINES/dcs/signals/signals_light_eater.dm create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.dm create mode 100644 code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.dm create mode 100644 code/__DEFINES/dcs/signals/signals_mood.dm create mode 100644 code/__DEFINES/dcs/signals/signals_movetype.dm create mode 100644 code/__DEFINES/dcs/signals/signals_music.dm create mode 100644 code/__DEFINES/dcs/signals/signals_object.dm create mode 100644 code/__DEFINES/dcs/signals/signals_radiation.dm create mode 100644 code/__DEFINES/dcs/signals/signals_reagent.dm create mode 100644 code/__DEFINES/dcs/signals/signals_restaurant.dm create mode 100644 code/__DEFINES/dcs/signals/signals_scangate.dm create mode 100644 code/__DEFINES/dcs/signals/signals_specie.dm create mode 100644 code/__DEFINES/dcs/signals/signals_storage.dm create mode 100644 code/__DEFINES/dcs/signals/signals_subsystem.dm create mode 100644 code/__DEFINES/dcs/signals/signals_swab.dm create mode 100644 code/__DEFINES/dcs/signals/signals_techweb.dm create mode 100644 code/__DEFINES/dcs/signals/signals_tram.dm create mode 100644 code/__DEFINES/dcs/signals/signals_transform.dm create mode 100644 code/__DEFINES/dcs/signals/signals_turf.dm create mode 100644 code/__DEFINES/dcs/signals/signals_twohand.dm create mode 100644 code/__DEFINES/dcs/signals/signals_wash.dm create mode 100644 code/__DEFINES/dcs/signals/signals_xeno_control.dm diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm deleted file mode 100644 index 3b7e0b10004..00000000000 --- a/code/__DEFINES/dcs/signals.dm +++ /dev/null @@ -1,1624 +0,0 @@ -// All signals. Format: -// When the signal is called: (signal arguments) -// All signals send the source datum of the signal as the first argument - -// global signals -// These are signals which can be listened to by any component on any parent -// start global signals with "!", this used to be necessary but now it's just a formatting choice - -///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) -#define COMSIG_GLOB_NEW_Z "!new_z" -/// called after a successful var edit somewhere in the world: (list/args) -#define COMSIG_GLOB_VAR_EDIT "!var_edit" -/// called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range) -#define COMSIG_GLOB_EXPLOSION "!explosion" -/// Called from base of /mob/Initialise : (mob) -#define COMSIG_GLOB_MOB_CREATED "!mob_created" -/// mob died somewhere : (mob/living, gibbed) -#define COMSIG_GLOB_MOB_DEATH "!mob_death" -/// global living say plug - use sparingly: (mob/speaker , message) -#define COMSIG_GLOB_LIVING_SAY_SPECIAL "!say_special" -/// called by datum/cinematic/play() : (datum/cinematic/new_cinematic) -#define COMSIG_GLOB_PLAY_CINEMATIC "!play_cinematic" - #define COMPONENT_GLOB_BLOCK_CINEMATIC (1<<0) -/// ingame button pressed (/obj/machinery/button/button) -#define COMSIG_GLOB_BUTTON_PRESSED "!button_pressed" -/// job subsystem has spawned and equipped a new mob -#define COMSIG_GLOB_JOB_AFTER_SPAWN "!job_after_spawn" -/// job datum has been called to deal with the aftermath of a latejoin spawn -#define COMSIG_GLOB_JOB_AFTER_LATEJOIN_SPAWN "!job_after_latejoin_spawn" -/// crewmember joined the game (mob/living, rank) -#define COMSIG_GLOB_CREWMEMBER_JOINED "!crewmember_joined" -/// Random event is trying to roll. (/datum/round_event_control/random_event) -/// Called by (/datum/round_event_control/preRunEvent). -#define COMSIG_GLOB_PRE_RANDOM_EVENT "!pre_random_event" - /// Do not allow this random event to continue. - #define CANCEL_PRE_RANDOM_EVENT (1<<0) -/// a person somewhere has thrown something : (mob/living/carbon/carbon_thrower, target) -#define COMSIG_GLOB_CARBON_THROW_THING "!throw_thing" -/// a trapdoor remote has sent out a signal to link with a trapdoor -#define COMSIG_GLOB_TRAPDOOR_LINK "!trapdoor_link" - ///successfully linked to a trapdoor! - #define LINKED_UP (1<<0) -/// an obj/item is created! (obj/item/created_item) -#define COMSIG_GLOB_NEW_ITEM "!new_item" -/// a client (re)connected, after all /client/New() checks have passed : (client/connected_client) -#define COMSIG_GLOB_CLIENT_CONNECT "!client_connect" -/// a weather event of some kind occured -#define COMSIG_WEATHER_TELEGRAPH(event_type) "!weather_telegraph [event_type]" -#define COMSIG_WEATHER_START(event_type) "!weather_start [event_type]" -#define COMSIG_WEATHER_WINDDOWN(event_type) "!weather_winddown [event_type]" -#define COMSIG_WEATHER_END(event_type) "!weather_end [event_type]" -/// An alarm of some form was sent (datum/alarm_handler/source, alarm_type, area/source_area) -#define COMSIG_ALARM_FIRE(alarm_type) "!alarm_fire [alarm_type]" -/// An alarm of some form was cleared (datum/alarm_handler/source, alarm_type, area/source_area) -#define COMSIG_ALARM_CLEAR(alarm_type) "!alarm_clear [alarm_type]" -///global mob logged in signal! (/mob/added_player) -#define COMSIG_GLOB_MOB_LOGGED_IN "!mob_logged_in" - -/// signals from globally accessible objects - -///from SSJob when DivideOccupations is called -#define COMSIG_OCCUPATIONS_DIVIDED "occupations_divided" - -///from SSsun when the sun changes position : (azimuth) -#define COMSIG_SUN_MOVED "sun_moved" - -///from SSsecurity_level when the security level changes : (new_level) -#define COMSIG_SECURITY_LEVEL_CHANGED "security_level_changed" - -///from SSshuttle when the supply shuttle starts spawning orders : () -#define COMSIG_SUPPLY_SHUTTLE_BUY "supply_shuttle_buy" - -////////////////////////////////////////////////////////////////// - -// /datum signals -/// when a component is added to a datum: (/datum/component) -#define COMSIG_COMPONENT_ADDED "component_added" -/// before a component is removed from a datum because of ClearFromParent: (/datum/component) -#define COMSIG_COMPONENT_REMOVING "component_removing" -/// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation -#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" -/// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called -#define COMSIG_PARENT_QDELETING "parent_qdeleting" -/// generic topic handler (usr, href_list) -#define COMSIG_TOPIC "handle_topic" -/// handler for vv_do_topic (usr, href_list) -#define COMSIG_VV_TOPIC "vv_topic" - #define COMPONENT_VV_HANDLED (1<<0) -/// from datum ui_act (usr, action) -#define COMSIG_UI_ACT "COMSIG_UI_ACT" - -/// fires on the target datum when an element is attached to it (/datum/element) -#define COMSIG_ELEMENT_ATTACH "element_attach" -/// fires on the target datum when an element is attached to it (/datum/element) -#define COMSIG_ELEMENT_DETACH "element_detach" - -///Subsystem signals -///From base of datum/controller/subsystem/Initialize: (start_timeofday) -#define COMSIG_SUBSYSTEM_POST_INITIALIZE "subsystem_post_initialize" - -// /atom signals -///from base of atom/proc/Initialize(): sent any time a new atom is created -#define COMSIG_ATOM_CREATED "atom_created" -//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization -#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE "atom_init_success" -///from base of atom/attackby(): (/obj/item, /mob/living, params) -#define COMSIG_PARENT_ATTACKBY "atom_attackby" -/// From base of [atom/proc/attacby_secondary()]: (/obj/item/weapon, /mob/user, params) -#define COMSIG_PARENT_ATTACKBY_SECONDARY "atom_attackby_secondary" -/// From base of [/atom/proc/attack_hand_secondary]: (mob/user, list/modifiers) - Called when the atom receives a secondary unarmed attack. -#define COMSIG_ATOM_ATTACK_HAND_SECONDARY "atom_attack_hand_secondary" -///Return this in response if you don't want afterattack to be called - #define COMPONENT_NO_AFTERATTACK (1<<0) -///from base of atom/attack_hulk(): (/mob/living/carbon/human) -#define COMSIG_ATOM_HULK_ATTACK "hulk_attack" -///from base of atom/animal_attack(): (/mob/user) -#define COMSIG_ATOM_ATTACK_ANIMAL "attack_animal" -///from base of atom/examine(): (/mob, list/examine_text) -#define COMSIG_PARENT_EXAMINE "atom_examine" -///from base of atom/get_examine_name(): (/mob, list/overrides) -#define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" -#define COMSIG_PARENT_EXAMINE_MORE "atom_examine_more" ///from base of atom/examine_more(): (/mob) - //Positions for overrides list - #define EXAMINE_POSITION_ARTICLE (1<<0) - #define EXAMINE_POSITION_BEFORE (1<<1) - //End positions - #define COMPONENT_EXNAME_CHANGED (1<<0) -//from base of atom/attack_basic_mob(): (/mob/user) -#define COMSIG_ATOM_ATTACK_BASIC_MOB "attack_basic_mob" - -///from base of [/atom/proc/update_appearance]: (updates) -#define COMSIG_ATOM_UPDATE_APPEARANCE "atom_update_appearance" - /// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its name. - #define COMSIG_ATOM_NO_UPDATE_NAME UPDATE_NAME - /// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its desc. - #define COMSIG_ATOM_NO_UPDATE_DESC UPDATE_DESC - /// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its icon. - #define COMSIG_ATOM_NO_UPDATE_ICON UPDATE_ICON -///from base of [/atom/proc/update_name]: (updates) -#define COMSIG_ATOM_UPDATE_NAME "atom_update_name" -///from base of [/atom/proc/update_desc]: (updates) -#define COMSIG_ATOM_UPDATE_DESC "atom_update_desc" -///from base of [/atom/update_icon]: () -#define COMSIG_ATOM_UPDATE_ICON "atom_update_icon" - /// If returned from [COMSIG_ATOM_UPDATE_ICON] it prevents the atom from updating its icon state. - #define COMSIG_ATOM_NO_UPDATE_ICON_STATE UPDATE_ICON_STATE - /// If returned from [COMSIG_ATOM_UPDATE_ICON] it prevents the atom from updating its overlays. - #define COMSIG_ATOM_NO_UPDATE_OVERLAYS UPDATE_OVERLAYS -///from base of [atom/update_icon_state]: () -#define COMSIG_ATOM_UPDATE_ICON_STATE "atom_update_icon_state" -///from base of [/atom/update_overlays]: (list/new_overlays) -#define COMSIG_ATOM_UPDATE_OVERLAYS "atom_update_overlays" -///from base of [/atom/update_icon]: (signalOut, did_anything) -#define COMSIG_ATOM_UPDATED_ICON "atom_updated_icon" -///from base of [/atom/proc/smooth_icon]: () -#define COMSIG_ATOM_SMOOTHED_ICON "atom_smoothed_icon" -///from base of atom/Entered(): (atom/movable/arrived, atom/old_loc, list/atom/old_locs) -#define COMSIG_ATOM_ENTERED "atom_entered" -/// Sent from the atom that just Entered src. From base of atom/Entered(): (/atom/destination, atom/old_loc, list/atom/old_locs) -#define COMSIG_ATOM_ENTERING "atom_entering" -///from base of atom/Exit(): (/atom/movable/leaving, direction) -#define COMSIG_ATOM_EXIT "atom_exit" - #define COMPONENT_ATOM_BLOCK_EXIT (1<<0) -///from base of atom/Exited(): (atom/movable/gone, direction) -#define COMSIG_ATOM_EXITED "atom_exited" -///from base of atom/Bumped(): (/atom/movable) -#define COMSIG_ATOM_BUMPED "atom_bumped" -///from base of atom/ex_act(): (severity, target) -#define COMSIG_ATOM_EX_ACT "atom_ex_act" -///from base of atom/emp_act(): (severity) -#define COMSIG_ATOM_EMP_ACT "atom_emp_act" -///from base of atom/fire_act(): (exposed_temperature, exposed_volume) -#define COMSIG_ATOM_FIRE_ACT "atom_fire_act" -///from base of atom/bullet_act(): (/obj/projectile, def_zone) -#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" -///from base of atom/CheckParts(): (list/parts_list, datum/crafting_recipe/R) -#define COMSIG_ATOM_CHECKPARTS "atom_checkparts" -///from base of atom/CheckParts(): (atom/movable/new_craft) - The atom has just been used in a crafting recipe and has been moved inside new_craft. -#define COMSIG_ATOM_USED_IN_CRAFT "atom_used_in_craft" -///from base of atom/blob_act(): (/obj/structure/blob) -#define COMSIG_ATOM_BLOB_ACT "atom_blob_act" - /// if returned, forces nothing to happen when the atom is attacked by a blob - #define COMPONENT_CANCEL_BLOB_ACT (1<<0) -///from base of atom/acid_act(): (acidpwr, acid_volume) -#define COMSIG_ATOM_ACID_ACT "atom_acid_act" -///from base of atom/emag_act(): (/mob/user) -#define COMSIG_ATOM_EMAG_ACT "atom_emag_act" -///from base of atom/narsie_act(): () -#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act" -///from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode) -#define COMSIG_ATOM_RCD_ACT "atom_rcd_act" -///from base of atom/singularity_pull(): (/datum/component/singularity, current_size) -#define COMSIG_ATOM_SING_PULL "atom_sing_pull" -///from obj/machinery/bsa/full/proc/fire(): () -#define COMSIG_ATOM_BSA_BEAM "atom_bsa_beam_pass" - #define COMSIG_ATOM_BLOCKS_BSA_BEAM (1<<0) -///from base of atom/relaymove(): (mob/living/user, direction) -#define COMSIG_ATOM_RELAYMOVE "atom_relaymove" - ///prevents the "you cannot move while buckled! message" - #define COMSIG_BLOCK_RELAYMOVE (1<<0) - -///from [/datum/controller/subsystem/explosions/proc/explode]: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause)) -#define COMSIG_ATOM_EXPLODE "atom_explode" -///from [/datum/controller/subsystem/explosions/proc/explode]: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause)) -#define COMSIG_ATOM_INTERNAL_EXPLOSION "atom_internal_explosion" -///from [/datum/controller/subsystem/explosions/proc/explode]: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause)) -#define COMSIG_AREA_INTERNAL_EXPLOSION "area_internal_explosion" - /// When returned on a signal hooked to [COMSIG_ATOM_EXPLODE], [COMSIG_ATOM_INTERNAL_EXPLOSION], or [COMSIG_AREA_INTERNAL_EXPLOSION] it prevents the explosion from being propagated further. - #define COMSIG_CANCEL_EXPLOSION (1<<0) -///from /obj/machinery/doppler_array/proc/sense_explosion(...): Runs when an explosion is succesfully detected by a doppler array(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range) -#define COMSIG_DOPPLER_ARRAY_EXPLOSION_DETECTED "atom_dopplerarray_explosion_detected" - -///from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes. -#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" -///from base of atom/handle_atom_del(): (atom/deleted) -#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" -///from base of atom/has_gravity(): (turf/location, list/forced_gravities) -#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" -///from internal loop in atom/movable/proc/CanReach(): (list/next) -#define COMSIG_ATOM_CANREACH "atom_can_reach" - #define COMPONENT_ALLOW_REACH (1<<0) -///for any tool behaviors: (mob/living/user, obj/item/I, list/recipes) -#define COMSIG_ATOM_TOOL_ACT(tooltype) "tool_act_[tooltype]" - #define COMPONENT_BLOCK_TOOL_ATTACK (1<<0) -///for any rightclick tool behaviors: (mob/living/user, obj/item/I) -#define COMSIG_ATOM_SECONDARY_TOOL_ACT(tooltype) "tool_secondary_act_[tooltype]" - // We have the same returns here as COMSIG_ATOM_TOOL_ACT - // #define COMPONENT_BLOCK_TOOL_ATTACK (1<<0) -///for when an atom has been created through processing (atom/original_atom, list/chosen_processing_option) -#define COMSIG_ATOM_CREATEDBY_PROCESSING "atom_createdby_processing" -///when an atom is processed (mob/living/user, obj/item/I, list/atom/results) -#define COMSIG_ATOM_PROCESSED "atom_processed" -///called when teleporting into a protected turf: (channel, turf/origin) -#define COMSIG_ATOM_INTERCEPT_TELEPORT "intercept_teleport" - #define COMPONENT_BLOCK_TELEPORT (1<<0) -///called when an atom is added to the hearers on get_hearers_in_view(): (list/processing_list, list/hearers) -#define COMSIG_ATOM_HEARER_IN_VIEW "atom_hearer_in_view" -///called when an atom starts orbiting another atom: (atom) -#define COMSIG_ATOM_ORBIT_BEGIN "atom_orbit_begin" -///called when an atom stops orbiting another atom: (atom) -#define COMSIG_ATOM_ORBIT_STOP "atom_orbit_stop" -///from base of atom/set_opacity(): (new_opacity) -#define COMSIG_ATOM_SET_OPACITY "atom_set_opacity" -///from base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) -#define COMSIG_ATOM_HITBY "atom_hitby" - -///When the transform or an atom is varedited through vv topic. -#define COMSIG_ATOM_VV_MODIFY_TRANSFORM "atom_vv_modify_transform" - -//from base of atom/movable/on_enter_storage(): (datum/component/storage/concrete/master_storage) -#define COMSIG_STORAGE_ENTERED "storage_entered" -//from base of atom/movable/on_exit_storage(): (datum/component/storage/concrete/master_storage) -#define COMSIG_STORAGE_EXITED "storage_exited" - -///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) -#define COMSIG_ATOM_EXPOSE_REAGENTS "atom_expose_reagents" - /// Prevents the atom from being exposed to reagents if returned on [COMSIG_ATOM_EXPOSE_REAGENTS] - #define COMPONENT_NO_EXPOSE_REAGENTS (1<<0) -///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume) -#define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent" -///from base of [/datum/reagent/proc/expose_atom]: (/atom, reac_volume) -#define COMSIG_REAGENT_EXPOSE_ATOM "reagent_expose_atom" -///from base of [/datum/reagent/proc/expose_atom]: (/obj, reac_volume) -#define COMSIG_REAGENT_EXPOSE_OBJ "reagent_expose_obj" -///from base of [/datum/reagent/proc/expose_atom]: (/mob/living, reac_volume, methods, show_message, touch_protection, /mob/camera/blob) // ovemind arg is only used by blob reagents. -#define COMSIG_REAGENT_EXPOSE_MOB "reagent_expose_mob" -///from base of [/datum/reagent/proc/expose_atom]: (/turf, reac_volume) -#define COMSIG_REAGENT_EXPOSE_TURF "reagent_expose_turf" - -///from base of [/datum/controller/subsystem/materials/proc/InitializeMaterial]: (/datum/material) -#define COMSIG_MATERIALS_INIT_MAT "SSmaterials_init_mat" - -///from base of [/datum/component/multiple_lives/proc/respawn]: (mob/respawned_mob, gibbed, lives_left) -#define COMSIG_ON_MULTIPLE_LIVES_RESPAWN "on_multiple_lives_respawn" - -///from base of [/datum/reagents/proc/add_reagent] - Sent before the reagent is added: (reagenttype, amount, reagtemp, data, no_react) -#define COMSIG_REAGENTS_PRE_ADD_REAGENT "reagents_pre_add_reagent" - /// Prevents the reagent from being added. - #define COMPONENT_CANCEL_REAGENT_ADD (1<<0) -///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react) -#define COMSIG_REAGENTS_NEW_REAGENT "reagents_new_reagent" -///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react) -#define COMSIG_REAGENTS_ADD_REAGENT "reagents_add_reagent" -///from base of [/datum/reagents/proc/del_reagent]: (/datum/reagent) -#define COMSIG_REAGENTS_DEL_REAGENT "reagents_del_reagent" -///from base of [/datum/reagents/proc/remove_reagent]: (/datum/reagent, amount) -#define COMSIG_REAGENTS_REM_REAGENT "reagents_rem_reagent" -///from base of [/datum/reagents/proc/clear_reagents]: () -#define COMSIG_REAGENTS_CLEAR_REAGENTS "reagents_clear_reagents" -///from base of [/datum/reagents/proc/set_temperature]: (new_temp, old_temp) -#define COMSIG_REAGENTS_TEMP_CHANGE "reagents_temp_change" -///from base of [/datum/reagents/proc/handle_reactions]: (num_reactions) -#define COMSIG_REAGENTS_REACTED "reagents_reacted" -///from base of [/datum/reagents/proc/process]: (num_reactions) -#define COMSIG_REAGENTS_REACTION_STEP "reagents_time_step" -///from base of [/atom/proc/expose_reagents]: (/atom, /list, methods, volume_modifier, show_message) -#define COMSIG_REAGENTS_EXPOSE_ATOM "reagents_expose_atom" -///from base of [/obj/proc/expose_reagents]: (/obj, /list, methods, volume_modifier, show_message) -#define COMSIG_REAGENTS_EXPOSE_OBJ "reagents_expose_obj" -///from base of [/mob/living/proc/expose_reagents]: (/mob/living, /list, methods, volume_modifier, show_message, touch_protection) -#define COMSIG_REAGENTS_EXPOSE_MOB "reagents_expose_mob" -///from base of [/turf/proc/expose_reagents]: (/turf, /list, methods, volume_modifier, show_message) -#define COMSIG_REAGENTS_EXPOSE_TURF "reagents_expose_turf" -///from base of [/datum/component/personal_crafting/proc/del_reqs]: () -#define COMSIG_REAGENTS_CRAFTING_PING "reagents_crafting_ping" - - -// Lighting: -///from base of [atom/proc/set_light]: (l_range, l_power, l_color, l_on) -#define COMSIG_ATOM_SET_LIGHT "atom_set_light" - /// Blocks [/atom/proc/set_light], [/atom/proc/set_light_power], [/atom/proc/set_light_range], [/atom/proc/set_light_color], [/atom/proc/set_light_on], and [/atom/proc/set_light_flags]. - #define COMPONENT_BLOCK_LIGHT_UPDATE (1<<0) -///Called right before the atom changes the value of light_power to a different one, from base [atom/proc/set_light_power]: (new_power) -#define COMSIG_ATOM_SET_LIGHT_POWER "atom_set_light_power" -///Called right after the atom changes the value of light_power to a different one, from base of [/atom/proc/set_light_power]: (old_power) -#define COMSIG_ATOM_UPDATE_LIGHT_POWER "atom_update_light_power" -///Called right before the atom changes the value of light_range to a different one, from base [atom/proc/set_light_range]: (new_range) -#define COMSIG_ATOM_SET_LIGHT_RANGE "atom_set_light_range" -///Called right after the atom changes the value of light_range to a different one, from base of [/atom/proc/set_light_range]: (old_range) -#define COMSIG_ATOM_UPDATE_LIGHT_RANGE "atom_update_light_range" -///Called right before the atom changes the value of light_color to a different one, from base [atom/proc/set_light_color]: (new_color) -#define COMSIG_ATOM_SET_LIGHT_COLOR "atom_set_light_color" -///Called right after the atom changes the value of light_color to a different one, from base of [/atom/proc/set_light_color]: (old_color) -#define COMSIG_ATOM_UPDATE_LIGHT_COLOR "atom_update_light_color" -///Called right before the atom changes the value of light_on to a different one, from base [atom/proc/set_light_on]: (new_value) -#define COMSIG_ATOM_SET_LIGHT_ON "atom_set_light_on" -///Called right after the atom changes the value of light_on to a different one, from base of [/atom/proc/set_light_on]: (old_value) -#define COMSIG_ATOM_UPDATE_LIGHT_ON "atom_update_light_on" -///Called right before the atom changes the value of light_flags to a different one, from base [atom/proc/set_light_flags]: (new_flags) -#define COMSIG_ATOM_SET_LIGHT_FLAGS "atom_set_light_flags" -///Called right after the atom changes the value of light_flags to a different one, from base of [/atom/proc/set_light_flags]: (old_flags) -#define COMSIG_ATOM_UPDATE_LIGHT_FLAGS "atom_update_light_flags" - -///signal sent out by an atom when it checks if it can be pulled, for additional checks -#define COMSIG_ATOM_CAN_BE_PULLED "movable_can_be_pulled" - #define COMSIG_ATOM_CANT_PULL (1 << 0) -///signal sent out by an atom when it is no longer being pulled by something else -#define COMSIG_ATOM_NO_LONGER_PULLED "movable_no_longer_pulled" -///called for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels) -#define COMSIG_ATOM_INTERCEPT_Z_FALL "movable_intercept_z_impact" -///called on a movable (NOT living) when it starts pulling (atom/movable/pulled, state, force) -#define COMSIG_ATOM_START_PULL "movable_start_pull" -///called on /living when someone starts pulling (atom/movable/pulled, state, force) -#define COMSIG_LIVING_START_PULL "living_start_pull" -///called on /living when someone is pulled (mob/living/puller) -#define COMSIG_LIVING_GET_PULLED "living_start_pulled" -///called on /living, when pull is attempted, but before it completes, from base of [/mob/living/start_pulling]: (atom/movable/thing, force) -#define COMSIG_LIVING_TRY_PULL "living_try_pull" - #define COMSIG_LIVING_CANCEL_PULL (1 << 0) -/// Called from /mob/living/update_pull_movespeed -#define COMSIG_LIVING_UPDATING_PULL_MOVESPEED "living_updating_pull_movespeed" -/// Called from /mob/living/PushAM -- Called when this mob is about to push a movable, but before it moves -/// (aotm/movable/being_pushed) -#define COMSIG_LIVING_PUSHING_MOVABLE "living_pushing_movable" -///from base of [/atom/proc/interact]: (mob/user) -#define COMSIG_ATOM_UI_INTERACT "atom_ui_interact" -///called on /living when attempting to pick up an item, from base of /mob/living/put_in_hand_check(): (obj/item/I) -#define COMSIG_LIVING_TRY_PUT_IN_HAND "living_try_put_in_hand" - /// Can't pick up - #define COMPONENT_LIVING_CANT_PUT_IN_HAND (1<<0) -/// from /atom/proc/atom_break: () -#define COMSIG_ATOM_BREAK "atom_break" -/// from base of [/atom/proc/atom_fix]: () -#define COMSIG_ATOM_FIX "atom_fix" -///from base of [/atom/proc/update_integrity]: (old_value, new_value) -#define COMSIG_ATOM_INTEGRITY_CHANGED "atom_integrity_changed" -///from base of [/atom/proc/take_damage]: (damage_amount, damage_type, damage_flag, sound_effect, attack_dir, aurmor_penetration) -#define COMSIG_ATOM_TAKE_DAMAGE "atom_take_damage" - /// Return bitflags for the above signal which prevents the atom taking any damage. - #define COMPONENT_NO_TAKE_DAMAGE (1<<0) - -///Basic mob signals -///Called on /basic when updating its speed, from base of /mob/living/basic/update_basic_mob_varspeed(): () -#define POST_BASIC_MOB_UPDATE_VARSPEED "post_basic_mob_update_varspeed" - - -/// from /datum/component/singularity/proc/can_move(), as well as /obj/energy_ball/proc/can_move() -/// if a callback returns `SINGULARITY_TRY_MOVE_BLOCK`, then the singularity will not move to that turf -#define COMSIG_ATOM_SINGULARITY_TRY_MOVE "atom_singularity_try_move" - /// When returned from `COMSIG_ATOM_SINGULARITY_TRY_MOVE`, the singularity will move to that turf - #define SINGULARITY_TRY_MOVE_BLOCK (1 << 0) - -///////////////// - -///from base of area/Entered(): (/area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info. -#define COMSIG_ENTER_AREA "enter_area" -///from base of area/Exited(): (/area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info. -#define COMSIG_EXIT_AREA "exit_area" -///from base of atom/Click(): (location, control, params, mob/user) -#define COMSIG_CLICK "atom_click" -///from base of atom/ShiftClick(): (/mob) -#define COMSIG_CLICK_SHIFT "shift_click" - #define COMPONENT_ALLOW_EXAMINATE (1<<0) //Allows the user to examinate regardless of client.eye. -///from base of atom/CtrlClickOn(): (/mob) -#define COMSIG_CLICK_CTRL "ctrl_click" -///from base of atom/AltClick(): (/mob) -#define COMSIG_CLICK_ALT "alt_click" - #define COMPONENT_CANCEL_CLICK_ALT (1<<0) -///from base of atom/alt_click_secondary(): (/mob) -#define COMSIG_CLICK_ALT_SECONDARY "alt_click_secondary" - #define COMPONENT_CANCEL_CLICK_ALT_SECONDARY (1<<0) -///from base of atom/CtrlShiftClick(/mob) -#define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click" -///from base of atom/MouseDrop(): (/atom/over, /mob/user) -#define COMSIG_MOUSEDROP_ONTO "mousedrop_onto" - #define COMPONENT_NO_MOUSEDROP (1<<0) -///from base of atom/MouseDrop_T: (/atom/from, /mob/user) -#define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto" -///from base of mob/MouseWheelOn(): (/atom, delta_x, delta_y, params) -#define COMSIG_MOUSE_SCROLL_ON "mousescroll_on" - -// /area signals - -///from base of area/proc/power_change(): () -#define COMSIG_AREA_POWER_CHANGE "area_power_change" -///from base of area/Entered(): (atom/movable/arrived, area/old_area) -#define COMSIG_AREA_ENTERED "area_entered" -///from base of area/Exited(): (atom/movable/gone, direction) -#define COMSIG_AREA_EXITED "area_exited" - -// /turf signals - -/// from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/post_change_callbacks). -/// `post_change_callbacks` is a list that signal handlers can mutate to append `/datum/callback` objects. -/// They will be called with the new turf after the turf has changed. -#define COMSIG_TURF_CHANGE "turf_change" -///from base of atom/has_gravity(): (atom/asker, list/forced_gravities) -#define COMSIG_TURF_HAS_GRAVITY "turf_has_gravity" -///from base of turf/multiz_turf_del(): (turf/source, direction) -#define COMSIG_TURF_MULTIZ_DEL "turf_multiz_del" -///from base of turf/multiz_turf_new: (turf/source, direction) -#define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new" -///from base of turf/proc/onShuttleMove(): (turf/new_turf) -#define COMSIG_TURF_ON_SHUTTLE_MOVE "turf_on_shuttle_move" -///from /turf/open/temperature_expose(datum/gas_mixture/air, exposed_temperature) -#define COMSIG_TURF_EXPOSE "turf_expose" - -///from /datum/element/decal/Detach(): (description, cleanable, directional, mutable_appearance/pic) -#define COMSIG_TURF_DECAL_DETACHED "turf_decal_detached" - -// /atom/movable signals - -///from base of atom/movable/Moved(): (/atom) -#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" - #define COMPONENT_MOVABLE_BLOCK_PRE_MOVE (1<<0) -///from base of atom/movable/Moved(): (/atom, dir) -#define COMSIG_MOVABLE_MOVED "movable_moved" -///from base of atom/movable/Cross(): (/atom/movable) -#define COMSIG_MOVABLE_CROSS "movable_cross" -///from base of atom/movable/Move(): (/atom/movable) -#define COMSIG_MOVABLE_CROSS_OVER "movable_cross_am" -///from base of atom/movable/Bump(): (/atom) -#define COMSIG_MOVABLE_BUMP "movable_bump" -///from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum) -#define COMSIG_MOVABLE_IMPACT "movable_impact" - #define COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH (1<<0) //if true, flip if the impact will push what it hits - #define COMPONENT_MOVABLE_IMPACT_NEVERMIND (1<<1) //return true if you destroyed whatever it was you're impacting and there won't be anything for hitby() to run on -///from base of mob/living/hitby(): (mob/living/target, hit_zone) -#define COMSIG_MOVABLE_IMPACT_ZONE "item_impact_zone" -///from /atom/movable/proc/buckle_mob(): (mob/living/M, force, check_loc, buckle_mob_flags) -#define COMSIG_MOVABLE_PREBUCKLE "prebuckle" // this is the last chance to interrupt and block a buckle before it finishes - #define COMPONENT_BLOCK_BUCKLE (1<<0) -///from base of atom/movable/buckle_mob(): (mob, force) -#define COMSIG_MOVABLE_BUCKLE "buckle" -///from base of atom/movable/unbuckle_mob(): (mob, force) -#define COMSIG_MOVABLE_UNBUCKLE "unbuckle" -///from /obj/vehicle/proc/driver_move, caught by the riding component to check and execute the driver trying to drive the vehicle -#define COMSIG_RIDDEN_DRIVER_MOVE "driver_move" - #define COMPONENT_DRIVER_BLOCK_MOVE (1<<0) -///from base of atom/movable/throw_at(): (list/args) -#define COMSIG_MOVABLE_PRE_THROW "movable_pre_throw" - #define COMPONENT_CANCEL_THROW (1<<0) -///from base of atom/movable/throw_at(): (datum/thrownthing, spin) -#define COMSIG_MOVABLE_POST_THROW "movable_post_throw" -///from base of datum/thrownthing/finalize(): (obj/thrown_object, datum/thrownthing) used for when a throw is finished -#define COMSIG_MOVABLE_THROW_LANDED "movable_throw_landed" -///from base of atom/movable/on_changed_z_level(): (turf/old_turf, turf/new_turf) -#define COMSIG_MOVABLE_Z_CHANGED "movable_ztransit" -///called when the movable is placed in an unaccessible area, used for stationloving: () -#define COMSIG_MOVABLE_SECLUDED_LOCATION "movable_secluded" -///from base of atom/movable/Hear(): (proc args list(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, list/message_mods = list())) -#define COMSIG_MOVABLE_HEAR "movable_hear" - #define HEARING_MESSAGE 1 - #define HEARING_SPEAKER 2 - #define HEARING_LANGUAGE 3 - #define HEARING_RAW_MESSAGE 4 - /* #define HEARING_RADIO_FREQ 5 - #define HEARING_SPANS 6 - #define HEARING_MESSAGE_MODE 7 */ - -///called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) -#define COMSIG_MOVABLE_DISPOSING "movable_disposing" -// called when movable is expelled from a disposal pipe, bin or outlet on obj/pipe_eject: (direction) -#define COMSIG_MOVABLE_PIPE_EJECTING "movable_pipe_ejecting" -///called when the movable sucessfully has it's anchored var changed, from base atom/movable/set_anchored(): (value) -#define COMSIG_MOVABLE_SET_ANCHORED "movable_set_anchored" -///from base of atom/movable/setGrabState(): (newstate) -#define COMSIG_MOVABLE_SET_GRAB_STATE "living_set_grab_state" -///Called when the movable tries to change its dynamic light color setting, from base atom/movable/lighting_overlay_set_color(): (color) -#define COMSIG_MOVABLE_LIGHT_OVERLAY_SET_RANGE "movable_light_overlay_set_color" -///Called when the movable tries to change its dynamic light power setting, from base atom/movable/lighting_overlay_set_power(): (power) -#define COMSIG_MOVABLE_LIGHT_OVERLAY_SET_POWER "movable_light_overlay_set_power" -///Called when the movable tries to change its dynamic light range setting, from base atom/movable/lighting_overlay_set_range(): (range) -#define COMSIG_MOVABLE_LIGHT_OVERLAY_SET_COLOR "movable_light_overlay_set_range" -///Called when the movable tries to toggle its dynamic light LIGHTING_ON status, from base atom/movable/lighting_overlay_toggle_on(): (new_state) -#define COMSIG_MOVABLE_LIGHT_OVERLAY_TOGGLE_ON "movable_light_overlay_toggle_on" -///called when the movable's glide size is updated: (new_glide_size) -#define COMSIG_MOVABLE_UPDATE_GLIDE_SIZE "movable_glide_size" -///Called when a movable is hit by a plunger in layer mode, from /obj/item/plunger/attack_atom() -#define COMSIG_MOVABLE_CHANGE_DUCT_LAYER "movable_change_duct_layer" -///Called when a movable is teleported from `do_teleport()`: (destination, channel) -#define COMSIG_MOVABLE_TELEPORTED "movable_teleported" - -// /mob signals - -///from base of /mob/Login(): () -#define COMSIG_MOB_LOGIN "mob_login" -///from base of /mob/Logout(): () -#define COMSIG_MOB_LOGOUT "mob_logout" -///from base of mob/set_stat(): (new_stat) -#define COMSIG_MOB_STATCHANGE "mob_statchange" -///from base of mob/clickon(): (atom/A, params) -#define COMSIG_MOB_CLICKON "mob_clickon" -///from base of mob/MiddleClickOn(): (atom/A) -#define COMSIG_MOB_MIDDLECLICKON "mob_middleclickon" -///from base of mob/AltClickOn(): (atom/A) -#define COMSIG_MOB_ALTCLICKON "mob_altclickon" - #define COMSIG_MOB_CANCEL_CLICKON (1<<0) -///from base of mob/alt_click_on_secodary(): (atom/A) -#define COMSIG_MOB_ALTCLICKON_SECONDARY "mob_altclickon_secondary" -/// From base of /mob/living/simple_animal/bot/proc/bot_step() -#define COMSIG_MOB_BOT_PRE_STEP "mob_bot_pre_step" - /// Should always match COMPONENT_MOVABLE_BLOCK_PRE_MOVE as these are interchangeable and used to block movement. - #define COMPONENT_MOB_BOT_BLOCK_PRE_STEP COMPONENT_MOVABLE_BLOCK_PRE_MOVE -/// From base of /mob/living/simple_animal/bot/proc/bot_step() -#define COMSIG_MOB_BOT_STEP "mob_bot_step" - -/// From base of /client/Move() -#define COMSIG_MOB_CLIENT_PRE_MOVE "mob_client_pre_move" - /// Should always match COMPONENT_MOVABLE_BLOCK_PRE_MOVE as these are interchangeable and used to block movement. - #define COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE COMPONENT_MOVABLE_BLOCK_PRE_MOVE -/// From base of /client/Move() -#define COMSIG_MOB_CLIENT_MOVED "mob_client_moved" - -///from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj -#define COMSIG_MOB_ALLOWED "mob_allowed" -///from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources) -#define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic" - #define COMPONENT_BLOCK_MAGIC (1<<0) -///from base of mob/create_mob_hud(): () -#define COMSIG_MOB_HUD_CREATED "mob_hud_created" - -///from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone) -#define COMSIG_MOB_APPLY_DAMAGE "mob_apply_damage" -///from base of /mob/living/attack_alien(): (user) -#define COMSIG_MOB_ATTACK_ALIEN "mob_attack_alien" -///from base of /mob/throw_item(): (atom/target) -#define COMSIG_MOB_THROW "mob_throw" -///from base of /mob/verb/examinate(): (atom/target) -#define COMSIG_MOB_EXAMINATE "mob_examinate" -///from /mob/living/handle_eye_contact(): (mob/living/other_mob) -#define COMSIG_MOB_EYECONTACT "mob_eyecontact" - /// return this if you want to block printing this message to this person, if you want to print your own (does not affect the other person's message) - #define COMSIG_BLOCK_EYECONTACT (1<<0) -///from base of /mob/update_sight(): () -#define COMSIG_MOB_UPDATE_SIGHT "mob_update_sight" -////from /mob/living/say(): () -#define COMSIG_MOB_SAY "mob_say" - #define COMPONENT_UPPERCASE_SPEECH (1<<0) - // used to access COMSIG_MOB_SAY argslist - #define SPEECH_MESSAGE 1 - // #define SPEECH_BUBBLE_TYPE 2 - #define SPEECH_SPANS 3 - // #define SPEECH_SANITIZE 4 - #define SPEECH_LANGUAGE 5 - /* #define SPEECH_IGNORE_SPAM 6 - #define SPEECH_FORCED 7 */ - -///from /mob/say_dead(): (mob/speaker, message) -#define COMSIG_MOB_DEADSAY "mob_deadsay" - #define MOB_DEADSAY_SIGNAL_INTERCEPT (1<<0) -///from /mob/living/emote(): () -#define COMSIG_MOB_EMOTE "mob_emote" -///from base of mob/swap_hand(): (obj/item) -#define COMSIG_MOB_SWAP_HANDS "mob_swap_hands" - #define COMPONENT_BLOCK_SWAP (1<<0) -///from base of /mob/verb/pointed: (atom/A) -#define COMSIG_MOB_POINTED "mob_pointed" -///Mob is trying to open the wires of a target [/atom], from /datum/wires/interactable(): (atom/target) -#define COMSIG_TRY_WIRES_INTERACT "try_wires_interact" - #define COMPONENT_CANT_INTERACT_WIRES (1<<0) -#define COMSIG_MOB_EMOTED(emote_key) "mob_emoted_[emote_key]" - -///from base of mob/update_transform() -#define COMSIG_LIVING_POST_UPDATE_TRANSFORM "living_post_update_transform" - -///from /obj/structure/door/crush(): (mob/living/crushed, /obj/machinery/door/crushing_door) -#define COMSIG_LIVING_DOORCRUSHED "living_doorcrush" -///from base of mob/living/resist() (/mob/living) -#define COMSIG_LIVING_RESIST "living_resist" -///from base of mob/living/IgniteMob() (/mob/living) -#define COMSIG_LIVING_IGNITED "living_ignite" -///from base of mob/living/extinguish_mob() (/mob/living) -#define COMSIG_LIVING_EXTINGUISHED "living_extinguished" -///from base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags) -#define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" -///sent when items with siemen coeff. of 0 block a shock: (power_source, source, siemens_coeff, dist_check) -#define COMSIG_LIVING_SHOCK_PREVENTED "living_shock_prevented" -///sent by stuff like stunbatons and tasers: () -#define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" -///from base of mob/living/revive() (full_heal, admin_revive) -#define COMSIG_LIVING_REVIVE "living_revive" -///from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) -#define COMSIG_LIVING_REGENERATE_LIMBS "living_regen_limbs" -///from base of mob/living/set_buckled(): (new_buckled) -#define COMSIG_LIVING_SET_BUCKLED "living_set_buckled" -///from base of mob/living/set_body_position() -#define COMSIG_LIVING_SET_BODY_POSITION "living_set_body_position" -///From post-can inject check of syringe after attack (mob/user) -#define COMSIG_LIVING_TRY_SYRINGE "living_try_syringe" -///From living/Life(). (deltatime, times_fired) -#define COMSIG_LIVING_LIFE "living_life" - -///from base of element/bane/activate(): (item/weapon, mob/user) -#define COMSIG_LIVING_BANED "living_baned" -///Sent when bloodcrawl ends in mob/living/phasein(): (phasein_decal) -#define COMSIG_LIVING_AFTERPHASEIN "living_phasein" - -///from base of mob/living/death(): (gibbed) -#define COMSIG_LIVING_DEATH "living_death" - -/// from /proc/healthscan(): (list/scan_results, advanced, mob/user, mode) -/// Consumers are allowed to mutate the scan_results list to add extra information -#define COMSIG_LIVING_HEALTHSCAN "living_healthscan" - -///sent from borg recharge stations: (amount, repairs) -#define COMSIG_PROCESS_BORGCHARGER_OCCUPANT "living_charge" -///sent from borg mobs to itself, for tools to catch an upcoming destroy() due to safe decon (rather than detonation) -#define COMSIG_BORG_SAFE_DECONSTRUCT "borg_safe_decon" - -///sent when a mob/login() finishes: (client) -#define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" -//from base of client/MouseDown(): (/client, object, location, control, params) -#define COMSIG_CLIENT_MOUSEDOWN "client_mousedown" -//from base of client/MouseUp(): (/client, object, location, control, params) -#define COMSIG_CLIENT_MOUSEUP "client_mouseup" - #define COMPONENT_CLIENT_MOUSEUP_INTERCEPT (1<<0) -//from base of client/MouseUp(): (/client, object, location, control, params) -#define COMSIG_CLIENT_MOUSEDRAG "client_mousedrag" - -//ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS! - -///from base of mob/living/Stun() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_STUN "living_stun" -///from base of mob/living/Knockdown() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_KNOCKDOWN "living_knockdown" -///from base of mob/living/Paralyze() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_PARALYZE "living_paralyze" -///from base of mob/living/Immobilize() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_IMMOBILIZE "living_immobilize" -///from base of mob/living/Unconscious() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_UNCONSCIOUS "living_unconscious" -///from base of mob/living/Sleeping() (amount, ignore_canstun) -#define COMSIG_LIVING_STATUS_SLEEP "living_sleeping" - #define COMPONENT_NO_STUN (1<<0) //For all of them -///from base of /mob/living/can_track(): (mob/user) -#define COMSIG_LIVING_CAN_TRACK "mob_cantrack" - #define COMPONENT_CANT_TRACK (1<<0) -///from end of fully_heal(): (admin_revive) -#define COMSIG_LIVING_POST_FULLY_HEAL "living_post_fully_heal" -/// from start of /mob/living/handle_breathing(): (delta_time, times_fired) -#define COMSIG_LIVING_HANDLE_BREATHING "living_handle_breathing" - -///Called on user, from base of /datum/strippable_item/try_(un)equip() (atom/target, obj/item/equipping?) -///also from /mob/living/stripPanel(Un)equip)() -#define COMSIG_TRY_STRIP "try_strip" - #define COMPONENT_CANT_STRIP (1<<0) - -///Called on user, from base of /datum/strippable_item/alternate_action() (atom/target) -#define COMSIG_TRY_ALT_ACTION "try_alt_action" - #define COMPONENT_CANT_ALT_ACTION (1<<0) - -///From /datum/component/creamed/Initialize() -#define COMSIG_MOB_CREAMED "mob_creamed" -///From /obj/item/gun/proc/check_botched() -#define COMSIG_MOB_CLUMSY_SHOOT_FOOT "mob_clumsy_shoot_foot" - -///When a carbon mob hugs someone, this is called on the carbon that is hugging. (mob/living/hugger, mob/living/hugged) -#define COMSIG_CARBON_HUG "carbon_hug" -///When a carbon mob is hugged, this is called on the carbon that is hugged. (mob/living/hugger) -#define COMSIG_CARBON_HUGGED "carbon_hugged" -///When a carbon mob is headpatted, this is called on the carbon that is headpatted. (mob/living/headpatter) -#define COMSIG_CARBON_HEADPAT "carbon_headpatted" -///When a carbon mob has their tail pulled, this is called on the carbon that is the target. (mob/living/tailpuller) -#define COMSIG_CARBON_TAILPULL "carbon_tailpulled" -///Before a carbon mob is shoved, sent to the turf we're trying to shove onto (mob/living/carbon/shover, mob/living/carbon/target) -#define COMSIG_CARBON_DISARM_PRESHOVE "carbon_disarm_preshove" - #define COMSIG_CARBON_ACT_SOLID (1<<0) //Tells disarm code to act as if the mob was shoved into something solid, even we we're not -///When a carbon mob is disarmed, this is sent to the turf we're trying to shove onto (mob/living/carbon/shover, mob/living/carbon/target, shove_blocked) -#define COMSIG_CARBON_DISARM_COLLIDE "carbon_disarm_collision" - #define COMSIG_CARBON_SHOVE_HANDLED (1<<0) - -///When a carbon slips. Called on /turf/open/handle_slip() -#define COMSIG_ON_CARBON_SLIP "carbon_slip" -///When a carbon gets a vending machine tilted on them -#define COMSIG_ON_VENDOR_CRUSH "carbon_vendor_crush" -// /mob/living/carbon physiology signals -#define COMSIG_CARBON_GAIN_WOUND "carbon_gain_wound" //from /datum/wound/proc/apply_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L) -#define COMSIG_CARBON_LOSE_WOUND "carbon_lose_wound" //from /datum/wound/proc/remove_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L) -///from base of /obj/item/bodypart/proc/attach_limb(): (new_limb, special) allows you to fail limb attachment -#define COMSIG_CARBON_ATTACH_LIMB "carbon_attach_limb" - #define COMPONENT_NO_ATTACH (1<<0) -#define COMSIG_CARBON_REMOVE_LIMB "carbon_remove_limb" //from base of /obj/item/bodypart/proc/drop_limb(special, dismembered) -#define COMSIG_BODYPART_GAUZED "bodypart_gauzed" // from /obj/item/bodypart/proc/apply_gauze(/obj/item/stack/gauze) -#define COMSIG_BODYPART_GAUZE_DESTROYED "bodypart_degauzed" // from [/obj/item/bodypart/proc/seep_gauze] when it runs out of absorption - -///from base of mob/living/carbon/soundbang_act(): (list(intensity)) -#define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" -///from /item/organ/proc/Insert() (/obj/item/organ/) -#define COMSIG_CARBON_GAIN_ORGAN "carbon_gain_organ" -///from /item/organ/proc/Remove() (/obj/item/organ/) -#define COMSIG_CARBON_LOSE_ORGAN "carbon_lose_organ" -///from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent) -#define COMSIG_CARBON_EQUIP_HAT "carbon_equip_hat" -///from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent) -#define COMSIG_CARBON_UNEQUIP_HAT "carbon_unequip_hat" -///from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent) -#define COMSIG_CARBON_UNEQUIP_SHOECOVER "carbon_unequip_shoecover" -#define COMSIG_CARBON_EQUIP_SHOECOVER "carbon_equip_shoecover" -///defined twice, in carbon and human's topics, fired when interacting with a valid embedded_object to pull it out (mob/living/carbon/target, /obj/item, /obj/item/bodypart/L) -#define COMSIG_CARBON_EMBED_RIP "item_embed_start_rip" -///called when removing a given item from a mob, from mob/living/carbon/remove_embedded_object(mob/living/carbon/target, /obj/item) -#define COMSIG_CARBON_EMBED_REMOVAL "item_embed_remove_safe" -///Called when someone attempts to cuff a carbon -#define COMSIG_CARBON_CUFF_ATTEMPTED "carbon_attempt_cuff" -///Called when a carbon mutates (source = dna, mutation = mutation added) -#define COMSIG_CARBON_GAIN_MUTATION "carbon_gain_mutation" -///Called when a carbon loses a mutation (source = dna, mutation = mutation lose) -#define COMSIG_CARBON_LOSE_MUTATION "carbon_lose_mutation" -///Called when a carbon becomes addicted (source = what addiction datum, addicted_mind = mind of the addicted carbon) -#define COMSIG_CARBON_GAIN_ADDICTION "carbon_gain_addiction" -///Called when a carbon is no longer addicted (source = what addiction datum was lost, addicted_mind = mind of the freed carbon) -#define COMSIG_CARBON_LOSE_ADDICTION "carbon_lose_addiction" -///Called when a carbon gets a brain trauma (source = carbon, trauma = what trauma was added) - this is before on_gain() -#define COMSIG_CARBON_GAIN_TRAUMA "carbon_gain_trauma" -///Called when a carbon loses a brain trauma (source = carbon, trauma = what trauma was removed) -#define COMSIG_CARBON_LOSE_TRAUMA "carbon_lose_trauma" -///Called when a carbon updates their health (source = carbon) -#define COMSIG_CARBON_HEALTH_UPDATE "carbon_health_update" -///Called when a carbon updates their sanity (source = carbon) -#define COMSIG_CARBON_SANITY_UPDATE "carbon_sanity_update" - -// simple_animal signals -/// called when a simplemob is given sentience from a potion (target = person who sentienced) -#define COMSIG_SIMPLEMOB_SENTIENCEPOTION "simplemob_sentiencepotion" - -// /mob/living/simple_animal/hostile signals -///before attackingtarget has happened, source is the attacker and target is the attacked -#define COMSIG_HOSTILE_PRE_ATTACKINGTARGET "hostile_pre_attackingtarget" - #define COMPONENT_HOSTILE_NO_ATTACK (1<<0) //cancel the attack, only works before attack happens -///after attackingtarget has happened, source is the attacker and target is the attacked, extra argument for if the attackingtarget was successful -#define COMSIG_HOSTILE_POST_ATTACKINGTARGET "hostile_post_attackingtarget" -///from base of mob/living/simple_animal/hostile/regalrat: (mob/living/simple_animal/hostile/regalrat/king) -#define COMSIG_RAT_INTERACT "rat_interaction" - -///from /obj/item/slapper/attack_atom(): (source=mob/living/slammer, obj/structure/table/slammed_table) -#define COMSIG_LIVING_SLAM_TABLE "living_slam_table" -///from /obj/item/slapper/attack_atom(): (source=obj/structure/table/slammed_table, mob/living/slammer) -#define COMSIG_TABLE_SLAMMED "table_slammed" - -// /obj signals -///from base of obj/deconstruct(): (disassembled) -#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" -///from base of code/game/machinery -#define COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH "obj_default_unfasten_wrench" -///from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide -#define COMSIG_OBJ_HIDE "obj_hide" -/// from /obj/item/toy/crayon/spraycan/afterattack: (color_is_dark) -#define COMSIG_OBJ_PAINTED "obj_painted" - -// /obj/machinery signals - -///from /obj/machinery/atom_break(damage_flag): (damage_flag) -#define COMSIG_MACHINERY_BROKEN "machinery_broken" -///from base power_change() when power is lost -#define COMSIG_MACHINERY_POWER_LOST "machinery_power_lost" -///from base power_change() when power is restored -#define COMSIG_MACHINERY_POWER_RESTORED "machinery_power_restored" -///from /obj/machinery/set_occupant(atom/movable/O): (new_occupant) -#define COMSIG_MACHINERY_SET_OCCUPANT "machinery_set_occupant" -///from /obj/machinery/destructive_scanner/proc/open(aggressive): Runs when the destructive scanner scans a group of objects. (list/scanned_atoms) -#define COMSIG_MACHINERY_DESTRUCTIVE_SCAN "machinery_destructive_scan" -///from /obj/machinery/computer/arcade/prizevend(mob/user, prizes = 1) -#define COMSIG_ARCADE_PRIZEVEND "arcade_prizevend" -///from /datum/controller/subsystem/air/proc/start_processing_machine: () -#define COMSIG_MACHINERY_START_PROCESSING_AIR "start_processing_air" -///from /datum/controller/subsystem/air/proc/stop_processing_machine: () -#define COMSIG_MACHINERY_STOP_PROCESSING_AIR "stop_processing_air" - -///from /obj/machinery/can_interact(mob/user): Called on user when attempting to interact with a machine (obj/machinery/machine) -#define COMSIG_TRY_USE_MACHINE "try_use_machine" - /// Can't interact with the machine - #define COMPONENT_CANT_USE_MACHINE_INTERACT (1<<0) - /// Can't use tools on the machine - #define COMPONENT_CANT_USE_MACHINE_TOOLS (1<<1) - -///from obj/machinery/iv_drip/IV_attach(target, usr) : (attachee) -#define COMSIG_IV_ATTACH "iv_attach" -///from obj/machinery/iv_drip/IV_detach() : (detachee) -#define COMSIG_IV_DETACH "iv_detach" - - -// /obj/machinery/computer/teleporter -/// from /obj/machinery/computer/teleporter/proc/set_target(target, old_target) -#define COMSIG_TELEPORTER_NEW_TARGET "teleporter_new_target" - -// /obj/machinery/power/supermatter_crystal signals -/// from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM delam reaches the point of sounding alarms -#define COMSIG_SUPERMATTER_DELAM_START_ALARM "sm_delam_start_alarm" -/// from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM sounds an audible alarm -#define COMSIG_SUPERMATTER_DELAM_ALARM "sm_delam_alarm" - -// /obj/machinery/atmospherics/components/unary/cryo_cell signals - -/// from /obj/machinery/atmospherics/components/unary/cryo_cell/set_on(bool): (on) -#define COMSIG_CRYO_SET_ON "cryo_set_on" - -// /obj/machinery/atmospherics/components/binary/valve signals - -/// from /obj/machinery/atmospherics/components/binary/valve/toggle(): (on) -#define COMSIG_VALVE_SET_OPEN "valve_toggled" - -/// from /obj/machinery/atmospherics/components/binary/pump/set_on(active): (on) -#define COMSIG_PUMP_SET_ON "pump_set_on" - -/// from /obj/machinery/light_switch/set_lights(), sent to every switch in the area: (status) -#define COMSIG_LIGHT_SWITCH_SET "light_switch_set" - -// /obj access signals - -#define COMSIG_OBJ_ALLOWED "door_try_to_activate" - #define COMPONENT_OBJ_ALLOW (1<<0) - -// /obj/machinery/door/airlock signals - -//from /obj/machinery/door/airlock/open(): (forced) -#define COMSIG_AIRLOCK_OPEN "airlock_open" -//from /obj/machinery/door/airlock/close(): (forced) -#define COMSIG_AIRLOCK_CLOSE "airlock_close" -///from /obj/machinery/door/airlock/set_bolt(): -#define COMSIG_AIRLOCK_SET_BOLT "airlock_set_bolt" -// /obj/item signals - -///from base of obj/item/equipped(): (/mob/equipper, slot) -#define COMSIG_ITEM_EQUIPPED "item_equip" -/// A mob has just equipped an item. Called on [/mob] from base of [/obj/item/equipped()]: (/obj/item/equipped_item, slot) -#define COMSIG_MOB_EQUIPPED_ITEM "mob_equipped_item" -///called on [/obj/item] before unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent) -#define COMSIG_ITEM_PRE_UNEQUIP "item_pre_unequip" - ///only the pre unequip can be cancelled - #define COMPONENT_ITEM_BLOCK_UNEQUIP (1<<0) -///called on [/obj/item] AFTER unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent) -#define COMSIG_ITEM_POST_UNEQUIP "item_post_unequip" -///from base of obj/item/on_grind(): ()) -#define COMSIG_ITEM_ON_GRIND "on_grind" -///from base of obj/item/on_juice(): () -#define COMSIG_ITEM_ON_JUICE "on_juice" -///from /obj/machinery/hydroponics/attackby(obj/item/O, mob/user, params) when an object is used as compost: (mob/user) -#define COMSIG_ITEM_ON_COMPOSTED "on_composted" -///Called when an item is dried by a drying rack: -#define COMSIG_ITEM_DRIED "item_dried" -///from base of obj/item/dropped(): (mob/user) -#define COMSIG_ITEM_DROPPED "item_drop" -///from base of obj/item/pickup(): (/mob/taker) -#define COMSIG_ITEM_PICKUP "item_pickup" -///from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) -#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" -///return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) -#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" -///called before marking an object for retrieval, checked in /obj/effect/proc_holder/spell/targeted/summonitem/cast() : (mob/user) -#define COMSIG_ITEM_MARK_RETRIEVAL "item_mark_retrieval" - #define COMPONENT_BLOCK_MARK_RETRIEVAL (1<<0) -///from base of obj/item/hit_reaction(): (list/args) -#define COMSIG_ITEM_HIT_REACT "item_hit_react" - #define COMPONENT_HIT_REACTION_BLOCK (1<<0) -///called on item when microwaved (): (obj/machinery/microwave/M) -#define COMSIG_ITEM_MICROWAVE_ACT "microwave_act" - #define COMPONENT_SUCCESFUL_MICROWAVE (1<<0) -///called on item when created through microwaving (): (obj/machinery/microwave/M, cooking_efficiency) -#define COMSIG_ITEM_MICROWAVE_COOKED "microwave_cooked" -///from base of item/sharpener/attackby(): (amount, max) -#define COMSIG_ITEM_SHARPEN_ACT "sharpen_act" - #define COMPONENT_BLOCK_SHARPEN_APPLIED (1<<0) - #define COMPONENT_BLOCK_SHARPEN_BLOCKED (1<<1) - #define COMPONENT_BLOCK_SHARPEN_ALREADY (1<<2) - #define COMPONENT_BLOCK_SHARPEN_MAXED (1<<3) -///Called when an object is grilled ontop of a griddle -#define COMSIG_ITEM_GRILLED "item_griddled" - #define COMPONENT_HANDLED_GRILLING (1<<0) -///Called when an object is turned into another item through grilling ontop of a griddle -#define COMSIG_GRILL_COMPLETED "item_grill_completed" -//Called when an object is in an oven -#define COMSIG_ITEM_BAKED "item_baked" - #define COMPONENT_HANDLED_BAKING (1<<0) - #define COMPONENT_BAKING_GOOD_RESULT (1<<1) - #define COMPONENT_BAKING_BAD_RESULT (1<<2) -///Called when an object is turned into another item through baking in an oven -#define COMSIG_BAKE_COMPLETED "item_bake_completed" -///Called when an armor plate is successfully applied to an object -#define COMSIG_ARMOR_PLATED "armor_plated" -///Called when an item gets recharged by the ammo powerup -#define COMSIG_ITEM_RECHARGED "item_recharged" -///Called when an item is being offered, from [/obj/item/proc/on_offered(mob/living/carbon/offerer)] -#define COMSIG_ITEM_OFFERING "item_offering" - ///Interrupts the offer proc - #define COMPONENT_OFFER_INTERRUPT (1<<0) -///Called when an someone tries accepting an offered item, from [/obj/item/proc/on_offer_taken(mob/living/carbon/offerer, mob/living/carbon/taker)] -#define COMSIG_ITEM_OFFER_TAKEN "item_offer_taken" - ///Interrupts the offer acceptance - #define COMPONENT_OFFER_TAKE_INTERRUPT (1<<0) - -///from base of [/obj/item/proc/tool_check_callback]: (mob/living/user) -#define COMSIG_TOOL_IN_USE "tool_in_use" -///from base of [/obj/item/proc/tool_start_check]: (mob/living/user) -#define COMSIG_TOOL_START_USE "tool_start_use" -///from [/obj/item/proc/disableEmbedding]: -#define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" -///from [/obj/effect/mine/proc/triggermine]: -#define COMSIG_MINE_TRIGGERED "minegoboom" -///from [/obj/structure/closet/supplypod/proc/preOpen]: -#define COMSIG_SUPPLYPOD_LANDED "supplypodgoboom" - -///from /obj/item/storage/book/bible/afterattack(): (mob/user, proximity) -#define COMSIG_BIBLE_SMACKED "bible_smacked" - ///stops the bible chain from continuing. When all of the effects of the bible smacking have been moved to a signal we can kill this - #define COMSIG_END_BIBLE_CHAIN (1<<0) - -/// Admin helps -/// From /datum/admin_help/RemoveActive(). -/// Fired when an adminhelp is made inactive either due to closing or resolving. -#define COMSIG_ADMIN_HELP_MADE_INACTIVE "admin_help_made_inactive" - -/// Called when the player replies. From /client/proc/cmd_admin_pm(). -#define COMSIG_ADMIN_HELP_REPLIED "admin_help_replied" - -///Closets -///From base of [/obj/structure/closet/proc/insert]: (atom/movable/inserted) -#define COMSIG_CLOSET_INSERT "closet_insert" - ///used to interrupt insertion - #define COMPONENT_CLOSET_INSERT_INTERRUPT (1<<0) - -///From open: (forced) -#define COMSIG_CLOSET_PRE_OPEN "closet_pre_open" - #define BLOCK_OPEN (1<<0) -///From open: (forced) -#define COMSIG_CLOSET_POST_OPEN "closet_post_open" - -///a deliver_first element closet was successfully delivered -#define COMSIG_CLOSET_DELIVERED "crate_delivered" - -///Eigenstasium -///From base of [/datum/controller/subsystem/eigenstates/proc/use_eigenlinked_atom]: (var/target) -#define COMSIG_EIGENSTATE_ACTIVATE "eigenstate_activate" - -// /obj signals for economy -///called when the payment component tries to charge an account. -#define COMSIG_OBJ_ATTEMPT_CHARGE "obj_attempt_simple_charge" - #define COMPONENT_OBJ_CANCEL_CHARGE (1<<0) -///Called when a payment component changes value -#define COMSIG_OBJ_ATTEMPT_CHARGE_CHANGE "obj_attempt_simple_charge_change" - -// /obj/item signals for economy -///called when an item is sold by the exports subsystem -#define COMSIG_ITEM_SOLD "item_sold" -///called when a wrapped up structure is opened by hand -#define COMSIG_STRUCTURE_UNWRAPPED "structure_unwrapped" -///called when a wrapped up item is opened by hand -#define COMSIG_ITEM_UNWRAPPED "item_unwrapped" - #define COMSIG_ITEM_SPLIT_VALUE (1<<0) -///called when getting the item's exact ratio for cargo's profit. -#define COMSIG_ITEM_SPLIT_PROFIT "item_split_profits" -///called when getting the item's exact ratio for cargo's profit, without selling the item. -#define COMSIG_ITEM_SPLIT_PROFIT_DRY "item_split_profits_dry" - -// /obj/item/clothing signals - -///from [/mob/living/carbon/human/Move]: () -#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" -///from base of /obj/item/clothing/suit/space/proc/toggle_spacesuit(): (obj/item/clothing/suit/space/suit) -#define COMSIG_SUIT_SPACE_TOGGLE "suit_space_toggle" - -// /obj/item/implant signals -///from base of /obj/item/implant/proc/activate(): () -#define COMSIG_IMPLANT_ACTIVATED "implant_activated" -///from base of /obj/item/implant/proc/implant(): (list/args) -#define COMSIG_IMPLANT_IMPLANTING "implant_implanting" - #define COMPONENT_STOP_IMPLANTING (1<<0) -///called on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant) -#define COMSIG_IMPLANT_OTHER "implant_other" - //#define COMPONENT_STOP_IMPLANTING (1<<0) //The name makes sense for both - #define COMPONENT_DELETE_NEW_IMPLANT (1<<1) - #define COMPONENT_DELETE_OLD_IMPLANT (1<<2) - -/// called on implants, after a successful implantation: (mob/living/target, mob/user, silent, force) -#define COMSIG_IMPLANT_IMPLANTED "implant_implanted" - -/// called on implants, after an implant has been removed: (mob/living/source, silent, special) -#define COMSIG_IMPLANT_REMOVED "implant_removed" - -/// called as a mindshield is implanted: (mob/user) -#define COMSIG_PRE_MINDSHIELD_IMPLANT "pre_mindshield_implant" - /// Did they successfully get mindshielded? - #define COMPONENT_MINDSHIELD_PASSED (NONE) - /// Did they resist the mindshield? - #define COMPONENT_MINDSHIELD_RESISTED (1<<0) - -/// called once a mindshield is implanted: (mob/user) -#define COMSIG_MINDSHIELD_IMPLANTED "mindshield_implanted" - /// Are we the reason for deconversion? - #define COMPONENT_MINDSHIELD_DECONVERTED (1<<0) - -///called on implants being implanted into someone with an uplink implant: (datum/component/uplink) -#define COMSIG_IMPLANT_EXISTING_UPLINK "implant_uplink_exists" - //This uses all return values of COMSIG_IMPLANT_OTHER - -// /obj/item/pda signals - -///called on pda when the user changes the ringtone: (mob/living/user, new_ringtone) -#define COMSIG_PDA_CHANGE_RINGTONE "pda_change_ringtone" - #define COMPONENT_STOP_RINGTONE_CHANGE (1<<0) -#define COMSIG_PDA_CHECK_DETONATE "pda_check_detonate" - #define COMPONENT_PDA_NO_DETONATE (1<<0) - -// /obj/item/radio signals - -///called from base of /obj/item/radio/proc/set_frequency(): (list/args) -#define COMSIG_RADIO_NEW_FREQUENCY "radio_new_frequency" - -// /obj/item/pen signals - -///called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user) -#define COMSIG_PEN_ROTATED "pen_rotated" - -// /obj/item/gun signals - -///called in /obj/item/gun/process_fire (src, target, params, zone_override) -#define COMSIG_MOB_FIRED_GUN "mob_fired_gun" -///called in /obj/item/gun/process_fire (user, target, params, zone_override) -#define COMSIG_GUN_FIRED "gun_fired" -///called in /obj/item/gun/process_chamber (src) -#define COMSIG_GUN_CHAMBER_PROCESSED "gun_chamber_processed" -///called in /obj/item/gun/ballistic/process_chamber (casing) -#define COMSIG_CASING_EJECTED "casing_ejected" - -// /obj/effect/proc_holder/spell signals - -///called from /obj/effect/proc_holder/spell/perform (src) -#define COMSIG_MOB_CAST_SPELL "mob_cast_spell" - -// /obj/item/grenade signals - -///called in /obj/item/gun/process_fire (user, target, params, zone_override) -#define COMSIG_GRENADE_DETONATE "grenade_prime" -//called from many places in grenade code (armed_by, nade, det_time, delayoverride) -#define COMSIG_MOB_GRENADE_ARMED "grenade_mob_armed" -///called in /obj/item/gun/process_fire (user, target, params, zone_override) -#define COMSIG_GRENADE_ARMED "grenade_armed" - -// /obj/projectile signals (sent to the firer) - -///from base of /obj/projectile/proc/on_hit(), like COMSIG_PROJECTILE_ON_HIT but on the projectile itself and with the hit limb (if any): (atom/movable/firer, atom/target, Angle, hit_limb) -#define COMSIG_PROJECTILE_SELF_ON_HIT "projectile_self_on_hit" -///from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) -#define COMSIG_PROJECTILE_ON_HIT "projectile_on_hit" -///from base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target) -#define COMSIG_PROJECTILE_BEFORE_FIRE "projectile_before_fire" -///from the base of /obj/projectile/proc/fire(): () -#define COMSIG_PROJECTILE_FIRE "projectile_fire" -///sent to targets during the process_hit proc of projectiles -#define COMSIG_PROJECTILE_PREHIT "com_proj_prehit" -///sent to targets during the process_hit proc of projectiles -#define COMSIG_PROJECTILE_RANGE_OUT "projectile_range_out" -///from [/obj/item/proc/tryEmbed] sent when trying to force an embed (mainly for projectiles and eating glass) -#define COMSIG_EMBED_TRY_FORCE "item_try_embed" - #define COMPONENT_EMBED_SUCCESS (1<<1) - -///sent to targets during the process_hit proc of projectiles -#define COMSIG_PELLET_CLOUD_INIT "pellet_cloud_init" - -// /obj/vehicle/sealed/mecha signals - -///sent from mecha action buttons to the mecha they're linked to -#define COMSIG_MECHA_ACTION_TRIGGER "mecha_action_activate" - -///sent from clicking while you have no equipment selected. Sent before cooldown and adjacency checks, so you can use this for infinite range things if you want. -#define COMSIG_MECHA_MELEE_CLICK "mecha_action_melee_click" - /// Prevents click from happening. - #define COMPONENT_CANCEL_MELEE_CLICK (1<<0) -///sent from clicking while you have equipment selected. -#define COMSIG_MECHA_EQUIPMENT_CLICK "mecha_action_equipment_click" - /// Prevents click from happening. - #define COMPONENT_CANCEL_EQUIPMENT_CLICK (1<<0) - -// /mob/living/carbon/human signals - -///Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted) -#define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit" -///Whenever EquipRanked is called, called after job is set -#define COMSIG_JOB_RECEIVED "job_received" -///from /mob/living/carbon/human/proc/set_coretemperature(): (oldvalue, newvalue) -#define COMSIG_HUMAN_CORETEMP_CHANGE "human_coretemp_change" - -///from /datum/species/handle_fire. Called when the human is set on fire and burning clothes and stuff -#define COMSIG_HUMAN_BURNING "human_burning" - - -// /datum/species signals - -///from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species) -#define COMSIG_SPECIES_GAIN "species_gain" -///from datum/species/on_species_loss(): (datum/species/lost_species) -#define COMSIG_SPECIES_LOSS "species_loss" - -// /datum/song signals - -///sent to the instrument when a song starts playing -#define COMSIG_SONG_START "song_start" -///sent to the instrument when a song stops playing -#define COMSIG_SONG_END "song_end" - -/*******Component Specific Signals*******/ -//Janitor - -///(): Returns bitflags of wet values. -#define COMSIG_TURF_IS_WET "check_turf_wet" -///(max_strength, immediate, duration_decrease = INFINITY): Returns bool. -#define COMSIG_TURF_MAKE_DRY "make_turf_try" - -///Called on an object to "clean it", such as removing blood decals/overlays, etc. The clean types bitfield is sent with it. Return TRUE if any cleaning was necessary and thus performed. -#define COMSIG_COMPONENT_CLEAN_ACT "clean_act" - ///Returned by cleanable components when they are cleaned. - #define COMPONENT_CLEANED (1<<0) - - -//Creamed - -///called when you wash your face at a sink: (num/strength) -#define COMSIG_COMPONENT_CLEAN_FACE_ACT "clean_face_act" - -//Food - -///from Edible component: (mob/living/eater, mob/feeder, bitecount, bitesize) -#define COMSIG_FOOD_EATEN "food_eaten" -///from base of datum/component/edible/on_entered: (mob/crosser, bitecount) -#define COMSIG_FOOD_CROSSED "food_crossed" - -///from base of Component/edible/On_Consume: (mob/living/eater, mob/living/feeder) -#define COMSIG_FOOD_CONSUMED "food_consumed" - -#define COMSIG_ITEM_FRIED "item_fried" - #define COMSIG_FRYING_HANDLED (1<<0) - -//Drink - -///from base of obj/item/reagent_containers/food/drinks/attack(): (mob/living/M, mob/user) -#define COMSIG_DRINK_DRANK "drink_drank" -///from base of obj/item/reagent_containers/glass/attack(): (mob/M, mob/user) -#define COMSIG_GLASS_DRANK "glass_drank" - -//Customizable - -///called when an atom with /datum/component/customizable_reagent_holder is customized (obj/item/I) -#define COMSIG_ATOM_CUSTOMIZED "atom_customized" -///called when an item is used as an ingredient: (atom/customized) -#define COMSIG_ITEM_USED_AS_INGREDIENT "item_used_as_ingredient" -///called when an edible ingredient is added: (datum/component/edible/ingredient) -#define COMSIG_EDIBLE_INGREDIENT_ADDED "edible_ingredient_added" - -//Plants / Plant Traits - -///called when a plant with slippery skin is slipped on (mob/victim) -#define COMSIG_PLANT_ON_SLIP "plant_on_slip" -///called when a plant with liquid contents is squashed on (atom/target) -#define COMSIG_PLANT_ON_SQUASH "plant_on_squash" -///called when a plant backfires via the backfire element (mob/victim) -#define COMSIG_PLANT_ON_BACKFIRE "plant_on_backfire" -///called when a seed grows in a tray (obj/machinery/hydroponics) -#define COMSIG_SEED_ON_GROW "plant_on_grow" -///called when a seed is planted in a tray (obj/machinery/hydroponics) -#define COMSIG_SEED_ON_PLANTED "plant_on_plant" - -//Hydro tray -///from base of /obj/machinery/hydroponics/set_seed() : (obj/item/new_seed) -#define COMSIG_HYDROTRAY_SET_SEED "hydrotray_set_seed" -///from base of /obj/machinery/hydroponics/set_self_sustaining() : (new_value) -#define COMSIG_HYDROTRAY_SET_SELFSUSTAINING "hydrotray_set_selfsustaining" -///from base of /obj/machinery/hydroponics/set_weedlevel() : (new_value) -#define COMSIG_HYDROTRAY_SET_WEEDLEVEL "hydrotray_set_weedlevel" -///from base of /obj/machinery/hydroponics/set_pestlevel() : (new_value) -#define COMSIG_HYDROTRAY_SET_PESTLEVEL "hydrotray_set_pestlevel" -///from base of /obj/machinery/hydroponics/set_waterlevel() : (new_value) -#define COMSIG_HYDROTRAY_SET_WATERLEVEL "hydrotray_set_waterlevel" -///from base of /obj/machinery/hydroponics/set_plant_health() : (new_value) -#define COMSIG_HYDROTRAY_SET_PLANT_HEALTH "hydrotray_set_plant_health" -///from base of /obj/machinery/hydroponics/set_toxic() : (new_value) -#define COMSIG_HYDROTRAY_SET_TOXIC "hydrotray_set_toxic" -///from base of /obj/machinery/hydroponics/set_plant_status() : (new_value) -#define COMSIG_HYDROTRAY_SET_PLANT_STATUS "hydrotray_set_plant_status" -///from base of /obj/machinery/hydroponics/update_tray() : (mob/user, product_count) -#define COMSIG_HYDROTRAY_ON_HARVEST "hydrotray_on_harvest" -///from base of /obj/machinery/hydroponics/plantdies() -#define COMSIG_HYDROTRAY_PLANT_DEATH "hydrotray_plant_death" - - -//Gibs - -///from base of /obj/effect/decal/cleanable/blood/gibs/streak(): (list/directions, list/diseases) -#define COMSIG_GIBS_STREAK "gibs_streak" - -/// Called on mobs when they step in blood. (blood_amount, blood_state, list/blood_DNA) -#define COMSIG_STEP_ON_BLOOD "step_on_blood" - -//Mood - -///called when you send a mood event from anywhere in the code. -#define COMSIG_ADD_MOOD_EVENT "add_mood" -///Mood event that only RnD members listen for -#define COMSIG_ADD_MOOD_EVENT_RND "RND_add_mood" -///called when you clear a mood event from anywhere in the code. -#define COMSIG_CLEAR_MOOD_EVENT "clear_mood" - -///sent to everyone in range of being affected by mask of madness -#define COMSIG_VOID_MASK_ACT "void_mask_act" - -//NTnet - -///called on an object by its NTNET connection component on receive. (data(datum/netdata)) -#define COMSIG_COMPONENT_NTNET_RECEIVE "ntnet_receive" -///called on an object by its NTNET connection component on a port update (hardware_id, port)) -#define COMSIG_COMPONENT_NTNET_PORT_UPDATE "ntnet_port_update" -/// called when packet was accepted by the target (datum/netdata, error_code) -#define COMSIG_COMPONENT_NTNET_ACK "ntnet_ack" -/// called when packet was not acknoledged by the target (datum/netdata, error_code) -#define COMSIG_COMPONENT_NTNET_NAK "ntnet_nack" - -// Some internal NTnet signals used on ports -///called on an object by its NTNET connection component on a port distruction (port, list/data)) -#define COMSIG_COMPONENT_NTNET_PORT_DESTROYED "ntnet_port_destroyed" -///called on an object by its NTNET connection component on a port distruction (port, list/data)) -#define COMSIG_COMPONENT_NTNET_PORT_UPDATED "ntnet_port_updated" - -///Restaurant - -///(customer, container) venue signal sent when a venue sells an item. source is the thing sold, which can be a datum, so we send container for location checks -#define COMSIG_ITEM_SOLD_TO_CUSTOMER "item_sold_to_customer" - -// /datum/component/storage signals - -///() - returns bool. -#define COMSIG_CONTAINS_STORAGE "is_storage" -///(obj/item/inserting, mob/user, silent, force) - returns bool -#define COMSIG_TRY_STORAGE_INSERT "storage_try_insert" -///(mob/show_to, force) - returns bool. -#define COMSIG_TRY_STORAGE_SHOW "storage_show_to" -///(mob/hide_from) - returns bool -#define COMSIG_TRY_STORAGE_HIDE_FROM "storage_hide_from" -///returns bool -#define COMSIG_TRY_STORAGE_HIDE_ALL "storage_hide_all" -///(newstate) -#define COMSIG_TRY_STORAGE_SET_LOCKSTATE "storage_lock_set_state" -///() - returns bool. MUST CHECK IF STORAGE IS THERE FIRST! -#define COMSIG_IS_STORAGE_LOCKED "storage_get_lockstate" -///(type, atom/destination, amount = INFINITY, check_adjacent, force, mob/user, list/inserted) - returns bool - type can be a list of types. -#define COMSIG_TRY_STORAGE_TAKE_TYPE "storage_take_type" -///(type, amount = INFINITY, force = FALSE). Force will ignore max_items, and amount is normally clamped to max_items. -#define COMSIG_TRY_STORAGE_FILL_TYPE "storage_fill_type" -///(obj, new_loc, force = FALSE) - returns bool -#define COMSIG_TRY_STORAGE_TAKE "storage_take_obj" -///(loc) - returns bool - if loc is null it will dump at parent location. -#define COMSIG_TRY_STORAGE_QUICK_EMPTY "storage_quick_empty" -///(list/list_to_inject_results_into, recursively_search_inside_storages = TRUE) -#define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" -///(obj/item/insertion_candidate, mob/user, silent) - returns bool -#define COMSIG_TRY_STORAGE_CAN_INSERT "storage_can_equip" - -// /datum/component/swabbing signals -#define COMSIG_SWAB_FOR_SAMPLES "swab_for_samples" ///Called when you try to swab something using the swabable component, includes a mutable list of what has been swabbed so far so it can be modified. - #define COMPONENT_SWAB_FOUND (1<<0) - -// /datum/component/transforming signals - -/// From /datum/component/transforming/proc/on_attack_self(obj/item/source, mob/user): (obj/item/source, mob/user, active) -#define COMSIG_TRANSFORMING_PRE_TRANSFORM "transforming_pre_transform" - /// Return COMPONENT_BLOCK_TRANSFORM to prevent the item from transforming. - #define COMPONENT_BLOCK_TRANSFORM (1<<0) -/// From /datum/component/transforming/proc/do_transform(obj/item/source, mob/user): (obj/item/source, mob/user, active) -#define COMSIG_TRANSFORMING_ON_TRANSFORM "transforming_on_transform" - /// Return COMPONENT_NO_DEFAULT_MESSAGE to prevent the transforming component from displaying the default transform message / sound. - #define COMPONENT_NO_DEFAULT_MESSAGE (1<<0) - -// /datum/component/two_handed signals - -///from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user) -#define COMSIG_TWOHANDED_WIELD "twohanded_wield" - #define COMPONENT_TWOHANDED_BLOCK_WIELD (1<<0) -///from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user) -#define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" - -// /datum/element/movetype_handler signals -/// Called when the floating anim has to be temporarily stopped and restarted later: (timer) -#define COMSIG_PAUSE_FLOATING_ANIM "pause_floating_anim" -/// From base of datum/element/movetype_handler/on_movement_type_trait_gain: (flag, old_movement_type) -#define COMSIG_MOVETYPE_FLAG_ENABLED "movetype_flag_enabled" -/// From base of datum/element/movetype_handler/on_movement_type_trait_loss: (flag, old_movement_type) -#define COMSIG_MOVETYPE_FLAG_DISABLED "movetype_flag_disabled" - -// /datum/action signals - -///from base of datum/action/proc/Trigger(): (datum/action) -#define COMSIG_ACTION_TRIGGER "action_trigger" - #define COMPONENT_ACTION_BLOCK_TRIGGER (1<<0) - -//Xenobio hotkeys - -///from slime CtrlClickOn(): (/mob) -#define COMSIG_XENO_SLIME_CLICK_CTRL "xeno_slime_click_ctrl" -///from slime AltClickOn(): (/mob) -#define COMSIG_XENO_SLIME_CLICK_ALT "xeno_slime_click_alt" -///from slime ShiftClickOn(): (/mob) -#define COMSIG_XENO_SLIME_CLICK_SHIFT "xeno_slime_click_shift" -///from turf ShiftClickOn(): (/mob) -#define COMSIG_XENO_TURF_CLICK_SHIFT "xeno_turf_click_shift" -///from turf AltClickOn(): (/mob) -#define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" -///from monkey CtrlClickOn(): (/mob) -#define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" - - -// /datum/component/container_item -/// (atom/container, mob/user) - returns bool -#define COMSIG_CONTAINER_TRY_ATTACH "container_try_attach" - -// /datum/element/light_eater -///from base of [/datum/element/light_eater/proc/table_buffet]: (list/light_queue, datum/light_eater) -#define COMSIG_LIGHT_EATER_QUEUE "light_eater_queue" -///from base of [/datum/element/light_eater/proc/devour]: (datum/light_eater) -#define COMSIG_LIGHT_EATER_ACT "light_eater_act" - ///Prevents the default light eater behavior from running in case of immunity or custom behavior - #define COMPONENT_BLOCK_LIGHT_EATER (1<<0) -///from base of [/datum/element/light_eater/proc/devour]: (atom/eaten_light) -#define COMSIG_LIGHT_EATER_DEVOUR "light_eater_devour" - -/* Attack signals. They should share the returned flags, to standardize the attack chain. */ -/// tool_act -> pre_attack -> target.attackby (item.attack) -> afterattack - ///Ends the attack chain. If sent early might cause posterior attacks not to happen. - #define COMPONENT_CANCEL_ATTACK_CHAIN (1<<0) - ///Skips the specific attack step, continuing for the next one to happen. - #define COMPONENT_SKIP_ATTACK (1<<1) -///from base of atom/attack_ghost(): (mob/dead/observer/ghost) -#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" -///from base of atom/attack_hand(): (mob/user, list/modifiers) -#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" -///from base of atom/attack_paw(): (mob/user) -#define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw" -///from base of obj/item/attack(): (/mob/living/target, /mob/living/user) -#define COMSIG_ITEM_ATTACK "item_attack" -///from base of obj/item/attack_self(): (/mob) -#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" -//from base of obj/item/attack_self_secondary(): (/mob) -#define COMSIG_ITEM_ATTACK_SELF_SECONDARY "item_attack_self_secondary" -///from base of obj/item/attack_atom(): (/obj, /mob) -#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" -///from base of obj/item/pre_attack(): (atom/target, mob/user, params) -#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" -/// From base of [/obj/item/proc/pre_attack_secondary()]: (atom/target, mob/user, params) -#define COMSIG_ITEM_PRE_ATTACK_SECONDARY "item_pre_attack_secondary" - #define COMPONENT_SECONDARY_CANCEL_ATTACK_CHAIN (1<<0) - #define COMPONENT_SECONDARY_CONTINUE_ATTACK_CHAIN (1<<1) - #define COMPONENT_SECONDARY_CALL_NORMAL_ATTACK_CHAIN (1<<2) -/// From base of [/obj/item/proc/attack_secondary()]: (atom/target, mob/user, params) -#define COMSIG_ITEM_ATTACK_SECONDARY "item_pre_attack_secondary" -///from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters) -#define COMSIG_ITEM_AFTERATTACK "item_afterattack" -///from base of obj/item/afterattack_secondary(): (atom/target, mob/user, proximity_flag, click_parameters) -#define COMSIG_ITEM_AFTERATTACK_SECONDARY "item_afterattack_secondary" -///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params) -#define COMSIG_ITEM_ATTACK_QDELETED "item_attack_qdeleted" -///from base of atom/attack_hand(): (mob/user, modifiers) -#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" -///from base of /obj/item/attack(): (mob/M, mob/user) -#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" -///from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters) -#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack" -///from base of obj/item/afterattack_secondary(): (atom/target, mob/user, proximity_flag, click_parameters) -#define COMSIG_MOB_ITEM_AFTERATTACK_SECONDARY "mob_item_afterattack_secondary" -///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, proximity_flag, click_parameters) -#define COMSIG_MOB_ITEM_ATTACK_QDELETED "mob_item_attack_qdeleted" -///from base of mob/RangedAttack(): (atom/A, modifiers) -#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged" -///from base of mob/ranged_secondary_attack(): (atom/target, modifiers) -#define COMSIG_MOB_ATTACK_RANGED_SECONDARY "mob_attack_ranged_secondary" -///From base of atom/ctrl_click(): (atom/A) -#define COMSIG_MOB_CTRL_CLICKED "mob_ctrl_clicked" -///From base of mob/update_movespeed():area -#define COMSIG_MOB_MOVESPEED_UPDATED "mob_update_movespeed" -///(NOT on humans) from mob/living/*/UnarmedAttack(): (atom/target, proximity, modifiers) -#define COMSIG_LIVING_UNARMED_ATTACK "living_unarmed_attack" -///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity, modifiers) -#define COMSIG_HUMAN_EARLY_UNARMED_ATTACK "human_early_unarmed_attack" -///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity, modifiers) -#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" -///FROM mob/living/simple_animal/hostile/ooze/eat_atom(): (atom/target, edible_flags) -#define COMSIG_OOZE_EAT_ATOM "ooze_eat_atom" - #define COMPONENT_ATOM_EATEN (1<<0) - - -// Aquarium related signals -#define COMSIG_AQUARIUM_BEFORE_INSERT_CHECK "aquarium_about_to_be_inserted" -#define COMSIG_AQUARIUM_SURFACE_CHANGED "aquarium_surface_changed" -#define COMSIG_AQUARIUM_FLUID_CHANGED "aquarium_fluid_changed" - -///from /obj/item/assembly/proc/pulsed() -#define COMSIG_ASSEMBLY_PULSED "assembly_pulsed" - -///from base of /obj/item/mmi/set_brainmob(): (mob/living/brain/new_brainmob) -#define COMSIG_MMI_SET_BRAINMOB "mmi_set_brainmob" - -/// Exoprobe adventure finished: (result) result is ADVENTURE_RESULT_??? values -#define COMSIG_ADVENTURE_FINISHED "adventure_done" - -/// Sent on initial adventure qualities generation from /datum/adventure/proc/initialize_qualities(): (list/quality_list) -#define COMSIG_ADVENTURE_QUALITY_INIT "adventure_quality_init" - -/// Sent on adventure node delay start: (delay_time, delay_message) -#define COMSIG_ADVENTURE_DELAY_START "adventure_delay_start" -/// Sent on adventure delay finish: () -#define COMSIG_ADVENTURE_DELAY_END "adventure_delay_end" - -/// Exoprobe status changed : () -#define COMSIG_EXODRONE_STATUS_CHANGED "exodrone_status_changed" - -// Scanner controller signals -/// Sent on begingging of new scan : (datum/exoscan/new_scan) -#define COMSIG_EXOSCAN_STARTED "exoscan_started" -/// Sent on successful finish of exoscan: (datum/exoscan/finished_scan) -#define COMSIG_EXOSCAN_FINISHED "exoscan_finished" - -// Exosca signals -/// Sent on exoscan failure/manual interruption: () -#define COMSIG_EXOSCAN_INTERRUPTED "exoscan_interrupted" - -// Component signals -/// Sent when the value of a port is set. -#define COMSIG_PORT_SET_VALUE "port_set_value" -/// Sent when the type of a port is set. -#define COMSIG_PORT_SET_TYPE "port_set_type" -/// Sent when a port disconnects from everything. -#define COMSIG_PORT_DISCONNECT "port_disconnect" - -/// Sent when a [/obj/item/circuit_component] is added to a circuit. -#define COMSIG_CIRCUIT_ADD_COMPONENT "circuit_add_component" - /// Cancels adding the component to the circuit. - #define COMPONENT_CANCEL_ADD_COMPONENT (1<<0) - -/// Sent when a [/obj/item/circuit_component] is added to a circuit manually, by putting the item inside directly. -/// Accepts COMPONENT_CANCEL_ADD_COMPONENT. -#define COMSIG_CIRCUIT_ADD_COMPONENT_MANUALLY "circuit_add_component_manually" - -/// Sent when a circuit is removed from its shell -#define COMSIG_CIRCUIT_SHELL_REMOVED "circuit_shell_removed" - -/// Sent to [/obj/item/circuit_component] when it is removed from a circuit. (/obj/item/integrated_circuit) -#define COMSIG_CIRCUIT_COMPONENT_REMOVED "circuit_component_removed" - -/// Called when the integrated circuit's cell is set. -#define COMSIG_CIRCUIT_SET_CELL "circuit_set_cell" - -/// Called when the integrated circuit is turned on or off. -#define COMSIG_CIRCUIT_SET_ON "circuit_set_on" - -/// Called when the integrated circuit's shell is set. -#define COMSIG_CIRCUIT_SET_SHELL "circuit_set_shell" - -/// Called when the integrated circuit is locked. -#define COMSIG_CIRCUIT_SET_LOCKED "circuit_set_locked" - -/// Called before power is used in an integrated circuit (power_to_use) -#define COMSIG_CIRCUIT_PRE_POWER_USAGE "circuit_pre_power_usage" - #define COMPONENT_OVERRIDE_POWER_USAGE (1<<0) - -/// Called right before the integrated circuit data is converted to json. Allows modification to the data right before it is returned. -#define COMSIG_CIRCUIT_PRE_SAVE_TO_JSON "circuit_pre_save_to_json" - -/// Called when the integrated circuit is loaded. -#define COMSIG_CIRCUIT_POST_LOAD "circuit_post_load" - -/// Sent to an atom when a [/obj/item/usb_cable] attempts to connect to something. (/obj/item/usb_cable/usb_cable, /mob/user) -#define COMSIG_ATOM_USB_CABLE_TRY_ATTACH "usb_cable_try_attach" - /// Attaches the USB cable to the atom. If the USB cables moves away, it will disconnect. - #define COMSIG_USB_CABLE_ATTACHED (1<<0) - - /// Attaches the USB cable to a circuit. Producers of this are expected to set the usb_cable's - /// `attached_circuit` variable. - #define COMSIG_USB_CABLE_CONNECTED_TO_CIRCUIT (1<<1) - - /// Cancels the attack chain, but without performing any other action. - #define COMSIG_CANCEL_USB_CABLE_ATTACK (1<<2) - -/// Called when the circuit component is saved. -#define COMSIG_CIRCUIT_COMPONENT_SAVE "circuit_component_save" - -/// Called when an external object is loaded. -#define COMSIG_MOVABLE_CIRCUIT_LOADED "movable_circuit_loaded" - -/// Sent from /obj/structure/industrial_lift/tram when its travelling status updates. (travelling) -#define COMSIG_TRAM_SET_TRAVELLING "tram_set_travelling" - -/// Sent from /obj/structure/industrial_lift/tram when it begins to travel. (obj/effect/landmark/tram/from_where, obj/effect/landmark/tram/to_where) -#define COMSIG_TRAM_TRAVEL "tram_travel" - -/// Called in /obj/structure/moneybot/add_money(). (to_add) -#define COMSIG_MONEYBOT_ADD_MONEY "moneybot_add_money" - -/// Called in /obj/structure/dispenserbot/add_item(). (obj/item/to_add) -#define COMSIG_DISPENSERBOT_ADD_ITEM "moneybot_add_item" - -/// Called in /obj/structure/dispenserbot/remove_item(). (obj/item/to_remove) -#define COMSIG_DISPENSERBOT_REMOVE_ITEM "moneybot_remove_item" - -/// Called when somebody passes through a scanner gate and it triggers -#define COMSIG_SCANGATE_PASS_TRIGGER "scangate_pass_trigger" - -/// Called when somebody passes through a scanner gate and it does not trigger -#define COMSIG_SCANGATE_PASS_NO_TRIGGER "scangate_pass_no_trigger" - -/// Called when something passes through a scanner gate shell -#define COMSIG_SCANGATE_SHELL_PASS "scangate_shell_pass" - -// Merger datum signals -/// Called on the object being added to a merger group: (datum/merger/new_merger) -#define COMSIG_MERGER_ADDING "comsig_merger_adding" -/// Called on the object being removed from a merger group: (datum/merger/old_merger) -#define COMSIG_MERGER_REMOVING "comsig_merger_removing" -/// Called on the merger after finishing a refresh: (list/leaving_members, list/joining_members) -#define COMSIG_MERGER_REFRESH_COMPLETE "comsig_merger_refresh_complete" - -// Alarm listener datum signals -///Sent when an alarm is fired (alarm, area/source_area) -#define COMSIG_ALARM_TRIGGERED "comsig_alarm_triggered" -///Send when an alarm source is cleared (alarm_type, area/source_area) -#define COMSIG_ALARM_CLEARED "comsig_alarm_clear" -// Vacuum signals -/// Called on a bag being attached to a vacuum parent -#define COMSIG_VACUUM_BAG_ATTACH "comsig_vacuum_bag_attach" -/// Called on a bag being detached from a vacuum parent -#define COMSIG_VACUUM_BAG_DETACH "comsig_vacuum_bag_detach" - -// Organ signals -/// Called on the organ when it is implanted into someone (mob/living/carbon/receiver) -#define COMSIG_ORGAN_IMPLANTED "comsig_organ_implanted" - -/// Called on the organ when it is removed from someone (mob/living/carbon/old_owner) -#define COMSIG_ORGAN_REMOVED "comsig_organ_removed" - -///Called when the ticker enters the pre-game phase -#define COMSIG_TICKER_ENTER_PREGAME "comsig_ticker_enter_pregame" - -///Called when the ticker sets up the game for start -#define COMSIG_TICKER_ENTER_SETTING_UP "comsig_ticker_enter_setting_up" - -///Called when the ticker fails to set up the game for start -#define COMSIG_TICKER_ERROR_SETTING_UP "comsig_ticker_error_setting_up" - -/// Called when the round has started, but before GAME_STATE_PLAYING -#define COMSIG_TICKER_ROUND_STARTING "comsig_ticker_round_starting" - -#define COMSIG_GREYSCALE_CONFIG_REFRESHED "greyscale_config_refreshed" - -// Point of interest signals -/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_added : (atom/new_poi) -#define COMSIG_ADDED_POINT_OF_INTEREST "added_point_of_interest" -/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi) -#define COMSIG_REMOVED_POINT_OF_INTEREST "removed_point_of_interest" - -//Cytology signals -///Sent from /datum/biological_sample/proc/reset_sample -#define COMSIG_SAMPLE_GROWTH_COMPLETED "sample_growth_completed" - #define SPARE_SAMPLE (1<<0) - -// Radiation signals - -/// From the radiation subsystem, called before a potential irradiation. -/// This does not guarantee radiation can reach or will succeed, but merely that there's a radiation source within range. -/// (datum/radiation_pulse_information/pulse_information, insulation_to_target) -#define COMSIG_IN_RANGE_OF_IRRADIATION "in_range_of_irradiation" - -/// Fired when the target could be irradiated, right before the chance check is rolled. -/// (datum/radiation_pulse_information/pulse_information) -#define COMSIG_IN_THRESHOLD_OF_IRRADIATION "pre_potential_irradiation_within_range" - #define CANCEL_IRRADIATION (1 << 0) - - /// If this is flipped, then minimum exposure time will not be checked. - /// If it is not flipped, and the pulse information has a minimum exposure time, then - /// the countdown will begin. - #define SKIP_MINIMUM_EXPOSURE_TIME_CHECK (1 << 1) - -/// Fired when scanning something with a geiger counter. -/// (mob/user, obj/item/geiger_counter/geiger_counter) -#define COMSIG_GEIGER_COUNTER_SCAN "geiger_counter_scan" - /// If not flagged by any handler, will report the subject as being free of irradiation - #define COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFUL (1 << 0) - -/// Called when a techweb design is researched (datum/design/researched_design, custom) -#define COMSIG_TECHWEB_ADD_DESIGN "techweb_add_design" - -/// Called when a techweb design is removed (datum/design/removed_design, custom) -#define COMSIG_TECHWEB_REMOVE_DESIGN "techweb_remove_design" - -// Antagonist signals -/// Called on the mind when an antagonist is being gained, after the antagonist list has updated (datum/antagonist/antagonist) -#define COMSIG_ANTAGONIST_GAINED "antagonist_gained" - -/// Called on the mind when an antagonist is being removed, after the antagonist list has updated (datum/antagonist/antagonist) -#define COMSIG_ANTAGONIST_REMOVED "antagonist_removed" diff --git a/code/__DEFINES/dcs/signals/signals_NTNet.dm b/code/__DEFINES/dcs/signals/signals_NTNet.dm new file mode 100644 index 00000000000..4ba1a3b3865 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_NTNet.dm @@ -0,0 +1,16 @@ +//NTnet + +///called on an object by its NTNET connection component on receive. (data(datum/netdata)) +#define COMSIG_COMPONENT_NTNET_RECEIVE "ntnet_receive" +///called on an object by its NTNET connection component on a port update (hardware_id, port)) +#define COMSIG_COMPONENT_NTNET_PORT_UPDATE "ntnet_port_update" +/// called when packet was accepted by the target (datum/netdata, error_code) +#define COMSIG_COMPONENT_NTNET_ACK "ntnet_ack" +/// called when packet was not acknoledged by the target (datum/netdata, error_code) +#define COMSIG_COMPONENT_NTNET_NAK "ntnet_nack" + +// Some internal NTnet signals used on ports +///called on an object by its NTNET connection component on a port distruction (port, list/data)) +#define COMSIG_COMPONENT_NTNET_PORT_DESTROYED "ntnet_port_destroyed" +///called on an object by its NTNET connection component on a port distruction (port, list/data)) +#define COMSIG_COMPONENT_NTNET_PORT_UPDATED "ntnet_port_updated" diff --git a/code/__DEFINES/dcs/signals/signals_action.dm b/code/__DEFINES/dcs/signals/signals_action.dm new file mode 100644 index 00000000000..a30fb460e79 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_action.dm @@ -0,0 +1,5 @@ +// /datum/action signals + +///from base of datum/action/proc/Trigger(): (datum/action) +#define COMSIG_ACTION_TRIGGER "action_trigger" + #define COMPONENT_ACTION_BLOCK_TRIGGER (1<<0) diff --git a/code/__DEFINES/dcs/signals/signals_admin.dm b/code/__DEFINES/dcs/signals/signals_admin.dm new file mode 100644 index 00000000000..9b4b06ad5d4 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_admin.dm @@ -0,0 +1,7 @@ +/// Admin helps +/// From /datum/admin_help/RemoveActive(). +/// Fired when an adminhelp is made inactive either due to closing or resolving. +#define COMSIG_ADMIN_HELP_MADE_INACTIVE "admin_help_made_inactive" + +/// Called when the player replies. From /client/proc/cmd_admin_pm(). +#define COMSIG_ADMIN_HELP_REPLIED "admin_help_replied" diff --git a/code/__DEFINES/dcs/signals/signals_adventure.dm b/code/__DEFINES/dcs/signals/signals_adventure.dm new file mode 100644 index 00000000000..7aa87c86c55 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_adventure.dm @@ -0,0 +1,23 @@ +/// Exoprobe adventure finished: (result) result is ADVENTURE_RESULT_??? values +#define COMSIG_ADVENTURE_FINISHED "adventure_done" + +/// Sent on initial adventure qualities generation from /datum/adventure/proc/initialize_qualities(): (list/quality_list) +#define COMSIG_ADVENTURE_QUALITY_INIT "adventure_quality_init" + +/// Sent on adventure node delay start: (delay_time, delay_message) +#define COMSIG_ADVENTURE_DELAY_START "adventure_delay_start" +/// Sent on adventure delay finish: () +#define COMSIG_ADVENTURE_DELAY_END "adventure_delay_end" + +/// Exoprobe status changed : () +#define COMSIG_EXODRONE_STATUS_CHANGED "exodrone_status_changed" + +// Scanner controller signals +/// Sent on begingging of new scan : (datum/exoscan/new_scan) +#define COMSIG_EXOSCAN_STARTED "exoscan_started" +/// Sent on successful finish of exoscan: (datum/exoscan/finished_scan) +#define COMSIG_EXOSCAN_FINISHED "exoscan_finished" + +// Exosca signals +/// Sent on exoscan failure/manual interruption: () +#define COMSIG_EXOSCAN_INTERRUPTED "exoscan_interrupted" diff --git a/code/__DEFINES/dcs/signals/signals_antagonist.dm b/code/__DEFINES/dcs/signals/signals_antagonist.dm new file mode 100644 index 00000000000..a209456f7dd --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_antagonist.dm @@ -0,0 +1,6 @@ +// Antagonist signals +/// Called on the mind when an antagonist is being gained, after the antagonist list has updated (datum/antagonist/antagonist) +#define COMSIG_ANTAGONIST_GAINED "antagonist_gained" + +/// Called on the mind when an antagonist is being removed, after the antagonist list has updated (datum/antagonist/antagonist) +#define COMSIG_ANTAGONIST_REMOVED "antagonist_removed" diff --git a/code/__DEFINES/dcs/signals/signals_area.dm b/code/__DEFINES/dcs/signals/signals_area.dm new file mode 100644 index 00000000000..e82027baab2 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_area.dm @@ -0,0 +1,20 @@ +// Area signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of area/proc/power_change(): () +#define COMSIG_AREA_POWER_CHANGE "area_power_change" +///from base of area/Entered(): (atom/movable/arrived, area/old_area) +#define COMSIG_AREA_ENTERED "area_entered" +///from base of area/Exited(): (atom/movable/gone, direction) +#define COMSIG_AREA_EXITED "area_exited" +///from base of area/Entered(): (/area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info. +#define COMSIG_ENTER_AREA "enter_area" +///from base of area/Exited(): (/area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info. +#define COMSIG_EXIT_AREA "exit_area" + +// Alarm listener datum signals +///Sent when an alarm is fired (alarm, area/source_area) +#define COMSIG_ALARM_TRIGGERED "comsig_alarm_triggered" +///Send when an alarm source is cleared (alarm_type, area/source_area) +#define COMSIG_ALARM_CLEARED "comsig_alarm_clear" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.dm new file mode 100644 index 00000000000..38132c4e248 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.dm @@ -0,0 +1,40 @@ +// Atom attack signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/attackby(): (/obj/item, /mob/living, params) +#define COMSIG_PARENT_ATTACKBY "atom_attackby" +/// From base of [atom/proc/attacby_secondary()]: (/obj/item/weapon, /mob/user, params) +#define COMSIG_PARENT_ATTACKBY_SECONDARY "atom_attackby_secondary" +/// From base of [/atom/proc/attack_hand_secondary]: (mob/user, list/modifiers) - Called when the atom receives a secondary unarmed attack. +#define COMSIG_ATOM_ATTACK_HAND_SECONDARY "atom_attack_hand_secondary" +///Return this in response if you don't want afterattack to be called + #define COMPONENT_NO_AFTERATTACK (1<<0) +///from base of atom/attack_hulk(): (/mob/living/carbon/human) +#define COMSIG_ATOM_HULK_ATTACK "hulk_attack" +///from base of atom/animal_attack(): (/mob/user) +#define COMSIG_ATOM_ATTACK_ANIMAL "attack_animal" +//from base of atom/attack_basic_mob(): (/mob/user) +#define COMSIG_ATOM_ATTACK_BASIC_MOB "attack_basic_mob" +/// from /atom/proc/atom_break: () +#define COMSIG_ATOM_BREAK "atom_break" +/// from base of [/atom/proc/atom_fix]: () +#define COMSIG_ATOM_FIX "atom_fix" +///from base of [/atom/proc/update_integrity]: (old_value, new_value) +#define COMSIG_ATOM_INTEGRITY_CHANGED "atom_integrity_changed" +///from base of [/atom/proc/take_damage]: (damage_amount, damage_type, damage_flag, sound_effect, attack_dir, aurmor_penetration) +#define COMSIG_ATOM_TAKE_DAMAGE "atom_take_damage" + /// Return bitflags for the above signal which prevents the atom taking any damage. + #define COMPONENT_NO_TAKE_DAMAGE (1<<0) +/* Attack signals. They should share the returned flags, to standardize the attack chain. */ +/// tool_act -> pre_attack -> target.attackby (item.attack) -> afterattack + ///Ends the attack chain. If sent early might cause posterior attacks not to happen. + #define COMPONENT_CANCEL_ATTACK_CHAIN (1<<0) + ///Skips the specific attack step, continuing for the next one to happen. + #define COMPONENT_SKIP_ATTACK (1<<1) +///from base of atom/attack_ghost(): (mob/dead/observer/ghost) +#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" +///from base of atom/attack_hand(): (mob/user, list/modifiers) +#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" +///from base of atom/attack_paw(): (mob/user) +#define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_explosion.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_explosion.dm new file mode 100644 index 00000000000..a2caf6b2095 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_explosion.dm @@ -0,0 +1,14 @@ +// Atom explosion signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from [/datum/controller/subsystem/explosions/proc/explode]: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause)) +#define COMSIG_ATOM_EXPLODE "atom_explode" +///from [/datum/controller/subsystem/explosions/proc/explode]: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause)) +#define COMSIG_ATOM_INTERNAL_EXPLOSION "atom_internal_explosion" +///from [/datum/controller/subsystem/explosions/proc/explode]: (/list(/atom, devastation_range, heavy_impact_range, light_impact_range, flame_range, flash_range, adminlog, ignorecap, silent, smoke, explosion_cause)) +#define COMSIG_AREA_INTERNAL_EXPLOSION "area_internal_explosion" + /// When returned on a signal hooked to [COMSIG_ATOM_EXPLODE], [COMSIG_ATOM_INTERNAL_EXPLOSION], or [COMSIG_AREA_INTERNAL_EXPLOSION] it prevents the explosion from being propagated further. + #define COMSIG_CANCEL_EXPLOSION (1<<0) +///from /obj/machinery/doppler_array/proc/sense_explosion(...): Runs when an explosion is succesfully detected by a doppler array(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range) +#define COMSIG_DOPPLER_ARRAY_EXPLOSION_DETECTED "atom_dopplerarray_explosion_detected" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_lighting.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_lighting.dm new file mode 100644 index 00000000000..88a29ec697a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_lighting.dm @@ -0,0 +1,29 @@ +// Atom lighting signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// Lighting: +///from base of [atom/proc/set_light]: (l_range, l_power, l_color, l_on) +#define COMSIG_ATOM_SET_LIGHT "atom_set_light" + /// Blocks [/atom/proc/set_light], [/atom/proc/set_light_power], [/atom/proc/set_light_range], [/atom/proc/set_light_color], [/atom/proc/set_light_on], and [/atom/proc/set_light_flags]. + #define COMPONENT_BLOCK_LIGHT_UPDATE (1<<0) +///Called right before the atom changes the value of light_power to a different one, from base [atom/proc/set_light_power]: (new_power) +#define COMSIG_ATOM_SET_LIGHT_POWER "atom_set_light_power" +///Called right after the atom changes the value of light_power to a different one, from base of [/atom/proc/set_light_power]: (old_power) +#define COMSIG_ATOM_UPDATE_LIGHT_POWER "atom_update_light_power" +///Called right before the atom changes the value of light_range to a different one, from base [atom/proc/set_light_range]: (new_range) +#define COMSIG_ATOM_SET_LIGHT_RANGE "atom_set_light_range" +///Called right after the atom changes the value of light_range to a different one, from base of [/atom/proc/set_light_range]: (old_range) +#define COMSIG_ATOM_UPDATE_LIGHT_RANGE "atom_update_light_range" +///Called right before the atom changes the value of light_color to a different one, from base [atom/proc/set_light_color]: (new_color) +#define COMSIG_ATOM_SET_LIGHT_COLOR "atom_set_light_color" +///Called right after the atom changes the value of light_color to a different one, from base of [/atom/proc/set_light_color]: (old_color) +#define COMSIG_ATOM_UPDATE_LIGHT_COLOR "atom_update_light_color" +///Called right before the atom changes the value of light_on to a different one, from base [atom/proc/set_light_on]: (new_value) +#define COMSIG_ATOM_SET_LIGHT_ON "atom_set_light_on" +///Called right after the atom changes the value of light_on to a different one, from base of [/atom/proc/set_light_on]: (old_value) +#define COMSIG_ATOM_UPDATE_LIGHT_ON "atom_update_light_on" +///Called right before the atom changes the value of light_flags to a different one, from base [atom/proc/set_light_flags]: (new_flags) +#define COMSIG_ATOM_SET_LIGHT_FLAGS "atom_set_light_flags" +///Called right after the atom changes the value of light_flags to a different one, from base of [/atom/proc/set_light_flags]: (old_flags) +#define COMSIG_ATOM_UPDATE_LIGHT_FLAGS "atom_update_light_flags" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm new file mode 100644 index 00000000000..85133ce4519 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm @@ -0,0 +1,85 @@ +// Main atom signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// /atom signals +///from base of atom/proc/Initialize(): sent any time a new atom is created +#define COMSIG_ATOM_CREATED "atom_created" +//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization +#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE "atom_init_success" +///from base of atom/examine(): (/mob, list/examine_text) +#define COMSIG_PARENT_EXAMINE "atom_examine" +///from base of atom/get_examine_name(): (/mob, list/overrides) +#define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" +#define COMSIG_PARENT_EXAMINE_MORE "atom_examine_more" ///from base of atom/examine_more(): (/mob) + //Positions for overrides list + #define EXAMINE_POSITION_ARTICLE (1<<0) + #define EXAMINE_POSITION_BEFORE (1<<1) + //End positions + #define COMPONENT_EXNAME_CHANGED (1<<0) +///from base of [/atom/proc/update_appearance]: (updates) +#define COMSIG_ATOM_UPDATE_APPEARANCE "atom_update_appearance" + /// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its name. + #define COMSIG_ATOM_NO_UPDATE_NAME UPDATE_NAME + /// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its desc. + #define COMSIG_ATOM_NO_UPDATE_DESC UPDATE_DESC + /// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its icon. + #define COMSIG_ATOM_NO_UPDATE_ICON UPDATE_ICON +///from base of [/atom/proc/update_name]: (updates) +#define COMSIG_ATOM_UPDATE_NAME "atom_update_name" +///from base of [/atom/proc/update_desc]: (updates) +#define COMSIG_ATOM_UPDATE_DESC "atom_update_desc" +///from base of [/atom/update_icon]: () +#define COMSIG_ATOM_UPDATE_ICON "atom_update_icon" + /// If returned from [COMSIG_ATOM_UPDATE_ICON] it prevents the atom from updating its icon state. + #define COMSIG_ATOM_NO_UPDATE_ICON_STATE UPDATE_ICON_STATE + /// If returned from [COMSIG_ATOM_UPDATE_ICON] it prevents the atom from updating its overlays. + #define COMSIG_ATOM_NO_UPDATE_OVERLAYS UPDATE_OVERLAYS +///from base of [atom/update_icon_state]: () +#define COMSIG_ATOM_UPDATE_ICON_STATE "atom_update_icon_state" +///from base of [/atom/update_overlays]: (list/new_overlays) +#define COMSIG_ATOM_UPDATE_OVERLAYS "atom_update_overlays" +///from base of [/atom/update_icon]: (signalOut, did_anything) +#define COMSIG_ATOM_UPDATED_ICON "atom_updated_icon" +///from base of [/atom/proc/smooth_icon]: () +#define COMSIG_ATOM_SMOOTHED_ICON "atom_smoothed_icon" +///from base of atom/Entered(): (atom/movable/arrived, atom/old_loc, list/atom/old_locs) +#define COMSIG_ATOM_ENTERED "atom_entered" +/// Sent from the atom that just Entered src. From base of atom/Entered(): (/atom/destination, atom/old_loc, list/atom/old_locs) +#define COMSIG_ATOM_ENTERING "atom_entering" +///from base of atom/Exit(): (/atom/movable/leaving, direction) +#define COMSIG_ATOM_EXIT "atom_exit" + #define COMPONENT_ATOM_BLOCK_EXIT (1<<0) +///from base of atom/Exited(): (atom/movable/gone, direction) +#define COMSIG_ATOM_EXITED "atom_exited" +///from base of atom/Bumped(): (/atom/movable) +#define COMSIG_ATOM_BUMPED "atom_bumped" +///from base of atom/handle_atom_del(): (atom/deleted) +#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" +///from base of atom/has_gravity(): (turf/location, list/forced_gravities) +#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" +///from internal loop in atom/movable/proc/CanReach(): (list/next) +#define COMSIG_ATOM_CANREACH "atom_can_reach" + #define COMPONENT_ALLOW_REACH (1<<0) +///for when an atom has been created through processing (atom/original_atom, list/chosen_processing_option) +#define COMSIG_ATOM_CREATEDBY_PROCESSING "atom_createdby_processing" +///when an atom is processed (mob/living/user, obj/item/I, list/atom/results) +#define COMSIG_ATOM_PROCESSED "atom_processed" +///called when teleporting into a protected turf: (channel, turf/origin) +#define COMSIG_ATOM_INTERCEPT_TELEPORT "intercept_teleport" + #define COMPONENT_BLOCK_TELEPORT (1<<0) +///called when an atom is added to the hearers on get_hearers_in_view(): (list/processing_list, list/hearers) +#define COMSIG_ATOM_HEARER_IN_VIEW "atom_hearer_in_view" +///called when an atom starts orbiting another atom: (atom) +#define COMSIG_ATOM_ORBIT_BEGIN "atom_orbit_begin" +///called when an atom stops orbiting another atom: (atom) +#define COMSIG_ATOM_ORBIT_STOP "atom_orbit_stop" +///from base of atom/set_opacity(): (new_opacity) +#define COMSIG_ATOM_SET_OPACITY "atom_set_opacity" +///from base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) +#define COMSIG_ATOM_HITBY "atom_hitby" + +///When the transform or an atom is varedited through vv topic. +#define COMSIG_ATOM_VV_MODIFY_TRANSFORM "atom_vv_modify_transform" + + diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm new file mode 100644 index 00000000000..261c13c6673 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm @@ -0,0 +1,26 @@ +// Atom mouse signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/Click(): (location, control, params, mob/user) +#define COMSIG_CLICK "atom_click" +///from base of atom/ShiftClick(): (/mob) +#define COMSIG_CLICK_SHIFT "shift_click" + #define COMPONENT_ALLOW_EXAMINATE (1<<0) //Allows the user to examinate regardless of client.eye. +///from base of atom/CtrlClickOn(): (/mob) +#define COMSIG_CLICK_CTRL "ctrl_click" +///from base of atom/AltClick(): (/mob) +#define COMSIG_CLICK_ALT "alt_click" + #define COMPONENT_CANCEL_CLICK_ALT (1<<0) +///from base of atom/alt_click_secondary(): (/mob) +#define COMSIG_CLICK_ALT_SECONDARY "alt_click_secondary" + #define COMPONENT_CANCEL_CLICK_ALT_SECONDARY (1<<0) +///from base of atom/CtrlShiftClick(/mob) +#define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click" +///from base of atom/MouseDrop(): (/atom/over, /mob/user) +#define COMSIG_MOUSEDROP_ONTO "mousedrop_onto" + #define COMPONENT_NO_MOUSEDROP (1<<0) +///from base of atom/MouseDrop_T: (/atom/from, /mob/user) +#define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto" +///from base of mob/MouseWheelOn(): (/atom, delta_x, delta_y, params) +#define COMSIG_MOUSE_SCROLL_ON "mousescroll_on" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm new file mode 100644 index 00000000000..a62ce90881b --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm @@ -0,0 +1,74 @@ +// Atom movable signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/movable/Moved(): (/atom) +#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" + #define COMPONENT_MOVABLE_BLOCK_PRE_MOVE (1<<0) +///from base of atom/movable/Moved(): (/atom, dir) +#define COMSIG_MOVABLE_MOVED "movable_moved" +///from base of atom/movable/Cross(): (/atom/movable) +#define COMSIG_MOVABLE_CROSS "movable_cross" +///from base of atom/movable/Move(): (/atom/movable) +#define COMSIG_MOVABLE_CROSS_OVER "movable_cross_am" +///from base of atom/movable/Bump(): (/atom) +#define COMSIG_MOVABLE_BUMP "movable_bump" +///from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum) +#define COMSIG_MOVABLE_IMPACT "movable_impact" + #define COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH (1<<0) //if true, flip if the impact will push what it hits + #define COMPONENT_MOVABLE_IMPACT_NEVERMIND (1<<1) //return true if you destroyed whatever it was you're impacting and there won't be anything for hitby() to run on +///from base of mob/living/hitby(): (mob/living/target, hit_zone) +#define COMSIG_MOVABLE_IMPACT_ZONE "item_impact_zone" +///from /atom/movable/proc/buckle_mob(): (mob/living/M, force, check_loc, buckle_mob_flags) +#define COMSIG_MOVABLE_PREBUCKLE "prebuckle" // this is the last chance to interrupt and block a buckle before it finishes + #define COMPONENT_BLOCK_BUCKLE (1<<0) +///from base of atom/movable/buckle_mob(): (mob, force) +#define COMSIG_MOVABLE_BUCKLE "buckle" +///from base of atom/movable/unbuckle_mob(): (mob, force) +#define COMSIG_MOVABLE_UNBUCKLE "unbuckle" +///from /obj/vehicle/proc/driver_move, caught by the riding component to check and execute the driver trying to drive the vehicle +#define COMSIG_RIDDEN_DRIVER_MOVE "driver_move" + #define COMPONENT_DRIVER_BLOCK_MOVE (1<<0) +///from base of atom/movable/throw_at(): (list/args) +#define COMSIG_MOVABLE_PRE_THROW "movable_pre_throw" + #define COMPONENT_CANCEL_THROW (1<<0) +///from base of atom/movable/throw_at(): (datum/thrownthing, spin) +#define COMSIG_MOVABLE_POST_THROW "movable_post_throw" +///from base of datum/thrownthing/finalize(): (obj/thrown_object, datum/thrownthing) used for when a throw is finished +#define COMSIG_MOVABLE_THROW_LANDED "movable_throw_landed" +///from base of atom/movable/on_changed_z_level(): (turf/old_turf, turf/new_turf) +#define COMSIG_MOVABLE_Z_CHANGED "movable_ztransit" +///called when the movable is placed in an unaccessible area, used for stationloving: () +#define COMSIG_MOVABLE_SECLUDED_LOCATION "movable_secluded" +///from base of atom/movable/Hear(): (proc args list(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, list/message_mods = list())) +#define COMSIG_MOVABLE_HEAR "movable_hear" + #define HEARING_MESSAGE 1 + #define HEARING_SPEAKER 2 + #define HEARING_LANGUAGE 3 + #define HEARING_RAW_MESSAGE 4 + /* #define HEARING_RADIO_FREQ 5 + #define HEARING_SPANS 6 + #define HEARING_MESSAGE_MODE 7 */ + +///called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) +#define COMSIG_MOVABLE_DISPOSING "movable_disposing" +// called when movable is expelled from a disposal pipe, bin or outlet on obj/pipe_eject: (direction) +#define COMSIG_MOVABLE_PIPE_EJECTING "movable_pipe_ejecting" +///called when the movable sucessfully has it's anchored var changed, from base atom/movable/set_anchored(): (value) +#define COMSIG_MOVABLE_SET_ANCHORED "movable_set_anchored" +///from base of atom/movable/setGrabState(): (newstate) +#define COMSIG_MOVABLE_SET_GRAB_STATE "living_set_grab_state" +///Called when the movable tries to change its dynamic light color setting, from base atom/movable/lighting_overlay_set_color(): (color) +#define COMSIG_MOVABLE_LIGHT_OVERLAY_SET_RANGE "movable_light_overlay_set_color" +///Called when the movable tries to change its dynamic light power setting, from base atom/movable/lighting_overlay_set_power(): (power) +#define COMSIG_MOVABLE_LIGHT_OVERLAY_SET_POWER "movable_light_overlay_set_power" +///Called when the movable tries to change its dynamic light range setting, from base atom/movable/lighting_overlay_set_range(): (range) +#define COMSIG_MOVABLE_LIGHT_OVERLAY_SET_COLOR "movable_light_overlay_set_range" +///Called when the movable tries to toggle its dynamic light LIGHTING_ON status, from base atom/movable/lighting_overlay_toggle_on(): (new_state) +#define COMSIG_MOVABLE_LIGHT_OVERLAY_TOGGLE_ON "movable_light_overlay_toggle_on" +///called when the movable's glide size is updated: (new_glide_size) +#define COMSIG_MOVABLE_UPDATE_GLIDE_SIZE "movable_glide_size" +///Called when a movable is hit by a plunger in layer mode, from /obj/item/plunger/attack_atom() +#define COMSIG_MOVABLE_CHANGE_DUCT_LAYER "movable_change_duct_layer" +///Called when a movable is teleported from `do_teleport()`: (destination, channel) +#define COMSIG_MOVABLE_TELEPORTED "movable_teleported" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm new file mode 100644 index 00000000000..d96f6f2633a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm @@ -0,0 +1,38 @@ +// Atom movement signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///signal sent out by an atom when it checks if it can be pulled, for additional checks +#define COMSIG_ATOM_CAN_BE_PULLED "movable_can_be_pulled" + #define COMSIG_ATOM_CANT_PULL (1 << 0) +///signal sent out by an atom when it is no longer being pulled by something else +#define COMSIG_ATOM_NO_LONGER_PULLED "movable_no_longer_pulled" +///called for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels) +#define COMSIG_ATOM_INTERCEPT_Z_FALL "movable_intercept_z_impact" +///called on a movable (NOT living) when it starts pulling (atom/movable/pulled, state, force) +#define COMSIG_ATOM_START_PULL "movable_start_pull" +///called on /living when someone starts pulling (atom/movable/pulled, state, force) +#define COMSIG_LIVING_START_PULL "living_start_pull" +///called on /living when someone is pulled (mob/living/puller) +#define COMSIG_LIVING_GET_PULLED "living_start_pulled" +///called on /living, when pull is attempted, but before it completes, from base of [/mob/living/start_pulling]: (atom/movable/thing, force) +#define COMSIG_LIVING_TRY_PULL "living_try_pull" + #define COMSIG_LIVING_CANCEL_PULL (1 << 0) +/// Called from /mob/living/update_pull_movespeed +#define COMSIG_LIVING_UPDATING_PULL_MOVESPEED "living_updating_pull_movespeed" +/// Called from /mob/living/PushAM -- Called when this mob is about to push a movable, but before it moves +/// (aotm/movable/being_pushed) +#define COMSIG_LIVING_PUSHING_MOVABLE "living_pushing_movable" +///from base of [/atom/proc/interact]: (mob/user) +#define COMSIG_ATOM_UI_INTERACT "atom_ui_interact" +///from base of atom/relaymove(): (mob/living/user, direction) +#define COMSIG_ATOM_RELAYMOVE "atom_relaymove" + ///prevents the "you cannot move while buckled! message" + #define COMSIG_BLOCK_RELAYMOVE (1<<0) +///from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes. +#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" +/// from /datum/component/singularity/proc/can_move(), as well as /obj/energy_ball/proc/can_move() +/// if a callback returns `SINGULARITY_TRY_MOVE_BLOCK`, then the singularity will not move to that turf +#define COMSIG_ATOM_SINGULARITY_TRY_MOVE "atom_singularity_try_move" + /// When returned from `COMSIG_ATOM_SINGULARITY_TRY_MOVE`, the singularity will move to that turf + #define SINGULARITY_TRY_MOVE_BLOCK (1 << 0) diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm new file mode 100644 index 00000000000..32a9f040228 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm @@ -0,0 +1,40 @@ +// Atom x_act() procs signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/ex_act(): (severity, target) +#define COMSIG_ATOM_EX_ACT "atom_ex_act" +///from base of atom/emp_act(): (severity) +#define COMSIG_ATOM_EMP_ACT "atom_emp_act" +///from base of atom/fire_act(): (exposed_temperature, exposed_volume) +#define COMSIG_ATOM_FIRE_ACT "atom_fire_act" +///from base of atom/bullet_act(): (/obj/projectile, def_zone) +#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" +///from base of atom/CheckParts(): (list/parts_list, datum/crafting_recipe/R) +#define COMSIG_ATOM_CHECKPARTS "atom_checkparts" +///from base of atom/CheckParts(): (atom/movable/new_craft) - The atom has just been used in a crafting recipe and has been moved inside new_craft. +#define COMSIG_ATOM_USED_IN_CRAFT "atom_used_in_craft" +///from base of atom/blob_act(): (/obj/structure/blob) +#define COMSIG_ATOM_BLOB_ACT "atom_blob_act" + /// if returned, forces nothing to happen when the atom is attacked by a blob + #define COMPONENT_CANCEL_BLOB_ACT (1<<0) +///from base of atom/acid_act(): (acidpwr, acid_volume) +#define COMSIG_ATOM_ACID_ACT "atom_acid_act" +///from base of atom/emag_act(): (/mob/user) +#define COMSIG_ATOM_EMAG_ACT "atom_emag_act" +///from base of atom/narsie_act(): () +#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act" +///from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode) +#define COMSIG_ATOM_RCD_ACT "atom_rcd_act" +///from base of atom/singularity_pull(): (/datum/component/singularity, current_size) +#define COMSIG_ATOM_SING_PULL "atom_sing_pull" +///from obj/machinery/bsa/full/proc/fire(): () +#define COMSIG_ATOM_BSA_BEAM "atom_bsa_beam_pass" + #define COMSIG_ATOM_BLOCKS_BSA_BEAM (1<<0) +///for any tool behaviors: (mob/living/user, obj/item/I, list/recipes) +#define COMSIG_ATOM_TOOL_ACT(tooltype) "tool_act_[tooltype]" + #define COMPONENT_BLOCK_TOOL_ATTACK (1<<0) +///for any rightclick tool behaviors: (mob/living/user, obj/item/I) +#define COMSIG_ATOM_SECONDARY_TOOL_ACT(tooltype) "tool_secondary_act_[tooltype]" + // We have the same returns here as COMSIG_ATOM_TOOL_ACT + // #define COMPONENT_BLOCK_TOOL_ATTACK (1<<0) diff --git a/code/__DEFINES/dcs/signals/signals_bot.dm b/code/__DEFINES/dcs/signals/signals_bot.dm new file mode 100644 index 00000000000..593083b2134 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_bot.dm @@ -0,0 +1,8 @@ +/// Called in /obj/structure/moneybot/add_money(). (to_add) +#define COMSIG_MONEYBOT_ADD_MONEY "moneybot_add_money" + +/// Called in /obj/structure/dispenserbot/add_item(). (obj/item/to_add) +#define COMSIG_DISPENSERBOT_ADD_ITEM "moneybot_add_item" + +/// Called in /obj/structure/dispenserbot/remove_item(). (obj/item/to_remove) +#define COMSIG_DISPENSERBOT_REMOVE_ITEM "moneybot_remove_item" diff --git a/code/__DEFINES/dcs/signals/signals_circuit.dm b/code/__DEFINES/dcs/signals/signals_circuit.dm new file mode 100644 index 00000000000..2b7e7a83cbd --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_circuit.dm @@ -0,0 +1,66 @@ +// Circuit signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// Component signals +/// Sent when the value of a port is set. +#define COMSIG_PORT_SET_VALUE "port_set_value" +/// Sent when the type of a port is set. +#define COMSIG_PORT_SET_TYPE "port_set_type" +/// Sent when a port disconnects from everything. +#define COMSIG_PORT_DISCONNECT "port_disconnect" + +/// Sent when a [/obj/item/circuit_component] is added to a circuit. +#define COMSIG_CIRCUIT_ADD_COMPONENT "circuit_add_component" + /// Cancels adding the component to the circuit. + #define COMPONENT_CANCEL_ADD_COMPONENT (1<<0) + +/// Sent when a [/obj/item/circuit_component] is added to a circuit manually, by putting the item inside directly. +/// Accepts COMPONENT_CANCEL_ADD_COMPONENT. +#define COMSIG_CIRCUIT_ADD_COMPONENT_MANUALLY "circuit_add_component_manually" + +/// Sent when a circuit is removed from its shell +#define COMSIG_CIRCUIT_SHELL_REMOVED "circuit_shell_removed" + +/// Sent to [/obj/item/circuit_component] when it is removed from a circuit. (/obj/item/integrated_circuit) +#define COMSIG_CIRCUIT_COMPONENT_REMOVED "circuit_component_removed" + +/// Called when the integrated circuit's cell is set. +#define COMSIG_CIRCUIT_SET_CELL "circuit_set_cell" + +/// Called when the integrated circuit is turned on or off. +#define COMSIG_CIRCUIT_SET_ON "circuit_set_on" + +/// Called when the integrated circuit's shell is set. +#define COMSIG_CIRCUIT_SET_SHELL "circuit_set_shell" + +/// Called when the integrated circuit is locked. +#define COMSIG_CIRCUIT_SET_LOCKED "circuit_set_locked" + +/// Called before power is used in an integrated circuit (power_to_use) +#define COMSIG_CIRCUIT_PRE_POWER_USAGE "circuit_pre_power_usage" + #define COMPONENT_OVERRIDE_POWER_USAGE (1<<0) + +/// Called right before the integrated circuit data is converted to json. Allows modification to the data right before it is returned. +#define COMSIG_CIRCUIT_PRE_SAVE_TO_JSON "circuit_pre_save_to_json" + +/// Called when the integrated circuit is loaded. +#define COMSIG_CIRCUIT_POST_LOAD "circuit_post_load" + +/// Sent to an atom when a [/obj/item/usb_cable] attempts to connect to something. (/obj/item/usb_cable/usb_cable, /mob/user) +#define COMSIG_ATOM_USB_CABLE_TRY_ATTACH "usb_cable_try_attach" + /// Attaches the USB cable to the atom. If the USB cables moves away, it will disconnect. + #define COMSIG_USB_CABLE_ATTACHED (1<<0) + + /// Attaches the USB cable to a circuit. Producers of this are expected to set the usb_cable's + /// `attached_circuit` variable. + #define COMSIG_USB_CABLE_CONNECTED_TO_CIRCUIT (1<<1) + + /// Cancels the attack chain, but without performing any other action. + #define COMSIG_CANCEL_USB_CABLE_ATTACK (1<<2) + +/// Called when the circuit component is saved. +#define COMSIG_CIRCUIT_COMPONENT_SAVE "circuit_component_save" + +/// Called when an external object is loaded. +#define COMSIG_MOVABLE_CIRCUIT_LOADED "movable_circuit_loaded" diff --git a/code/__DEFINES/dcs/signals/signals_container.dm b/code/__DEFINES/dcs/signals/signals_container.dm new file mode 100644 index 00000000000..50abc6c7769 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_container.dm @@ -0,0 +1,3 @@ +// /datum/component/container_item +/// (atom/container, mob/user) - returns bool +#define COMSIG_CONTAINER_TRY_ATTACH "container_try_attach" diff --git a/code/__DEFINES/dcs/signals/signals_customizable.dm b/code/__DEFINES/dcs/signals/signals_customizable.dm new file mode 100644 index 00000000000..babdeb276fc --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_customizable.dm @@ -0,0 +1,3 @@ +//Customizable +///called when an atom with /datum/component/customizable_reagent_holder is customized (obj/item/I) +#define COMSIG_ATOM_CUSTOMIZED "atom_customized" diff --git a/code/__DEFINES/dcs/signals/signals_cytology.dm b/code/__DEFINES/dcs/signals/signals_cytology.dm new file mode 100644 index 00000000000..7dc4152edfc --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_cytology.dm @@ -0,0 +1,4 @@ +//Cytology signals +///Sent from /datum/biological_sample/proc/reset_sample +#define COMSIG_SAMPLE_GROWTH_COMPLETED "sample_growth_completed" + #define SPARE_SAMPLE (1<<0) diff --git a/code/__DEFINES/dcs/signals/signals_datum.dm b/code/__DEFINES/dcs/signals/signals_datum.dm new file mode 100644 index 00000000000..1a57698dd64 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_datum.dm @@ -0,0 +1,33 @@ +// Datum signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// /datum signals +/// when a component is added to a datum: (/datum/component) +#define COMSIG_COMPONENT_ADDED "component_added" +/// before a component is removed from a datum because of ClearFromParent: (/datum/component) +#define COMSIG_COMPONENT_REMOVING "component_removing" +/// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation +#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" +/// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called +#define COMSIG_PARENT_QDELETING "parent_qdeleting" +/// generic topic handler (usr, href_list) +#define COMSIG_TOPIC "handle_topic" +/// handler for vv_do_topic (usr, href_list) +#define COMSIG_VV_TOPIC "vv_topic" + #define COMPONENT_VV_HANDLED (1<<0) +/// from datum ui_act (usr, action) +#define COMSIG_UI_ACT "COMSIG_UI_ACT" + +/// fires on the target datum when an element is attached to it (/datum/element) +#define COMSIG_ELEMENT_ATTACH "element_attach" +/// fires on the target datum when an element is attached to it (/datum/element) +#define COMSIG_ELEMENT_DETACH "element_detach" + +// Merger datum signals +/// Called on the object being added to a merger group: (datum/merger/new_merger) +#define COMSIG_MERGER_ADDING "comsig_merger_adding" +/// Called on the object being removed from a merger group: (datum/merger/old_merger) +#define COMSIG_MERGER_REMOVING "comsig_merger_removing" +/// Called on the merger after finishing a refresh: (list/leaving_members, list/joining_members) +#define COMSIG_MERGER_REFRESH_COMPLETE "comsig_merger_refresh_complete" diff --git a/code/__DEFINES/dcs/signals/signals_food.dm b/code/__DEFINES/dcs/signals/signals_food.dm new file mode 100644 index 00000000000..79fe3f18788 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_food.dm @@ -0,0 +1,24 @@ +///called when an item is used as an ingredient: (atom/customized) +#define COMSIG_ITEM_USED_AS_INGREDIENT "item_used_as_ingredient" +///called when an edible ingredient is added: (datum/component/edible/ingredient) +#define COMSIG_EDIBLE_INGREDIENT_ADDED "edible_ingredient_added" + +//Food + +///from Edible component: (mob/living/eater, mob/feeder, bitecount, bitesize) +#define COMSIG_FOOD_EATEN "food_eaten" +///from base of datum/component/edible/on_entered: (mob/crosser, bitecount) +#define COMSIG_FOOD_CROSSED "food_crossed" + +///from base of Component/edible/On_Consume: (mob/living/eater, mob/living/feeder) +#define COMSIG_FOOD_CONSUMED "food_consumed" + +#define COMSIG_ITEM_FRIED "item_fried" + #define COMSIG_FRYING_HANDLED (1<<0) + +//Drink + +///from base of obj/item/reagent_containers/food/drinks/attack(): (mob/living/M, mob/user) +#define COMSIG_DRINK_DRANK "drink_drank" +///from base of obj/item/reagent_containers/glass/attack(): (mob/M, mob/user) +#define COMSIG_GLASS_DRANK "glass_drank" diff --git a/code/__DEFINES/dcs/signals/signals_gib.dm b/code/__DEFINES/dcs/signals/signals_gib.dm new file mode 100644 index 00000000000..aefc908bf1f --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_gib.dm @@ -0,0 +1,5 @@ +//Gibs +///from base of /obj/effect/decal/cleanable/blood/gibs/streak(): (list/directions, list/diseases) +#define COMSIG_GIBS_STREAK "gibs_streak" +/// Called on mobs when they step in blood. (blood_amount, blood_state, list/blood_DNA) +#define COMSIG_STEP_ON_BLOOD "step_on_blood" diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm new file mode 100644 index 00000000000..82dc64ffd8c --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_global.dm @@ -0,0 +1,57 @@ +// Global signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// global signals +// These are signals which can be listened to by any component on any parent +// start global signals with "!", this used to be necessary but now it's just a formatting choice + +///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) +#define COMSIG_GLOB_NEW_Z "!new_z" +/// called after a successful var edit somewhere in the world: (list/args) +#define COMSIG_GLOB_VAR_EDIT "!var_edit" +/// called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range) +#define COMSIG_GLOB_EXPLOSION "!explosion" +/// Called from base of /mob/Initialise : (mob) +#define COMSIG_GLOB_MOB_CREATED "!mob_created" +/// mob died somewhere : (mob/living, gibbed) +#define COMSIG_GLOB_MOB_DEATH "!mob_death" +/// global living say plug - use sparingly: (mob/speaker , message) +#define COMSIG_GLOB_LIVING_SAY_SPECIAL "!say_special" +/// called by datum/cinematic/play() : (datum/cinematic/new_cinematic) +#define COMSIG_GLOB_PLAY_CINEMATIC "!play_cinematic" + #define COMPONENT_GLOB_BLOCK_CINEMATIC (1<<0) +/// ingame button pressed (/obj/machinery/button/button) +#define COMSIG_GLOB_BUTTON_PRESSED "!button_pressed" +/// job subsystem has spawned and equipped a new mob +#define COMSIG_GLOB_JOB_AFTER_SPAWN "!job_after_spawn" +/// job datum has been called to deal with the aftermath of a latejoin spawn +#define COMSIG_GLOB_JOB_AFTER_LATEJOIN_SPAWN "!job_after_latejoin_spawn" +/// crewmember joined the game (mob/living, rank) +#define COMSIG_GLOB_CREWMEMBER_JOINED "!crewmember_joined" +/// Random event is trying to roll. (/datum/round_event_control/random_event) +/// Called by (/datum/round_event_control/preRunEvent). +#define COMSIG_GLOB_PRE_RANDOM_EVENT "!pre_random_event" + /// Do not allow this random event to continue. + #define CANCEL_PRE_RANDOM_EVENT (1<<0) +/// a person somewhere has thrown something : (mob/living/carbon/carbon_thrower, target) +#define COMSIG_GLOB_CARBON_THROW_THING "!throw_thing" +/// a trapdoor remote has sent out a signal to link with a trapdoor +#define COMSIG_GLOB_TRAPDOOR_LINK "!trapdoor_link" + ///successfully linked to a trapdoor! + #define LINKED_UP (1<<0) +/// an obj/item is created! (obj/item/created_item) +#define COMSIG_GLOB_NEW_ITEM "!new_item" +/// a client (re)connected, after all /client/New() checks have passed : (client/connected_client) +#define COMSIG_GLOB_CLIENT_CONNECT "!client_connect" +/// a weather event of some kind occured +#define COMSIG_WEATHER_TELEGRAPH(event_type) "!weather_telegraph [event_type]" +#define COMSIG_WEATHER_START(event_type) "!weather_start [event_type]" +#define COMSIG_WEATHER_WINDDOWN(event_type) "!weather_winddown [event_type]" +#define COMSIG_WEATHER_END(event_type) "!weather_end [event_type]" +/// An alarm of some form was sent (datum/alarm_handler/source, alarm_type, area/source_area) +#define COMSIG_ALARM_FIRE(alarm_type) "!alarm_fire [alarm_type]" +/// An alarm of some form was cleared (datum/alarm_handler/source, alarm_type, area/source_area) +#define COMSIG_ALARM_CLEAR(alarm_type) "!alarm_clear [alarm_type]" +///global mob logged in signal! (/mob/added_player) +#define COMSIG_GLOB_MOB_LOGGED_IN "!mob_logged_in" diff --git a/code/__DEFINES/dcs/signals/signals_global_object.dm b/code/__DEFINES/dcs/signals/signals_global_object.dm new file mode 100644 index 00000000000..452be16f839 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_global_object.dm @@ -0,0 +1,13 @@ +/// signals from globally accessible objects + +///from SSJob when DivideOccupations is called +#define COMSIG_OCCUPATIONS_DIVIDED "occupations_divided" + +///from SSsun when the sun changes position : (azimuth) +#define COMSIG_SUN_MOVED "sun_moved" + +///from SSsecurity_level when the security level changes : (new_level) +#define COMSIG_SECURITY_LEVEL_CHANGED "security_level_changed" + +///from SSshuttle when the supply shuttle starts spawning orders : () +#define COMSIG_SUPPLY_SHUTTLE_BUY "supply_shuttle_buy" diff --git a/code/__DEFINES/dcs/signals/signals_greyscale.dm b/code/__DEFINES/dcs/signals/signals_greyscale.dm new file mode 100644 index 00000000000..b3192760cd7 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_greyscale.dm @@ -0,0 +1 @@ +#define COMSIG_GREYSCALE_CONFIG_REFRESHED "greyscale_config_refreshed" diff --git a/code/__DEFINES/dcs/signals/signals_hydroponic.dm b/code/__DEFINES/dcs/signals/signals_hydroponic.dm new file mode 100644 index 00000000000..204239b236d --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_hydroponic.dm @@ -0,0 +1,35 @@ +//Plants / Plant Traits + +///called when a plant with slippery skin is slipped on (mob/victim) +#define COMSIG_PLANT_ON_SLIP "plant_on_slip" +///called when a plant with liquid contents is squashed on (atom/target) +#define COMSIG_PLANT_ON_SQUASH "plant_on_squash" +///called when a plant backfires via the backfire element (mob/victim) +#define COMSIG_PLANT_ON_BACKFIRE "plant_on_backfire" +///called when a seed grows in a tray (obj/machinery/hydroponics) +#define COMSIG_SEED_ON_GROW "plant_on_grow" +///called when a seed is planted in a tray (obj/machinery/hydroponics) +#define COMSIG_SEED_ON_PLANTED "plant_on_plant" + +//Hydro tray +///from base of /obj/machinery/hydroponics/set_seed() : (obj/item/new_seed) +#define COMSIG_HYDROTRAY_SET_SEED "hydrotray_set_seed" +///from base of /obj/machinery/hydroponics/set_self_sustaining() : (new_value) +#define COMSIG_HYDROTRAY_SET_SELFSUSTAINING "hydrotray_set_selfsustaining" +///from base of /obj/machinery/hydroponics/set_weedlevel() : (new_value) +#define COMSIG_HYDROTRAY_SET_WEEDLEVEL "hydrotray_set_weedlevel" +///from base of /obj/machinery/hydroponics/set_pestlevel() : (new_value) +#define COMSIG_HYDROTRAY_SET_PESTLEVEL "hydrotray_set_pestlevel" +///from base of /obj/machinery/hydroponics/set_waterlevel() : (new_value) +#define COMSIG_HYDROTRAY_SET_WATERLEVEL "hydrotray_set_waterlevel" +///from base of /obj/machinery/hydroponics/set_plant_health() : (new_value) +#define COMSIG_HYDROTRAY_SET_PLANT_HEALTH "hydrotray_set_plant_health" +///from base of /obj/machinery/hydroponics/set_toxic() : (new_value) +#define COMSIG_HYDROTRAY_SET_TOXIC "hydrotray_set_toxic" +///from base of /obj/machinery/hydroponics/set_plant_status() : (new_value) +#define COMSIG_HYDROTRAY_SET_PLANT_STATUS "hydrotray_set_plant_status" +///from base of /obj/machinery/hydroponics/update_tray() : (mob/user, product_count) +#define COMSIG_HYDROTRAY_ON_HARVEST "hydrotray_on_harvest" +///from base of /obj/machinery/hydroponics/plantdies() +#define COMSIG_HYDROTRAY_PLANT_DEATH "hydrotray_plant_death" +///from base of obj/item/attack(): (/mob/living/target, /mob/living/user) diff --git a/code/__DEFINES/dcs/signals/signals_janitor.dm b/code/__DEFINES/dcs/signals/signals_janitor.dm new file mode 100644 index 00000000000..56ca8c96750 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_janitor.dm @@ -0,0 +1,17 @@ +//Janitor + +///Called on an object to "clean it", such as removing blood decals/overlays, etc. The clean types bitfield is sent with it. Return TRUE if any cleaning was necessary and thus performed. +#define COMSIG_COMPONENT_CLEAN_ACT "clean_act" + ///Returned by cleanable components when they are cleaned. + #define COMPONENT_CLEANED (1<<0) + +// Vacuum signals +/// Called on a bag being attached to a vacuum parent +#define COMSIG_VACUUM_BAG_ATTACH "comsig_vacuum_bag_attach" +/// Called on a bag being detached from a vacuum parent +#define COMSIG_VACUUM_BAG_DETACH "comsig_vacuum_bag_detach" + +///(): Returns bitflags of wet values. +#define COMSIG_TURF_IS_WET "check_turf_wet" +///(max_strength, immediate, duration_decrease = INFINITY): Returns bool. +#define COMSIG_TURF_MAKE_DRY "make_turf_try" diff --git a/code/__DEFINES/dcs/signals/signals_light_eater.dm b/code/__DEFINES/dcs/signals/signals_light_eater.dm new file mode 100644 index 00000000000..319b52f0592 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_light_eater.dm @@ -0,0 +1,9 @@ +// /datum/element/light_eater +///from base of [/datum/element/light_eater/proc/table_buffet]: (list/light_queue, datum/light_eater) +#define COMSIG_LIGHT_EATER_QUEUE "light_eater_queue" +///from base of [/datum/element/light_eater/proc/devour]: (datum/light_eater) +#define COMSIG_LIGHT_EATER_ACT "light_eater_act" + ///Prevents the default light eater behavior from running in case of immunity or custom behavior + #define COMPONENT_BLOCK_LIGHT_EATER (1<<0) +///from base of [/datum/element/light_eater/proc/devour]: (atom/eaten_light) +#define COMSIG_LIGHT_EATER_DEVOUR "light_eater_devour" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm new file mode 100644 index 00000000000..d907751b67e --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm @@ -0,0 +1,78 @@ +///When a carbon mob hugs someone, this is called on the carbon that is hugging. (mob/living/hugger, mob/living/hugged) +#define COMSIG_CARBON_HUG "carbon_hug" +///When a carbon mob is hugged, this is called on the carbon that is hugged. (mob/living/hugger) +#define COMSIG_CARBON_HUGGED "carbon_hugged" +///When a carbon mob is headpatted, this is called on the carbon that is headpatted. (mob/living/headpatter) +#define COMSIG_CARBON_HEADPAT "carbon_headpatted" +///When a carbon mob has their tail pulled, this is called on the carbon that is the target. (mob/living/tailpuller) +#define COMSIG_CARBON_TAILPULL "carbon_tailpulled" +///Before a carbon mob is shoved, sent to the turf we're trying to shove onto (mob/living/carbon/shover, mob/living/carbon/target) +#define COMSIG_CARBON_DISARM_PRESHOVE "carbon_disarm_preshove" + #define COMSIG_CARBON_ACT_SOLID (1<<0) //Tells disarm code to act as if the mob was shoved into something solid, even we we're not +///When a carbon mob is disarmed, this is sent to the turf we're trying to shove onto (mob/living/carbon/shover, mob/living/carbon/target, shove_blocked) +#define COMSIG_CARBON_DISARM_COLLIDE "carbon_disarm_collision" + #define COMSIG_CARBON_SHOVE_HANDLED (1<<0) + +///When a carbon slips. Called on /turf/open/handle_slip() +#define COMSIG_ON_CARBON_SLIP "carbon_slip" +///When a carbon gets a vending machine tilted on them +#define COMSIG_ON_VENDOR_CRUSH "carbon_vendor_crush" +// /mob/living/carbon physiology signals +#define COMSIG_CARBON_GAIN_WOUND "carbon_gain_wound" //from /datum/wound/proc/apply_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L) +#define COMSIG_CARBON_LOSE_WOUND "carbon_lose_wound" //from /datum/wound/proc/remove_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L) +///from base of /obj/item/bodypart/proc/attach_limb(): (new_limb, special) allows you to fail limb attachment +#define COMSIG_CARBON_ATTACH_LIMB "carbon_attach_limb" + #define COMPONENT_NO_ATTACH (1<<0) +#define COMSIG_CARBON_REMOVE_LIMB "carbon_remove_limb" //from base of /obj/item/bodypart/proc/drop_limb(special, dismembered) +#define COMSIG_BODYPART_GAUZED "bodypart_gauzed" // from /obj/item/bodypart/proc/apply_gauze(/obj/item/stack/gauze) +#define COMSIG_BODYPART_GAUZE_DESTROYED "bodypart_degauzed" // from [/obj/item/bodypart/proc/seep_gauze] when it runs out of absorption + +///from base of mob/living/carbon/soundbang_act(): (list(intensity)) +#define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" +///from /item/organ/proc/Insert() (/obj/item/organ/) +#define COMSIG_CARBON_GAIN_ORGAN "carbon_gain_organ" +///from /item/organ/proc/Remove() (/obj/item/organ/) +#define COMSIG_CARBON_LOSE_ORGAN "carbon_lose_organ" +///from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent) +#define COMSIG_CARBON_EQUIP_HAT "carbon_equip_hat" +///from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent) +#define COMSIG_CARBON_UNEQUIP_HAT "carbon_unequip_hat" +///from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent) +#define COMSIG_CARBON_UNEQUIP_SHOECOVER "carbon_unequip_shoecover" +#define COMSIG_CARBON_EQUIP_SHOECOVER "carbon_equip_shoecover" +///defined twice, in carbon and human's topics, fired when interacting with a valid embedded_object to pull it out (mob/living/carbon/target, /obj/item, /obj/item/bodypart/L) +#define COMSIG_CARBON_EMBED_RIP "item_embed_start_rip" +///called when removing a given item from a mob, from mob/living/carbon/remove_embedded_object(mob/living/carbon/target, /obj/item) +#define COMSIG_CARBON_EMBED_REMOVAL "item_embed_remove_safe" +///Called when someone attempts to cuff a carbon +#define COMSIG_CARBON_CUFF_ATTEMPTED "carbon_attempt_cuff" +///Called when a carbon mutates (source = dna, mutation = mutation added) +#define COMSIG_CARBON_GAIN_MUTATION "carbon_gain_mutation" +///Called when a carbon loses a mutation (source = dna, mutation = mutation lose) +#define COMSIG_CARBON_LOSE_MUTATION "carbon_lose_mutation" +///Called when a carbon becomes addicted (source = what addiction datum, addicted_mind = mind of the addicted carbon) +#define COMSIG_CARBON_GAIN_ADDICTION "carbon_gain_addiction" +///Called when a carbon is no longer addicted (source = what addiction datum was lost, addicted_mind = mind of the freed carbon) +#define COMSIG_CARBON_LOSE_ADDICTION "carbon_lose_addiction" +///Called when a carbon gets a brain trauma (source = carbon, trauma = what trauma was added) - this is before on_gain() +#define COMSIG_CARBON_GAIN_TRAUMA "carbon_gain_trauma" +///Called when a carbon loses a brain trauma (source = carbon, trauma = what trauma was removed) +#define COMSIG_CARBON_LOSE_TRAUMA "carbon_lose_trauma" +///Called when a carbon updates their health (source = carbon) +#define COMSIG_CARBON_HEALTH_UPDATE "carbon_health_update" +///Called when a carbon updates their sanity (source = carbon) +#define COMSIG_CARBON_SANITY_UPDATE "carbon_sanity_update" +// /mob/living/carbon/human signals + +///Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted) +#define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit" +///Whenever EquipRanked is called, called after job is set +#define COMSIG_JOB_RECEIVED "job_received" +///from /mob/living/carbon/human/proc/set_coretemperature(): (oldvalue, newvalue) +#define COMSIG_HUMAN_CORETEMP_CHANGE "human_coretemp_change" +///from /datum/species/handle_fire. Called when the human is set on fire and burning clothes and stuff +#define COMSIG_HUMAN_BURNING "human_burning" +///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity, modifiers) +#define COMSIG_HUMAN_EARLY_UNARMED_ATTACK "human_early_unarmed_attack" +///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity, modifiers) +#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm new file mode 100644 index 00000000000..9f5cf2bfd7f --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm @@ -0,0 +1,79 @@ +///called on /living when attempting to pick up an item, from base of /mob/living/put_in_hand_check(): (obj/item/I) +#define COMSIG_LIVING_TRY_PUT_IN_HAND "living_try_put_in_hand" + /// Can't pick up + #define COMPONENT_LIVING_CANT_PUT_IN_HAND (1<<0) + +// Organ signals +/// Called on the organ when it is implanted into someone (mob/living/carbon/receiver) +#define COMSIG_ORGAN_IMPLANTED "comsig_organ_implanted" + +/// Called on the organ when it is removed from someone (mob/living/carbon/old_owner) +#define COMSIG_ORGAN_REMOVED "comsig_organ_removed" +///from base of mob/update_transform() +#define COMSIG_LIVING_POST_UPDATE_TRANSFORM "living_post_update_transform" + +///from /obj/structure/door/crush(): (mob/living/crushed, /obj/machinery/door/crushing_door) +#define COMSIG_LIVING_DOORCRUSHED "living_doorcrush" +///from base of mob/living/resist() (/mob/living) +#define COMSIG_LIVING_RESIST "living_resist" +///from base of mob/living/IgniteMob() (/mob/living) +#define COMSIG_LIVING_IGNITED "living_ignite" +///from base of mob/living/extinguish_mob() (/mob/living) +#define COMSIG_LIVING_EXTINGUISHED "living_extinguished" +///from base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags) +#define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" +///sent when items with siemen coeff. of 0 block a shock: (power_source, source, siemens_coeff, dist_check) +#define COMSIG_LIVING_SHOCK_PREVENTED "living_shock_prevented" +///sent by stuff like stunbatons and tasers: () +#define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" +///from base of mob/living/revive() (full_heal, admin_revive) +#define COMSIG_LIVING_REVIVE "living_revive" +///from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) +#define COMSIG_LIVING_REGENERATE_LIMBS "living_regen_limbs" +///from base of mob/living/set_buckled(): (new_buckled) +#define COMSIG_LIVING_SET_BUCKLED "living_set_buckled" +///from base of mob/living/set_body_position() +#define COMSIG_LIVING_SET_BODY_POSITION "living_set_body_position" +///From post-can inject check of syringe after attack (mob/user) +#define COMSIG_LIVING_TRY_SYRINGE "living_try_syringe" +///From living/Life(). (deltatime, times_fired) +#define COMSIG_LIVING_LIFE "living_life" + +///from base of element/bane/activate(): (item/weapon, mob/user) +#define COMSIG_LIVING_BANED "living_baned" +///Sent when bloodcrawl ends in mob/living/phasein(): (phasein_decal) +#define COMSIG_LIVING_AFTERPHASEIN "living_phasein" + +///from base of mob/living/death(): (gibbed) +#define COMSIG_LIVING_DEATH "living_death" + +/// from /proc/healthscan(): (list/scan_results, advanced, mob/user, mode) +/// Consumers are allowed to mutate the scan_results list to add extra information +#define COMSIG_LIVING_HEALTHSCAN "living_healthscan" + +//ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS! + +///from base of mob/living/Stun() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_STUN "living_stun" +///from base of mob/living/Knockdown() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_KNOCKDOWN "living_knockdown" +///from base of mob/living/Paralyze() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_PARALYZE "living_paralyze" +///from base of mob/living/Immobilize() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_IMMOBILIZE "living_immobilize" +///from base of mob/living/Unconscious() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_UNCONSCIOUS "living_unconscious" +///from base of mob/living/Sleeping() (amount, ignore_canstun) +#define COMSIG_LIVING_STATUS_SLEEP "living_sleeping" + #define COMPONENT_NO_STUN (1<<0) //For all of them +///from base of /mob/living/can_track(): (mob/user) +#define COMSIG_LIVING_CAN_TRACK "mob_cantrack" + #define COMPONENT_CANT_TRACK (1<<0) +///from end of fully_heal(): (admin_revive) +#define COMSIG_LIVING_POST_FULLY_HEAL "living_post_fully_heal" +/// from start of /mob/living/handle_breathing(): (delta_time, times_fired) +#define COMSIG_LIVING_HANDLE_BREATHING "living_handle_breathing" +///from /obj/item/slapper/attack_atom(): (source=mob/living/slammer, obj/structure/table/slammed_table) +#define COMSIG_LIVING_SLAM_TABLE "living_slam_table" +///(NOT on humans) from mob/living/*/UnarmedAttack(): (atom/target, proximity, modifiers) +#define COMSIG_LIVING_UNARMED_ATTACK "living_unarmed_attack" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm new file mode 100644 index 00000000000..f5122649f96 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm @@ -0,0 +1,119 @@ +///Called on user, from base of /datum/strippable_item/alternate_action() (atom/target) +#define COMSIG_TRY_ALT_ACTION "try_alt_action" + #define COMPONENT_CANT_ALT_ACTION (1<<0) +///Called on /basic when updating its speed, from base of /mob/living/basic/update_basic_mob_varspeed(): () +#define POST_BASIC_MOB_UPDATE_VARSPEED "post_basic_mob_update_varspeed" +///from base of /mob/Login(): () +#define COMSIG_MOB_LOGIN "mob_login" +///from base of /mob/Logout(): () +#define COMSIG_MOB_LOGOUT "mob_logout" +///from base of mob/set_stat(): (new_stat) +#define COMSIG_MOB_STATCHANGE "mob_statchange" +///from base of mob/clickon(): (atom/A, params) +#define COMSIG_MOB_CLICKON "mob_clickon" +///from base of mob/MiddleClickOn(): (atom/A) +#define COMSIG_MOB_MIDDLECLICKON "mob_middleclickon" +///from base of mob/AltClickOn(): (atom/A) +#define COMSIG_MOB_ALTCLICKON "mob_altclickon" + #define COMSIG_MOB_CANCEL_CLICKON (1<<0) +///from base of mob/alt_click_on_secodary(): (atom/A) +#define COMSIG_MOB_ALTCLICKON_SECONDARY "mob_altclickon_secondary" +/// From base of /mob/living/simple_animal/bot/proc/bot_step() +#define COMSIG_MOB_BOT_PRE_STEP "mob_bot_pre_step" + /// Should always match COMPONENT_MOVABLE_BLOCK_PRE_MOVE as these are interchangeable and used to block movement. + #define COMPONENT_MOB_BOT_BLOCK_PRE_STEP COMPONENT_MOVABLE_BLOCK_PRE_MOVE +/// From base of /mob/living/simple_animal/bot/proc/bot_step() +#define COMSIG_MOB_BOT_STEP "mob_bot_step" + +/// From base of /client/Move() +#define COMSIG_MOB_CLIENT_PRE_MOVE "mob_client_pre_move" + /// Should always match COMPONENT_MOVABLE_BLOCK_PRE_MOVE as these are interchangeable and used to block movement. + #define COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE COMPONENT_MOVABLE_BLOCK_PRE_MOVE +/// From base of /client/Move() +#define COMSIG_MOB_CLIENT_MOVED "mob_client_moved" + +///from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj +#define COMSIG_MOB_ALLOWED "mob_allowed" +///from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources) +#define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic" + #define COMPONENT_BLOCK_MAGIC (1<<0) +///from base of mob/create_mob_hud(): () +#define COMSIG_MOB_HUD_CREATED "mob_hud_created" + +///from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone) +#define COMSIG_MOB_APPLY_DAMAGE "mob_apply_damage" +///from base of /mob/living/attack_alien(): (user) +#define COMSIG_MOB_ATTACK_ALIEN "mob_attack_alien" +///from base of /mob/throw_item(): (atom/target) +#define COMSIG_MOB_THROW "mob_throw" +///from base of /mob/verb/examinate(): (atom/target) +#define COMSIG_MOB_EXAMINATE "mob_examinate" +///from /mob/living/handle_eye_contact(): (mob/living/other_mob) +#define COMSIG_MOB_EYECONTACT "mob_eyecontact" + /// return this if you want to block printing this message to this person, if you want to print your own (does not affect the other person's message) + #define COMSIG_BLOCK_EYECONTACT (1<<0) +///from base of /mob/update_sight(): () +#define COMSIG_MOB_UPDATE_SIGHT "mob_update_sight" +////from /mob/living/say(): () +#define COMSIG_MOB_SAY "mob_say" + #define COMPONENT_UPPERCASE_SPEECH (1<<0) + // used to access COMSIG_MOB_SAY argslist + #define SPEECH_MESSAGE 1 + // #define SPEECH_BUBBLE_TYPE 2 + #define SPEECH_SPANS 3 + // #define SPEECH_SANITIZE 4 + #define SPEECH_LANGUAGE 5 + /* #define SPEECH_IGNORE_SPAM 6 + #define SPEECH_FORCED 7 */ + +///from /mob/say_dead(): (mob/speaker, message) +#define COMSIG_MOB_DEADSAY "mob_deadsay" + #define MOB_DEADSAY_SIGNAL_INTERCEPT (1<<0) +///from /mob/living/emote(): () +#define COMSIG_MOB_EMOTE "mob_emote" +///from base of mob/swap_hand(): (obj/item) +#define COMSIG_MOB_SWAP_HANDS "mob_swap_hands" + #define COMPONENT_BLOCK_SWAP (1<<0) +///from base of /mob/verb/pointed: (atom/A) +#define COMSIG_MOB_POINTED "mob_pointed" +///Mob is trying to open the wires of a target [/atom], from /datum/wires/interactable(): (atom/target) +#define COMSIG_TRY_WIRES_INTERACT "try_wires_interact" + #define COMPONENT_CANT_INTERACT_WIRES (1<<0) +#define COMSIG_MOB_EMOTED(emote_key) "mob_emoted_[emote_key]" +///sent when a mob/login() finishes: (client) +#define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" +//from base of client/MouseDown(): (/client, object, location, control, params) +#define COMSIG_CLIENT_MOUSEDOWN "client_mousedown" +//from base of client/MouseUp(): (/client, object, location, control, params) +#define COMSIG_CLIENT_MOUSEUP "client_mouseup" + #define COMPONENT_CLIENT_MOUSEUP_INTERCEPT (1<<0) +//from base of client/MouseUp(): (/client, object, location, control, params) +#define COMSIG_CLIENT_MOUSEDRAG "client_mousedrag" +///Called on user, from base of /datum/strippable_item/try_(un)equip() (atom/target, obj/item/equipping?) +///also from /mob/living/stripPanel(Un)equip)() +#define COMSIG_TRY_STRIP "try_strip" + #define COMPONENT_CANT_STRIP (1<<0) +///From /datum/component/creamed/Initialize() +#define COMSIG_MOB_CREAMED "mob_creamed" +///From /obj/item/gun/proc/check_botched() +#define COMSIG_MOB_CLUMSY_SHOOT_FOOT "mob_clumsy_shoot_foot" +///from /obj/item/slapper/attack_atom(): (source=obj/structure/table/slammed_table, mob/living/slammer) +#define COMSIG_TABLE_SLAMMED "table_slammed" +///from base of atom/attack_hand(): (mob/user, modifiers) +#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" +///from base of /obj/item/attack(): (mob/M, mob/user) +#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" +///from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters) +#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack" +///from base of obj/item/afterattack_secondary(): (atom/target, mob/user, proximity_flag, click_parameters) +#define COMSIG_MOB_ITEM_AFTERATTACK_SECONDARY "mob_item_afterattack_secondary" +///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, proximity_flag, click_parameters) +#define COMSIG_MOB_ITEM_ATTACK_QDELETED "mob_item_attack_qdeleted" +///from base of mob/RangedAttack(): (atom/A, modifiers) +#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged" +///from base of mob/ranged_secondary_attack(): (atom/target, modifiers) +#define COMSIG_MOB_ATTACK_RANGED_SECONDARY "mob_attack_ranged_secondary" +///From base of atom/ctrl_click(): (atom/A) +#define COMSIG_MOB_CTRL_CLICKED "mob_ctrl_clicked" +///From base of mob/update_movespeed():area +#define COMSIG_MOB_MOVESPEED_UPDATED "mob_update_movespeed" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.dm new file mode 100644 index 00000000000..8be61d93898 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.dm @@ -0,0 +1,4 @@ +///sent from borg recharge stations: (amount, repairs) +#define COMSIG_PROCESS_BORGCHARGER_OCCUPANT "living_charge" +///sent from borg mobs to itself, for tools to catch an upcoming destroy() due to safe decon (rather than detonation) +#define COMSIG_BORG_SAFE_DECONSTRUCT "borg_safe_decon" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.dm new file mode 100644 index 00000000000..c5a7f8c93a5 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.dm @@ -0,0 +1,15 @@ +// simple_animal signals +/// called when a simplemob is given sentience from a potion (target = person who sentienced) +#define COMSIG_SIMPLEMOB_SENTIENCEPOTION "simplemob_sentiencepotion" + +// /mob/living/simple_animal/hostile signals +///before attackingtarget has happened, source is the attacker and target is the attacked +#define COMSIG_HOSTILE_PRE_ATTACKINGTARGET "hostile_pre_attackingtarget" + #define COMPONENT_HOSTILE_NO_ATTACK (1<<0) //cancel the attack, only works before attack happens +///after attackingtarget has happened, source is the attacker and target is the attacked, extra argument for if the attackingtarget was successful +#define COMSIG_HOSTILE_POST_ATTACKINGTARGET "hostile_post_attackingtarget" +///from base of mob/living/simple_animal/hostile/regalrat: (mob/living/simple_animal/hostile/regalrat/king) +#define COMSIG_RAT_INTERACT "rat_interaction" +///FROM mob/living/simple_animal/hostile/ooze/eat_atom(): (atom/target, edible_flags) +#define COMSIG_OOZE_EAT_ATOM "ooze_eat_atom" + #define COMPONENT_ATOM_EATEN (1<<0) diff --git a/code/__DEFINES/dcs/signals/signals_mood.dm b/code/__DEFINES/dcs/signals/signals_mood.dm new file mode 100644 index 00000000000..fd5f5c9606e --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mood.dm @@ -0,0 +1,7 @@ +//Mood +///called when you send a mood event from anywhere in the code. +#define COMSIG_ADD_MOOD_EVENT "add_mood" +///Mood event that only RnD members listen for +#define COMSIG_ADD_MOOD_EVENT_RND "RND_add_mood" +///called when you clear a mood event from anywhere in the code. +#define COMSIG_CLEAR_MOOD_EVENT "clear_mood" diff --git a/code/__DEFINES/dcs/signals/signals_movetype.dm b/code/__DEFINES/dcs/signals/signals_movetype.dm new file mode 100644 index 00000000000..bc8b296b475 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_movetype.dm @@ -0,0 +1,7 @@ +// /datum/element/movetype_handler signals +/// Called when the floating anim has to be temporarily stopped and restarted later: (timer) +#define COMSIG_PAUSE_FLOATING_ANIM "pause_floating_anim" +/// From base of datum/element/movetype_handler/on_movement_type_trait_gain: (flag, old_movement_type) +#define COMSIG_MOVETYPE_FLAG_ENABLED "movetype_flag_enabled" +/// From base of datum/element/movetype_handler/on_movement_type_trait_loss: (flag, old_movement_type) +#define COMSIG_MOVETYPE_FLAG_DISABLED "movetype_flag_disabled" diff --git a/code/__DEFINES/dcs/signals/signals_music.dm b/code/__DEFINES/dcs/signals/signals_music.dm new file mode 100644 index 00000000000..3bb023378cd --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_music.dm @@ -0,0 +1,6 @@ +// /datum/song signals + +///sent to the instrument when a song starts playing +#define COMSIG_SONG_START "song_start" +///sent to the instrument when a song stops playing +#define COMSIG_SONG_END "song_end" diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm new file mode 100644 index 00000000000..d71d0fdae2d --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -0,0 +1,360 @@ +// Object signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +// /obj signals +///from base of obj/deconstruct(): (disassembled) +#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" +///from base of code/game/machinery +#define COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH "obj_default_unfasten_wrench" +///from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide +#define COMSIG_OBJ_HIDE "obj_hide" +/// from /obj/item/toy/crayon/spraycan/afterattack: (color_is_dark) +#define COMSIG_OBJ_PAINTED "obj_painted" + +// /obj/machinery signals + +///from /obj/machinery/atom_break(damage_flag): (damage_flag) +#define COMSIG_MACHINERY_BROKEN "machinery_broken" +///from base power_change() when power is lost +#define COMSIG_MACHINERY_POWER_LOST "machinery_power_lost" +///from base power_change() when power is restored +#define COMSIG_MACHINERY_POWER_RESTORED "machinery_power_restored" +///from /obj/machinery/set_occupant(atom/movable/O): (new_occupant) +#define COMSIG_MACHINERY_SET_OCCUPANT "machinery_set_occupant" +///from /obj/machinery/destructive_scanner/proc/open(aggressive): Runs when the destructive scanner scans a group of objects. (list/scanned_atoms) +#define COMSIG_MACHINERY_DESTRUCTIVE_SCAN "machinery_destructive_scan" +///from /obj/machinery/computer/arcade/prizevend(mob/user, prizes = 1) +#define COMSIG_ARCADE_PRIZEVEND "arcade_prizevend" +///from /datum/controller/subsystem/air/proc/start_processing_machine: () +#define COMSIG_MACHINERY_START_PROCESSING_AIR "start_processing_air" +///from /datum/controller/subsystem/air/proc/stop_processing_machine: () +#define COMSIG_MACHINERY_STOP_PROCESSING_AIR "stop_processing_air" + +///from /obj/machinery/can_interact(mob/user): Called on user when attempting to interact with a machine (obj/machinery/machine) +#define COMSIG_TRY_USE_MACHINE "try_use_machine" + /// Can't interact with the machine + #define COMPONENT_CANT_USE_MACHINE_INTERACT (1<<0) + /// Can't use tools on the machine + #define COMPONENT_CANT_USE_MACHINE_TOOLS (1<<1) + +///from obj/machinery/iv_drip/IV_attach(target, usr) : (attachee) +#define COMSIG_IV_ATTACH "iv_attach" +///from obj/machinery/iv_drip/IV_detach() : (detachee) +#define COMSIG_IV_DETACH "iv_detach" + + +// /obj/machinery/computer/teleporter +/// from /obj/machinery/computer/teleporter/proc/set_target(target, old_target) +#define COMSIG_TELEPORTER_NEW_TARGET "teleporter_new_target" + +// /obj/machinery/power/supermatter_crystal signals +/// from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM delam reaches the point of sounding alarms +#define COMSIG_SUPERMATTER_DELAM_START_ALARM "sm_delam_start_alarm" +/// from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM sounds an audible alarm +#define COMSIG_SUPERMATTER_DELAM_ALARM "sm_delam_alarm" + +// /obj/machinery/atmospherics/components/unary/cryo_cell signals + +/// from /obj/machinery/atmospherics/components/unary/cryo_cell/set_on(bool): (on) +#define COMSIG_CRYO_SET_ON "cryo_set_on" + +// /obj/machinery/atmospherics/components/binary/valve signals + +/// from /obj/machinery/atmospherics/components/binary/valve/toggle(): (on) +#define COMSIG_VALVE_SET_OPEN "valve_toggled" + +/// from /obj/machinery/atmospherics/components/binary/pump/set_on(active): (on) +#define COMSIG_PUMP_SET_ON "pump_set_on" + +/// from /obj/machinery/light_switch/set_lights(), sent to every switch in the area: (status) +#define COMSIG_LIGHT_SWITCH_SET "light_switch_set" + +// /obj access signals + +#define COMSIG_OBJ_ALLOWED "door_try_to_activate" + #define COMPONENT_OBJ_ALLOW (1<<0) + +// /obj/machinery/door/airlock signals + +//from /obj/machinery/door/airlock/open(): (forced) +#define COMSIG_AIRLOCK_OPEN "airlock_open" +//from /obj/machinery/door/airlock/close(): (forced) +#define COMSIG_AIRLOCK_CLOSE "airlock_close" +///from /obj/machinery/door/airlock/set_bolt(): +#define COMSIG_AIRLOCK_SET_BOLT "airlock_set_bolt" +// /obj/item signals + +///from base of obj/item/equipped(): (/mob/equipper, slot) +#define COMSIG_ITEM_EQUIPPED "item_equip" +/// A mob has just equipped an item. Called on [/mob] from base of [/obj/item/equipped()]: (/obj/item/equipped_item, slot) +#define COMSIG_MOB_EQUIPPED_ITEM "mob_equipped_item" +///called on [/obj/item] before unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent) +#define COMSIG_ITEM_PRE_UNEQUIP "item_pre_unequip" + ///only the pre unequip can be cancelled + #define COMPONENT_ITEM_BLOCK_UNEQUIP (1<<0) +///called on [/obj/item] AFTER unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent) +#define COMSIG_ITEM_POST_UNEQUIP "item_post_unequip" +///from base of obj/item/on_grind(): ()) +#define COMSIG_ITEM_ON_GRIND "on_grind" +///from base of obj/item/on_juice(): () +#define COMSIG_ITEM_ON_JUICE "on_juice" +///from /obj/machinery/hydroponics/attackby(obj/item/O, mob/user, params) when an object is used as compost: (mob/user) +#define COMSIG_ITEM_ON_COMPOSTED "on_composted" +///Called when an item is dried by a drying rack: +#define COMSIG_ITEM_DRIED "item_dried" +///from base of obj/item/dropped(): (mob/user) +#define COMSIG_ITEM_DROPPED "item_drop" +///from base of obj/item/pickup(): (/mob/taker) +#define COMSIG_ITEM_PICKUP "item_pickup" +///from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) +#define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" +///return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) +#define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" +///called before marking an object for retrieval, checked in /obj/effect/proc_holder/spell/targeted/summonitem/cast() : (mob/user) +#define COMSIG_ITEM_MARK_RETRIEVAL "item_mark_retrieval" + #define COMPONENT_BLOCK_MARK_RETRIEVAL (1<<0) +///from base of obj/item/hit_reaction(): (list/args) +#define COMSIG_ITEM_HIT_REACT "item_hit_react" + #define COMPONENT_HIT_REACTION_BLOCK (1<<0) +///called on item when microwaved (): (obj/machinery/microwave/M) +#define COMSIG_ITEM_MICROWAVE_ACT "microwave_act" + #define COMPONENT_SUCCESFUL_MICROWAVE (1<<0) +///called on item when created through microwaving (): (obj/machinery/microwave/M, cooking_efficiency) +#define COMSIG_ITEM_MICROWAVE_COOKED "microwave_cooked" +///from base of item/sharpener/attackby(): (amount, max) +#define COMSIG_ITEM_SHARPEN_ACT "sharpen_act" + #define COMPONENT_BLOCK_SHARPEN_APPLIED (1<<0) + #define COMPONENT_BLOCK_SHARPEN_BLOCKED (1<<1) + #define COMPONENT_BLOCK_SHARPEN_ALREADY (1<<2) + #define COMPONENT_BLOCK_SHARPEN_MAXED (1<<3) +///Called when an object is grilled ontop of a griddle +#define COMSIG_ITEM_GRILLED "item_griddled" + #define COMPONENT_HANDLED_GRILLING (1<<0) +///Called when an object is turned into another item through grilling ontop of a griddle +#define COMSIG_GRILL_COMPLETED "item_grill_completed" +//Called when an object is in an oven +#define COMSIG_ITEM_BAKED "item_baked" + #define COMPONENT_HANDLED_BAKING (1<<0) + #define COMPONENT_BAKING_GOOD_RESULT (1<<1) + #define COMPONENT_BAKING_BAD_RESULT (1<<2) +///Called when an object is turned into another item through baking in an oven +#define COMSIG_BAKE_COMPLETED "item_bake_completed" +///Called when an armor plate is successfully applied to an object +#define COMSIG_ARMOR_PLATED "armor_plated" +///Called when an item gets recharged by the ammo powerup +#define COMSIG_ITEM_RECHARGED "item_recharged" +///Called when an item is being offered, from [/obj/item/proc/on_offered(mob/living/carbon/offerer)] +#define COMSIG_ITEM_OFFERING "item_offering" + ///Interrupts the offer proc + #define COMPONENT_OFFER_INTERRUPT (1<<0) +///Called when an someone tries accepting an offered item, from [/obj/item/proc/on_offer_taken(mob/living/carbon/offerer, mob/living/carbon/taker)] +#define COMSIG_ITEM_OFFER_TAKEN "item_offer_taken" + ///Interrupts the offer acceptance + #define COMPONENT_OFFER_TAKE_INTERRUPT (1<<0) + +///from base of [/obj/item/proc/tool_check_callback]: (mob/living/user) +#define COMSIG_TOOL_IN_USE "tool_in_use" +///from base of [/obj/item/proc/tool_start_check]: (mob/living/user) +#define COMSIG_TOOL_START_USE "tool_start_use" +///from [/obj/item/proc/disableEmbedding]: +#define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" +///from [/obj/effect/mine/proc/triggermine]: +#define COMSIG_MINE_TRIGGERED "minegoboom" +///from [/obj/structure/closet/supplypod/proc/preOpen]: +#define COMSIG_SUPPLYPOD_LANDED "supplypodgoboom" + +///from /obj/item/storage/book/bible/afterattack(): (mob/user, proximity) +#define COMSIG_BIBLE_SMACKED "bible_smacked" + ///stops the bible chain from continuing. When all of the effects of the bible smacking have been moved to a signal we can kill this + #define COMSIG_END_BIBLE_CHAIN (1<<0) +///Closets +///From base of [/obj/structure/closet/proc/insert]: (atom/movable/inserted) +#define COMSIG_CLOSET_INSERT "closet_insert" + ///used to interrupt insertion + #define COMPONENT_CLOSET_INSERT_INTERRUPT (1<<0) + +///From open: (forced) +#define COMSIG_CLOSET_PRE_OPEN "closet_pre_open" + #define BLOCK_OPEN (1<<0) +///From open: (forced) +#define COMSIG_CLOSET_POST_OPEN "closet_post_open" + +///a deliver_first element closet was successfully delivered +#define COMSIG_CLOSET_DELIVERED "crate_delivered" + +///Eigenstasium +///From base of [/datum/controller/subsystem/eigenstates/proc/use_eigenlinked_atom]: (var/target) +#define COMSIG_EIGENSTATE_ACTIVATE "eigenstate_activate" + +// /obj signals for economy +///called when the payment component tries to charge an account. +#define COMSIG_OBJ_ATTEMPT_CHARGE "obj_attempt_simple_charge" + #define COMPONENT_OBJ_CANCEL_CHARGE (1<<0) +///Called when a payment component changes value +#define COMSIG_OBJ_ATTEMPT_CHARGE_CHANGE "obj_attempt_simple_charge_change" + +// /obj/item signals for economy +///called when an item is sold by the exports subsystem +#define COMSIG_ITEM_SOLD "item_sold" +///called when a wrapped up structure is opened by hand +#define COMSIG_STRUCTURE_UNWRAPPED "structure_unwrapped" +///called when a wrapped up item is opened by hand +#define COMSIG_ITEM_UNWRAPPED "item_unwrapped" + #define COMSIG_ITEM_SPLIT_VALUE (1<<0) +///called when getting the item's exact ratio for cargo's profit. +#define COMSIG_ITEM_SPLIT_PROFIT "item_split_profits" +///called when getting the item's exact ratio for cargo's profit, without selling the item. +#define COMSIG_ITEM_SPLIT_PROFIT_DRY "item_split_profits_dry" + +// /obj/item/clothing signals + +///from [/mob/living/carbon/human/Move]: () +#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" +///from base of /obj/item/clothing/suit/space/proc/toggle_spacesuit(): (obj/item/clothing/suit/space/suit) +#define COMSIG_SUIT_SPACE_TOGGLE "suit_space_toggle" + +// /obj/item/implant signals +///from base of /obj/item/implant/proc/activate(): () +#define COMSIG_IMPLANT_ACTIVATED "implant_activated" +///from base of /obj/item/implant/proc/implant(): (list/args) +#define COMSIG_IMPLANT_IMPLANTING "implant_implanting" + #define COMPONENT_STOP_IMPLANTING (1<<0) +///called on already installed implants when a new one is being added in /obj/item/implant/proc/implant(): (list/args, obj/item/implant/new_implant) +#define COMSIG_IMPLANT_OTHER "implant_other" + //#define COMPONENT_STOP_IMPLANTING (1<<0) //The name makes sense for both + #define COMPONENT_DELETE_NEW_IMPLANT (1<<1) + #define COMPONENT_DELETE_OLD_IMPLANT (1<<2) + +/// called on implants, after a successful implantation: (mob/living/target, mob/user, silent, force) +#define COMSIG_IMPLANT_IMPLANTED "implant_implanted" + +/// called on implants, after an implant has been removed: (mob/living/source, silent, special) +#define COMSIG_IMPLANT_REMOVED "implant_removed" + +/// called as a mindshield is implanted: (mob/user) +#define COMSIG_PRE_MINDSHIELD_IMPLANT "pre_mindshield_implant" + /// Did they successfully get mindshielded? + #define COMPONENT_MINDSHIELD_PASSED (NONE) + /// Did they resist the mindshield? + #define COMPONENT_MINDSHIELD_RESISTED (1<<0) + +/// called once a mindshield is implanted: (mob/user) +#define COMSIG_MINDSHIELD_IMPLANTED "mindshield_implanted" + /// Are we the reason for deconversion? + #define COMPONENT_MINDSHIELD_DECONVERTED (1<<0) + +///called on implants being implanted into someone with an uplink implant: (datum/component/uplink) +#define COMSIG_IMPLANT_EXISTING_UPLINK "implant_uplink_exists" + //This uses all return values of COMSIG_IMPLANT_OTHER + +// /obj/item/pda signals + +///called on pda when the user changes the ringtone: (mob/living/user, new_ringtone) +#define COMSIG_PDA_CHANGE_RINGTONE "pda_change_ringtone" + #define COMPONENT_STOP_RINGTONE_CHANGE (1<<0) +#define COMSIG_PDA_CHECK_DETONATE "pda_check_detonate" + #define COMPONENT_PDA_NO_DETONATE (1<<0) + +// /obj/item/radio signals + +///called from base of /obj/item/radio/proc/set_frequency(): (list/args) +#define COMSIG_RADIO_NEW_FREQUENCY "radio_new_frequency" + +// /obj/item/pen signals + +///called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user) +#define COMSIG_PEN_ROTATED "pen_rotated" + +// /obj/item/gun signals + +///called in /obj/item/gun/process_fire (src, target, params, zone_override) +#define COMSIG_MOB_FIRED_GUN "mob_fired_gun" +///called in /obj/item/gun/process_fire (user, target, params, zone_override) +#define COMSIG_GUN_FIRED "gun_fired" +///called in /obj/item/gun/process_chamber (src) +#define COMSIG_GUN_CHAMBER_PROCESSED "gun_chamber_processed" +///called in /obj/item/gun/ballistic/process_chamber (casing) +#define COMSIG_CASING_EJECTED "casing_ejected" + +// /obj/effect/proc_holder/spell signals + +///called from /obj/effect/proc_holder/spell/perform (src) +#define COMSIG_MOB_CAST_SPELL "mob_cast_spell" + +// /obj/item/grenade signals + +///called in /obj/item/gun/process_fire (user, target, params, zone_override) +#define COMSIG_GRENADE_DETONATE "grenade_prime" +//called from many places in grenade code (armed_by, nade, det_time, delayoverride) +#define COMSIG_MOB_GRENADE_ARMED "grenade_mob_armed" +///called in /obj/item/gun/process_fire (user, target, params, zone_override) +#define COMSIG_GRENADE_ARMED "grenade_armed" + +// /obj/projectile signals (sent to the firer) + +///from base of /obj/projectile/proc/on_hit(), like COMSIG_PROJECTILE_ON_HIT but on the projectile itself and with the hit limb (if any): (atom/movable/firer, atom/target, Angle, hit_limb) +#define COMSIG_PROJECTILE_SELF_ON_HIT "projectile_self_on_hit" +///from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) +#define COMSIG_PROJECTILE_ON_HIT "projectile_on_hit" +///from base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target) +#define COMSIG_PROJECTILE_BEFORE_FIRE "projectile_before_fire" +///from the base of /obj/projectile/proc/fire(): () +#define COMSIG_PROJECTILE_FIRE "projectile_fire" +///sent to targets during the process_hit proc of projectiles +#define COMSIG_PROJECTILE_PREHIT "com_proj_prehit" +///sent to targets during the process_hit proc of projectiles +#define COMSIG_PROJECTILE_RANGE_OUT "projectile_range_out" +///from [/obj/item/proc/tryEmbed] sent when trying to force an embed (mainly for projectiles and eating glass) +#define COMSIG_EMBED_TRY_FORCE "item_try_embed" + #define COMPONENT_EMBED_SUCCESS (1<<1) + +///sent to targets during the process_hit proc of projectiles +#define COMSIG_PELLET_CLOUD_INIT "pellet_cloud_init" + +// /obj/vehicle/sealed/mecha signals + +///sent from mecha action buttons to the mecha they're linked to +#define COMSIG_MECHA_ACTION_TRIGGER "mecha_action_activate" + +///sent from clicking while you have no equipment selected. Sent before cooldown and adjacency checks, so you can use this for infinite range things if you want. +#define COMSIG_MECHA_MELEE_CLICK "mecha_action_melee_click" + /// Prevents click from happening. + #define COMPONENT_CANCEL_MELEE_CLICK (1<<0) +///sent from clicking while you have equipment selected. +#define COMSIG_MECHA_EQUIPMENT_CLICK "mecha_action_equipment_click" + /// Prevents click from happening. + #define COMPONENT_CANCEL_EQUIPMENT_CLICK (1<<0) + +#define COMSIG_ITEM_ATTACK "item_attack" +///from base of obj/item/attack_self(): (/mob) +#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" +//from base of obj/item/attack_self_secondary(): (/mob) +#define COMSIG_ITEM_ATTACK_SELF_SECONDARY "item_attack_self_secondary" +///from base of obj/item/attack_atom(): (/obj, /mob) +#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" +///from base of obj/item/pre_attack(): (atom/target, mob/user, params) +#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" +/// From base of [/obj/item/proc/pre_attack_secondary()]: (atom/target, mob/user, params) +#define COMSIG_ITEM_PRE_ATTACK_SECONDARY "item_pre_attack_secondary" + #define COMPONENT_SECONDARY_CANCEL_ATTACK_CHAIN (1<<0) + #define COMPONENT_SECONDARY_CONTINUE_ATTACK_CHAIN (1<<1) + #define COMPONENT_SECONDARY_CALL_NORMAL_ATTACK_CHAIN (1<<2) +/// From base of [/obj/item/proc/attack_secondary()]: (atom/target, mob/user, params) +#define COMSIG_ITEM_ATTACK_SECONDARY "item_pre_attack_secondary" +///from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters) +#define COMSIG_ITEM_AFTERATTACK "item_afterattack" +///from base of obj/item/afterattack_secondary(): (atom/target, mob/user, proximity_flag, click_parameters) +#define COMSIG_ITEM_AFTERATTACK_SECONDARY "item_afterattack_secondary" +///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params) +#define COMSIG_ITEM_ATTACK_QDELETED "item_attack_qdeleted" +// Aquarium related signals +#define COMSIG_AQUARIUM_BEFORE_INSERT_CHECK "aquarium_about_to_be_inserted" +#define COMSIG_AQUARIUM_SURFACE_CHANGED "aquarium_surface_changed" +#define COMSIG_AQUARIUM_FLUID_CHANGED "aquarium_fluid_changed" + +///from /obj/item/assembly/proc/pulsed() +#define COMSIG_ASSEMBLY_PULSED "assembly_pulsed" + +///from base of /obj/item/mmi/set_brainmob(): (mob/living/brain/new_brainmob) +#define COMSIG_MMI_SET_BRAINMOB "mmi_set_brainmob" diff --git a/code/__DEFINES/dcs/signals/signals_radiation.dm b/code/__DEFINES/dcs/signals/signals_radiation.dm new file mode 100644 index 00000000000..24aa75a9a4a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_radiation.dm @@ -0,0 +1,22 @@ +// Radiation signals + +/// From the radiation subsystem, called before a potential irradiation. +/// This does not guarantee radiation can reach or will succeed, but merely that there's a radiation source within range. +/// (datum/radiation_pulse_information/pulse_information, insulation_to_target) +#define COMSIG_IN_RANGE_OF_IRRADIATION "in_range_of_irradiation" + +/// Fired when the target could be irradiated, right before the chance check is rolled. +/// (datum/radiation_pulse_information/pulse_information) +#define COMSIG_IN_THRESHOLD_OF_IRRADIATION "pre_potential_irradiation_within_range" + #define CANCEL_IRRADIATION (1 << 0) + + /// If this is flipped, then minimum exposure time will not be checked. + /// If it is not flipped, and the pulse information has a minimum exposure time, then + /// the countdown will begin. + #define SKIP_MINIMUM_EXPOSURE_TIME_CHECK (1 << 1) + +/// Fired when scanning something with a geiger counter. +/// (mob/user, obj/item/geiger_counter/geiger_counter) +#define COMSIG_GEIGER_COUNTER_SCAN "geiger_counter_scan" + /// If not flagged by any handler, will report the subject as being free of irradiation + #define COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFUL (1 << 0) diff --git a/code/__DEFINES/dcs/signals/signals_reagent.dm b/code/__DEFINES/dcs/signals/signals_reagent.dm new file mode 100644 index 00000000000..00fdddc6c9e --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_reagent.dm @@ -0,0 +1,55 @@ +// Atom reagent signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) +#define COMSIG_ATOM_EXPOSE_REAGENTS "atom_expose_reagents" + /// Prevents the atom from being exposed to reagents if returned on [COMSIG_ATOM_EXPOSE_REAGENTS] + #define COMPONENT_NO_EXPOSE_REAGENTS (1<<0) +///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume) +#define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent" +///from base of [/datum/reagent/proc/expose_atom]: (/atom, reac_volume) +#define COMSIG_REAGENT_EXPOSE_ATOM "reagent_expose_atom" +///from base of [/datum/reagent/proc/expose_atom]: (/obj, reac_volume) +#define COMSIG_REAGENT_EXPOSE_OBJ "reagent_expose_obj" +///from base of [/datum/reagent/proc/expose_atom]: (/mob/living, reac_volume, methods, show_message, touch_protection, /mob/camera/blob) // ovemind arg is only used by blob reagents. +#define COMSIG_REAGENT_EXPOSE_MOB "reagent_expose_mob" +///from base of [/datum/reagent/proc/expose_atom]: (/turf, reac_volume) +#define COMSIG_REAGENT_EXPOSE_TURF "reagent_expose_turf" + +///from base of [/datum/controller/subsystem/materials/proc/InitializeMaterial]: (/datum/material) +#define COMSIG_MATERIALS_INIT_MAT "SSmaterials_init_mat" + +///from base of [/datum/component/multiple_lives/proc/respawn]: (mob/respawned_mob, gibbed, lives_left) +#define COMSIG_ON_MULTIPLE_LIVES_RESPAWN "on_multiple_lives_respawn" + +///from base of [/datum/reagents/proc/add_reagent] - Sent before the reagent is added: (reagenttype, amount, reagtemp, data, no_react) +#define COMSIG_REAGENTS_PRE_ADD_REAGENT "reagents_pre_add_reagent" + /// Prevents the reagent from being added. + #define COMPONENT_CANCEL_REAGENT_ADD (1<<0) +///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react) +#define COMSIG_REAGENTS_NEW_REAGENT "reagents_new_reagent" +///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react) +#define COMSIG_REAGENTS_ADD_REAGENT "reagents_add_reagent" +///from base of [/datum/reagents/proc/del_reagent]: (/datum/reagent) +#define COMSIG_REAGENTS_DEL_REAGENT "reagents_del_reagent" +///from base of [/datum/reagents/proc/remove_reagent]: (/datum/reagent, amount) +#define COMSIG_REAGENTS_REM_REAGENT "reagents_rem_reagent" +///from base of [/datum/reagents/proc/clear_reagents]: () +#define COMSIG_REAGENTS_CLEAR_REAGENTS "reagents_clear_reagents" +///from base of [/datum/reagents/proc/set_temperature]: (new_temp, old_temp) +#define COMSIG_REAGENTS_TEMP_CHANGE "reagents_temp_change" +///from base of [/datum/reagents/proc/handle_reactions]: (num_reactions) +#define COMSIG_REAGENTS_REACTED "reagents_reacted" +///from base of [/datum/reagents/proc/process]: (num_reactions) +#define COMSIG_REAGENTS_REACTION_STEP "reagents_time_step" +///from base of [/atom/proc/expose_reagents]: (/atom, /list, methods, volume_modifier, show_message) +#define COMSIG_REAGENTS_EXPOSE_ATOM "reagents_expose_atom" +///from base of [/obj/proc/expose_reagents]: (/obj, /list, methods, volume_modifier, show_message) +#define COMSIG_REAGENTS_EXPOSE_OBJ "reagents_expose_obj" +///from base of [/mob/living/proc/expose_reagents]: (/mob/living, /list, methods, volume_modifier, show_message, touch_protection) +#define COMSIG_REAGENTS_EXPOSE_MOB "reagents_expose_mob" +///from base of [/turf/proc/expose_reagents]: (/turf, /list, methods, volume_modifier, show_message) +#define COMSIG_REAGENTS_EXPOSE_TURF "reagents_expose_turf" +///from base of [/datum/component/personal_crafting/proc/del_reqs]: () +#define COMSIG_REAGENTS_CRAFTING_PING "reagents_crafting_ping" diff --git a/code/__DEFINES/dcs/signals/signals_restaurant.dm b/code/__DEFINES/dcs/signals/signals_restaurant.dm new file mode 100644 index 00000000000..a874d47c8ca --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_restaurant.dm @@ -0,0 +1,7 @@ +///Restaurant + +///(customer, container) venue signal sent when a venue sells an item. source is the thing sold, which can be a datum, so we send container for location checks +#define COMSIG_ITEM_SOLD_TO_CUSTOMER "item_sold_to_customer" + +///sent to everyone in range of being affected by mask of madness +#define COMSIG_VOID_MASK_ACT "void_mask_act" diff --git a/code/__DEFINES/dcs/signals/signals_scangate.dm b/code/__DEFINES/dcs/signals/signals_scangate.dm new file mode 100644 index 00000000000..bb11beb046a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_scangate.dm @@ -0,0 +1,8 @@ +/// Called when somebody passes through a scanner gate and it triggers +#define COMSIG_SCANGATE_PASS_TRIGGER "scangate_pass_trigger" + +/// Called when somebody passes through a scanner gate and it does not trigger +#define COMSIG_SCANGATE_PASS_NO_TRIGGER "scangate_pass_no_trigger" + +/// Called when something passes through a scanner gate shell +#define COMSIG_SCANGATE_SHELL_PASS "scangate_shell_pass" diff --git a/code/__DEFINES/dcs/signals/signals_specie.dm b/code/__DEFINES/dcs/signals/signals_specie.dm new file mode 100644 index 00000000000..ab28febbb2c --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_specie.dm @@ -0,0 +1,5 @@ +// /datum/species signals +///from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species) +#define COMSIG_SPECIES_GAIN "species_gain" +///from datum/species/on_species_loss(): (datum/species/lost_species) +#define COMSIG_SPECIES_LOSS "species_loss" diff --git a/code/__DEFINES/dcs/signals/signals_storage.dm b/code/__DEFINES/dcs/signals/signals_storage.dm new file mode 100644 index 00000000000..72bddfba280 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_storage.dm @@ -0,0 +1,32 @@ +// /datum/component/storage signals +///() - returns bool. +#define COMSIG_CONTAINS_STORAGE "is_storage" +///(obj/item/inserting, mob/user, silent, force) - returns bool +#define COMSIG_TRY_STORAGE_INSERT "storage_try_insert" +///(mob/show_to, force) - returns bool. +#define COMSIG_TRY_STORAGE_SHOW "storage_show_to" +///(mob/hide_from) - returns bool +#define COMSIG_TRY_STORAGE_HIDE_FROM "storage_hide_from" +///returns bool +#define COMSIG_TRY_STORAGE_HIDE_ALL "storage_hide_all" +///(newstate) +#define COMSIG_TRY_STORAGE_SET_LOCKSTATE "storage_lock_set_state" +///() - returns bool. MUST CHECK IF STORAGE IS THERE FIRST! +#define COMSIG_IS_STORAGE_LOCKED "storage_get_lockstate" +///(type, atom/destination, amount = INFINITY, check_adjacent, force, mob/user, list/inserted) - returns bool - type can be a list of types. +#define COMSIG_TRY_STORAGE_TAKE_TYPE "storage_take_type" +///(type, amount = INFINITY, force = FALSE). Force will ignore max_items, and amount is normally clamped to max_items. +#define COMSIG_TRY_STORAGE_FILL_TYPE "storage_fill_type" +///(obj, new_loc, force = FALSE) - returns bool +#define COMSIG_TRY_STORAGE_TAKE "storage_take_obj" +///(loc) - returns bool - if loc is null it will dump at parent location. +#define COMSIG_TRY_STORAGE_QUICK_EMPTY "storage_quick_empty" +///(list/list_to_inject_results_into, recursively_search_inside_storages = TRUE) +#define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" +///(obj/item/insertion_candidate, mob/user, silent) - returns bool +#define COMSIG_TRY_STORAGE_CAN_INSERT "storage_can_equip" + +//from base of atom/movable/on_enter_storage(): (datum/component/storage/concrete/master_storage) +#define COMSIG_STORAGE_ENTERED "storage_entered" +//from base of atom/movable/on_exit_storage(): (datum/component/storage/concrete/master_storage) +#define COMSIG_STORAGE_EXITED "storage_exited" diff --git a/code/__DEFINES/dcs/signals/signals_subsystem.dm b/code/__DEFINES/dcs/signals/signals_subsystem.dm new file mode 100644 index 00000000000..c39b59262b1 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_subsystem.dm @@ -0,0 +1,25 @@ +// Subsystem signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///Subsystem signals +///From base of datum/controller/subsystem/Initialize: (start_timeofday) +#define COMSIG_SUBSYSTEM_POST_INITIALIZE "subsystem_post_initialize" + +///Called when the ticker enters the pre-game phase +#define COMSIG_TICKER_ENTER_PREGAME "comsig_ticker_enter_pregame" + +///Called when the ticker sets up the game for start +#define COMSIG_TICKER_ENTER_SETTING_UP "comsig_ticker_enter_setting_up" + +///Called when the ticker fails to set up the game for start +#define COMSIG_TICKER_ERROR_SETTING_UP "comsig_ticker_error_setting_up" + +/// Called when the round has started, but before GAME_STATE_PLAYING +#define COMSIG_TICKER_ROUND_STARTING "comsig_ticker_round_starting" + +// Point of interest signals +/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_added : (atom/new_poi) +#define COMSIG_ADDED_POINT_OF_INTEREST "added_point_of_interest" +/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi) +#define COMSIG_REMOVED_POINT_OF_INTEREST "removed_point_of_interest" diff --git a/code/__DEFINES/dcs/signals/signals_swab.dm b/code/__DEFINES/dcs/signals/signals_swab.dm new file mode 100644 index 00000000000..6a6aefb66d8 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_swab.dm @@ -0,0 +1,3 @@ +// /datum/component/swabbing signals +#define COMSIG_SWAB_FOR_SAMPLES "swab_for_samples" ///Called when you try to swab something using the swabable component, includes a mutable list of what has been swabbed so far so it can be modified. + #define COMPONENT_SWAB_FOUND (1<<0) diff --git a/code/__DEFINES/dcs/signals/signals_techweb.dm b/code/__DEFINES/dcs/signals/signals_techweb.dm new file mode 100644 index 00000000000..7765bfe5a3a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_techweb.dm @@ -0,0 +1,5 @@ +/// Called when a techweb design is researched (datum/design/researched_design, custom) +#define COMSIG_TECHWEB_ADD_DESIGN "techweb_add_design" + +/// Called when a techweb design is removed (datum/design/removed_design, custom) +#define COMSIG_TECHWEB_REMOVE_DESIGN "techweb_remove_design" diff --git a/code/__DEFINES/dcs/signals/signals_tram.dm b/code/__DEFINES/dcs/signals/signals_tram.dm new file mode 100644 index 00000000000..7a2459fb10a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_tram.dm @@ -0,0 +1,5 @@ +/// Sent from /obj/structure/industrial_lift/tram when its travelling status updates. (travelling) +#define COMSIG_TRAM_SET_TRAVELLING "tram_set_travelling" + +/// Sent from /obj/structure/industrial_lift/tram when it begins to travel. (obj/effect/landmark/tram/from_where, obj/effect/landmark/tram/to_where) +#define COMSIG_TRAM_TRAVEL "tram_travel" diff --git a/code/__DEFINES/dcs/signals/signals_transform.dm b/code/__DEFINES/dcs/signals/signals_transform.dm new file mode 100644 index 00000000000..a70e4c0b196 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_transform.dm @@ -0,0 +1,10 @@ +// /datum/component/transforming signals + +/// From /datum/component/transforming/proc/on_attack_self(obj/item/source, mob/user): (obj/item/source, mob/user, active) +#define COMSIG_TRANSFORMING_PRE_TRANSFORM "transforming_pre_transform" + /// Return COMPONENT_BLOCK_TRANSFORM to prevent the item from transforming. + #define COMPONENT_BLOCK_TRANSFORM (1<<0) +/// From /datum/component/transforming/proc/do_transform(obj/item/source, mob/user): (obj/item/source, mob/user, active) +#define COMSIG_TRANSFORMING_ON_TRANSFORM "transforming_on_transform" + /// Return COMPONENT_NO_DEFAULT_MESSAGE to prevent the transforming component from displaying the default transform message / sound. + #define COMPONENT_NO_DEFAULT_MESSAGE (1<<0) diff --git a/code/__DEFINES/dcs/signals/signals_turf.dm b/code/__DEFINES/dcs/signals/signals_turf.dm new file mode 100644 index 00000000000..e28b392c88a --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_turf.dm @@ -0,0 +1,21 @@ +// Turf signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +/// from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/post_change_callbacks). +/// `post_change_callbacks` is a list that signal handlers can mutate to append `/datum/callback` objects. +/// They will be called with the new turf after the turf has changed. +#define COMSIG_TURF_CHANGE "turf_change" +///from base of atom/has_gravity(): (atom/asker, list/forced_gravities) +#define COMSIG_TURF_HAS_GRAVITY "turf_has_gravity" +///from base of turf/multiz_turf_del(): (turf/source, direction) +#define COMSIG_TURF_MULTIZ_DEL "turf_multiz_del" +///from base of turf/multiz_turf_new: (turf/source, direction) +#define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new" +///from base of turf/proc/onShuttleMove(): (turf/new_turf) +#define COMSIG_TURF_ON_SHUTTLE_MOVE "turf_on_shuttle_move" +///from /turf/open/temperature_expose(datum/gas_mixture/air, exposed_temperature) +#define COMSIG_TURF_EXPOSE "turf_expose" + +///from /datum/element/decal/Detach(): (description, cleanable, directional, mutable_appearance/pic) +#define COMSIG_TURF_DECAL_DETACHED "turf_decal_detached" diff --git a/code/__DEFINES/dcs/signals/signals_twohand.dm b/code/__DEFINES/dcs/signals/signals_twohand.dm new file mode 100644 index 00000000000..ffe335954cb --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_twohand.dm @@ -0,0 +1,7 @@ +// /datum/component/two_handed signals + +///from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user) +#define COMSIG_TWOHANDED_WIELD "twohanded_wield" + #define COMPONENT_TWOHANDED_BLOCK_WIELD (1<<0) +///from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user) +#define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" diff --git a/code/__DEFINES/dcs/signals/signals_wash.dm b/code/__DEFINES/dcs/signals/signals_wash.dm new file mode 100644 index 00000000000..299a2e34432 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_wash.dm @@ -0,0 +1,4 @@ +//Creamed + +///called when you wash your face at a sink: (num/strength) +#define COMSIG_COMPONENT_CLEAN_FACE_ACT "clean_face_act" diff --git a/code/__DEFINES/dcs/signals/signals_xeno_control.dm b/code/__DEFINES/dcs/signals/signals_xeno_control.dm new file mode 100644 index 00000000000..595f44f4f91 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_xeno_control.dm @@ -0,0 +1,14 @@ +//Xenobio hotkeys + +///from slime CtrlClickOn(): (/mob) +#define COMSIG_XENO_SLIME_CLICK_CTRL "xeno_slime_click_ctrl" +///from slime AltClickOn(): (/mob) +#define COMSIG_XENO_SLIME_CLICK_ALT "xeno_slime_click_alt" +///from slime ShiftClickOn(): (/mob) +#define COMSIG_XENO_SLIME_CLICK_SHIFT "xeno_slime_click_shift" +///from turf ShiftClickOn(): (/mob) +#define COMSIG_XENO_TURF_CLICK_SHIFT "xeno_turf_click_shift" +///from turf AltClickOn(): (/mob) +#define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" +///from monkey CtrlClickOn(): (/mob) +#define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" diff --git a/tgstation.dme b/tgstation.dme index bf39a533ba7..8ef455300ca 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -172,7 +172,58 @@ #include "code\__DEFINES\atmospherics\atmos_piping.dm" #include "code\__DEFINES\dcs\flags.dm" #include "code\__DEFINES\dcs\helpers.dm" -#include "code\__DEFINES\dcs\signals.dm" +#include "code\__DEFINES\dcs\signals\signals_action.dm" +#include "code\__DEFINES\dcs\signals\signals_admin.dm" +#include "code\__DEFINES\dcs\signals\signals_adventure.dm" +#include "code\__DEFINES\dcs\signals\signals_antagonist.dm" +#include "code\__DEFINES\dcs\signals\signals_area.dm" +#include "code\__DEFINES\dcs\signals\signals_bot.dm" +#include "code\__DEFINES\dcs\signals\signals_circuit.dm" +#include "code\__DEFINES\dcs\signals\signals_container.dm" +#include "code\__DEFINES\dcs\signals\signals_customizable.dm" +#include "code\__DEFINES\dcs\signals\signals_cytology.dm" +#include "code\__DEFINES\dcs\signals\signals_datum.dm" +#include "code\__DEFINES\dcs\signals\signals_food.dm" +#include "code\__DEFINES\dcs\signals\signals_gib.dm" +#include "code\__DEFINES\dcs\signals\signals_global.dm" +#include "code\__DEFINES\dcs\signals\signals_global_object.dm" +#include "code\__DEFINES\dcs\signals\signals_greyscale.dm" +#include "code\__DEFINES\dcs\signals\signals_hydroponic.dm" +#include "code\__DEFINES\dcs\signals\signals_janitor.dm" +#include "code\__DEFINES\dcs\signals\signals_light_eater.dm" +#include "code\__DEFINES\dcs\signals\signals_mood.dm" +#include "code\__DEFINES\dcs\signals\signals_movetype.dm" +#include "code\__DEFINES\dcs\signals\signals_music.dm" +#include "code\__DEFINES\dcs\signals\signals_NTNet.dm" +#include "code\__DEFINES\dcs\signals\signals_object.dm" +#include "code\__DEFINES\dcs\signals\signals_radiation.dm" +#include "code\__DEFINES\dcs\signals\signals_reagent.dm" +#include "code\__DEFINES\dcs\signals\signals_restaurant.dm" +#include "code\__DEFINES\dcs\signals\signals_scangate.dm" +#include "code\__DEFINES\dcs\signals\signals_specie.dm" +#include "code\__DEFINES\dcs\signals\signals_storage.dm" +#include "code\__DEFINES\dcs\signals\signals_subsystem.dm" +#include "code\__DEFINES\dcs\signals\signals_swab.dm" +#include "code\__DEFINES\dcs\signals\signals_techweb.dm" +#include "code\__DEFINES\dcs\signals\signals_tram.dm" +#include "code\__DEFINES\dcs\signals\signals_transform.dm" +#include "code\__DEFINES\dcs\signals\signals_turf.dm" +#include "code\__DEFINES\dcs\signals\signals_twohand.dm" +#include "code\__DEFINES\dcs\signals\signals_wash.dm" +#include "code\__DEFINES\dcs\signals\signals_xeno_control.dm" +#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_attack.dm" +#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_explosion.dm" +#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_lighting.dm" +#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_main.dm" +#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_mouse.dm" +#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_movable.dm" +#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_movement.dm" +#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_x_act.dm" +#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_carbon.dm" +#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_living.dm" +#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_main.dm" +#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_silicon.dm" +#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_simple.dm" #include "code\__DEFINES\research\anomalies.dm" #include "code\__DEFINES\~skyrat_defines\_organ_defines.dm" #include "code\__DEFINES\~skyrat_defines\access.dm"