Refactors how components are triggered and refactors how ports are ordered (#60934)

Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
This commit is contained in:
Watermelon914
2021-09-03 02:22:39 -07:00
committed by GitHub
co-authored by Watermelon914
parent a9cc1bc816
commit 126411f405
76 changed files with 265 additions and 429 deletions
@@ -18,17 +18,13 @@
var/datum/port/output/output_value
/obj/item/circuit_component/get_variable/Initialize()
. = ..()
/obj/item/circuit_component/get_variable/populate_ports()
entity = add_input_port("Target", PORT_TYPE_ATOM)
variable_name = add_input_port("Variable Name", PORT_TYPE_STRING)
output_value = add_output_port("Output Value", PORT_TYPE_ANY)
/obj/item/circuit_component/get_variable/input_received(datum/port/input/port)
. = ..()
if(.)
return
var/atom/object = entity.value
var/var_name = variable_name.value
if(!var_name || !object)
@@ -34,8 +34,7 @@
proccall_options = add_option_port("Proccall Options", component_options)
/obj/item/circuit_component/proccall/Initialize()
. = ..()
/obj/item/circuit_component/proccall/populate_ports()
entity = add_input_port("Target", PORT_TYPE_ATOM)
proc_name = add_input_port("Proc Name", PORT_TYPE_STRING)
arguments = add_input_port("Arguments", PORT_TYPE_LIST)
@@ -43,9 +42,6 @@
output_value = add_output_port("Output Value", PORT_TYPE_ANY)
/obj/item/circuit_component/proccall/input_received(datum/port/input/port)
. = ..()
if(.)
return
var/called_on
if(proccall_options.value == COMP_PROC_OBJECT)
@@ -14,20 +14,21 @@
var/datum/port/output/results
/obj/item/circuit_component/sdql_operation/Initialize()
. = ..()
/obj/item/circuit_component/sdql_operation/populate_ports()
sdql_operation = add_input_port("SDQL String", PORT_TYPE_STRING)
results = add_output_port("Result", PORT_TYPE_LIST)
/obj/item/circuit_component/sdql_operation/input_received(datum/port/input/port)
. = ..()
if(.)
return
if(GLOB.AdminProcCaller)
return TRUE
INVOKE_ASYNC(src, .proc/execute_sdql, port)
/obj/item/circuit_component/sdql_operation/proc/execute_sdql(datum/port/input/port)
var/operation = sdql_operation.value
if(GLOB.AdminProcCaller || !operation)
return TRUE
return
GLOB.AdminProcCaller = "CHAT_[parent.display_name]" //_ won't show up in ckeys so it'll never match with a real admin
var/list/result = world.SDQL2_query(operation, parent.get_creator_admin(), parent.get_creator())
@@ -18,16 +18,12 @@
var/datum/port/input/new_value
/obj/item/circuit_component/set_variable/Initialize()
. = ..()
/obj/item/circuit_component/set_variable/populate_ports()
entity = add_input_port("Target", PORT_TYPE_ATOM)
variable_name = add_input_port("Variable Name", PORT_TYPE_STRING)
new_value = add_input_port("New Value", PORT_TYPE_ANY)
/obj/item/circuit_component/set_variable/input_received(datum/port/input/port)
. = ..()
if(.)
return
var/atom/object = entity.value
var/var_name = variable_name.value
if(!var_name || !object)
@@ -20,8 +20,7 @@
/// The result from the output
var/datum/port/output/spawned_atom
/obj/item/circuit_component/spawn_atom/Initialize()
. = ..()
/obj/item/circuit_component/spawn_atom/populate_ports()
input_path = add_input_port("Type", PORT_TYPE_ANY)
spawn_at = add_input_port("Spawn At", PORT_TYPE_ATOM)
parameters = add_input_port("Parameters", PORT_TYPE_LIST)
@@ -29,9 +28,6 @@
spawned_atom = add_output_port("Spawned Atom", PORT_TYPE_ATOM)
/obj/item/circuit_component/spawn_atom/input_received(datum/port/input/port)
. = ..()
if(.)
return
var/typepath = input_path.value
@@ -14,15 +14,11 @@
/// The type output
var/datum/port/output/type_output
/obj/item/circuit_component/to_type/Initialize()
. = ..()
/obj/item/circuit_component/to_type/populate_ports()
input_path = add_input_port("Type", PORT_TYPE_STRING)
type_output = add_output_port("Typepath", PORT_TYPE_ANY)
/obj/item/circuit_component/to_type/input_received(datum/port/input/port)
. = ..()
if(.)
return
type_output.set_output(text2path(input_path.value))