From 754fe54bdbd058fe5f57778b4ab6a11bf8a70e84 Mon Sep 17 00:00:00 2001 From: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Date: Fri, 11 Feb 2022 09:10:46 +0000 Subject: [PATCH] Adds a trigger version of the variable setter component (#64820) See title. Lets you use input and output signals to set variables instead of automatically setting them. Gives more control, additionally there may be cases where you don't want this, and the normal component still exists. They're two separate components so that the first one can be a lot more compact --- code/modules/research/designs/wiremod_designs.dm | 5 +++++ code/modules/research/techweb/all_nodes.dm | 1 + code/modules/wiremod/components/variables/setter.dm | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/code/modules/research/designs/wiremod_designs.dm b/code/modules/research/designs/wiremod_designs.dm index cdb6a3b790b..8c936b53563 100644 --- a/code/modules/research/designs/wiremod_designs.dm +++ b/code/modules/research/designs/wiremod_designs.dm @@ -381,6 +381,11 @@ id = "comp_id_access_reader" build_path = /obj/item/circuit_component/id_access_reader +/datum/design/component/setter_trigger + name = "Set Variable Trigger" + id = "comp_set_variable_trigger" + build_path = /obj/item/circuit_component/variable/setter/trigger + /datum/design/component/access_checker name = "Access Checker Component" id = "comp_access_checker" diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 89179e12920..3204972fdec 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -269,6 +269,7 @@ "comp_router", "comp_select_query", "comp_self", + "comp_set_variable_trigger", "comp_soundemitter", "comp_species", "comp_speech", diff --git a/code/modules/wiremod/components/variables/setter.dm b/code/modules/wiremod/components/variables/setter.dm index df5e85db8e6..2703f341550 100644 --- a/code/modules/wiremod/components/variables/setter.dm +++ b/code/modules/wiremod/components/variables/setter.dm @@ -12,6 +12,11 @@ circuit_size = 0 +/obj/item/circuit_component/variable/setter/trigger + display_name = "Trigger Variable Setter" + desc = "A component that sets a variable globally on the circuit. This one requires input signals and also provides an output signal" + circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL + /obj/item/circuit_component/variable/setter/get_variable_list(obj/item/integrated_circuit/integrated_circuit) return integrated_circuit.modifiable_circuit_variables