mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-17 05:03:28 +00:00
* Refactors how components are triggered and refactors how ports are ordered (#60934) Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com> * Refactors how components are triggered and refactors how ports are ordered Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
44 lines
1.1 KiB
Plaintext
44 lines
1.1 KiB
Plaintext
/**
|
|
* # Spawn Atom Component
|
|
*
|
|
* Spawns an atom.
|
|
*/
|
|
/obj/item/circuit_component/spawn_atom
|
|
display_name = "Spawn Atom"
|
|
desc = "Spawns an atom at a desired location"
|
|
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
|
|
|
|
/// The input path to convert into a typepath
|
|
var/datum/port/input/input_path
|
|
|
|
/// The turf to spawn them at
|
|
var/datum/port/input/spawn_at
|
|
|
|
/// Parameters to pass to the atom being spawned
|
|
var/datum/port/input/parameters
|
|
|
|
/// The result from the output
|
|
var/datum/port/output/spawned_atom
|
|
|
|
/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)
|
|
|
|
spawned_atom = add_output_port("Spawned Atom", PORT_TYPE_ATOM)
|
|
|
|
/obj/item/circuit_component/spawn_atom/input_received(datum/port/input/port)
|
|
|
|
var/typepath = input_path.value
|
|
|
|
if(!ispath(typepath, /atom))
|
|
return
|
|
|
|
var/list/params = parameters.value
|
|
if(!params)
|
|
params = list()
|
|
|
|
params.Insert(1, spawn_at.value)
|
|
|
|
spawned_atom.set_output(new typepath(arglist(params)))
|