mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 12:35:33 +01:00
90b67b0541
## About The Pull Request
This PR adds several circuit features, and changes several
assembly-related features to make them a bit more logical in how they
work. Included are the following changes/additions:
- Assemblies and wires have been refactored with vars that describe
their behavior:
- Assemblies have an `assembly_behavior` bitflag instead of a
`attachable` var. This var has 3 flags:
- `ASSEMBLY_INPUT`: The assembly is able to pulse the wire it is
attached to.
- `ASSEMBLY_TOGGLE_ARMED`: On activation, the assembly toggles whether
it can pulse the wire it is attached to.
- `ASSEMBLY_FUNCTIONAL_OUTPUT`: On activation, the assembly does
something other than just toggling whether it's armed.
- Wires have a `wires_behavior` bitflag with 3 flags:
- `WIRES_INPUT`: The object the wires are attached to does something
when the wires are pulsed.
- `WIRES_TOGGLE_ARMED`: The object the wires are attached to can
activate assemblies attached to those wires, and is fine if all that
activating that assembly does is toggle whether it's armed.
- `WIRES_FUNCTIONAL_OUTPUT`: The object the wires are attached to
expects that assemblies attached to its wires do something other than
toggling themselves when activated.
- Buttons can only accept assemblies with `ASSEMBLY_FUNCTIONAL_OUTPUT`.
- Pressure plates can now accept any assembly with
`ASSEMBLY_FUNCTIONAL_OUTPUT`, not just signalers. Assembly shells
attached to pressure plates will draw power from the powernet if the
pressure plate is under a tile.
- Adds a new circuit component - the wire bundle.
- This component gives the circuit a number of wires corresponding to
the size of the shell.
- Each wire has a corresponding port on the component that can pulse,
and receive pulses from, that wire.
- A circuit can only have one wire bundle component.
- Assembly shells cannot be attached to these wires, and no wires will
be created if the component is added to an assembly shell.
- Available with roundstart tech.
- Adds two new shells.
- The wallmounted shell is a large shell that can be hung on walls, and
uses power from the area it's placed in.
- Frame icon:

- Constructed icon:

- The undertile shell is a small shell that only works when fit under a
floor tile, but uses power from the area it's placed in.

