From 9036c91504e564bac96df45b50de345adcdfe3a1 Mon Sep 17 00:00:00 2001 From: Y0SH1M4S73R Date: Tue, 2 Nov 2021 17:28:11 -0400 Subject: [PATCH] Adds the assembly shell (#62307) Adds the assembly shell, which can be attached to wires and other assemblies like proximity sensors, timers, etc. Because assemblies already have screwdriver interaction that gets overriden by the shell component, the regular assembly screwdriver interaction can also be performed with right-click. This can be seen on examine. While currently, circuits can interact with wires and such using remote signalers and the radio component, this has its limits, such as the possibility that someone else uses the same frequency/code combo. With the assembly shell, you can put all your circuit logic into the attached assembly. --- .../research/designs/wiremod_designs.dm | 9 +++ code/modules/research/techweb/all_nodes.dm | 1 + code/modules/wiremod/shell/assembly.dm | 66 ++++++++++++++++++ icons/obj/assemblies/new_assemblies.dmi | Bin 22689 -> 23645 bytes tgstation.dme | 1 + 5 files changed, 77 insertions(+) create mode 100644 code/modules/wiremod/shell/assembly.dm diff --git a/code/modules/research/designs/wiremod_designs.dm b/code/modules/research/designs/wiremod_designs.dm index 08fc5bfba68..35aa401eda1 100644 --- a/code/modules/research/designs/wiremod_designs.dm +++ b/code/modules/research/designs/wiremod_designs.dm @@ -462,3 +462,12 @@ build_path = /obj/item/circuitboard/machine/bci_implanter build_type = IMPRINTER | COMPONENT_PRINTER category = list("Circuitry", "Core") + +/datum/design/assembly_shell + name = "Assembly Shell" + desc = "An assembly shell that can be attached to wires and other assemblies." + id = "assembly_shell" + materials = list(/datum/material/glass = 2000, /datum/material/iron = 5000) + build_path = /obj/item/assembly/wiremod + build_type = PROTOLATHE | COMPONENT_PRINTER + category = list("Circuitry", "Shells") diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index c27b40cfea1..0b9f2a92989 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -678,6 +678,7 @@ description = "Grants access to more complicated shell designs." prereq_ids = list("basic_circuitry", "engineering") design_ids = list( + "assembly_shell", "bot_shell", "controller_shell", "dispenser_shell", diff --git a/code/modules/wiremod/shell/assembly.dm b/code/modules/wiremod/shell/assembly.dm new file mode 100644 index 00000000000..5418b74905d --- /dev/null +++ b/code/modules/wiremod/shell/assembly.dm @@ -0,0 +1,66 @@ +/** + * # Assembly Shell + * + * An assembly that triggers and can be triggered by wires. + */ +/obj/item/assembly/wiremod + name = "circuit assembly" + desc = "A small electronic device that can house an integrated circuit." + icon_state = "wiremod" + +/obj/item/assembly/wiremod/Initialize(mapload) + . = ..() + AddComponent(/datum/component/shell, list( + new /obj/item/circuit_component/assembly_input(), + new /obj/item/circuit_component/assembly_output(), + ), SHELL_CAPACITY_SMALL) + +/obj/item/assembly/wiremod/examine(mob/user) + . = ..() + . += span_notice("You can also [secured && "un"]secure [src] by right-clicking it with a screwdriver, even if an integrated circuit is attached.") + +// This is to bypass removing the circuit with a screwdriver left-click +/obj/item/assembly/wiremod/screwdriver_act_secondary(mob/living/user, obj/item/tool) + screwdriver_act(user, tool) + +/obj/item/circuit_component/assembly_input + display_name = "Assembly Input" + desc = "Triggers when pulsed by an attached wire or assembly." + + var/datum/port/output/signal + +/obj/item/circuit_component/assembly_input/populate_ports() + signal = add_output_port("Signal", PORT_TYPE_SIGNAL) + +/obj/item/circuit_component/assembly_input/register_shell(atom/movable/shell) + RegisterSignal(shell, list(COMSIG_ASSEMBLY_PULSED, COMSIG_ITEM_ATTACK_SELF), .proc/on_pulsed) + +/obj/item/circuit_component/assembly_input/unregister_shell(atom/movable/shell) + UnregisterSignal(shell, list(COMSIG_ASSEMBLY_PULSED, COMSIG_ITEM_ATTACK_SELF)) + +/obj/item/circuit_component/assembly_input/proc/on_pulsed() + SIGNAL_HANDLER + signal.set_output(COMPONENT_SIGNAL) + +/obj/item/circuit_component/assembly_output + display_name = "Assembly Output" + desc = "Pulses an attached wire or assembly when triggered." + + var/obj/item/assembly/attached_assembly + + var/datum/port/input/signal + +/obj/item/circuit_component/assembly_output/populate_ports() + signal = add_input_port("Signal", PORT_TYPE_SIGNAL) + +/obj/item/circuit_component/assembly_output/register_shell(atom/movable/shell) + . = ..() + if(istype(shell, /obj/item/assembly)) + attached_assembly = shell + +/obj/item/circuit_component/assembly_output/unregister_shell(atom/movable/shell) + attached_assembly = null + return ..() + +/obj/item/circuit_component/assembly_output/input_received(datum/port/input/port, list/return_values) + attached_assembly.pulse(FALSE) diff --git a/icons/obj/assemblies/new_assemblies.dmi b/icons/obj/assemblies/new_assemblies.dmi index 469d4d16d571b7ab26f911bbc4954eaa3806d7e3..689fa3f201f1d6c2d19ce41ba332877c4ac8c3c6 100644 GIT binary patch literal 23645 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 literal 22689 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 RFr$Y7nyN2VzA0IR{0A2)P!s?F diff --git a/tgstation.dme b/tgstation.dme index fd9091ad39b..16b89d3885b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3963,6 +3963,7 @@ #include "code\modules\wiremod\preset\hello_world.dm" #include "code\modules\wiremod\preset\speech_relay.dm" #include "code\modules\wiremod\shell\airlock.dm" +#include "code\modules\wiremod\shell\assembly.dm" #include "code\modules\wiremod\shell\bot.dm" #include "code\modules\wiremod\shell\brain_computer_interface.dm" #include "code\modules\wiremod\shell\compact_remote.dm"