mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Ports PsiOmegaDelta's port of integrated circuits, which has several improvements in code quality. Ports a few small things like the weakref datum and some macros.
71 lines
1.9 KiB
Plaintext
71 lines
1.9 KiB
Plaintext
/obj/item/integrated_circuit/transfer/splitter
|
|
name = "splitter"
|
|
desc = "Splits incoming data into all of the output pins."
|
|
icon_state = "splitter"
|
|
complexity = 3
|
|
inputs = list("data to split")
|
|
outputs = list("A","B")
|
|
|
|
/obj/item/integrated_circuit/transfer/splitter/medium
|
|
name = "four splitter"
|
|
icon_state = "splitter4"
|
|
complexity = 5
|
|
outputs = list("A","B","C","D")
|
|
|
|
/obj/item/integrated_circuit/transfer/splitter/large
|
|
name = "eight splitter"
|
|
icon_state = "splitter8"
|
|
complexity = 9
|
|
outputs = list("A","B","C","D","E","F","G","H")
|
|
|
|
/obj/item/integrated_circuit/transfer/splitter/do_work()
|
|
var/datum/integrated_io/I = inputs[1]
|
|
for(var/datum/integrated_io/output/O in outputs)
|
|
O.data = I.data
|
|
|
|
/obj/item/integrated_circuit/transfer/activator_splitter
|
|
name = "activator splitter"
|
|
desc = "Splits incoming activation pulses into all of the output pins."
|
|
icon_state = "splitter"
|
|
complexity = 3
|
|
activators = list(
|
|
"incoming pulse",
|
|
"outgoing pulse A",
|
|
"outgoing pulse B"
|
|
)
|
|
|
|
/obj/item/integrated_circuit/transfer/activator_splitter/do_work()
|
|
for(var/datum/integrated_io/activate/A in outputs)
|
|
if(A == activators[1])
|
|
continue
|
|
if(A.linked.len)
|
|
for(var/datum/integrated_io/activate/target in A.linked)
|
|
target.holder.check_then_do_work()
|
|
|
|
/obj/item/integrated_circuit/transfer/activator_splitter/medium
|
|
name = "four activator splitter"
|
|
icon_state = "splitter4"
|
|
complexity = 5
|
|
activators = list(
|
|
"incoming pulse",
|
|
"outgoing pulse A",
|
|
"outgoing pulse B",
|
|
"outgoing pulse C",
|
|
"outgoing pulse D"
|
|
)
|
|
|
|
/obj/item/integrated_circuit/transfer/activator_splitter/large
|
|
name = "eight activator splitter"
|
|
icon_state = "splitter4"
|
|
complexity = 9
|
|
activators = list(
|
|
"incoming pulse",
|
|
"outgoing pulse A",
|
|
"outgoing pulse B",
|
|
"outgoing pulse C",
|
|
"outgoing pulse D",
|
|
"outgoing pulse E",
|
|
"outgoing pulse F",
|
|
"outgoing pulse G",
|
|
"outgoing pulse H"
|
|
) |