- Both shells support usb cables.
- The above shells are available with the Advanced Shells techweb node.
## Why It's Good For The Game
The wire bundle component complements the functionality of the assembly
shell by allowing circuits to use assemblies directly in their logic.
The wallmounted and undertile shells provide ways of placing circuits
that don't necessarily take up space for machines. The undertile shell
is particularly useful for relaying usb component data over wirenets.
Pressure plates being able to accept assemblies other than signalers
expands their uses significantly.
## Changelog
🆑
refactor: Wires and assemblies have been refactored to have
directionality to them. This mostly makes it so that assemblies can only
be attached to wires it would make sense for them to be attached to.
qol: Pressure plates can now also accept igniters, condensers, flashes,
assembly shells, and door controllers.
add: Undertile circuit shells. They only work when placed under floor
tiles, but support USB cables and use APC power instead of cell power.
add: Wallmounted circuit shells. Large shells that support USB cables
and use APC power instead of cell power.
add: Wire bundle component. Adds a number of wires to the circuit
proportional to the capacity of the shell, allowing you to use
assemblies in circuit logic.
/🆑
728 lines
22 KiB
Plaintext
728 lines
22 KiB
Plaintext
/datum/design/integrated_circuit
|
|
name = "Integrated Circuit"
|
|
desc = "The foundation of all circuits. All Circuitry go onto this."
|
|
id = "integrated_circuit"
|
|
build_path = /obj/item/integrated_circuit
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_CATEGORY_CIRCUITRY_CORE
|
|
)
|
|
materials = list(/datum/material/glass =HALF_SHEET_MATERIAL_AMOUNT, /datum/material/iron =HALF_SHEET_MATERIAL_AMOUNT)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/circuit_multitool
|
|
name = "Circuit Multitool"
|
|
desc = "A circuit multitool to mark entities and load them into."
|
|
id = "circuit_multitool"
|
|
build_path = /obj/item/multitool/circuit
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_CATEGORY_CIRCUITRY_CORE
|
|
)
|
|
materials = list(/datum/material/glass =HALF_SHEET_MATERIAL_AMOUNT, /datum/material/iron =HALF_SHEET_MATERIAL_AMOUNT)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/usb_cable
|
|
name = "USB Cable"
|
|
desc = "A cable that allows certain shells to connect to nearby computers and machines."
|
|
id = "usb_cable"
|
|
build_path = /obj/item/usb_cable
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_CATEGORY_CIRCUITRY_CORE
|
|
)
|
|
// Yes, it would make sense to make them take plastic, but then less people would make them, and I think they're cool
|
|
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT*2.5)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
|
|
/datum/design/component
|
|
name = "Component ( NULL ENTRY )"
|
|
desc = "A component that goes into an integrated circuit."
|
|
build_type = COMPONENT_PRINTER
|
|
materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT)
|
|
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_COMPONENTS
|
|
)
|
|
|
|
/datum/design/component/New()
|
|
. = ..()
|
|
if(build_path)
|
|
var/obj/item/circuit_component/component_path = build_path
|
|
desc = initial(component_path.desc)
|
|
|
|
/datum/design/component/arithmetic
|
|
name = "Arithmetic Component"
|
|
id = "comp_arithmetic"
|
|
build_path = /obj/item/circuit_component/arithmetic
|
|
|
|
/datum/design/component/trigonometry
|
|
name = "Trigonometry Component"
|
|
id = "comp_trigonometry"
|
|
build_path = /obj/item/circuit_component/trigonometry
|
|
|
|
/datum/design/component/arctan2
|
|
name = "Arctangent 2 Component"
|
|
id = "comp_arctan2"
|
|
build_path = /obj/item/circuit_component/arctan2
|
|
|
|
/datum/design/component/clock
|
|
name = "Clock Component"
|
|
id = "comp_clock"
|
|
build_path = /obj/item/circuit_component/clock
|
|
|
|
/datum/design/component/comparison
|
|
name = "Comparison Component"
|
|
id = "comp_comparison"
|
|
build_path = /obj/item/circuit_component/compare/comparison
|
|
|
|
/datum/design/component/logic
|
|
name = "Logic Component"
|
|
id = "comp_logic"
|
|
build_path = /obj/item/circuit_component/compare/logic
|
|
|
|
/datum/design/component/toggle
|
|
name = "Toggle Component"
|
|
id = "comp_toggle"
|
|
build_path = /obj/item/circuit_component/compare/toggle
|
|
|
|
/datum/design/component/delay
|
|
name = "Delay Component"
|
|
id = "comp_delay"
|
|
build_path = /obj/item/circuit_component/delay
|
|
|
|
/datum/design/component/format
|
|
name = "Format List Component"
|
|
id = "comp_format"
|
|
build_path = /obj/item/circuit_component/format
|
|
|
|
/datum/design/component/format_assoc
|
|
name = "Format Associative List Component"
|
|
id = "comp_format_assoc"
|
|
build_path = /obj/item/circuit_component/format/assoc
|
|
|
|
/datum/design/component/index
|
|
name = "Index Component"
|
|
id = "comp_index"
|
|
build_path = /obj/item/circuit_component/index
|
|
|
|
/datum/design/component/index_assoc
|
|
name = "Index Associative List Component"
|
|
id = "comp_index_assoc"
|
|
build_path = /obj/item/circuit_component/index/assoc_string
|
|
|
|
/datum/design/component/length
|
|
name = "Length Component"
|
|
id = "comp_length"
|
|
build_path = /obj/item/circuit_component/length
|
|
|
|
/datum/design/component/light
|
|
name = "Light Component"
|
|
id = "comp_light"
|
|
build_path = /obj/item/circuit_component/light
|
|
|
|
/datum/design/component/not
|
|
name = "Not Component"
|
|
id = "comp_not"
|
|
build_path = /obj/item/circuit_component/not
|
|
|
|
/datum/design/component/random
|
|
name = "Random Component"
|
|
id = "comp_random"
|
|
build_path = /obj/item/circuit_component/random
|
|
|
|
/datum/design/component/binary_conversion
|
|
name = "Binary Conversion Component"
|
|
id = "comp_binary_convert"
|
|
build_path = /obj/item/circuit_component/binary_conversion
|
|
|
|
/datum/design/component/decimal_conversion
|
|
name = "Decimal Conversion Component"
|
|
id = "comp_decimal_convert"
|
|
build_path = /obj/item/circuit_component/decimal_conversion
|
|
|
|
/datum/design/component/species
|
|
name = "Get Species Component"
|
|
id = "comp_species"
|
|
build_path = /obj/item/circuit_component/species
|
|
|
|
/datum/design/component/speech
|
|
name = "Speech Component"
|
|
id = "comp_speech"
|
|
build_path = /obj/item/circuit_component/speech
|
|
|
|
/datum/design/component/laserpointer
|
|
name = "Laser Pointer Component"
|
|
id = "comp_laserpointer"
|
|
build_path = /obj/item/circuit_component/laserpointer
|
|
|
|
/datum/design/component/timepiece
|
|
name = "Timepiece Component"
|
|
id = "comp_timepiece"
|
|
build_path = /obj/item/circuit_component/timepiece
|
|
|
|
/datum/design/component/tostring
|
|
name = "To String Component"
|
|
id = "comp_tostring"
|
|
build_path = /obj/item/circuit_component/tostring
|
|
|
|
/datum/design/component/tonumber
|
|
name = "To Number"
|
|
id = "comp_tonumber"
|
|
build_path = /obj/item/circuit_component/tonumber
|
|
|
|
/datum/design/component/typecheck
|
|
name = "Typecheck Component"
|
|
id = "comp_typecheck"
|
|
build_path = /obj/item/circuit_component/compare/typecheck
|
|
|
|
/datum/design/component/concat
|
|
name = "Concatenation Component"
|
|
id = "comp_concat"
|
|
build_path = /obj/item/circuit_component/concat
|
|
|
|
/datum/design/component/textcase
|
|
name = "Textcase Component"
|
|
id = "comp_textcase"
|
|
build_path = /obj/item/circuit_component/textcase
|
|
|
|
/datum/design/component/hear
|
|
name = "Voice Activator Component"
|
|
id = "comp_hear"
|
|
build_path = /obj/item/circuit_component/hear
|
|
|
|
/datum/design/component/contains
|
|
name = "String Contains Component"
|
|
id = "comp_string_contains"
|
|
build_path = /obj/item/circuit_component/compare/contains
|
|
|
|
/datum/design/component/self
|
|
name = "Self Component"
|
|
id = "comp_self"
|
|
build_path = /obj/item/circuit_component/self
|
|
|
|
/datum/design/component/radio
|
|
name = "Radio Component"
|
|
id = "comp_radio"
|
|
build_path = /obj/item/circuit_component/radio
|
|
|
|
/datum/design/component/gps
|
|
name = "GPS Component"
|
|
id = "comp_gps"
|
|
build_path = /obj/item/circuit_component/gps
|
|
|
|
/datum/design/component/direction
|
|
name = "Direction Component"
|
|
id = "comp_direction"
|
|
build_path = /obj/item/circuit_component/direction
|
|
|
|
/datum/design/component/reagentscanner
|
|
name = "Reagents Scanner"
|
|
id = "comp_reagents"
|
|
build_path = /obj/item/circuit_component/reagentscanner
|
|
|
|
/datum/design/component/health
|
|
name = "Health Component"
|
|
id = "comp_health"
|
|
build_path = /obj/item/circuit_component/health
|
|
|
|
/datum/design/component/compare/health_state
|
|
name = "Compare Health State Component"
|
|
id = "comp_health_state"
|
|
build_path = /obj/item/circuit_component/compare/health_state
|
|
|
|
/datum/design/component/matscanner
|
|
name = "Material Scanner"
|
|
id = "comp_matscanner"
|
|
build_path = /obj/item/circuit_component/matscanner
|
|
|
|
/datum/design/component/split
|
|
name = "Split Component"
|
|
id = "comp_split"
|
|
build_path = /obj/item/circuit_component/split
|
|
|
|
/datum/design/component/pull
|
|
name = "Pull Component"
|
|
id = "comp_pull"
|
|
build_path = /obj/item/circuit_component/pull
|
|
|
|
/datum/design/component/soundemitter
|
|
name = "Sound Emitter Component"
|
|
id = "comp_soundemitter"
|
|
build_path = /obj/item/circuit_component/soundemitter
|
|
|
|
/datum/design/component/mmi
|
|
name = "MMI Component"
|
|
id = "comp_mmi"
|
|
build_path = /obj/item/circuit_component/mmi
|
|
|
|
/datum/design/component/router
|
|
name = "Router Component"
|
|
id = "comp_router"
|
|
build_path = /obj/item/circuit_component/router
|
|
|
|
/datum/design/component/multiplexer
|
|
name = "Multiplexer Component"
|
|
id = "comp_multiplexer"
|
|
build_path = /obj/item/circuit_component/router/multiplexer
|
|
|
|
/datum/design/component/get_column
|
|
name = "Get Column Component"
|
|
id = "comp_get_column"
|
|
build_path = /obj/item/circuit_component/get_column
|
|
|
|
/datum/design/component/index_table
|
|
name = "Index Table Component"
|
|
id = "comp_index_table"
|
|
build_path = /obj/item/circuit_component/index_table
|
|
|
|
/datum/design/component/concat_list
|
|
name = "Concatenate List Component"
|
|
id = "comp_concat_list"
|
|
build_path = /obj/item/circuit_component/concat_list
|
|
|
|
/datum/design/component/list_add
|
|
name = "List Add"
|
|
id = "comp_list_add"
|
|
build_path = /obj/item/circuit_component/variable/list/listadd
|
|
|
|
/datum/design/component/list_remove
|
|
name = "List Remove"
|
|
id = "comp_list_remove"
|
|
build_path = /obj/item/circuit_component/variable/list/listremove
|
|
|
|
/datum/design/component/assoc_list_set
|
|
name = "Associative List Set"
|
|
id = "comp_assoc_list_set"
|
|
build_path = /obj/item/circuit_component/variable/assoc_list/list_set
|
|
|
|
/datum/design/component/assoc_list_remove
|
|
name = "Associative List Remove"
|
|
id = "comp_assoc_list_remove"
|
|
build_path = /obj/item/circuit_component/variable/assoc_list/list_remove
|
|
|
|
|
|
/datum/design/component/list_clear
|
|
name = "List Clear"
|
|
id = "comp_list_clear"
|
|
build_path = /obj/item/circuit_component/variable/list/listclear
|
|
|
|
/datum/design/component/element_find
|
|
name = "Element Find"
|
|
id = "comp_element_find"
|
|
build_path = /obj/item/circuit_component/listin
|
|
|
|
/datum/design/component/select_query
|
|
name = "Select Query Component"
|
|
id = "comp_select_query"
|
|
build_path = /obj/item/circuit_component/select
|
|
|
|
/datum/design/component/pathfind
|
|
name = "Pathfinder"
|
|
id = "comp_pathfind"
|
|
build_path = /obj/item/circuit_component/pathfind
|
|
|
|
/datum/design/component/tempsensor
|
|
name = "Temperature Sensor Component"
|
|
id = "comp_tempsensor"
|
|
build_path = /obj/item/circuit_component/tempsensor
|
|
|
|
/datum/design/component/pressuresensor
|
|
name = "Pressure Sensor Component"
|
|
id = "comp_pressuresensor"
|
|
build_path = /obj/item/circuit_component/pressuresensor
|
|
|
|
/datum/design/component/module
|
|
name = "Module Component"
|
|
id = "comp_module"
|
|
build_path = /obj/item/circuit_component/module
|
|
|
|
/datum/design/component/ntnet_receive
|
|
name = "NTNet Receiver"
|
|
id = "comp_ntnet_receive"
|
|
build_path = /obj/item/circuit_component/ntnet_receive
|
|
|
|
/datum/design/component/ntnet_send
|
|
name = "NTNet Transmitter"
|
|
id = "comp_ntnet_send"
|
|
build_path = /obj/item/circuit_component/ntnet_send
|
|
|
|
/datum/design/component/nfc_send
|
|
name = "NFC Transmitter"
|
|
id = "comp_nfc_send"
|
|
build_path = /obj/item/circuit_component/nfc_send
|
|
|
|
/datum/design/component/nfc_receive
|
|
name = "NFC Receiver"
|
|
id = "comp_nfc_receive"
|
|
build_path = /obj/item/circuit_component/nfc_receive
|
|
|
|
/datum/design/component/list_literal/ntnet_send
|
|
name = "NTNet Transmitter List Literal"
|
|
id = "comp_ntnet_send_list_literal"
|
|
build_path = /obj/item/circuit_component/list_literal/ntnet_send
|
|
|
|
/datum/design/component/list_literal
|
|
name = "List Literal Component"
|
|
id = "comp_list_literal"
|
|
build_path = /obj/item/circuit_component/list_literal
|
|
|
|
/datum/design/component/list_assoc_literal
|
|
name = "Associative List Literal"
|
|
id = "comp_list_assoc_literal"
|
|
build_path = /obj/item/circuit_component/assoc_literal
|
|
|
|
/datum/design/component/typecast
|
|
name = "Typecast Component"
|
|
id = "comp_typecast"
|
|
build_path = /obj/item/circuit_component/typecast
|
|
|
|
/datum/design/component/pinpointer
|
|
name = "Proximity Pinpointer Component"
|
|
id = "comp_pinpointer"
|
|
build_path = /obj/item/circuit_component/pinpointer
|
|
|
|
/datum/design/component/equipment_action
|
|
name = "Equipment Action Component"
|
|
id = "comp_equip_action"
|
|
build_path = /obj/item/circuit_component/equipment_action
|
|
|
|
/datum/design/component/bci/object_overlay
|
|
name = "Object Overlay Component"
|
|
id = "comp_object_overlay"
|
|
build_path = /obj/item/circuit_component/object_overlay
|
|
|
|
/datum/design/component/bci/bar_overlay
|
|
name = "Bar Overlay Component"
|
|
id = "comp_bar_overlay"
|
|
build_path = /obj/item/circuit_component/object_overlay/bar
|
|
|
|
/datum/design/component/bci/vox
|
|
name = "VOX Announcement Component"
|
|
id = "comp_vox"
|
|
build_path = /obj/item/circuit_component/vox
|
|
|
|
/datum/design/component/bci/thought_listener
|
|
name = "Thought Listener Component"
|
|
id = "comp_thought_listener"
|
|
build_path = /obj/item/circuit_component/thought_listener
|
|
|
|
/datum/design/component/bci/target_intercept
|
|
name = "BCI Target Interceptor"
|
|
id = "comp_target_intercept"
|
|
build_path = /obj/item/circuit_component/target_intercept
|
|
|
|
/datum/design/component/bci/counter_overlay
|
|
name = "Counter Overlay Component"
|
|
id = "comp_counter_overlay"
|
|
build_path = /obj/item/circuit_component/counter_overlay
|
|
|
|
/datum/design/component/bci/reagent_injector
|
|
name = "Reagent Injector Component"
|
|
id = "comp_reagent_injector"
|
|
build_path = /obj/item/circuit_component/reagent_injector
|
|
|
|
/datum/design/component/bci/install_detector
|
|
name = "Install Detector Component"
|
|
id = "comp_install_detector"
|
|
build_path = /obj/item/circuit_component/install_detector
|
|
|
|
/datum/design/component/foreach
|
|
name = "For Each Component"
|
|
id = "comp_foreach"
|
|
build_path = /obj/item/circuit_component/foreach
|
|
|
|
/datum/design/component/filter_list
|
|
name = "Filter List Component"
|
|
id = "comp_filter_list"
|
|
build_path = /obj/item/circuit_component/filter_list
|
|
|
|
/datum/design/component/id_getter
|
|
name = "ID Getter Component"
|
|
id = "comp_id_getter"
|
|
build_path = /obj/item/circuit_component/id_getter
|
|
|
|
/datum/design/component/id_info_reader
|
|
name = "ID Info Reader Component"
|
|
id = "comp_id_info_reader"
|
|
build_path = /obj/item/circuit_component/id_info_reader
|
|
|
|
/datum/design/component/id_access_reader
|
|
name = "ID Access Reader Component"
|
|
id = "comp_id_access_reader"
|
|
build_path = /obj/item/circuit_component/id_access_reader
|
|
|
|
/datum/design/component/setter_trigger
|
|
name = "Set Variable Trigger"
|
|
id = "comp_set_variable_trigger"
|
|
build_path = /obj/item/circuit_component/variable/setter/trigger
|
|
|
|
/datum/design/component/view_sensor
|
|
name = "View Sensor Component"
|
|
id = "comp_view_sensor"
|
|
build_path = /obj/item/circuit_component/view_sensor
|
|
|
|
/datum/design/component/access_checker
|
|
name = "Access Checker Component"
|
|
id = "comp_access_checker"
|
|
build_path = /obj/item/circuit_component/compare/access
|
|
|
|
/datum/design/component/list_pick
|
|
name = "List Pick Component"
|
|
id = "comp_list_pick"
|
|
build_path = /obj/item/circuit_component/list_pick
|
|
|
|
/datum/design/component/list_pick_assoc
|
|
name = "Associative List Pick Component"
|
|
id = "comp_assoc_list_pick"
|
|
build_path = /obj/item/circuit_component/list_pick/assoc
|
|
|
|
/datum/design/component/wire_bundle
|
|
name = "Wire Bundle"
|
|
id = "comp_wire_bundle"
|
|
build_path = /obj/item/circuit_component/wire_bundle
|
|
|
|
/datum/design/component/wirenet_receive
|
|
name = "Wirenet Receiver Component"
|
|
id = "comp_wirenet_receive"
|
|
build_path = /obj/item/circuit_component/wirenet_receive
|
|
|
|
/datum/design/component/wirenet_send
|
|
name = "Wirenet Transmitter Component"
|
|
id = "comp_wirenet_send"
|
|
build_path = /obj/item/circuit_component/wirenet_send
|
|
|
|
/datum/design/component/wirenet_send_literal
|
|
name = "Wirenet List Literal Transmitter Component"
|
|
id = "comp_wirenet_send_literal"
|
|
build_path = /obj/item/circuit_component/list_literal/wirenet_send
|
|
|
|
/datum/design/component/bci/bci_camera
|
|
name = "BCI Camera"
|
|
id = "comp_camera_bci"
|
|
build_path = /obj/item/circuit_component/remotecam/bci
|
|
|
|
/datum/design/compact_remote_shell
|
|
name = "Compact Remote Shell"
|
|
desc = "A handheld shell with one big button."
|
|
id = "compact_remote_shell"
|
|
build_path = /obj/item/compact_remote
|
|
materials = list(/datum/material/glass =SHEET_MATERIAL_AMOUNT, /datum/material/iron =SHEET_MATERIAL_AMOUNT * 2.5)
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/controller_shell
|
|
name = "Controller Shell"
|
|
desc = "A handheld shell with several buttons."
|
|
id = "controller_shell"
|
|
build_path = /obj/item/controller
|
|
build_type = COMPONENT_PRINTER
|
|
materials = list(/datum/material/glass =SHEET_MATERIAL_AMOUNT, /datum/material/iron = SHEET_MATERIAL_AMOUNT*3.5)
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/scanner_shell
|
|
name = "Scanner Shell"
|
|
desc = "A handheld scanner shell that can scan entities."
|
|
id = "scanner_shell"
|
|
build_path = /obj/item/wiremod_scanner
|
|
build_type = COMPONENT_PRINTER
|
|
materials = list(/datum/material/glass =SHEET_MATERIAL_AMOUNT, /datum/material/iron = SHEET_MATERIAL_AMOUNT*3.5)
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/keyboard_shell
|
|
name = "Keyboard Shell"
|
|
desc = "A handheld shell that allows the user to input a string"
|
|
id = "keyboard_shell"
|
|
build_path = /obj/item/keyboard_shell
|
|
materials = list(/datum/material/glass =SHEET_MATERIAL_AMOUNT, /datum/material/iron = SHEET_MATERIAL_AMOUNT*5)
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/gun_shell
|
|
name = "Gun Shell"
|
|
desc = "A handheld shell that can fire projectiles to output entities."
|
|
id = "gun_shell"
|
|
build_path = /obj/item/gun/energy/wiremod_gun
|
|
build_type = COMPONENT_PRINTER
|
|
materials = list(/datum/material/glass =SHEET_MATERIAL_AMOUNT, /datum/material/iron = SHEET_MATERIAL_AMOUNT*5, /datum/material/plasma =SMALL_MATERIAL_AMOUNT)
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/bot_shell
|
|
name = "Bot Shell"
|
|
desc = "An immobile shell that can store more components. Has a USB port to be able to connect to computers and machines."
|
|
id = "bot_shell"
|
|
build_path = /obj/item/shell/bot
|
|
build_type = COMPONENT_PRINTER
|
|
materials = list(/datum/material/glass =SHEET_MATERIAL_AMOUNT, /datum/material/iron = SHEET_MATERIAL_AMOUNT*5)
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/money_bot_shell
|
|
name = "Money Bot Shell"
|
|
desc = "An immobile shell that is similar to a regular bot shell, but accepts monetary inputs and can also dispense money."
|
|
id = "money_bot_shell"
|
|
build_path = /obj/item/shell/money_bot
|
|
build_type = COMPONENT_PRINTER
|
|
materials = list(/datum/material/glass =SHEET_MATERIAL_AMOUNT, /datum/material/iron = SHEET_MATERIAL_AMOUNT*5, /datum/material/gold =SMALL_MATERIAL_AMOUNT*0.5)
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/drone_shell
|
|
name = "Drone Shell"
|
|
desc = "A shell with the ability to move itself around."
|
|
id = "drone_shell"
|
|
build_path = /obj/item/shell/drone
|
|
build_type = COMPONENT_PRINTER
|
|
materials = list(
|
|
/datum/material/glass =SHEET_MATERIAL_AMOUNT,
|
|
/datum/material/iron = SHEET_MATERIAL_AMOUNT*5.5,
|
|
/datum/material/gold =SMALL_MATERIAL_AMOUNT*5,
|
|
)
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/server_shell
|
|
name = "Server Shell"
|
|
desc = "A very large shell that cannot be moved around. Stores the most components."
|
|
id = "server_shell"
|
|
materials = list(
|
|
/datum/material/glass =SHEET_MATERIAL_AMOUNT * 2.5,
|
|
/datum/material/iron = SHEET_MATERIAL_AMOUNT*7.5,
|
|
/datum/material/gold =HALF_SHEET_MATERIAL_AMOUNT * 1.5,
|
|
)
|
|
build_path = /obj/item/shell/server
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/airlock_shell
|
|
name = "Airlock Shell"
|
|
desc = "A door shell that cannot be moved around when assembled."
|
|
id = "door_shell"
|
|
materials = list(
|
|
/datum/material/glass =SHEET_MATERIAL_AMOUNT * 2.5,
|
|
/datum/material/iron = SHEET_MATERIAL_AMOUNT*7.5,
|
|
)
|
|
build_path = /obj/item/shell/airlock
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/dispenser_shell
|
|
name = "Dispenser Shell"
|
|
desc = "A dispenser shell that can dispense items."
|
|
id = "dispenser_shell"
|
|
materials = list(
|
|
/datum/material/glass =SHEET_MATERIAL_AMOUNT * 2.5,
|
|
/datum/material/iron = SHEET_MATERIAL_AMOUNT*7.5,
|
|
)
|
|
build_path = /obj/item/shell/dispenser
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/bci_shell
|
|
name = "Brain-Computer Interface Shell"
|
|
desc = "An implant that can be placed in a user's head to control circuits using their brain."
|
|
id = "bci_shell"
|
|
materials = list(
|
|
/datum/material/glass =SHEET_MATERIAL_AMOUNT,
|
|
/datum/material/iron = SHEET_MATERIAL_AMOUNT*4,
|
|
)
|
|
build_path = /obj/item/shell/bci
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/scanner_gate_shell
|
|
name = "Scanner Gate Shell"
|
|
desc = "A scanner gate shell that performs mid-depth scans on people when they pass through it."
|
|
id = "scanner_gate_shell"
|
|
materials = list(
|
|
/datum/material/glass = SHEET_MATERIAL_AMOUNT*2,
|
|
/datum/material/iron = SHEET_MATERIAL_AMOUNT*6,
|
|
)
|
|
build_path = /obj/item/shell/scanner_gate
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/board/bci_implanter
|
|
name = "Brain-Computer Interface Manipulation Chamber"
|
|
desc = "A machine that, when given a brain-computer interface, will implant it into an occupant. Otherwise, will remove any brain-computer interfaces they already have."
|
|
id = "bci_implanter"
|
|
build_path = /obj/item/circuitboard/machine/bci_implanter
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_CATEGORY_CIRCUITRY_CORE
|
|
)
|
|
|
|
/datum/design/assembly_shell
|
|
name = "Assembly Shell"
|
|
desc = "An assembly shell that can be attached to wires and other assemblies."
|
|
id = "assembly_shell"
|
|
materials = list(/datum/material/glass =SHEET_MATERIAL_AMOUNT, /datum/material/iron =SHEET_MATERIAL_AMOUNT * 2.5)
|
|
build_path = /obj/item/assembly/wiremod
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/mod_module_shell
|
|
name = "MOD Module Shell"
|
|
desc = "A module shell that allows a circuit to be inserted into, and interface with, a MODsuit."
|
|
id = "module_shell"
|
|
materials = list(/datum/material/glass =SHEET_MATERIAL_AMOUNT)
|
|
build_path = /obj/item/mod/module/circuit
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
/datum/design/undertile_shell
|
|
name = "Under-tile Shell"
|
|
desc = "A small shell that can fit under the floor."
|
|
id = "undertile_shell"
|
|
materials = list(
|
|
/datum/material/glass=HALF_SHEET_MATERIAL_AMOUNT,
|
|
/datum/material/iron=SHEET_MATERIAL_AMOUNT*2.5,
|
|
)
|
|
build_path = /obj/item/undertile_circuit
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|
|
|
|
|
|
/datum/design/wallmount_shell
|
|
name = "Wall-mounted Shell"
|
|
desc = "A large shell that can be mounted on a wall."
|
|
id = "wallmount_shell"
|
|
materials = list(
|
|
/datum/material/glass=SHEET_MATERIAL_AMOUNT,
|
|
/datum/material/iron=SHEET_MATERIAL_AMOUNT*5,
|
|
)
|
|
build_path = /obj/item/wallframe/circuit
|
|
build_type = COMPONENT_PRINTER
|
|
category = list(
|
|
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_SHELLS
|
|
)
|