Integrated the component printer into the integrated circuit UI. You can now link integrated circuits to component printers (#62287)

Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
This commit is contained in:
Watermelon914
2021-10-28 11:42:57 -07:00
committed by GitHub
co-authored by Watermelon914
parent bfe0fcc601
commit 44a2af780d
86 changed files with 571 additions and 34 deletions
@@ -6,6 +6,7 @@
/obj/item/circuit_component/module
display_name = "Module"
desc = "A component that has other components within it, acting like a function. Use it in your hand to control the amount of input and output ports it has, as well as being able to access the integrated circuit contained inside."
category = "Abstract"
var/obj/item/integrated_circuit/module/internal_circuit
@@ -4,8 +4,8 @@
* Abstract component for handling variables
*/
/obj/item/circuit_component/variable
display_name = "Variable Getter"
desc = "A component that gets a variable globally on the circuit."
display_name = "Abstract Variable Component"
desc = "You shouldn't be seeing this."
/// Variable name
var/datum/port/input/option/variable_name
@@ -6,6 +6,7 @@
/obj/item/circuit_component/light
display_name = "Light"
desc = "A component that emits a light of a specific brightness and colour. Requires a shell."
category = "Action"
/// The colours of the light
var/datum/port/input/red
@@ -6,6 +6,7 @@
/obj/item/circuit_component/mmi
display_name = "Man-Machine Interface"
desc = "A component that allows MMI to enter shells to send output signals."
category = "Action"
circuit_flags = CIRCUIT_FLAG_REFUSE_MODULE
/// The message to send to the MMI in the shell.
@@ -6,6 +6,7 @@
/obj/item/circuit_component/pathfind
display_name = "Pathfinder"
desc = "When triggered, the next step to the target's location as an entity. This can be used with the direction component and the drone shell to make it move on its own. The Id Card input port is for considering ID access when pathing, it does not give the shell actual access."
category = "Action"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
var/datum/port/input/input_X
@@ -7,6 +7,7 @@
display_name = "Printer"
desc = "A component that prints a string input on a paper. Requires a shell and paper. \
Attack with paper to load them in the circuit. Use in hand to dump the bottom-most paper."
category = "Action"
circuit_flags = CIRCUIT_FLAG_REFUSE_MODULE
/// Prints stuff on the leftmost paper in the loaded_papers list.
@@ -6,6 +6,7 @@
/obj/item/circuit_component/pull
display_name = "Start Pulling"
desc = "A component that can force the shell to pull entities. Only works for drone shells."
category = "Action"
/// Frequency input
var/datum/port/input/target
@@ -9,6 +9,7 @@
/obj/item/circuit_component/radio
display_name = "Radio"
desc = "A component that can listen and send frequencies. If set to private, the component will only receive signals from other components attached to circuitboards with the same owner id."
category = "Action"
/// The publicity options. Controls whether it's public or private.
var/datum/port/input/option/public_options
@@ -6,6 +6,7 @@
/obj/item/circuit_component/soundemitter
display_name = "Sound Emitter"
desc = "A component that emits a sound when it receives an input. The frequency is a multiplier which determines the speed at which the sound is played"
category = "Action"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
/// Sound to play
@@ -6,6 +6,7 @@
/obj/item/circuit_component/speech
display_name = "Speech"
desc = "A component that sends a message. Requires a shell."
category = "Action"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
/// The message to send
@@ -4,6 +4,7 @@
/obj/item/circuit_component/begin_animation
display_name = "Begin Animation"
desc = "Begins an animation on the target. Create animation steps by chaining \"Animation Step\" components off of the \"Perform Animation\" port."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_INSTANT|CIRCUIT_FLAG_ADMIN
/// Whether we are animating an atom or a filter on the atom
@@ -95,6 +96,7 @@
/obj/item/circuit_component/animation_step
display_name = "Animation Step"
desc = "Perform a single animation step. The input of this component should be connected, directly or indirectly, to the \"Perform Animation\" port of a \"Begin Animation\" component."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
@@ -144,6 +144,7 @@ GLOBAL_LIST_INIT(wiremod_flag_info, list(
/obj/item/circuit_component/filter_helper
display_name = "Filter Parameter Helper"
desc = "Constructs a list of filter parameters from the inputs."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
var/datum/port/input/option/filter_type_port
@@ -187,6 +188,7 @@ GLOBAL_LIST_INIT(wiremod_flag_info, list(
/obj/item/circuit_component/filter_adder
display_name = "Add Filter"
desc = "Adds a filter to the target atom."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
var/datum/port/input/target_port
@@ -238,6 +240,7 @@ GLOBAL_LIST_INIT(wiremod_flag_info, list(
/obj/item/circuit_component/filter_remover
display_name = "Filter Remover"
desc = "Removes the specified filter from the target."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
var/datum/port/input/target_port
@@ -256,6 +259,7 @@ GLOBAL_LIST_INIT(wiremod_flag_info, list(
/obj/item/circuit_component/bitflag_helper
display_name = "Animation & Filter Bitflag Helper"
category = "Admin"
desc = "Allows you to construct bitflags for BYOND animation and filter parameters without having to manually search for the corresponding values."
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
@@ -6,6 +6,7 @@
/obj/item/circuit_component/get_variable
display_name = "Get Variable"
desc = "A component that gets a variable on an object."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
/// Whether to grab a global variable or a variable from this entity.
@@ -10,6 +10,7 @@
/obj/item/circuit_component/input_request
display_name = "Input Request"
desc = "Converts a string into a typepath. Useful for adding components."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
/// Options for input requests
@@ -10,6 +10,7 @@
/obj/item/circuit_component/proccall
display_name = "Proc Call"
desc = "A component that calls a proc on an object."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
var/datum/port/input/option/proccall_options
@@ -6,6 +6,7 @@
/obj/item/circuit_component/save_shell
display_name = "Save Shell"
desc = "A component that saves a shell."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_ADMIN
/// Returns the output from the proccall
@@ -6,6 +6,7 @@
/obj/item/circuit_component/sdql_operation
display_name = "SDQL Operation"
desc = "A component that performs an SDQL operation when invoked."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
/// SDQL Operation to invoke
@@ -6,6 +6,7 @@
/obj/item/circuit_component/set_variable
display_name = "Set Variable"
desc = "A component that sets a variable on an object."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
/// Entity to set variable of
@@ -9,6 +9,7 @@
/obj/item/circuit_component/signal_handler
display_name = "Signal Handler"
desc = "A component that listens for signals on an object."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_ADMIN|CIRCUIT_FLAG_INSTANT
/// Whether it is a global or object signal
@@ -6,6 +6,7 @@
/obj/item/circuit_component/spawn_atom
display_name = "Spawn Atom"
desc = "Spawns an atom at a desired location"
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
/// The input path to convert into a typepath
@@ -6,6 +6,7 @@
/obj/item/circuit_component/to_type
display_name = "String To Type"
desc = "Converts a string into a typepath. Useful for adding components."
category = "Admin"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL|CIRCUIT_FLAG_ADMIN
/// The input path to convert into a typepath
@@ -6,6 +6,7 @@
/obj/item/circuit_component/direction
display_name = "Get Direction"
desc = "A component that returns the direction of itself and an entity."
category = "Entity"
/// The input port
var/datum/port/input/input_port
@@ -6,6 +6,7 @@
/obj/item/circuit_component/gps
display_name = "Internal GPS"
desc = "A component that returns the xyz co-ordinates of itself."
category = "Entity"
/// The result from the output
var/datum/port/output/x_pos
@@ -6,6 +6,7 @@
/obj/item/circuit_component/health
display_name = "Get Health"
desc = "A component that returns the health of an organism."
category = "Entity"
/// The input port
var/datum/port/input/input_port
@@ -6,6 +6,7 @@
/obj/item/circuit_component/hear
display_name = "Voice Activator"
desc = "A component that listens for messages. Requires a shell."
category = "Entity"
/// The message heard
var/datum/port/output/message_port
@@ -6,6 +6,7 @@
/obj/item/circuit_component/pinpointer
display_name = "Proximity Pinpointer"
desc = "A component that returns the xyz co-ordinates of its entity input, as long as its in view."
category = "Entity"
var/datum/port/input/target
@@ -6,6 +6,7 @@
/obj/item/circuit_component/self
display_name = "Self"
desc = "A component that returns the current shell."
category = "Entity"
/// The shell this component is attached to.
var/datum/port/output/output
@@ -6,6 +6,7 @@
/obj/item/circuit_component/species
display_name = "Get Species"
desc = "A component that returns the species of its input."
category = "Entity"
/// The input port
var/datum/port/input/input_port
@@ -11,6 +11,7 @@
/obj/item/circuit_component/object_overlay/bar
display_name = "Bar Overlay"
desc = "Requires a BCI shell. A component that shows a bar overlay ontop of an object from a range of 0 to 100."
category = "BCI"
var/datum/port/input/option/bar_overlay_options
var/datum/port/input/bar_number
@@ -8,6 +8,7 @@
/obj/item/circuit_component/counter_overlay
display_name = "Counter Overlay"
desc = "A component that shows an three digit counter. Requires a BCI shell."
category = "BCI"
required_shells = list(/obj/item/organ/cyberimp/bci)
@@ -10,6 +10,7 @@
/obj/item/circuit_component/object_overlay
display_name = "Object Overlay"
desc = "Requires a BCI shell. A component that shows an overlay on top of an object."
category = "BCI"
required_shells = list(/obj/item/organ/cyberimp/bci)
@@ -8,6 +8,7 @@
/obj/item/circuit_component/target_intercept
display_name = "Target Intercept"
desc = "Requires a BCI shell. When activated, this component will allow user to target an object using their brain and will output the reference to said object."
category = "BCI"
required_shells = list(/obj/item/organ/cyberimp/bci)
@@ -6,6 +6,7 @@
/obj/item/circuit_component/list_literal/assoc_literal
display_name = "Associative List Literal"
desc = "A component that returns an associative list consisting of the inputs."
category = "List"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
/// The inputs used to create the list
@@ -6,6 +6,7 @@
/obj/item/circuit_component/concat_list
display_name = "Concatenate List"
desc = "A component that joins up a list with a separator into a single string."
category = "List"
/// The input port
var/datum/port/input/list_port
@@ -6,6 +6,7 @@
/obj/item/circuit_component/filter_list
display_name = "Filter"
desc = "A component that loops through each element in a list and filters them."
category = "List"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_INSTANT
/// The list type
@@ -6,6 +6,7 @@
/obj/item/circuit_component/foreach
display_name = "For Each"
desc = "A component that loops through each element in a list."
category = "List"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL
/// The list type
@@ -6,6 +6,7 @@
/obj/item/circuit_component/get_column
display_name = "Get Column"
desc = "Gets the column of a table and returns it as a regular list."
category = "List"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
/// The list to perform the filter on
@@ -6,6 +6,7 @@
/obj/item/circuit_component/index
display_name = "Index List"
desc = "A component that returns the value of a list at a given index."
category = "List"
/// The list type
var/datum/port/input/option/list_options
@@ -6,6 +6,7 @@
/obj/item/circuit_component/index_table
display_name = "Index Table"
desc = "Gets the row of a table using the index inputted. Will return no value if the index is invalid or a proper table is not returned."
category = "List"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
/// The list to perform the filter on
@@ -6,6 +6,7 @@
/obj/item/circuit_component/list_literal
display_name = "List Literal"
desc = "A component that creates a list from whatever input you give it."
category = "List"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
/// The list type
@@ -6,6 +6,7 @@
/obj/item/circuit_component/select
display_name = "Select Query"
desc = "A component used with USB cables that can perform select queries on a list based on the column name selected. The values are then compared with the comparison input."
category = "List"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
var/datum/port/input/option/comparison_options
@@ -6,6 +6,7 @@
/obj/item/circuit_component/split
display_name = "Split"
desc = "Splits a string by the separator, turning it into a list"
category = "List"
/// The input port
var/datum/port/input/input_port
@@ -14,6 +14,7 @@
/obj/item/circuit_component/arithmetic
display_name = "Arithmetic"
desc = "General arithmetic component with arithmetic capabilities."
category = "Math"
/// The amount of input ports to have
var/input_port_amount = 4
@@ -6,6 +6,7 @@
/obj/item/circuit_component/binary_decimal/binary_conversion
display_name = "Binary Conversion"
desc = "Splits a decimal number into an array of binary digits, or bits, represented as 1 or 0 and often used in boolean or binary operations like AND, OR and XOR."
category = "Math"
/obj/item/circuit_component/binary_decimal/binary_conversion/populate_ports()
. = ..()
@@ -6,6 +6,7 @@
/obj/item/circuit_component/compare/comparison
display_name = "Comparison"
desc = "A component that compares two objects."
category = "Math"
var/datum/port/input/option/comparison_option
@@ -6,6 +6,7 @@
/obj/item/circuit_component/binary_decimal/decimal_conversion
display_name = "Decimal Conversion"
desc = "Merges an array of binary digits, or bits, represented as 1 or 0 and often used in boolean or binary operations, into a decimal number."
category = "Math"
/obj/item/circuit_component/binary_decimal/decimal_conversion/populate_ports()
. = ..()
@@ -6,6 +6,7 @@
/obj/item/circuit_component/length
display_name = "Length"
desc = "A component that returns the length of its input."
category = "Math"
/// The input port
var/datum/port/input/input_port
@@ -10,6 +10,7 @@
/obj/item/circuit_component/compare/logic
display_name = "Logic"
desc = "A component with 'and' and 'or' capabilities."
category = "Math"
var/datum/port/input/option/logic_options
@@ -6,6 +6,7 @@
/obj/item/circuit_component/not
display_name = "Not"
desc = "A component that inverts its input."
category = "Math"
/// The input port
var/datum/port/input/input_port
@@ -6,6 +6,7 @@
/obj/item/circuit_component/random
display_name = "Random"
desc = "A component that returns random values."
category = "Math"
/// The minimum value that the random number can be
var/datum/port/input/minimum
@@ -15,6 +15,7 @@
/obj/item/circuit_component/trigonometry
display_name = "Trigonometry"
desc = "General trigonometry component with main and inverse trigonometry functions."
category = "Math"
var/datum/port/input/option/trigonometric_function
@@ -6,6 +6,7 @@
/obj/item/circuit_component/ntnet_receive
display_name = "NTNet Receiver"
desc = "Receives data packages through NTNet. If Encryption Key is set then only signals with the same Encryption Key will be received."
category = "NTNet"
circuit_flags = CIRCUIT_FLAG_OUTPUT_SIGNAL //trigger_output
@@ -7,6 +7,7 @@
/obj/item/circuit_component/ntnet_send
display_name = "NTNet Transmitter"
desc = "Sends a data package through NTNet. If Encryption Key is set then transmitted data will be only picked up by receivers with the same Encryption Key."
category = "NTNet"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL
@@ -6,6 +6,7 @@
/obj/item/circuit_component/pressuresensor
display_name = "Pressure Sensor"
desc = "Outputs the current pressure of the tile"
category = "Sensor"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
@@ -6,6 +6,7 @@
/obj/item/circuit_component/tempsensor
display_name = "Temperature Sensor"
desc = "Outputs the current temperature of the tile"
category = "Sensor"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
@@ -6,6 +6,7 @@
/obj/item/circuit_component/concat
display_name = "Concatenate"
desc = "A component that combines strings."
category = "String"
/// The amount of input ports to have
var/input_port_amount = 4
@@ -6,6 +6,7 @@
/obj/item/circuit_component/compare/contains
display_name = "String Contains"
desc = "Checks if a string contains a word/letter"
category = "String"
input_port_amount = 0
@@ -9,6 +9,7 @@
/obj/item/circuit_component/textcase
display_name = "Text Case"
desc = "A component that makes its input uppercase or lowercase."
category = "String"
var/datum/port/input/option/textcase_options
@@ -6,6 +6,7 @@
/obj/item/circuit_component/tonumber
display_name = "To Number"
desc = "A component that converts its input (a string) to a number. If there's text in the input, it'll only consider it if it starts with a number. It will take that number and ignore the rest."
category = "String"
/// The input port
var/datum/port/input/input_port
@@ -6,6 +6,7 @@
/obj/item/circuit_component/tostring
display_name = "To String"
desc = "A component that converts its input to text."
category = "String"
/// The input port
var/datum/port/input/input_port
@@ -6,6 +6,7 @@
/obj/item/circuit_component/clock
display_name = "Clock"
desc = "A component that repeatedly fires."
category = "Utility"
/// Whether the clock is on or not
var/datum/port/input/on
@@ -9,6 +9,7 @@
/obj/item/circuit_component/delay
display_name = "Delay"
desc = "A component that delays a signal by a specified duration. Timer gets reset when triggered again."
category = "Utility"
/// Amount to delay by
var/datum/port/input/delay_amount
@@ -6,6 +6,7 @@
/obj/item/circuit_component/router
display_name = "Router"
desc = "Copies the input chosen by \"Input Selector\" to the output chosen by \"Output Selector\"."
category = "Utility"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
var/datum/port/input/option/router_options
@@ -12,6 +12,7 @@
/obj/item/circuit_component/timepiece
display_name = "Timepiece"
desc = "A component that outputs the current station time. The text output port is used for time formats while the numerical output port is used for units of time."
category = "Utility"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
/// The time format of the text output
@@ -6,6 +6,7 @@
/obj/item/circuit_component/typecast
display_name = "Typecast"
desc = "A component that casts a value to a type if it matches or outputs null."
category = "Utility"
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
var/datum/port/input/option/typecast_options
@@ -9,6 +9,7 @@
/obj/item/circuit_component/compare/typecheck
display_name = "Typecheck"
desc = "A component that checks the type of its input."
category = "Utility"
input_port_amount = 1
var/datum/port/input/option/typecheck_options