Merge pull request #6353 from Citadel-Station-13/upstream-merge-37044
[MIRROR] Fix logic circuits runtime
This commit is contained in:
@@ -30,6 +30,9 @@
|
||||
/obj/item/integrated_circuit/logic/binary/proc/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
|
||||
return FALSE
|
||||
|
||||
/obj/item/integrated_circuit/logic/binary/proc/comparable(var/datum/integrated_io/A, var/datum/integrated_io/B)
|
||||
return (isnum(A.data) && isnum(B.data)) || (istext(A.data) && istext(B.data))
|
||||
|
||||
/obj/item/integrated_circuit/logic/unary
|
||||
inputs = list("A" = IC_PINTYPE_ANY)
|
||||
activators = list("compare" = IC_PINTYPE_PULSE_IN, "on compare" = IC_PINTYPE_PULSE_OUT)
|
||||
@@ -176,7 +179,8 @@
|
||||
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
|
||||
|
||||
/obj/item/integrated_circuit/logic/binary/less_than/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
|
||||
return A.data < B.data
|
||||
if(comparable(A, B))
|
||||
return A.data < B.data
|
||||
|
||||
/obj/item/integrated_circuit/logic/binary/less_than_or_equal
|
||||
name = "less than or equal gate"
|
||||
@@ -185,7 +189,8 @@
|
||||
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
|
||||
|
||||
/obj/item/integrated_circuit/logic/binary/less_than_or_equal/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
|
||||
return A.data <= B.data
|
||||
if(comparable(A, B))
|
||||
return A.data <= B.data
|
||||
|
||||
/obj/item/integrated_circuit/logic/binary/greater_than
|
||||
name = "greater than gate"
|
||||
@@ -194,7 +199,8 @@
|
||||
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
|
||||
|
||||
/obj/item/integrated_circuit/logic/binary/greater_than/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
|
||||
return A.data > B.data
|
||||
if(comparable(A, B))
|
||||
return A.data > B.data
|
||||
|
||||
/obj/item/integrated_circuit/logic/binary/greater_than_or_equal
|
||||
name = "greater_than or equal gate"
|
||||
@@ -203,7 +209,8 @@
|
||||
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
|
||||
|
||||
/obj/item/integrated_circuit/logic/binary/greater_than_or_equal/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
|
||||
return A.data >= B.data
|
||||
if(comparable(A, B))
|
||||
return A.data >= B.data
|
||||
|
||||
/obj/item/integrated_circuit/logic/unary/not
|
||||
name = "not gate"
|
||||
|
||||
Reference in New Issue
Block a user