Refactors the list datatype to support composite lists. Adapts a lot of circuits to be able to properly use composite lists. Adds the dispenser shell (#61856)

Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Colovorat <35225170+Colovorat@users.noreply.github.com>
This commit is contained in:
Watermelon914
2021-10-07 06:51:36 +01:00
committed by GitHub
parent 001315f214
commit d15b305527
52 changed files with 966 additions and 300 deletions
@@ -74,7 +74,7 @@
atom_or_filter = add_option_port("Target", component_options)
/obj/item/circuit_component/animation_step/populate_ports()
animation_variables = add_input_port("Variables", PORT_TYPE_ASSOC_LIST, order = 1.66)
animation_variables = add_input_port("Variables", PORT_TYPE_ASSOC_LIST(PORT_TYPE_STRING, PORT_TYPE_ANY), order = 1.66)
animation_time = add_input_port("Time", PORT_TYPE_NUMBER, order = 1.66)
animation_easing = add_input_port("Easing", PORT_TYPE_NUMBER, order = 1.66)
animation_flags = add_input_port("Flags", PORT_TYPE_NUMBER, order = 1.66)
@@ -12,7 +12,7 @@ GLOBAL_LIST_INIT(wiremod_filter_info, list(
"size" = PORT_TYPE_NUMBER,
),
"color" = list(
"color" = PORT_TYPE_LIST,
"color" = PORT_TYPE_LIST(PORT_TYPE_ANY),
"space" = PORT_TYPE_NUMBER,
),
"displace" = list(
@@ -39,7 +39,7 @@ GLOBAL_LIST_INIT(wiremod_filter_info, list(
"render_source" = PORT_TYPE_STRING,
"flags" = PORT_TYPE_NUMBER,
"color" = PORT_TYPE_STRING,
"transform" = PORT_TYPE_LIST,
"transform" = PORT_TYPE_LIST(PORT_TYPE_ANY),
"blend_mode" = PORT_TYPE_NUMBER,
),
"motion_blur" = list(
@@ -162,7 +162,7 @@ GLOBAL_LIST_INIT(wiremod_flag_info, list(
/obj/item/circuit_component/filter_helper/populate_ports()
current_filter_type = filter_type_port.value
output_params = add_output_port("Parameters", PORT_TYPE_ASSOC_LIST)
output_params = add_output_port("Parameters", PORT_TYPE_ASSOC_LIST(PORT_TYPE_STRING, PORT_TYPE_ANY))
handle_filter_type_changed()
/obj/item/circuit_component/filter_helper/pre_input_received(datum/port/input/port)
@@ -93,7 +93,7 @@
if(COMP_INPUT_NUMBER)
input_response.set_datatype(PORT_TYPE_NUMBER)
if(COMP_INPUT_LIST)
parameter = add_input_port("Options List", PORT_TYPE_LIST)
parameter = add_input_port("Options List", PORT_TYPE_LIST(PORT_TYPE_ANY))
input_response.set_datatype(PORT_TYPE_STRING)
#undef COMP_INPUT_STRING
@@ -42,7 +42,7 @@
/obj/item/circuit_component/proccall/populate_ports()
entity = add_input_port("Target", PORT_TYPE_DATUM)
proc_name = add_input_port("Proc Name", PORT_TYPE_STRING)
arguments = add_input_port("Arguments", PORT_TYPE_LIST)
arguments = add_input_port("Arguments", PORT_TYPE_LIST(PORT_TYPE_ANY))
output_value = add_output_port("Output Value", PORT_TYPE_ANY)
@@ -16,7 +16,7 @@
/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)
results = add_output_port("Result", PORT_TYPE_LIST(PORT_TYPE_STRING))
/obj/item/circuit_component/sdql_operation/input_received(datum/port/input/port)
if(GLOB.AdminProcCaller)
@@ -23,7 +23,7 @@
/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)
parameters = add_input_port("Parameters", PORT_TYPE_LIST(PORT_TYPE_ANY))
spawned_atom = add_output_port("Spawned Atom", PORT_TYPE_ATOM)