From c11557d23d9aad3808e5cb5996391e30df09dde0 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Tue, 19 Jun 2018 18:18:11 -0400 Subject: [PATCH 1/2] Global component signals --- _maps/RandomRuins/SpaceRuins/bus.dmm | 12 +++++- code/__DEFINES/components.dm | 15 ++++++++ code/controllers/subsystem/dcs.dm | 35 ++++++++++++++++++ code/datums/components/_component.dm | 4 ++ code/datums/components/edit_complainer.dm | 23 ++++++++++++ code/game/objects/items/plushes.dm | 10 +++++ code/modules/admin/verbs/modifyvariables.dm | 1 + .../space_management/zlevel_manager.dm | 1 + icons/obj/plushes.dmi | Bin 5362 -> 5691 bytes tgstation.dme | 2 + 10 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 code/controllers/subsystem/dcs.dm create mode 100644 code/datums/components/edit_complainer.dm diff --git a/_maps/RandomRuins/SpaceRuins/bus.dmm b/_maps/RandomRuins/SpaceRuins/bus.dmm index be05a8d1d6..fe624c19bf 100644 --- a/_maps/RandomRuins/SpaceRuins/bus.dmm +++ b/_maps/RandomRuins/SpaceRuins/bus.dmm @@ -334,6 +334,16 @@ /obj/item/stack/sheet/metal/fifty, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) +"XA" = ( +/obj/structure/fluff/bus/passable/seat{ + icon_state = "backseat" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/toy/plush/awakenedplushie, +/turf/open/floor/plasteel/airless/dark{ + icon_state = "bus" + }, +/area/ruin/unpowered/no_grav) (1,1,1) = {" aa @@ -484,7 +494,7 @@ ab ae ad aj -am +XA az aK ad diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 1cf27a8c68..cade3d1ef3 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -1,3 +1,10 @@ +<<<<<<< HEAD +======= +#define SEND_SIGNAL(target, sigtype, arguments...) ( !target.datum_components ? NONE : target._SendSignal(sigtype, list(##arguments)) ) + +#define SEND_GLOBAL_SIGNAL(sigtype, arguments...) ( !SSdcs.comp_lookup[sigtype] ? NONE : SSdcs._SendGlobalSignal(sigtype, list(##arguments)) ) + +>>>>>>> 84a85a5... Merge pull request #38574 from ninjanomnom/glob-signals //shorthand #define GET_COMPONENT_FROM(varname, path, target) var##path/##varname = ##target.GetComponent(##path) #define GET_COMPONENT(varname, path) GET_COMPONENT_FROM(varname, path, src) @@ -14,6 +21,14 @@ // All signals. Format: // When the signal is called: (signal arguments) +// global signals +// These are signals which can be listened to by any component on any parent +// GLOBAL SIGNALS MUST START WITH "!" +#define COMSIG_GLOB_NEW_Z "!new_z" //from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) +#define COMSIG_GLOB_VAR_EDIT "!var_edit" //called after a successful var edit somewhere in the world: (list/args) + +////////////////////////////////////////////////////////////////// + // /datum signals #define COMSIG_COMPONENT_ADDED "component_added" //when a component is added to a datum: (/datum/component) #define COMSIG_COMPONENT_REMOVING "component_removing" //before a component is removed from a datum because of RemoveComponent: (/datum/component) diff --git a/code/controllers/subsystem/dcs.dm b/code/controllers/subsystem/dcs.dm new file mode 100644 index 0000000000..3eed510adc --- /dev/null +++ b/code/controllers/subsystem/dcs.dm @@ -0,0 +1,35 @@ +SUBSYSTEM_DEF(dcs) + name = "Datum Component System" + flags = SS_NO_INIT | SS_NO_FIRE + + var/list/comp_lookup = list() // A signal:list(components) assoc list + +/datum/controller/subsystem/dcs/proc/_SendGlobalSignal(sigtype, list/arguments) + . = NONE + for(var/i in comp_lookup[sigtype]) + var/datum/component/comp = i + if(!comp.enabled) + continue + var/datum/callback/CB = comp.signal_procs[sigtype] + if(!CB) + continue // Should we error from this? + . |= CB.InvokeAsync(arglist(arguments)) + +/datum/controller/subsystem/dcs/proc/RegisterSignal(datum/component/comp, sigtype) + if(!comp_lookup[sigtype]) + comp_lookup[sigtype] = list() + + comp_lookup[sigtype][comp] = TRUE + +/datum/controller/subsystem/dcs/proc/UnregisterSignal(datum/component/comp, list/sigtypes) + if(!length(sigtypes)) + sigtypes = list(sigtypes) + for(var/sigtype in sigtypes) + switch(length(comp_lookup[sigtype])) + if(1) + comp_lookup -= sigtype + if(2 to INFINITY) + comp_lookup[sigtype] -= comp + +/datum/controller/subsystem/dcs/Recover() + comp_lookup = SSdcs.comp_lookup diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index bfd6f5a5de..1769a26d18 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -58,6 +58,7 @@ if(!silent) P.SendSignal(COMSIG_COMPONENT_REMOVING, src) parent = null + SSdcs.UnregisterSignal(src, signal_procs) LAZYCLEARLIST(signal_procs) return ..() @@ -93,6 +94,9 @@ if(!override && procs[sig_type]) stack_trace("[sig_type] overridden. Use override = TRUE to suppress this warning") + if(sig_type[1] == "!") + SSdcs.RegisterSignal(src, sig_type) + procs[sig_type] = proc_or_callback enabled = TRUE diff --git a/code/datums/components/edit_complainer.dm b/code/datums/components/edit_complainer.dm new file mode 100644 index 0000000000..c0a875d457 --- /dev/null +++ b/code/datums/components/edit_complainer.dm @@ -0,0 +1,23 @@ +// This is just a bit of fun while making an example for global signal +/datum/component/edit_complainer + var/list/say_lines + +/datum/component/edit_complainer/Initialize(list/text) + if(!ismovableatom(parent)) + return COMPONENT_INCOMPATIBLE + + var/static/list/default_lines = list( + "CentCom's profligacy frays another thread.", + "Another tug at the weave.", + "Who knows when the stresses will finally shatter the form?", + "Even now a light shines through the cracks.", + "CentCom once more twists knowledge beyond its authority.", + "There is an uncertain air in the mansus.", + ) + say_lines = text || default_lines + + RegisterSignal(COMSIG_GLOB_VAR_EDIT, .proc/var_edit_react) + +/datum/component/edit_complainer/proc/var_edit_react(list/arguments) + var/atom/movable/master = parent + master.say(pick(say_lines)) diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 0d993da41b..eec6c00834 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -510,3 +510,13 @@ attack_verb = list("blorbled", "slimed", "absorbed") squeak_override = list('sound/effects/blobattack.ogg' = 1) gender = FEMALE //given all the jokes and drawings, I'm not sure the xenobiologists would make a slimeboy + +/obj/item/toy/plush/awakenedplushie + name = "awakened plushie" + desc = "An ancient plushie that has grown enlightened to the true nature of reality." + icon_state = "plushie_awake" + item_state = "plushie_awake" + +/obj/item/toy/plush/awakenedplushie/ComponentInitialize() + . = ..() + AddComponent(/datum/component/edit_complainer) diff --git a/code/modules/admin/verbs/modifyvariables.dm b/code/modules/admin/verbs/modifyvariables.dm index 0c41ae8fd2..405595d1de 100644 --- a/code/modules/admin/verbs/modifyvariables.dm +++ b/code/modules/admin/verbs/modifyvariables.dm @@ -629,6 +629,7 @@ GLOBAL_PROTECT(VVpixelmovement) if (O.vv_edit_var(variable, var_new) == FALSE) to_chat(src, "Your edit was rejected by the object.") return + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_VAR_EDIT, args) log_world("### VarEdit by [key_name(src)]: [O.type] [variable]=[var_value] => [var_new]") log_admin("[key_name(src)] modified [original_name]'s [variable] from [html_encode("[var_value]")] to [html_encode("[var_new]")]") var/msg = "[key_name_admin(src)] modified [original_name]'s [variable] from [var_value] to [var_new]" diff --git a/code/modules/mapping/space_management/zlevel_manager.dm b/code/modules/mapping/space_management/zlevel_manager.dm index a0d84c55dd..6129c5fd2b 100644 --- a/code/modules/mapping/space_management/zlevel_manager.dm +++ b/code/modules/mapping/space_management/zlevel_manager.dm @@ -17,6 +17,7 @@ z_list += S /datum/controller/subsystem/mapping/proc/add_new_zlevel(name, traits = list(), z_type = /datum/space_level) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NEW_Z, args) var/new_z = z_list.len + 1 if (world.maxz < new_z) world.incrementMaxZ() diff --git a/icons/obj/plushes.dmi b/icons/obj/plushes.dmi index f0eb8175497e73f02a005bfd6b4ac1994a187c73..0bf89ab744679d93ab85072431ed9bc2f16a92a0 100644 GIT binary patch literal 5691 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 literal 5362 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 EKfCB~!vFvP diff --git a/tgstation.dme b/tgstation.dme index 39ecf1a066..115fe25b8d 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -209,6 +209,7 @@ #include "code\controllers\subsystem\blackbox.dm" #include "code\controllers\subsystem\communications.dm" #include "code\controllers\subsystem\dbcore.dm" +#include "code\controllers\subsystem\dcs.dm" #include "code\controllers\subsystem\disease.dm" #include "code\controllers\subsystem\events.dm" #include "code\controllers\subsystem\fire_burning.dm" @@ -328,6 +329,7 @@ #include "code\datums\components\decal.dm" #include "code\datums\components\earhealing.dm" #include "code\datums\components\earprotection.dm" +#include "code\datums\components\edit_complainer.dm" #include "code\datums\components\empprotection.dm" #include "code\datums\components\forensics.dm" #include "code\datums\components\infective.dm" From a3a4ecffbefe3de76e7421a7a8caf43d9ce1386a Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 24 Jun 2018 15:08:37 -0500 Subject: [PATCH 2/2] Update components.dm --- code/__DEFINES/components.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index cade3d1ef3..7c00573089 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -1,10 +1,6 @@ -<<<<<<< HEAD -======= #define SEND_SIGNAL(target, sigtype, arguments...) ( !target.datum_components ? NONE : target._SendSignal(sigtype, list(##arguments)) ) #define SEND_GLOBAL_SIGNAL(sigtype, arguments...) ( !SSdcs.comp_lookup[sigtype] ? NONE : SSdcs._SendGlobalSignal(sigtype, list(##arguments)) ) - ->>>>>>> 84a85a5... Merge pull request #38574 from ninjanomnom/glob-signals //shorthand #define GET_COMPONENT_FROM(varname, path, target) var##path/##varname = ##target.GetComponent(##path) #define GET_COMPONENT(varname, path) GET_COMPONENT_FROM(varname, path, src)