From a66c2f44182cd9c26a6841c78420efe1929c60bf Mon Sep 17 00:00:00 2001 From: Core0verload Date: Sun, 8 May 2016 13:11:18 +0300 Subject: [PATCH] Machine/computer boards and frames refactor (#17300) * Map Changes * Machine/console boards and frames refactor * More board changes --- _maps/RandomRuins/SpaceRuins/deepstorage.dmm | 2 +- .../RandomRuins/SpaceRuins/mechtransport.dmm | 2 +- _maps/RandomRuins/SpaceRuins/onehalf.dmm | 4 +- .../SpaceRuins/turretedoutpost.dmm | 2 +- _maps/RandomZLevels/Academy.dmm | 6 +- _maps/RandomZLevels/centcomAway.dmm | 6 +- _maps/RandomZLevels/moonoutpost19.dmm | 2 +- _maps/RandomZLevels/research.dmm | 2 +- _maps/RandomZLevels/snowdin.dmm | 4 +- .../AsteroidStation/AsteroidStation.dmm | 80 +- _maps/map_files/BirdStation/BirdStation.dmm | 20 +- .../map_files/DreamStation/dreamstation04.dmm | 130 ++-- .../EfficiencyStation/EfficiencyStation.dmm | 94 +-- .../MetaStation/MetaStation.v41I.dmm | 104 +-- _maps/map_files/MiniStation/MiniStation.dmm | 6 +- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 84 +- _maps/map_files/generic/z3.dmm | 10 +- _maps/map_files/generic/z4.dmm | 34 +- _maps/map_files/generic/z6.dmm | 6 +- code/game/machinery/Sleeper.dm | 22 +- code/game/machinery/announcement_system.dm | 17 +- code/game/machinery/autolathe.dm | 19 +- code/game/machinery/cloning.dm | 22 +- code/game/machinery/computer/Operating.dm | 2 +- code/game/machinery/computer/aifixer.dm | 2 +- code/game/machinery/computer/arcade.dm | 6 +- code/game/machinery/computer/atmos_alert.dm | 2 +- code/game/machinery/computer/atmos_control.dm | 4 +- .../game/machinery/computer/buildandrepair.dm | 604 ++++++++------- code/game/machinery/computer/camera.dm | 4 +- code/game/machinery/computer/card.dm | 8 +- code/game/machinery/computer/cloning.dm | 2 +- .../game/machinery/computer/communications.dm | 6 +- code/game/machinery/computer/computer.dm | 9 +- code/game/machinery/computer/crew.dm | 2 +- code/game/machinery/computer/dna_console.dm | 2 +- code/game/machinery/computer/law.dm | 4 +- code/game/machinery/computer/medical.dm | 2 +- code/game/machinery/computer/message.dm | 2 +- code/game/machinery/computer/prisoner.dm | 3 +- code/game/machinery/computer/robot.dm | 2 +- code/game/machinery/computer/security.dm | 2 +- code/game/machinery/computer/station_alert.dm | 2 +- code/game/machinery/constructable_frame.dm | 729 +++--------------- code/game/machinery/dna_scanner.dm | 21 +- code/game/machinery/hologram.dm | 13 +- code/game/machinery/machinery.dm | 4 +- code/game/machinery/recharger.dm | 12 +- code/game/machinery/rechargestation.dm | 19 +- code/game/machinery/recycler.dm | 16 +- code/game/machinery/slotmachine.dm | 2 +- code/game/machinery/spaceheater.dm | 17 +- .../telecomms/computers/logbrowser.dm | 2 +- .../telecomms/computers/telemonitor.dm | 2 +- .../telecomms/machines/broadcaster.dm | 24 +- code/game/machinery/telecomms/machines/bus.dm | 18 +- code/game/machinery/telecomms/machines/hub.dm | 20 +- .../machinery/telecomms/machines/processor.dm | 29 +- .../machinery/telecomms/machines/receiver.dm | 21 +- .../machinery/telecomms/machines/relay.dm | 20 +- .../machinery/telecomms/machines/server.dm | 19 +- .../machinery/telecomms/telecomunications.dm | 1 - code/game/machinery/teleporter.dm | 6 +- code/game/machinery/vending.dm | 48 +- code/game/mecha/mech_bay.dm | 21 +- code/game/mecha/mech_fabricator.dm | 20 +- code/game/mecha/mecha_control_console.dm | 2 +- code/game/mecha/mecha_parts.dm | 1 - .../items/stacks/sheets/sheet_types.dm | 7 +- code/game/objects/items/stacks/stack.dm | 1 + .../objects/items/weapons/storage/boxes.dm | 8 +- code/game/objects/structures/ai_core.dm | 5 + .../components/unary_devices/cryo.dm | 19 +- .../components/unary_devices/thermomachine.dm | 53 +- code/modules/cargo/console.dm | 8 +- code/modules/cargo/exports/parts.dm | 2 +- code/modules/cargo/packs.dm | 2 +- .../food&drinks/kitchen machinery/gibber.dm | 15 +- .../kitchen machinery/microwave.dm | 19 +- .../kitchen machinery/monkeyrecycler.dm | 15 +- .../kitchen machinery/processor.dm | 17 +- .../kitchen machinery/smartfridge.dm | 31 +- code/modules/hydroponics/biogenerator.dm | 23 +- code/modules/hydroponics/gene_modder.dm | 21 +- code/modules/hydroponics/hydroponics.dm | 18 +- code/modules/hydroponics/seed_extractor.dm | 15 +- code/modules/library/lib_machines.dm | 2 +- code/modules/mining/equipment_locker.dm | 51 +- code/modules/mining/laborcamp/laborshuttle.dm | 4 +- code/modules/mining/mine_items.dm | 2 +- .../mob/living/simple_animal/parrot.dm | 2 +- code/modules/power/cell.dm | 1 + code/modules/power/monitor.dm | 2 +- code/modules/power/port_gen.dm | 37 +- code/modules/power/singularity/emitter.dm | 14 +- code/modules/power/smes.dm | 2 +- code/modules/power/solar.dm | 8 +- code/modules/power/tesla/coil.dm | 24 +- code/modules/power/turbine.dm | 41 +- .../mapGenerators/syndicate.dm | 2 +- .../chemistry/machinery/chem_dispenser.dm | 2 +- .../chemistry/machinery/chem_heater.dm | 15 +- .../chemistry/machinery/chem_master.dm | 81 +- .../reagents/chemistry/machinery/pandemic.dm | 2 +- code/modules/research/circuitprinter.dm | 18 +- .../research/designs/AI_module_designs.dm | 10 + .../research/designs/comp_board_designs.dm | 72 +- .../research/designs/machine_designs.dm | 96 +-- .../modules/research/designs/power_designs.dm | 6 +- .../research/designs/telecomms_designs.dm | 14 +- code/modules/research/destructive_analyzer.dm | 17 +- code/modules/research/experimentor.dm | 20 +- code/modules/research/protolathe.dm | 20 +- code/modules/research/rdconsole.dm | 2 +- code/modules/research/server.dm | 20 +- code/modules/shuttle/computer.dm | 4 +- code/modules/shuttle/ferry.dm | 4 +- code/modules/shuttle/white_ship.dm | 2 +- code/modules/telesci/telepad.dm | 2 +- code/modules/telesci/telesci_computer.dm | 2 +- icons/obj/stock_parts.dmi | Bin 13157 -> 13401 bytes 121 files changed, 1540 insertions(+), 1775 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 7bbf634d695..51daaeb0132 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -104,7 +104,7 @@ "bZ" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plasteel,/area/ruin/unpowered) "ca" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) "cb" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) -"cc" = (/obj/structure/computerframe,/turf/open/floor/plasteel,/area/ruin/unpowered) +"cc" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/unpowered) "cd" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen{dir = 1; name = "Bunker Entrance"; network = list("Bunker1"); pixel_x = 0; pixel_y = 2},/turf/open/floor/plasteel,/area/ruin/unpowered) "ce" = (/obj/structure/table/reinforced,/obj/machinery/button/door{id = "bunker1"; name = "Inner Doors"; pixel_y = 6},/obj/machinery/button/door{id = "bunker2"; name = "Outer Doors"; pixel_y = -4},/turf/open/floor/plasteel/floorgrime,/area/ruin/unpowered) "cf" = (/obj/machinery/door/poddoor{id = "bunker1"; name = "Bunker Door"; tag = "inner"},/turf/open/floor/plating,/area/ruin/unpowered) diff --git a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm index a89e9b0d62c..b0c1f95d53f 100644 --- a/_maps/RandomRuins/SpaceRuins/mechtransport.dmm +++ b/_maps/RandomRuins/SpaceRuins/mechtransport.dmm @@ -7,7 +7,7 @@ "g" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) "h" = (/obj/structure/table,/obj/machinery/button/door{id = "mechaship1"; name = "Mecha Cargo Ship Doors"},/turf/open/floor/plasteel/shuttle,/area/ruin/powered) "i" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) -"j" = (/obj/structure/computerframe,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) +"j" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) "k" = (/obj/effect/decal/cleanable/vomit/old,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) "l" = (/obj/effect/decal/remains/human,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) "m" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/shuttle,/area/ruin/powered) diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm index e4e78df2b49..d5af9dd9789 100644 --- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm @@ -105,8 +105,8 @@ "ca" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) "cb" = (/obj/structure/table/reinforced,/obj/item/weapon/paper,/obj/item/weapon/pen,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) "cc" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"cd" = (/obj/machinery/light{dir = 1},/obj/structure/computerframe,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) -"ce" = (/obj/structure/computerframe,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"cd" = (/obj/machinery/light{dir = 1},/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) +"ce" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) "cf" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Bridge APC"; pixel_y = 24},/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) "cg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/table/reinforced,/obj/item/stack/spacecash/c500{pixel_y = 8},/obj/item/stack/spacecash/c1000,/turf/open/floor/plasteel,/area/ruin/onehalf/bridge) "ch" = (/obj/structure/girder/reinforced,/turf/open/floor/plating/airless,/area/space) diff --git a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm index 8368eef3e58..2403575403f 100644 --- a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm +++ b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm @@ -3,7 +3,7 @@ "c" = (/obj/structure/grille,/turf/open/floor/plating,/area/ruin/unpowered) "d" = (/turf/closed/wall/r_wall,/area/ruin/unpowered) "e" = (/obj/structure/table/reinforced,/obj/item/weapon/stock_parts/cell/hyper,/turf/open/floor/plasteel,/area/ruin/unpowered) -"f" = (/obj/structure/computerframe,/turf/open/floor/plasteel,/area/ruin/unpowered) +"f" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/ruin/unpowered) "g" = (/turf/open/floor/plasteel,/area/ruin/unpowered) "h" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/unpowered) "i" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating,/area/ruin/unpowered) diff --git a/_maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm index 72d1d2d19ee..6ef98e0b2ae 100644 --- a/_maps/RandomZLevels/Academy.dmm +++ b/_maps/RandomZLevels/Academy.dmm @@ -2,7 +2,7 @@ "ab" = (/turf/closed/wall/r_wall,/area/awaymission/academy/headmaster) "ac" = (/mob/living/simple_animal/hostile/carp/ranged{faction = list("wizard")},/turf/open/space,/area/space) "ad" = (/obj/structure/filingcabinet/filingcabinet,/turf/open/floor/carpet,/area/awaymission/academy/headmaster) -"ae" = (/obj/structure/computerframe{anchored = 1},/turf/open/floor/carpet,/area/awaymission/academy/headmaster) +"ae" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/carpet,/area/awaymission/academy/headmaster) "af" = (/obj/structure/table/reinforced,/obj/item/weapon/pen/red,/turf/open/floor/carpet,/area/awaymission/academy/headmaster) "ag" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/blue,/turf/open/floor/carpet,/area/awaymission/academy/headmaster) "ah" = (/turf/open/floor/carpet,/area/awaymission/academy/headmaster) @@ -401,7 +401,7 @@ "hK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/item/weapon/caution,/turf/open/floor/plasteel{icon_state = "green"; dir = 4},/area/awaymission/academy/academyaft) "hL" = (/obj/structure/mecha_wreckage/durand,/turf/open/floor/plating,/area/awaymission/academy/classrooms) "hM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/open/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft) -"hN" = (/obj/machinery/constructable_frame/machine_frame,/turf/open/floor/plating,/area/awaymission/academy/academyaft) +"hN" = (/obj/structure/frame/machine,/turf/open/floor/plating,/area/awaymission/academy/academyaft) "hO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/awaymission/academy/academyaft) "hP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft) "hQ" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/open/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft) @@ -423,7 +423,7 @@ "ig" = (/obj/item/stack/cable_coil/random,/turf/open/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft) "ih" = (/obj/structure/rack,/obj/item/stack/sheet/mineral/plasma{amount = 50},/turf/open/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft) "ii" = (/turf/open/floor/grass,/area/awaymission/academy/academyaft) -"ij" = (/obj/structure/rack,/obj/item/weapon/circuitboard/telecomms/broadcaster,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/relay,/turf/open/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft) +"ij" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/telecomms/broadcaster,/obj/item/weapon/circuitboard/machine/telecomms/receiver,/obj/item/weapon/circuitboard/machine/telecomms/relay,/turf/open/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft) "ik" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plasteel,/area/awaymission/academy/academyaft) "il" = (/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/academy/academyaft) "im" = (/obj/structure/mirror{pixel_y = 28},/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/academy/academyaft) diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index 4366496499d..10bb875ef54 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -259,7 +259,7 @@ "eY" = (/turf/closed/wall,/area/awaymission/centcomAway/courtroom) "eZ" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/open/floor/plasteel/shuttle,/area/awaymission/centcomAway/hangar) "fa" = (/obj/structure/table,/turf/open/floor/plasteel/shuttle,/area/awaymission/centcomAway/hangar) -"fb" = (/obj/structure/computerframe,/turf/open/floor/plasteel/shuttle,/area/awaymission/centcomAway/hangar) +"fb" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/shuttle,/area/awaymission/centcomAway/hangar) "fc" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/open/floor/plasteel/shuttle,/area/awaymission/centcomAway/hangar) "fd" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/open/floor/plasteel/shuttle,/area/awaymission/centcomAway/hangar) "fe" = (/turf/open/floor/plasteel{icon_state = "green"; dir = 10},/area/awaymission/centcomAway/general) @@ -471,7 +471,7 @@ "jc" = (/turf/open/floor/plasteel{icon_state = "ironsand4"; dir = 8; heat_capacity = 1},/area/awaymission/centcomAway/general) "jd" = (/obj/structure/table/wood{dir = 10},/turf/open/floor/plasteel{icon_state = "grimy"},/area/awaymission/centcomAway/general) "je" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel{icon_state = "grimy"},/area/awaymission/centcomAway/general) -"jf" = (/obj/structure/computerframe,/turf/open/floor/plasteel{icon_state = "grimy"},/area/awaymission/centcomAway/general) +"jf" = (/obj/structure/frame/computer,/turf/open/floor/plasteel{icon_state = "grimy"},/area/awaymission/centcomAway/general) "jg" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/open/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general) "jh" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general) "ji" = (/obj/structure/closet/secure_closet/personal,/turf/open/floor/plasteel{icon_state = "vault"; dir = 1},/area/awaymission/centcomAway/hangar) @@ -636,7 +636,7 @@ "ml" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/open/floor/plasteel{icon_state = "vault"; dir = 8},/area/awaymission/centcomAway/cafe) "mm" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/open/floor/plasteel{icon_state = "redyellowfull"; dir = 5},/area/awaymission/centcomAway/thunderdome) "mn" = (/obj/structure/table,/turf/open/floor/plasteel{icon_state = "redyellowfull"; dir = 5},/area/awaymission/centcomAway/thunderdome) -"mo" = (/obj/structure/computerframe,/turf/open/floor/plasteel{icon_state = "redyellowfull"; dir = 5},/area/awaymission/centcomAway/thunderdome) +"mo" = (/obj/structure/frame/computer,/turf/open/floor/plasteel{icon_state = "redyellowfull"; dir = 5},/area/awaymission/centcomAway/thunderdome) "mp" = (/obj/structure/closet/secure_closet/bar,/turf/open/floor/plasteel{icon_state = "redyellowfull"; dir = 5},/area/awaymission/centcomAway/thunderdome) "mq" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/plasteel{icon_state = "redyellowfull"; dir = 5},/area/awaymission/centcomAway/thunderdome) "mr" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/open/floor/plasteel{icon_state = "redyellowfull"; dir = 5},/area/awaymission/centcomAway/thunderdome) diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index ec6efe1a4c1..94372ad1e39 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -415,7 +415,7 @@ "hY" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "hZ" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the research division and the labs within."; name = "research monitor"; network = list("MO19X","MO19R")},/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "ia" = (/obj/machinery/computer/aifixer,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel{icon_state = "cafeteria"; dir = 5},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) -"ib" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/circuitboard/teleporter,/turf/open/floor/plasteel{dir = 9; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) +"ib" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/circuitboard/computer/teleporter,/turf/open/floor/plasteel{dir = 9; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "ic" = (/obj/structure/rack,/obj/item/device/paicard{pixel_x = 4},/turf/open/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "id" = (/obj/structure/rack,/turf/open/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "warnwhite"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) "ie" = (/obj/machinery/door/airlock/glass_medical{glass = 0; id_tag = ""; name = "Research Division"; opacity = 1; req_access_txt = "201"; req_one_access_txt = "0"},/turf/open/floor/plasteel{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"}) diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 58e77da0d87..b58f159b2e6 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -19,7 +19,7 @@ "as" = (/mob/living/simple_animal/hostile/syndicate/ranged,/turf/open/floor/plasteel/shuttle/red/syndicate,/area/awaymission/research/interior/engineering) "at" = (/obj/machinery/suit_storage_unit/engine,/turf/open/floor/plating,/area/awaymission/research/interior/engineering) "au" = (/turf/open/floor/plating,/area/awaymission/research/interior/engineering) -"av" = (/obj/item/weapon/shard{icon_state = "small"},/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/smes,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high/empty,/turf/open/floor/plating,/area/awaymission/research/interior/engineering) +"av" = (/obj/item/weapon/shard{icon_state = "small"},/obj/structure/frame/machine,/obj/item/weapon/circuitboard/machine/smes,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high/empty,/turf/open/floor/plating,/area/awaymission/research/interior/engineering) "aw" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plasteel/whiteyellow/side,/area/awaymission/research/interior/engineering) "ax" = (/obj/structure/flora/kirbyplants{icon_state = "plant-20"; layer = 4.1; pixel_y = 3},/turf/open/floor/plasteel/whiteyellow/corner{tag = "icon-whiteyellowcorner (WEST)"; icon_state = "whiteyellowcorner"; dir = 8},/area/awaymission/research/interior/engineering) "ay" = (/obj/structure/chair{dir = 8},/mob/living/simple_animal/hostile/syndicate,/turf/open/floor/plasteel/shuttle/red/syndicate,/area/awaymission/research/interior/engineering) diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 209ebe93ddd..fd12bea52ab 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -329,7 +329,7 @@ "gq" = (/turf/open/floor/plasteel/stairs/right{baseturf = /turf/open/floor/plating/asteroid/snow; temperature = 140},/area/awaymission/snowdin/cave) "gr" = (/turf/open/floor/plating,/turf/open/floor/plating/snowed,/area/awaymission/snowdin/post) "gs" = (/obj/structure/girder,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/snow; icon = 'icons/turf/snow.dmi'; temperature = 140},/area/awaymission/snowdin/post) -"gt" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/smes,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/snow},/area/awaymission/snowdin/post) +"gt" = (/obj/structure/frame/machine,/obj/item/weapon/circuitboard/machine/smes,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/machinery/light/small{dir = 1},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/snow},/area/awaymission/snowdin/post) "gu" = (/obj/item/weapon/stock_parts/cell/high/empty,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/snow},/area/awaymission/snowdin/post) "gv" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/snow},/area/awaymission/snowdin/post) "gw" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/snow},/area/awaymission/snowdin/post) @@ -464,7 +464,7 @@ "iY" = (/obj/machinery/light/small,/turf/open/floor/plating/asteroid/snow,/area/awaymission/snowdin) "iZ" = (/obj/machinery/light/small,/turf/open/floor/plating/snowed,/area/awaymission/snowdin) "ja" = (/obj/item/weapon/shard,/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/snow; icon = 'icons/turf/snow.dmi'; temperature = 140},/area/awaymission/snowdin) -"jb" = (/obj/structure/computerframe,/turf/open/floor/plasteel/shuttle{baseturf = /turf/open/floor/plating/asteroid/snow; icon_state = "shuttlefloor4"; temperature = 180},/area/awaymission/snowdin) +"jb" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/shuttle{baseturf = /turf/open/floor/plating/asteroid/snow; icon_state = "shuttlefloor4"; temperature = 180},/area/awaymission/snowdin) "jc" = (/obj/machinery/door/poddoor/shutters{id = "garagesnow3"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/snow},/area/awaymission/snowdin/post) "jd" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/snow; icon = 'icons/turf/snow.dmi'; temperature = 140},/area/awaymission/snowdin/sekret) "je" = (/turf/open/floor/plating{baseturf = /turf/open/floor/plating/asteroid/snow; icon = 'icons/turf/snow.dmi'; temperature = 140},/area/awaymission/snowdin/sekret) diff --git a/_maps/map_files/AsteroidStation/AsteroidStation.dmm b/_maps/map_files/AsteroidStation/AsteroidStation.dmm index f30468aae07..7aa34319ef8 100644 --- a/_maps/map_files/AsteroidStation/AsteroidStation.dmm +++ b/_maps/map_files/AsteroidStation/AsteroidStation.dmm @@ -81,7 +81,7 @@ }, /area/shuttle/syndicate) "aan" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /turf/open/floor/plasteel/shuttle{ icon_state = "shuttlefloor4" }, @@ -4024,17 +4024,17 @@ /area/storage/tech) "ajc" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/pandemic{ +/obj/item/weapon/circuitboard/computer/pandemic{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/circuitboard/rdconsole, -/obj/item/weapon/circuitboard/rdserver{ +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/circuitboard/machine/rdserver{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/destructive_analyzer, -/obj/item/weapon/circuitboard/protolathe, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, +/obj/item/weapon/circuitboard/machine/protolathe, /turf/open/floor/plasteel{ dir = 5; icon_state = "yellow" @@ -4042,11 +4042,11 @@ /area/storage/tech) "ajd" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/robotics{ +/obj/item/weapon/circuitboard/computer/robotics{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/mecha_control{ +/obj/item/weapon/circuitboard/computer/mecha_control{ pixel_x = 1; pixel_y = -1 }, @@ -4064,11 +4064,11 @@ /area/storage/tech) "ajf" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/borgupload{ +/obj/item/weapon/circuitboard/computer/borgupload{ pixel_x = -1; pixel_y = 1 }, -/obj/item/weapon/circuitboard/aiupload{ +/obj/item/weapon/circuitboard/computer/aiupload{ pixel_x = 2; pixel_y = -2 }, @@ -4076,14 +4076,14 @@ /area/storage/tech) "ajg" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/message_monitor{ +/obj/item/weapon/circuitboard/computer/message_monitor{ pixel_y = -5 }, -/obj/item/weapon/circuitboard/crew{ +/obj/item/weapon/circuitboard/computer/crew{ pixel_x = -1; pixel_y = 1 }, -/obj/item/weapon/circuitboard/arcade/battle, +/obj/item/weapon/circuitboard/computer/arcade/battle, /turf/open/floor/plasteel{ dir = 9; icon_state = "yellow" @@ -4483,14 +4483,14 @@ /area/storage/tech) "ajW" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/cloning, -/obj/item/weapon/circuitboard/med_data{ +/obj/item/weapon/circuitboard/computer/cloning, +/obj/item/weapon/circuitboard/computer/med_data{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/clonescanner, -/obj/item/weapon/circuitboard/clonepod, -/obj/item/weapon/circuitboard/scan_consolenew, +/obj/item/weapon/circuitboard/machine/clonescanner, +/obj/item/weapon/circuitboard/machine/clonepod, +/obj/item/weapon/circuitboard/computer/scan_consolenew, /turf/open/floor/plasteel{ dir = 4; icon_state = "yellow" @@ -4508,12 +4508,12 @@ /area/storage/tech) "ajY" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/mining, -/obj/item/weapon/circuitboard/autolathe{ +/obj/item/weapon/circuitboard/computer/mining, +/obj/item/weapon/circuitboard/machine/autolathe{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/communications{ +/obj/item/weapon/circuitboard/computer/communications{ pixel_x = 5; pixel_y = -5 }, @@ -4895,15 +4895,15 @@ /area/storage/tech) "akI" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/secure_data{ +/obj/item/weapon/circuitboard/computer/secure_data{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/security{ +/obj/item/weapon/circuitboard/computer/security{ pixel_x = 1; pixel_y = -1 }, -/obj/item/weapon/circuitboard/card{ +/obj/item/weapon/circuitboard/computer/card{ pixel_x = 2; pixel_y = -2 }, @@ -4969,15 +4969,15 @@ /area/storage/tech) "akO" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/powermonitor{ +/obj/item/weapon/circuitboard/computer/powermonitor{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/stationalert{ +/obj/item/weapon/circuitboard/computer/stationalert{ pixel_x = 1; pixel_y = -1 }, -/obj/item/weapon/circuitboard/atmos_alert{ +/obj/item/weapon/circuitboard/computer/atmos_alert{ pixel_x = 3; pixel_y = -3 }, @@ -10985,14 +10985,14 @@ /area/tcommsat/computer) "axw" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/telecomms/processor, -/obj/item/weapon/circuitboard/telecomms/processor, -/obj/item/weapon/circuitboard/telecomms/receiver, -/obj/item/weapon/circuitboard/telecomms/server, -/obj/item/weapon/circuitboard/telecomms/server, -/obj/item/weapon/circuitboard/telecomms/bus, -/obj/item/weapon/circuitboard/telecomms/bus, -/obj/item/weapon/circuitboard/telecomms/broadcaster, +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, /obj/machinery/atmospherics/components/unary/vent_scrubber{ on = 1 }, @@ -13581,13 +13581,13 @@ name = "Construction Site" }) "aBX" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /turf/open/floor/plating, /area/construction/Storage{ name = "Construction Site" }) "aBY" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /turf/open/floor/plating, /area/construction/Storage{ name = "Construction Site" @@ -25626,7 +25626,7 @@ /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, -/obj/item/weapon/circuitboard/solar_control, +/obj/item/weapon/circuitboard/computer/solar_control, /obj/item/weapon/electronics/tracker, /turf/open/floor/plasteel{ icon_state = "yellow" @@ -45842,7 +45842,7 @@ /turf/open/floor/plasteel/airless, /area/mine/abandoned) "bOd" = ( -/obj/structure/computerframe{ +/obj/structure/frame/computer{ anchored = 1 }, /obj/effect/decal/cleanable/cobweb2, @@ -47113,7 +47113,7 @@ pixel_x = 31 }, /obj/structure/rack, -/obj/item/weapon/circuitboard/teleporter, +/obj/item/weapon/circuitboard/computer/teleporter, /obj/item/weapon/circuitboard/aicore{ pixel_x = -2; pixel_y = 4 diff --git a/_maps/map_files/BirdStation/BirdStation.dmm b/_maps/map_files/BirdStation/BirdStation.dmm index 5ecccfef356..2ce75a3cb31 100644 --- a/_maps/map_files/BirdStation/BirdStation.dmm +++ b/_maps/map_files/BirdStation/BirdStation.dmm @@ -9,7 +9,7 @@ "aai" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) "aaj" = (/obj/machinery/computer/shuttle/syndicate,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) "aak" = (/obj/structure/table,/obj/machinery/button/door{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) -"aal" = (/obj/structure/computerframe,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) +"aal" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) "aam" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) "aan" = (/obj/structure/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) "aao" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) @@ -75,7 +75,7 @@ "abw" = (/obj/structure/table/optable,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) "abx" = (/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) "aby" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/shuttle/syndicate) -"abz" = (/obj/structure/computerframe,/obj/item/weapon/paper{info = "

Teleporter Instruction


  1. Install circuit board, glass and wiring to complete Teleporter Control Console
  2. Use a screwdriver, wirecutter and screwdriver again on the Teleporter Station to connect it
  3. Set destination with Teleporter Control Computer
  4. Activate Teleporter Hub with Teleporter Station
"; name = "Teleporter Instructions"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) +"abz" = (/obj/structure/frame/computer,/obj/item/weapon/paper{info = "

Teleporter Instruction


  1. Install circuit board, glass and wiring to complete Teleporter Control Console
  2. Use a screwdriver, wirecutter and screwdriver again on the Teleporter Station to connect it
  3. Set destination with Teleporter Control Computer
  4. Activate Teleporter Hub with Teleporter Station
"; name = "Teleporter Instructions"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) "abA" = (/obj/machinery/teleport/station,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) "abB" = (/obj/machinery/teleport/hub/syndicate,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate) "abC" = (/turf/open/floor/plasteel/black,/area/engine/engineering) @@ -694,7 +694,7 @@ "anr" = (/obj/machinery/computer/arcade,/turf/open/floor/plating,/area/maintenance/fsmaint) "ans" = (/obj/structure/chair/stool,/obj/machinery/light/small{dir = 1},/turf/open/floor/wood,/area/maintenance/fsmaint) "ant" = (/obj/structure/flora/kirbyplants{anchored = 1; icon_state = "plant-05"; layer = 4.1; name = "incredibly heavy plant"},/turf/open/floor/wood,/area/maintenance/fsmaint) -"anu" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plating,/area/maintenance/fsmaint) +"anu" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/computer/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plating,/area/maintenance/fsmaint) "anv" = (/obj/structure/grille,/turf/open/floor/plating,/area/maintenance/fsmaint) "anw" = (/obj/structure/cable/cyan{icon_state = "1-2"},/turf/open/floor/plasteel,/area/maintenance/fsmaint) "anx" = (/obj/structure/cable/cyan{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plasteel,/area/engine/engineering) @@ -1555,7 +1555,7 @@ "aDU" = (/obj/structure/cable/cyan{icon_state = "4-8"},/turf/open/floor/plasteel,/area/maintenance/asmaint2) "aDV" = (/obj/structure/cable/cyan{icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/turf/open/floor/plasteel/warning/corner,/area/maintenance/asmaint2) "aDW" = (/obj/item/weapon/ed209_assembly,/obj/structure/cable/cyan{icon_state = "0-2"},/turf/open/floor/plating,/area/maintenance/asmaint2) -"aDX" = (/obj/structure/table,/obj/item/weapon/circuitboard/circuit_imprinter,/turf/open/floor/plating,/area/maintenance/asmaint2) +"aDX" = (/obj/structure/table,/obj/item/weapon/circuitboard/machine/circuit_imprinter,/turf/open/floor/plating,/area/maintenance/asmaint2) "aDY" = (/turf/closed/wall/shuttle{icon_state = "swall8"; dir = 2},/area/shuttle/escape) "aDZ" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) "aEa" = (/turf/closed/wall/shuttle{icon_state = "swall4"; dir = 2},/area/shuttle/escape) @@ -2460,7 +2460,7 @@ "aVr" = (/obj/structure/closet/wardrobe/white/medical,/obj/item/weapon/storage/box/bodybags,/turf/open/floor/plasteel/white,/area/security/warden) "aVs" = (/obj/structure/closet{name = "chem implant closet"},/obj/item/weapon/reagent_containers/glass/bottle/cyanide,/obj/item/weapon/reagent_containers/glass/bottle/initropidril,/obj/item/weapon/reagent_containers/glass/bottle/coniine,/obj/item/weapon/reagent_containers/glass/bottle/sodium_thiopental,/obj/item/weapon/storage/box/chemimp,/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/gun/syringe,/obj/item/weapon/storage/box/syringes,/turf/open/floor/plasteel/white,/area/security/warden) "aVt" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/obj/item/clothing/mask/surgical,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/machinery/camera/autoname{icon_state = "camera"; dir = 6},/obj/item/clothing/gloves/color/latex/nitrile,/turf/open/floor/plasteel/white,/area/security/warden) -"aVu" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plating,/area/toxins/xenobiology) +"aVu" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/computer/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plating,/area/toxins/xenobiology) "aVv" = (/obj/machinery/button/flasher{id = "permaflash"; name = "perma flasher button"; pixel_x = 0; pixel_y = 28},/turf/open/floor/plasteel,/area/security/brig) "aVw" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/shutters/preopen{id = "perma shutter"; name = "perma brig window shutter"},/turf/open/floor/plating,/area/security/brig) "aVx" = (/obj/structure/cable/cyan{icon_state = "1-2"},/turf/open/floor/plasteel/warnwhite{icon_state = "warnwhite"; dir = 4},/area/medical/medbay) @@ -2501,7 +2501,7 @@ "aWg" = (/obj/structure/cable/cyan{icon_state = "1-2"},/turf/open/floor/plasteel,/area/maintenance/asmaint2) "aWh" = (/obj/structure/table,/obj/machinery/recharger,/turf/open/floor/plasteel{icon_state = "showroomfloor"},/area/maintenance/asmaint2) "aWi" = (/obj/structure/table,/obj/item/device/flashlight/seclite,/obj/item/clothing/suit/armor/vest,/obj/machinery/light{dir = 1},/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/restraints/legcuffs/beartrap,/turf/open/floor/plasteel{icon_state = "showroomfloor"},/area/maintenance/asmaint2) -"aWj" = (/obj/item/weapon/circuitboard/security,/turf/open/floor/plating,/area/maintenance/asmaint2) +"aWj" = (/obj/item/weapon/circuitboard/computer/security,/turf/open/floor/plating,/area/maintenance/asmaint2) "aWk" = (/obj/structure/window/reinforced,/obj/structure/flora/kirbyplants{icon_state = "plant-17"; layer = 4.1},/turf/open/floor/plasteel/whitebot,/area/maintenance/fore{name = "Security Maintenance"}) "aWl" = (/obj/machinery/vending/assist,/turf/open/floor/plasteel/warning{icon_state = "warning"; dir = 10},/area/maintenance/fore{name = "Security Maintenance"}) "aWm" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow,/obj/item/clothing/gloves/color/fyellow,/obj/item/clothing/gloves/color/fyellow,/turf/open/floor/plasteel/warning,/area/maintenance/fore{name = "Security Maintenance"}) @@ -2592,8 +2592,8 @@ "aXT" = (/obj/structure/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) "aXU" = (/obj/effect/landmark{name = "JoinLate"},/turf/open/floor/plasteel/shuttle,/area/shuttle/arrival) "aXV" = (/obj/item/device/flashlight/seclite{name = "dusty seclite"; on = 1},/turf/open/floor/plating/asteroid{name = "dirt"},/area/maintenance/asmaint2) -"aXW" = (/obj/item/weapon/circuitboard/card,/turf/open/floor/plasteel{icon_state = "showroomfloor"},/area/maintenance/asmaint2) -"aXX" = (/obj/structure/computerframe,/turf/open/floor/plasteel{icon_state = "showroomfloor"},/area/maintenance/asmaint2) +"aXW" = (/obj/item/weapon/circuitboard/computer/card,/turf/open/floor/plasteel{icon_state = "showroomfloor"},/area/maintenance/asmaint2) +"aXX" = (/obj/structure/frame/computer,/turf/open/floor/plasteel{icon_state = "showroomfloor"},/area/maintenance/asmaint2) "aXY" = (/obj/structure/flora/kirbyplants{icon_state = "plant-16"; layer = 4.1},/turf/open/floor/plasteel/white,/area/maintenance/fore{name = "Security Maintenance"}) "aXZ" = (/turf/open/floor/plasteel/bot,/area/maintenance/fore{name = "Security Maintenance"}) "aYa" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{icon_state = "intact"; dir = 10},/turf/open/floor/plasteel,/area/maintenance/fore{name = "Security Maintenance"}) @@ -2784,7 +2784,7 @@ "bbD" = (/obj/effect/spawner/lootdrop{loot = list(/obj/item/organ/gland/bloody = 7, /obj/item/organ/gland/bodysnatch = 4, /obj/item/organ/gland/egg = 7, /obj/item/organ/gland/emp = 3, /obj/item/organ/gland/mindshock = 5, /obj/item/organ/gland/plasma = 7, /obj/item/organ/gland/pop = 5, /obj/item/organ/gland/slime = 4, /obj/item/organ/gland/spiderman = 5, /obj/item/organ/gland/ventcrawling = 1, /obj/item/organ/body_egg/alien_embryo = 1, /obj/item/organ/hivelord_core = 2); lootcount = 3; name = "organ spawner"},/obj/structure/closet/secure_closet{name = "xenobiology research materials locker"; req_access_txt = "55"},/turf/open/floor/plasteel/white,/area/toxins/xenobiology) "bbE" = (/mob/living/simple_animal/mouse/brown,/turf/open/floor/wood,/area/maintenance/fore{name = "Security Maintenance"}) "bbF" = (/obj/effect/spawner/lootdrop/crate_spawner,/turf/open/floor/plating,/area/maintenance/fore{name = "Security Maintenance"}) -"bbG" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plating,/area/maintenance/fore{name = "Security Maintenance"}) +"bbG" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/computer/solar_control,/obj/item/weapon/electronics/tracker,/obj/item/weapon/paper/solar,/turf/open/floor/plating,/area/maintenance/fore{name = "Security Maintenance"}) "bbH" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/obj/structure/cable/cyan{icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/fore{name = "Security Maintenance"}) "bbI" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{icon_state = "intact"; dir = 5},/turf/open/floor/plating,/area/maintenance/fore{name = "Security Maintenance"}) "bbJ" = (/obj/structure/cable/cyan{icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{icon_state = "intact"; dir = 4},/turf/open/floor/plasteel,/area/maintenance/fore{name = "Security Maintenance"}) @@ -2854,7 +2854,7 @@ "bcV" = (/obj/item/weapon/storage/box/lights/mixed,/turf/open/floor/plating,/area/maintenance/asmaint) "bcW" = (/obj/structure/closet/firecloset,/turf/open/floor/plating,/area/maintenance/asmaint) "bcX" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating,/area/maintenance/asmaint) -"bcY" = (/obj/structure/table,/obj/item/weapon/circuitboard/autolathe,/turf/open/floor/plating,/area/maintenance/asmaint2) +"bcY" = (/obj/structure/table,/obj/item/weapon/circuitboard/machine/autolathe,/turf/open/floor/plating,/area/maintenance/asmaint2) "bcZ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/open/floor/plating,/area/maintenance/asmaint2) "bda" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f9"},/area/shuttle/transport) "bdb" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) diff --git a/_maps/map_files/DreamStation/dreamstation04.dmm b/_maps/map_files/DreamStation/dreamstation04.dmm index 87cdb1c609c..d9b8f0cce5b 100644 --- a/_maps/map_files/DreamStation/dreamstation04.dmm +++ b/_maps/map_files/DreamStation/dreamstation04.dmm @@ -1434,7 +1434,7 @@ }, /area/shuttle/syndicate) "acC" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /turf/open/floor/plasteel/shuttle{ icon_state = "shuttlefloor4" }, @@ -2533,7 +2533,7 @@ }, /area/shuttle/abandoned) "aeG" = ( -/obj/structure/computerframe{ +/obj/structure/frame/computer{ anchored = 1 }, /turf/open/floor/plasteel/shuttle{ @@ -2838,7 +2838,7 @@ }, /area/shuttle/abandoned) "afo" = ( -/obj/item/weapon/circuitboard/operating, +/obj/item/weapon/circuitboard/computer/operating, /turf/open/floor/plasteel/shuttle{ icon_state = "shuttlefloor3" }, @@ -5745,8 +5745,8 @@ /turf/open/floor/plating, /area/maintenance/fpmaint2) "alK" = ( -/obj/structure/computerframe, -/obj/item/weapon/circuitboard/operating, +/obj/structure/frame/computer, +/obj/item/weapon/circuitboard/computer/operating, /turf/open/floor/plating, /area/maintenance/fpmaint2) "alL" = ( @@ -5889,7 +5889,7 @@ /turf/open/floor/plating, /area/maintenance/fpmaint2) "amj" = ( -/obj/item/weapon/circuitboard/sleeper, +/obj/item/weapon/circuitboard/machine/sleeper, /obj/structure/mirror{ pixel_x = 28 }, @@ -6259,7 +6259,7 @@ /turf/open/floor/plating, /area/maintenance/fpmaint2) "amV" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /turf/open/floor/plating, /area/maintenance/fpmaint2) "amW" = ( @@ -6807,32 +6807,32 @@ "aop" = ( /obj/structure/table, /obj/item/weapon/stock_parts/manipulator, -/obj/item/weapon/circuitboard/microwave, +/obj/item/weapon/circuitboard/machine/microwave, /turf/open/floor/plating{ broken = 1; icon_state = "platingdmg3" }, /area/maintenance/asmaint) "aoq" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /turf/open/floor/plating, /area/maintenance/asmaint) "aor" = ( -/obj/structure/computerframe{ +/obj/structure/frame/computer{ anchored = 1 }, -/obj/item/weapon/circuitboard/arcade/orion_trail, +/obj/item/weapon/circuitboard/computer/arcade/orion_trail, /turf/open/floor/plating, /area/maintenance/asmaint) "aos" = ( -/obj/structure/computerframe{ +/obj/structure/frame/computer{ anchored = 1 }, /turf/open/floor/plating, /area/maintenance/asmaint) "aot" = ( /obj/structure/table, -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /turf/open/floor/plating, /area/maintenance/asmaint) "aou" = ( @@ -10768,7 +10768,7 @@ /obj/structure/rack, /obj/item/weapon/light/tube, /obj/effect/spawner/lootdrop/maintenance, -/obj/item/weapon/circuitboard/protolathe, +/obj/item/weapon/circuitboard/machine/protolathe, /turf/open/floor/plating, /area/maintenance/asmaint) "awc" = ( @@ -17763,7 +17763,7 @@ /area/maintenance/atmos_control) "aJM" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/circuit_imprinter, +/obj/item/weapon/circuitboard/machine/circuit_imprinter, /obj/item/trash/chips, /turf/open/floor/plating, /area/maintenance/atmos_control) @@ -23619,11 +23619,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/robotics{ +/obj/item/weapon/circuitboard/computer/robotics{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/mecha_control{ +/obj/item/weapon/circuitboard/computer/mecha_control{ pixel_x = 1; pixel_y = -1 }, @@ -23651,11 +23651,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/borgupload{ +/obj/item/weapon/circuitboard/computer/borgupload{ pixel_x = -1; pixel_y = 1 }, -/obj/item/weapon/circuitboard/aiupload{ +/obj/item/weapon/circuitboard/computer/aiupload{ pixel_x = 2; pixel_y = -2 }, @@ -23675,15 +23675,15 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/crew{ +/obj/item/weapon/circuitboard/computer/crew{ pixel_x = -1; pixel_y = 1 }, -/obj/item/weapon/circuitboard/card{ +/obj/item/weapon/circuitboard/computer/card{ pixel_x = 2; pixel_y = -2 }, -/obj/item/weapon/circuitboard/communications{ +/obj/item/weapon/circuitboard/computer/communications{ pixel_x = 5; pixel_y = -5 }, @@ -23847,7 +23847,7 @@ /turf/open/floor/plating, /area/maintenance/fore) "aVH" = ( -/obj/structure/computerframe{ +/obj/structure/frame/computer{ anchored = 1 }, /turf/open/floor/plating{ @@ -23862,7 +23862,7 @@ /turf/open/floor/plating, /area/maintenance/asmaint) "aVJ" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /obj/effect/spawner/lootdrop{ loot = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/rods = 2, /obj/item/weapon/shard = 2, "" = 3); lootcount = 2; @@ -27242,16 +27242,16 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/cloning{ +/obj/item/weapon/circuitboard/computer/cloning{ pixel_x = 0 }, -/obj/item/weapon/circuitboard/med_data{ +/obj/item/weapon/circuitboard/computer/med_data{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/clonescanner, -/obj/item/weapon/circuitboard/clonepod, -/obj/item/weapon/circuitboard/scan_consolenew, +/obj/item/weapon/circuitboard/machine/clonescanner, +/obj/item/weapon/circuitboard/machine/clonepod, +/obj/item/weapon/circuitboard/computer/scan_consolenew, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -27262,11 +27262,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/secure_data{ +/obj/item/weapon/circuitboard/computer/secure_data{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/security{ +/obj/item/weapon/circuitboard/computer/security{ pixel_x = 1; pixel_y = -1 }, @@ -27281,12 +27281,12 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/mining, -/obj/item/weapon/circuitboard/autolathe{ +/obj/item/weapon/circuitboard/computer/mining, +/obj/item/weapon/circuitboard/machine/autolathe{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/arcade/battle, +/obj/item/weapon/circuitboard/computer/arcade/battle, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -27402,7 +27402,7 @@ "bcx" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, -/obj/item/weapon/circuitboard/rdconsole, +/obj/item/weapon/circuitboard/computer/rdconsole, /obj/item/weapon/stock_parts/console_screen, /turf/open/floor/plating{ broken = 1; @@ -28690,21 +28690,21 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/pandemic{ +/obj/item/weapon/circuitboard/computer/pandemic{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/circuitboard/rdconsole, -/obj/item/weapon/circuitboard/rdserver{ +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/circuitboard/machine/rdserver{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/destructive_analyzer, -/obj/item/weapon/circuitboard/protolathe, -/obj/item/weapon/circuitboard/aifixer, -/obj/item/weapon/circuitboard/teleporter, -/obj/item/weapon/circuitboard/circuit_imprinter, -/obj/item/weapon/circuitboard/mechfab, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, +/obj/item/weapon/circuitboard/machine/protolathe, +/obj/item/weapon/circuitboard/computer/aifixer, +/obj/item/weapon/circuitboard/computer/teleporter, +/obj/item/weapon/circuitboard/machine/circuit_imprinter, +/obj/item/weapon/circuitboard/machine/mechfab, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ tag = "icon-manifold-b-f (NORTH)"; dir = 1 @@ -28716,15 +28716,15 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/powermonitor{ +/obj/item/weapon/circuitboard/computer/powermonitor{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/stationalert{ +/obj/item/weapon/circuitboard/computer/stationalert{ pixel_x = 1; pixel_y = -1 }, -/obj/item/weapon/circuitboard/atmos_alert{ +/obj/item/weapon/circuitboard/computer/atmos_alert{ pixel_x = 3; pixel_y = -3 }, @@ -28736,12 +28736,12 @@ /area/storage/tech) "bfd" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/telecomms/processor, -/obj/item/weapon/circuitboard/telecomms/receiver, -/obj/item/weapon/circuitboard/telecomms/server, -/obj/item/weapon/circuitboard/telecomms/bus, -/obj/item/weapon/circuitboard/telecomms/broadcaster, -/obj/item/weapon/circuitboard/message_monitor{ +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, +/obj/item/weapon/circuitboard/computer/message_monitor{ pixel_y = -5 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -37083,7 +37083,7 @@ /turf/open/floor/plating, /area/maintenance/fpmaint) "buF" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /turf/open/floor/plating, /area/maintenance/fpmaint) "buG" = ( @@ -38399,7 +38399,7 @@ /turf/open/floor/plating, /area/maintenance/fpmaint) "bwK" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /obj/machinery/power/apc{ aidisabled = 0; auto_name = 1; @@ -47438,7 +47438,7 @@ /turf/open/floor/plating, /area/maintenance/fpmaint) "bMn" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /turf/open/floor/plating, /area/maintenance/fpmaint) "bMo" = ( @@ -61853,7 +61853,7 @@ }, /area/toxins/lab) "cog" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /turf/open/floor/plasteel{ icon_state = "white" }, @@ -62568,18 +62568,18 @@ }, /area/maintenance/electrical) "cpA" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /turf/open/floor/plasteel{ icon_state = "floorgrime" }, /area/construction) "cpB" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/construction) "cpC" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /obj/machinery/airalarm{ pixel_y = 23 }, @@ -62600,7 +62600,7 @@ }, /area/construction) "cpE" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /turf/open/floor/plasteel{ icon_state = "floorgrime" }, @@ -65375,7 +65375,7 @@ pixel_x = -2; pixel_y = 4 }, -/obj/item/weapon/circuitboard/teleporter, +/obj/item/weapon/circuitboard/computer/teleporter, /obj/item/device/aicard, /obj/structure/cable/pink{ tag = "icon-2-8"; @@ -72100,7 +72100,7 @@ "cHe" = ( /obj/structure/closet/crate, /obj/item/weapon/reagent_containers/food/snacks/mint, -/obj/item/weapon/circuitboard/destructive_analyzer, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, /turf/open/floor/plating, /area/maintenance/asmaint2) "cHf" = ( @@ -74722,8 +74722,8 @@ }, /area/maintenance/asmaint2) "cLX" = ( -/obj/machinery/constructable_frame/machine_frame, -/obj/item/weapon/circuitboard/chem_master, +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/chem_master, /turf/open/floor/plating, /area/maintenance/asmaint2) "cLY" = ( diff --git a/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm b/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm index 65a5dd9837b..b15f8f1c392 100644 --- a/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm +++ b/_maps/map_files/EfficiencyStation/EfficiencyStation.dmm @@ -588,7 +588,7 @@ }, /area/shuttle/syndicate) "abt" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /turf/open/floor/plasteel/shuttle{ icon_state = "shuttlefloor4" }, @@ -1956,7 +1956,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/constructable_frame/machine_frame{ +/obj/structure/frame/machine{ desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; dir = 8; icon = 'icons/obj/Cryogenic2.dmi'; @@ -1992,7 +1992,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/constructable_frame/machine_frame{ +/obj/structure/frame/machine{ desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; dir = 4; icon = 'icons/obj/Cryogenic2.dmi'; @@ -2202,8 +2202,8 @@ }, /area/shuttle/abandoned) "adV" = ( -/obj/machinery/constructable_frame/machine_frame, -/obj/item/weapon/circuitboard/chem_dispenser, +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/chem_dispenser, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -2213,7 +2213,7 @@ }, /area/shuttle/abandoned) "adW" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -2777,7 +2777,7 @@ }, /area/shuttle/abandoned) "aeR" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -2787,8 +2787,8 @@ }, /area/shuttle/abandoned) "aeS" = ( -/obj/machinery/constructable_frame/machine_frame, -/obj/item/weapon/circuitboard/autolathe, +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/autolathe, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -3524,8 +3524,8 @@ }, /area/shuttle/abandoned) "aga" = ( -/obj/machinery/constructable_frame/machine_frame, -/obj/item/weapon/circuitboard/cyborgrecharger, +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/cyborgrecharger, /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -4212,7 +4212,7 @@ }, /area/shuttle/abandoned) "ahk" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -4244,7 +4244,7 @@ }, /area/shuttle/abandoned) "ahn" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -14688,7 +14688,7 @@ pixel_x = -2; pixel_y = 4 }, -/obj/item/weapon/circuitboard/teleporter, +/obj/item/weapon/circuitboard/computer/teleporter, /turf/open/floor/plasteel{ dir = 6; icon_state = "warnwhite" @@ -17007,11 +17007,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/robotics{ +/obj/item/weapon/circuitboard/computer/robotics{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/mecha_control{ +/obj/item/weapon/circuitboard/computer/mecha_control{ pixel_x = 1; pixel_y = -1 }, @@ -17022,15 +17022,15 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/crew{ +/obj/item/weapon/circuitboard/computer/crew{ pixel_x = -1; pixel_y = 1 }, -/obj/item/weapon/circuitboard/card{ +/obj/item/weapon/circuitboard/computer/card{ pixel_x = 2; pixel_y = -2 }, -/obj/item/weapon/circuitboard/communications{ +/obj/item/weapon/circuitboard/computer/communications{ pixel_x = 5; pixel_y = -5 }, @@ -17041,11 +17041,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/borgupload{ +/obj/item/weapon/circuitboard/computer/borgupload{ pixel_x = -1; pixel_y = 1 }, -/obj/item/weapon/circuitboard/aiupload{ +/obj/item/weapon/circuitboard/computer/aiupload{ pixel_x = 2; pixel_y = -2 }, @@ -19057,14 +19057,14 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/cloning, -/obj/item/weapon/circuitboard/med_data{ +/obj/item/weapon/circuitboard/computer/cloning, +/obj/item/weapon/circuitboard/computer/med_data{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/clonescanner, -/obj/item/weapon/circuitboard/clonepod, -/obj/item/weapon/circuitboard/scan_consolenew, +/obj/item/weapon/circuitboard/machine/clonescanner, +/obj/item/weapon/circuitboard/machine/clonepod, +/obj/item/weapon/circuitboard/computer/scan_consolenew, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -19691,11 +19691,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/secure_data{ +/obj/item/weapon/circuitboard/computer/secure_data{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/security{ +/obj/item/weapon/circuitboard/computer/security{ pixel_x = 1; pixel_y = -1 }, @@ -20334,15 +20334,15 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/powermonitor{ +/obj/item/weapon/circuitboard/computer/powermonitor{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/stationalert{ +/obj/item/weapon/circuitboard/computer/stationalert{ pixel_x = 1; pixel_y = -1 }, -/obj/item/weapon/circuitboard/atmos_alert{ +/obj/item/weapon/circuitboard/computer/atmos_alert{ pixel_x = 3; pixel_y = -3 }, @@ -21705,18 +21705,18 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/pandemic{ +/obj/item/weapon/circuitboard/computer/pandemic{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/circuitboard/rdconsole, -/obj/item/weapon/circuitboard/rdserver{ +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/circuitboard/machine/rdserver{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/destructive_analyzer, -/obj/item/weapon/circuitboard/protolathe, -/obj/item/weapon/circuitboard/aifixer, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, +/obj/item/weapon/circuitboard/machine/protolathe, +/obj/item/weapon/circuitboard/computer/aifixer, /obj/machinery/light_switch{ pixel_x = -25 }, @@ -22455,12 +22455,12 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/mining, -/obj/item/weapon/circuitboard/autolathe{ +/obj/item/weapon/circuitboard/computer/mining, +/obj/item/weapon/circuitboard/machine/autolathe{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/arcade/battle, +/obj/item/weapon/circuitboard/computer/arcade/battle, /obj/machinery/light/small{ dir = 8 }, @@ -23206,12 +23206,12 @@ /area/hallway/primary/starboard) "aOL" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/telecomms/processor, -/obj/item/weapon/circuitboard/telecomms/receiver, -/obj/item/weapon/circuitboard/telecomms/server, -/obj/item/weapon/circuitboard/telecomms/bus, -/obj/item/weapon/circuitboard/telecomms/broadcaster, -/obj/item/weapon/circuitboard/message_monitor{ +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, +/obj/item/weapon/circuitboard/computer/message_monitor{ pixel_y = -5 }, /turf/open/floor/plating, @@ -44400,7 +44400,7 @@ /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, -/obj/item/weapon/circuitboard/solar_control, +/obj/item/weapon/circuitboard/computer/solar_control, /obj/item/weapon/electronics/tracker, /obj/item/weapon/paper/solar, /obj/structure/cable{ diff --git a/_maps/map_files/MetaStation/MetaStation.v41I.dmm b/_maps/map_files/MetaStation/MetaStation.v41I.dmm index bbec2be5967..43d40cb3424 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41I.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41I.dmm @@ -20887,7 +20887,7 @@ /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, -/obj/item/weapon/circuitboard/solar_control, +/obj/item/weapon/circuitboard/computer/solar_control, /obj/item/weapon/electronics/tracker, /obj/item/weapon/paper/solar, /turf/open/floor/plasteel{ @@ -31654,15 +31654,15 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/powermonitor{ +/obj/item/weapon/circuitboard/computer/powermonitor{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/stationalert{ +/obj/item/weapon/circuitboard/computer/stationalert{ pixel_x = 1; pixel_y = -1 }, -/obj/item/weapon/circuitboard/atmos_alert{ +/obj/item/weapon/circuitboard/computer/atmos_alert{ pixel_x = 3; pixel_y = -3 }, @@ -31675,11 +31675,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/secure_data{ +/obj/item/weapon/circuitboard/computer/secure_data{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/security{ +/obj/item/weapon/circuitboard/computer/security{ pixel_x = 1; pixel_y = -1 }, @@ -31696,16 +31696,16 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/cloning{ +/obj/item/weapon/circuitboard/computer/cloning{ pixel_x = 0 }, -/obj/item/weapon/circuitboard/med_data{ +/obj/item/weapon/circuitboard/computer/med_data{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/clonescanner, -/obj/item/weapon/circuitboard/clonepod, -/obj/item/weapon/circuitboard/scan_consolenew, +/obj/item/weapon/circuitboard/machine/clonescanner, +/obj/item/weapon/circuitboard/machine/clonepod, +/obj/item/weapon/circuitboard/computer/scan_consolenew, /turf/open/floor/plasteel{ icon_state = "dark" }, @@ -33760,11 +33760,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/borgupload{ +/obj/item/weapon/circuitboard/computer/borgupload{ pixel_x = -1; pixel_y = 1 }, -/obj/item/weapon/circuitboard/aiupload{ +/obj/item/weapon/circuitboard/computer/aiupload{ pixel_x = 2; pixel_y = -2 }, @@ -33804,14 +33804,14 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/message_monitor{ +/obj/item/weapon/circuitboard/computer/message_monitor{ pixel_y = -5 }, -/obj/item/weapon/circuitboard/arcade/battle{ +/obj/item/weapon/circuitboard/computer/arcade/battle{ pixel_x = -4; pixel_y = 2 }, -/obj/item/weapon/circuitboard/arcade/orion_trail{ +/obj/item/weapon/circuitboard/computer/arcade/orion_trail{ pixel_x = 4 }, /turf/open/floor/plasteel{ @@ -33823,8 +33823,8 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/mining, -/obj/item/weapon/circuitboard/autolathe{ +/obj/item/weapon/circuitboard/computer/mining, +/obj/item/weapon/circuitboard/machine/autolathe{ pixel_x = 3; pixel_y = -3 }, @@ -33837,17 +33837,17 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/pandemic{ +/obj/item/weapon/circuitboard/computer/pandemic{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/circuitboard/rdconsole, -/obj/item/weapon/circuitboard/rdserver{ +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/circuitboard/machine/rdserver{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/destructive_analyzer, -/obj/item/weapon/circuitboard/protolathe, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, +/obj/item/weapon/circuitboard/machine/protolathe, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel{ icon_state = "dark" @@ -34518,15 +34518,15 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/crew{ +/obj/item/weapon/circuitboard/computer/crew{ pixel_x = -1; pixel_y = 1 }, -/obj/item/weapon/circuitboard/card{ +/obj/item/weapon/circuitboard/computer/card{ pixel_x = 2; pixel_y = -2 }, -/obj/item/weapon/circuitboard/communications{ +/obj/item/weapon/circuitboard/computer/communications{ pixel_x = 5; pixel_y = -5 }, @@ -35451,11 +35451,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/robotics{ +/obj/item/weapon/circuitboard/computer/robotics{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/mecha_control{ +/obj/item/weapon/circuitboard/computer/mecha_control{ pixel_x = 1; pixel_y = -1 }, @@ -56963,14 +56963,14 @@ /area/bridge) "bOg" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/telecomms/processor, -/obj/item/weapon/circuitboard/telecomms/processor, -/obj/item/weapon/circuitboard/telecomms/receiver, -/obj/item/weapon/circuitboard/telecomms/server, -/obj/item/weapon/circuitboard/telecomms/server, -/obj/item/weapon/circuitboard/telecomms/bus, -/obj/item/weapon/circuitboard/telecomms/bus, -/obj/item/weapon/circuitboard/telecomms/broadcaster, +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 1; on = 1 @@ -79097,7 +79097,7 @@ pixel_x = -2; pixel_y = 4 }, -/obj/item/weapon/circuitboard/teleporter, +/obj/item/weapon/circuitboard/computer/teleporter, /turf/open/floor/plasteel{ icon_state = "cafeteria"; dir = 5 @@ -96286,7 +96286,7 @@ }, /area/shuttle/syndicate) "cXz" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /turf/open/floor/plasteel/shuttle{ icon_state = "shuttlefloor4" }, @@ -97775,8 +97775,8 @@ }, /area/shuttle/abandoned) "daw" = ( -/obj/machinery/constructable_frame/machine_frame, -/obj/item/weapon/circuitboard/cyborgrecharger, +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/cyborgrecharger, /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -97944,7 +97944,7 @@ }, /area/shuttle/abandoned) "daO" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -98040,7 +98040,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/constructable_frame/machine_frame{ +/obj/structure/frame/machine{ desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; dir = 1; icon = 'icons/obj/Cryogenic2.dmi'; @@ -98057,7 +98057,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/constructable_frame/machine_frame{ +/obj/structure/frame/machine{ desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; dir = 1; icon = 'icons/obj/Cryogenic2.dmi'; @@ -98352,7 +98352,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/constructable_frame/machine_frame{ +/obj/structure/frame/machine{ desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; dir = 2; icon = 'icons/obj/Cryogenic2.dmi'; @@ -98369,7 +98369,7 @@ desc = "A thin layer of dust coating the floor."; name = "dust" }, -/obj/machinery/constructable_frame/machine_frame{ +/obj/structure/frame/machine{ desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; dir = 2; icon = 'icons/obj/Cryogenic2.dmi'; @@ -98465,7 +98465,7 @@ }, /area/shuttle/abandoned) "dbC" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -98643,7 +98643,7 @@ }, /area/shuttle/abandoned) "dbS" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -98654,8 +98654,8 @@ }, /area/shuttle/abandoned) "dbT" = ( -/obj/machinery/constructable_frame/machine_frame, -/obj/item/weapon/circuitboard/autolathe, +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/autolathe, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -98787,8 +98787,8 @@ /turf/open/floor/plasteel/shuttle, /area/shuttle/abandoned) "dcd" = ( -/obj/machinery/constructable_frame/machine_frame, -/obj/item/weapon/circuitboard/chem_dispenser, +/obj/structure/frame/machine, +/obj/item/weapon/circuitboard/machine/chem_dispenser, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -98798,7 +98798,7 @@ }, /area/shuttle/abandoned) "dce" = ( -/obj/machinery/constructable_frame/machine_frame, +/obj/structure/frame/machine, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index aaebffe3620..4220fed6d56 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -13107,7 +13107,7 @@ /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, -/obj/item/weapon/circuitboard/solar_control, +/obj/item/weapon/circuitboard/computer/solar_control, /obj/item/weapon/electronics/tracker, /obj/item/weapon/paper/solar, /turf/open/floor/plating{ @@ -13528,7 +13528,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "Cw" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /turf/open/floor/plasteel/shuttle{ icon_state = "shuttlefloor4" }, @@ -15520,7 +15520,7 @@ /turf/open/floor/plating, /area/shuttle/syndicate) "Hd" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /obj/item/weapon/paper{ info = "

Teleporter Instruction


  1. Install circuit board, glass and wiring to complete Teleporter Control Console
  2. Use a screwdriver, wirecutter and screwdriver again on the Teleporter Station to connect it
  3. Set destination with Teleporter Control Computer
  4. Activate Teleporter Hub with Teleporter Station
"; name = "Teleporter Instructions" diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 4b6ad4ccfca..ee5c7cfc719 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -7034,7 +7034,7 @@ /area/maintenance/fpmaint2) "ann" = ( /obj/item/weapon/electronics/airalarm, -/obj/item/weapon/circuitboard/seed_extractor, +/obj/item/weapon/circuitboard/machine/seed_extractor, /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 4; @@ -7502,7 +7502,7 @@ /area/maintenance/fpmaint2) "aoo" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/monkey_recycler, +/obj/item/weapon/circuitboard/machine/monkey_recycler, /turf/open/floor/plating, /area/maintenance/fpmaint2) "aop" = ( @@ -10443,11 +10443,11 @@ /obj/item/weapon/shard{ icon_state = "medium" }, -/obj/item/weapon/circuitboard/operating, +/obj/item/weapon/circuitboard/computer/operating, /turf/open/floor/plating, /area/maintenance/fpmaint2) "auZ" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /turf/open/floor/plating, /area/maintenance/fpmaint2) "ava" = ( @@ -35006,7 +35006,7 @@ /turf/open/floor/plating, /area/maintenance/asmaint2) "buA" = ( -/obj/structure/computerframe, +/obj/structure/frame/computer, /turf/open/floor/plasteel/shuttle{ icon_state = "shuttlefloor4" }, @@ -41168,11 +41168,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/borgupload{ +/obj/item/weapon/circuitboard/computer/borgupload{ pixel_x = -1; pixel_y = 1 }, -/obj/item/weapon/circuitboard/aiupload{ +/obj/item/weapon/circuitboard/computer/aiupload{ pixel_x = 2; pixel_y = -2 }, @@ -41199,36 +41199,36 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/pandemic{ +/obj/item/weapon/circuitboard/computer/pandemic{ pixel_x = -3; pixel_y = 3 }, -/obj/item/weapon/circuitboard/rdconsole, -/obj/item/weapon/circuitboard/rdserver{ +/obj/item/weapon/circuitboard/computer/rdconsole, +/obj/item/weapon/circuitboard/machine/rdserver{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/destructive_analyzer, -/obj/item/weapon/circuitboard/protolathe, +/obj/item/weapon/circuitboard/machine/destructive_analyzer, +/obj/item/weapon/circuitboard/machine/protolathe, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/item/weapon/circuitboard/aifixer, -/obj/item/weapon/circuitboard/teleporter, -/obj/item/weapon/circuitboard/circuit_imprinter, -/obj/item/weapon/circuitboard/mechfab, +/obj/item/weapon/circuitboard/computer/aifixer, +/obj/item/weapon/circuitboard/computer/teleporter, +/obj/item/weapon/circuitboard/machine/circuit_imprinter, +/obj/item/weapon/circuitboard/machine/mechfab, /turf/open/floor/plating, /area/storage/tech) "bGx" = ( /obj/structure/rack, -/obj/item/weapon/circuitboard/telecomms/processor, -/obj/item/weapon/circuitboard/telecomms/receiver, -/obj/item/weapon/circuitboard/telecomms/server, -/obj/item/weapon/circuitboard/telecomms/bus, -/obj/item/weapon/circuitboard/telecomms/broadcaster, -/obj/item/weapon/circuitboard/message_monitor{ +/obj/item/weapon/circuitboard/machine/telecomms/processor, +/obj/item/weapon/circuitboard/machine/telecomms/receiver, +/obj/item/weapon/circuitboard/machine/telecomms/server, +/obj/item/weapon/circuitboard/machine/telecomms/bus, +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster, +/obj/item/weapon/circuitboard/computer/message_monitor{ pixel_y = -5 }, /turf/open/floor/plating, @@ -41238,12 +41238,12 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/mining, -/obj/item/weapon/circuitboard/autolathe{ +/obj/item/weapon/circuitboard/computer/mining, +/obj/item/weapon/circuitboard/machine/autolathe{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/arcade/battle, +/obj/item/weapon/circuitboard/computer/arcade/battle, /turf/open/floor/plating, /area/storage/tech) "bGz" = ( @@ -41848,15 +41848,15 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/crew{ +/obj/item/weapon/circuitboard/computer/crew{ pixel_x = -1; pixel_y = 1 }, -/obj/item/weapon/circuitboard/card{ +/obj/item/weapon/circuitboard/computer/card{ pixel_x = 2; pixel_y = -2 }, -/obj/item/weapon/circuitboard/communications{ +/obj/item/weapon/circuitboard/computer/communications{ pixel_x = 5; pixel_y = -5 }, @@ -42787,11 +42787,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/robotics{ +/obj/item/weapon/circuitboard/computer/robotics{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/mecha_control{ +/obj/item/weapon/circuitboard/computer/mecha_control{ pixel_x = 1; pixel_y = -1 }, @@ -42813,16 +42813,16 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/cloning{ +/obj/item/weapon/circuitboard/computer/cloning{ pixel_x = 0 }, -/obj/item/weapon/circuitboard/med_data{ +/obj/item/weapon/circuitboard/computer/med_data{ pixel_x = 3; pixel_y = -3 }, -/obj/item/weapon/circuitboard/clonescanner, -/obj/item/weapon/circuitboard/clonepod, -/obj/item/weapon/circuitboard/scan_consolenew, +/obj/item/weapon/circuitboard/machine/clonescanner, +/obj/item/weapon/circuitboard/machine/clonepod, +/obj/item/weapon/circuitboard/computer/scan_consolenew, /turf/open/floor/plating, /area/storage/tech) "bJl" = ( @@ -42830,15 +42830,15 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/powermonitor{ +/obj/item/weapon/circuitboard/computer/powermonitor{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/stationalert{ +/obj/item/weapon/circuitboard/computer/stationalert{ pixel_x = 1; pixel_y = -1 }, -/obj/item/weapon/circuitboard/atmos_alert{ +/obj/item/weapon/circuitboard/computer/atmos_alert{ pixel_x = 3; pixel_y = -3 }, @@ -42849,11 +42849,11 @@ dir = 8; layer = 2.9 }, -/obj/item/weapon/circuitboard/secure_data{ +/obj/item/weapon/circuitboard/computer/secure_data{ pixel_x = -2; pixel_y = 2 }, -/obj/item/weapon/circuitboard/security{ +/obj/item/weapon/circuitboard/computer/security{ pixel_x = 1; pixel_y = -1 }, @@ -56170,7 +56170,7 @@ /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, -/obj/item/weapon/circuitboard/solar_control, +/obj/item/weapon/circuitboard/computer/solar_control, /obj/item/weapon/electronics/tracker, /obj/item/weapon/paper/solar, /turf/open/floor/plasteel, @@ -63494,7 +63494,7 @@ }, /area/shuttle/abandoned) "czy" = ( -/obj/structure/computerframe{ +/obj/structure/frame/computer{ anchored = 1 }, /turf/open/floor/plasteel/shuttle{ diff --git a/_maps/map_files/generic/z3.dmm b/_maps/map_files/generic/z3.dmm index 16243f9502c..140b55a7d2b 100644 --- a/_maps/map_files/generic/z3.dmm +++ b/_maps/map_files/generic/z3.dmm @@ -32,7 +32,7 @@ "cj" = (/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) "ck" = (/obj/structure/table,/obj/item/weapon/paper,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) "cl" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/machinery/light/small{dir = 1},/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) -"cm" = (/obj/structure/computerframe,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"cm" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) "cn" = (/obj/structure/table,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) "co" = (/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat{name = "Cuban Pete-Meat"},/turf/open/floor/engine,/area/tcommsat/chamber) "cp" = (/obj/structure/grille,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) @@ -99,7 +99,7 @@ "dz" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/scalpel{pixel_y = 12},/turf/open/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dA" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plating,/area/tcommsat/chamber) -"dC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/teleporter,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) +"dC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/computer/teleporter,/turf/open/floor/plasteel/airless,/area/tcommsat/chamber) "dD" = (/obj/item/device/radio/off,/turf/open/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber) "dE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/chamber) "dF" = (/obj/effect/decal/cleanable/oil,/turf/open/floor/plating/airless,/area/tcommsat/chamber) @@ -159,11 +159,11 @@ "eH" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plasteel{dir = 10; icon_state = "warning"},/area/tcommsat/chamber) "eI" = (/turf/open/floor/plasteel{dir = 2; icon_state = "warning"},/area/tcommsat/chamber) "eJ" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel{dir = 6; icon_state = "warning"},/area/tcommsat/chamber) -"eL" = (/obj/structure/computerframe,/turf/open/floor/plating,/area/tcommsat/chamber) +"eL" = (/obj/structure/frame/computer,/turf/open/floor/plating,/area/tcommsat/chamber) "eM" = (/obj/machinery/teleport/station,/turf/open/floor/plating,/area/tcommsat/chamber) "eN" = (/obj/machinery/teleport/hub,/turf/open/floor/plating,/area/tcommsat/chamber) "eO" = (/turf/closed/wall/r_wall,/area/AIsattele) -"eP" = (/obj/structure/computerframe,/turf/open/floor/plating/airless,/area/AIsattele) +"eP" = (/obj/structure/frame/computer,/turf/open/floor/plating/airless,/area/AIsattele) "eQ" = (/obj/machinery/teleport/station,/turf/open/floor/plating/airless,/area/AIsattele) "eR" = (/obj/machinery/teleport/hub,/turf/open/floor/plating/airless,/area/AIsattele) "eS" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/AIsattele) @@ -184,7 +184,7 @@ "fh" = (/obj/item/weapon/shard,/obj/item/weapon/electronics/apc,/turf/open/floor/plating/airless,/area/AIsattele) "fi" = (/obj/structure/closet,/turf/open/floor/plating/airless,/area/AIsattele) "fj" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/open/floor/plating/airless,/area/AIsattele) -"fk" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/obj/item/weapon/weldingtool,/obj/item/weapon/wrench,/obj/item/weapon/circuitboard/teleporter,/turf/open/floor/plating/airless,/area/AIsattele) +"fk" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/obj/item/weapon/weldingtool,/obj/item/weapon/wrench,/obj/item/weapon/circuitboard/computer/teleporter,/turf/open/floor/plating/airless,/area/AIsattele) "fl" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plating/airless,/area/AIsattele) "fm" = (/obj/structure/lattice,/turf/open/space,/area/AIsattele) "fn" = (/obj/structure/girder,/turf/open/floor/plating/airless,/area/AIsattele) diff --git a/_maps/map_files/generic/z4.dmm b/_maps/map_files/generic/z4.dmm index aec065d7d4f..9ebfeee4a01 100644 --- a/_maps/map_files/generic/z4.dmm +++ b/_maps/map_files/generic/z4.dmm @@ -41,7 +41,7 @@ "aO" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel{icon_state = "cafeteria"},/area/djstation) "aP" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; freerange = 1; listening = 0; name = "Pirate Radio Broadcast Channel"; pixel_x = 0},/turf/open/floor/plasteel{icon_state = "cafeteria"},/area/djstation) "aQ" = (/obj/structure/table,/obj/item/weapon/paper/djstation,/turf/open/floor/plasteel{icon_state = "cafeteria"},/area/djstation) -"aR" = (/obj/structure/computerframe{anchored = 1},/turf/open/floor/plasteel{icon_state = "grimy"},/area/djstation) +"aR" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plasteel{icon_state = "grimy"},/area/djstation) "aS" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel{icon_state = "grimy"},/area/djstation) "aT" = (/obj/machinery/light/small,/turf/open/floor/plasteel{icon_state = "grimy"},/area/djstation) "aU" = (/obj/structure/closet,/turf/open/floor/plasteel{icon_state = "grimy"},/area/djstation) @@ -147,8 +147,8 @@ "cQ" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/gravity_generator) "cR" = (/obj/structure/window/fulltile,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) "cS" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/bridge/access) -"cT" = (/obj/structure/computerframe,/turf/open/floor/plasteel,/area/derelict/bridge) -"cU" = (/obj/structure/computerframe,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/derelict/bridge) +"cT" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/derelict/bridge) +"cU" = (/obj/structure/frame/computer,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/open/floor/plasteel,/area/derelict/bridge) "cV" = (/obj/structure/table,/turf/open/floor/plasteel,/area/derelict/bridge) "cW" = (/obj/machinery/computer/security,/turf/open/floor/plasteel,/area/derelict/bridge) "cX" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/open/floor/plasteel,/area/derelict/bridge) @@ -246,7 +246,7 @@ "eL" = (/obj/item/stack/cable_coil/cut,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "eM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine) "eN" = (/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine) -"eO" = (/obj/structure/computerframe,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"eO" = (/obj/structure/frame/computer,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) "eP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/turf/open/floor/plasteel,/area/derelict/solar_control) "eQ" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel,/area/derelict/solar_control) "eR" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) @@ -359,7 +359,7 @@ "gU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary) "gV" = (/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel,/area/derelict/arrival) "gW" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/obj/item/weapon/electronics/airlock,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) -"gX" = (/obj/structure/rack,/obj/item/weapon/circuitboard/autolathe,/obj/item/weapon/circuitboard/protolathe{pixel_x = -5; pixel_y = -3},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"gX" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/autolathe,/obj/item/weapon/circuitboard/machine/protolathe{pixel_x = -5; pixel_y = -3},/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) "gY" = (/turf/open/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel) "gZ" = (/turf/open/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel) "ha" = (/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) @@ -378,7 +378,7 @@ "hn" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel,/area/derelict/arrival) "ho" = (/obj/structure/window/reinforced,/turf/open/space,/area/space) "hp" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary) -"hq" = (/obj/structure/rack,/obj/item/weapon/circuitboard/circuit_imprinter,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"hq" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/circuit_imprinter,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) "hr" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel) "hs" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel) "ht" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) @@ -389,7 +389,7 @@ "hy" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) "hz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) "hA" = (/obj/item/stack/cable_coil/cut{amount = 2; dir = 2; icon_state = "coil_red2"},/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) -"hB" = (/obj/structure/computerframe,/obj/item/weapon/circuitboard/rdconsole,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"hB" = (/obj/structure/frame/computer,/obj/item/weapon/circuitboard/computer/rdconsole,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "hC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating/airless,/area/space) "hD" = (/obj/item/weapon/shard,/turf/open/floor/plating/airless,/area/space) "hE" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plating/airless,/area/space) @@ -416,7 +416,7 @@ "ia" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plating,/area/derelict/arrival) "ib" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating,/area/derelict/arrival) "ic" = (/obj/structure/window/reinforced{dir = 1},/turf/open/space,/area/space) -"id" = (/obj/structure/rack,/obj/item/weapon/circuitboard/smes,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"id" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/smes,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) "ie" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/space) "if" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel) "ig" = (/obj/structure/window/reinforced{dir = 1},/turf/open/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel) @@ -522,7 +522,7 @@ "kp" = (/obj/item/stack/rods,/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) "kq" = (/obj/structure/door_assembly/door_assembly_mai{name = "airlock assembly"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) "kr" = (/obj/structure/grille,/turf/open/floor/plating/airless,/area/derelict/bridge/ai_upload) -"ks" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/stock_parts/console_screen,/turf/open/floor/plating/airless,/area/derelict/gravity_generator) +"ks" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/frame/machine,/obj/item/weapon/stock_parts/console_screen,/turf/open/floor/plating/airless,/area/derelict/gravity_generator) "kt" = (/obj/item/weapon/wirecutters,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/open/floor/plasteel/airless,/area/derelict/hallway/secondary) "ku" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) "kv" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/item/drone_shell,/turf/open/floor/plasteel/airless,/area/derelict/se_solar) @@ -571,7 +571,7 @@ "lo" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/item/wallframe/apc,/turf/open/floor/plating/airless,/area/derelict/gravity_generator) "lp" = (/obj/machinery/door/window,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) "lq" = (/obj/item/weapon/ore/slag,/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator) -"lr" = (/obj/structure/rack,/obj/item/weapon/circuitboard/smes,/turf/open/floor/plasteel,/area/derelict/bridge/access) +"lr" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/smes,/turf/open/floor/plasteel,/area/derelict/bridge/access) "ls" = (/obj/item/weapon/stock_parts/matter_bin,/turf/open/space,/area/space) "lt" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/open/floor/plasteel/airless,/area/solar/derelict_aft) "lu" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/space,/area/space) @@ -659,7 +659,7 @@ "mY" = (/obj/machinery/atmospherics/components/unary/portables_connector/visible{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) "mZ" = (/obj/machinery/light{dir = 1},/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "na" = (/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/bridge/ai_upload) -"nb" = (/obj/structure/rack,/obj/item/weapon/circuitboard/microwave,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"nb" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/microwave,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) "nc" = (/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload) "nd" = (/turf/open/space,/area/derelict/bridge/ai_upload) "ne" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{icon_state = "intact"; dir = 5},/turf/open/floor/plating/airless,/area/derelict/atmospherics) @@ -669,11 +669,11 @@ "ni" = (/obj/structure/window/reinforced,/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) "nj" = (/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/atmospherics) "nk" = (/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) -"nl" = (/obj/structure/computerframe,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) +"nl" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "nm" = (/obj/machinery/door/airlock/external,/turf/open/floor/plasteel,/area/derelict/solar_control) "nn" = (/turf/open/floor/plasteel{icon_state = "damaged2"; initial_gas_mix = "TEMP=2.7"},/area/derelict/atmospherics) "no" = (/turf/open/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/atmospherics) -"np" = (/obj/structure/rack,/obj/item/weapon/circuitboard/cryo_tube,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"np" = (/obj/structure/rack,/obj/item/weapon/circuitboard/machine/cryo_tube,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) "nq" = (/obj/machinery/light,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "nr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) "ns" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/closed/wall/r_wall,/area/derelict/bridge/ai_upload) @@ -712,7 +712,7 @@ "nZ" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/airless,/area/space) "oa" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) "ob" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/open/floor/plating/airless,/area/derelict/singularity_engine) -"oc" = (/obj/structure/computerframe,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) +"oc" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) "od" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/derelict/arrival) "oe" = (/obj/machinery/light{dir = 1},/obj/item/weapon/shard{icon_state = "small"},/turf/open/floor/plating/airless,/area/derelict/medical) "of" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/open/space,/area/space) @@ -745,7 +745,7 @@ "oG" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel) "oH" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) "oI" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel) -"oJ" = (/obj/structure/computerframe,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) +"oJ" = (/obj/structure/frame/computer,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) "oK" = (/obj/item/weapon/reagent_containers/glass/beaker,/turf/open/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical) "oL" = (/obj/structure/closet/wardrobe/genetics_white,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/open/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical) "oM" = (/obj/machinery/door/airlock/command{name = "Teleporter Room"},/turf/open/floor/plasteel/airless,/area/derelict/medical/chapel) @@ -780,7 +780,7 @@ "pp" = (/obj/effect/decal/cleanable/blood/splatter,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) "pq" = (/obj/structure/window/fulltile,/turf/open/space,/area/derelict/atmospherics) "pr" = (/obj/structure/closet/wardrobe/orange,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/weapon/shovel/spade,/obj/item/weapon/cultivator,/turf/open/floor/plasteel/airless,/area/space) -"ps" = (/obj/structure/computerframe,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) +"ps" = (/obj/structure/frame/computer,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/airless,/area/derelict/atmospherics) "pt" = (/obj/machinery/light/small,/turf/open/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/atmospherics) "pu" = (/obj/structure/lattice,/turf/open/space,/area/derelict/atmospherics) "pv" = (/obj/machinery/atmospherics/components/unary/vent_pump{on = 1},/turf/open/floor/plating/airless,/area/derelict/hallway/primary) @@ -835,7 +835,7 @@ "qu" = (/obj/structure/lattice/catwalk,/turf/open/space,/area/solar/derelict_aft) "qv" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/open/space,/area/solar/derelict_aft) "qw" = (/obj/item/device/aicard,/turf/open/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload) -"qx" = (/obj/structure/rack,/obj/item/weapon/circuitboard/solar_control,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) +"qx" = (/obj/structure/rack,/obj/item/weapon/circuitboard/computer/solar_control,/turf/open/floor/plasteel,/area/derelict/bridge/ai_upload) "qy" = (/obj/item/ammo_casing/a357{pixel_x = -5},/obj/item/ammo_casing/a357{pixel_x = 5; pixel_y = 6},/obj/item/ammo_casing/a357,/turf/open/floor/plasteel/airless,/area/derelict/hallway/primary) "qz" = (/obj/machinery/porta_turret_cover,/turf/open/floor/plasteel/airless,/area/derelict/bridge/ai_upload) "qA" = (/obj/structure/table,/obj/item/device/assembly/flash/handheld,/turf/open/floor/plasteel/airless,/area/derelict/bridge/access) diff --git a/_maps/map_files/generic/z6.dmm b/_maps/map_files/generic/z6.dmm index 82a78c133c6..8044fc094c2 100644 --- a/_maps/map_files/generic/z6.dmm +++ b/_maps/map_files/generic/z6.dmm @@ -186,7 +186,7 @@ "dD" = (/turf/open/floor/plasteel{dir = 4; icon_state = "warning"},/area/awaymission/BMPship/Aft) "dE" = (/obj/structure/table,/obj/item/weapon/paper{info = "I'm no scientist, but judging from the design and components, it seems to be some kind of teleporter. This thing is gonna be worth a lot of cash to the right man. The boys are excited, as they have every right to be, and I've let them crack into that case of beer we got. I normally wouldn't allow such a thing, but this is a time for celebration! It's not like a couple drinks will hurt anything."; name = "Captain's log entry"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) "dF" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) -"dG" = (/obj/structure/computerframe{anchored = 1},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) +"dG" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) "dH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/carpet,/area/awaymission/BMPship/Fore) "dI" = (/obj/machinery/hydroponics,/turf/open/floor/plasteel{icon_state = "green"; dir = 10},/area/awaymission/BMPship/Midship) "dJ" = (/turf/open/floor/plasteel{icon_state = "green"},/area/awaymission/BMPship/Midship) @@ -344,8 +344,8 @@ "gF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/open/floor/plating,/area/awaymission/BMPship/Aft) "gG" = (/turf/closed/wall/shuttle{icon_state = "swallc2"},/area/awaymission/BMPship/Aft) "gH" = (/turf/open/floor/plating/airless{icon_state = "platingdmg2"},/turf/closed/wall/shuttle{dir = 3; icon_state = "swall_f10"; layer = 2},/area/awaymission/BMPship/Fore) -"gI" = (/obj/structure/computerframe{anchored = 1},/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Fore) -"gJ" = (/obj/structure/computerframe{anchored = 1},/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) +"gI" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plating/airless{icon_state = "panelscorched"},/area/awaymission/BMPship/Fore) +"gJ" = (/obj/structure/frame/computer{anchored = 1},/turf/open/floor/plating/airless{icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore) "gK" = (/obj/machinery/light/small,/turf/open/floor/plasteel{icon_state = "bar"},/area/awaymission/BMPship/Midship) "gL" = (/turf/open/floor/plasteel{icon_state = "platingdmg3"},/area/awaymission/BMPship/Midship) "gM" = (/turf/open/floor/plasteel{icon_state = "platingdmg1"},/area/awaymission/BMPship/Midship) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 68cc017cfd3..253c17eeeb0 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -25,16 +25,20 @@ /obj/machinery/sleeper/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - component_parts += new /obj/item/weapon/circuitboard/sleeper(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/sleeper(null) + B.apply_default_parts(src) update_icon() +/obj/item/weapon/circuitboard/machine/sleeper + name = "circuit board (Sleeper)" + build_path = /obj/machinery/sleeper + origin_tech = "programming=3;biotech=2;engineering=3;materials=3" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/console_screen = 2) + /obj/machinery/sleeper/RefreshParts() var/E for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) @@ -186,4 +190,4 @@ /obj/machinery/sleeper/old - icon_state = "oldpod" + icon_state = "oldpod" diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index 393f2f4f600..529e77bf55a 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -32,14 +32,19 @@ var/list/announcement_systems = list() announcement_systems += src radio = new /obj/item/device/radio/headset/ai(src) - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/announcement_system(null) - component_parts += new /obj/item/stack/cable_coil(null, 2) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/announcement_system(null) + B.apply_default_parts(src) update_icon() +/obj/item/weapon/circuitboard/machine/announcement_system + name = "circuit board (Announcement System)" + build_path = /obj/machinery/announcement_system + origin_tech = "programming=3;bluespace=2" + req_components = list( + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/console_screen = 1) + /obj/machinery/announcement_system/update_icon() if(is_operational()) icon_state = (panel_open ? "AAS_On_Open" : "AAS_On") @@ -178,4 +183,4 @@ var/list/announcement_systems = list() /obj/machinery/announcement_system/emag_act() if(!emagged) emagged = 1 - act_up() + act_up() \ No newline at end of file diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 5e03d4b9dc3..4014ad407ec 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -47,20 +47,23 @@ /obj/machinery/autolathe/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/autolathe(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) materials = new /datum/material_container(src, list(MAT_METAL=1, MAT_GLASS=1)) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/autolathe(null) + B.apply_default_parts(src) wires = new /datum/wires/autolathe(src) files = new /datum/research/autolathe(src) matching_designs = list() +/obj/item/weapon/circuitboard/machine/autolathe + name = "circuit board (Autolathe)" + build_path = /obj/machinery/autolathe + origin_tech = "engineering=2;programming=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 3, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + /obj/machinery/autolathe/Destroy() qdel(wires) wires = null diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 604fb26bed0..b6a576e12f5 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -25,16 +25,8 @@ /obj/machinery/clonepod/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/clonepod(null) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/clonepod(null) + B.apply_default_parts(src) /obj/machinery/clonepod/RefreshParts() speed_coeff = 0 @@ -47,6 +39,16 @@ if(heal_level > 100) heal_level = 100 +/obj/item/weapon/circuitboard/machine/clonepod + name = "circuit board (Clone Pod)" + build_path = /obj/machinery/clonepod + origin_tech = "programming=3;biotech=3" + req_components = list( + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/scanning_module = 2, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/stock_parts/console_screen = 1) + //The return of data disks?? Just for transferring between genetics machine/cloning machine. //TO-DO: Make the genetics machine accept them. /obj/item/weapon/disk/data diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index ea7a6a1c704..0989ee50a59 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -3,7 +3,7 @@ desc = "Used to monitor the vitals of a patient during surgery." icon_screen = "crew" icon_keyboard = "med_key" - circuit = /obj/item/weapon/circuitboard/operating + circuit = /obj/item/weapon/circuitboard/computer/operating var/mob/living/carbon/human/patient = null var/obj/structure/table/optable/table = null diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 69c53cf517b..962fb705408 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -4,7 +4,7 @@ req_access = list(access_captain, access_robotics, access_heads) var/mob/living/silicon/ai/occupier = null var/active = 0 - circuit = /obj/item/weapon/circuitboard/aifixer + circuit = /obj/item/weapon/circuitboard/computer/aifixer icon_keyboard = "tech_key" icon_screen = "ai-fixer" diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 9c036f6cbf0..1b50cab81af 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -44,7 +44,7 @@ // If it's a generic arcade machine, pick a random arcade // circuit board for it and make the new machine if(!circuit) - var/choice = pick(subtypesof(/obj/item/weapon/circuitboard/arcade)) + var/choice = pick(subtypesof(/obj/item/weapon/circuitboard/computer/arcade)) var/obj/item/weapon/circuitboard/CB = new choice() new CB.build_path(loc, CB) qdel(src) @@ -93,7 +93,7 @@ name = "arcade machine" desc = "Does not support Pinball." icon_state = "arcade" - circuit = /obj/item/weapon/circuitboard/arcade/battle + circuit = /obj/item/weapon/circuitboard/computer/arcade/battle var/enemy_name = "Space Villian" var/temp = "Winners don't use space drugs" //Temporary message, for attack messages, etc var/player_hp = 30 //Player health/attack points @@ -327,7 +327,7 @@ name = "The Orion Trail" desc = "Learn how our ancestors got to Orion, and have fun in the process!" icon_state = "arcade" - circuit = /obj/item/weapon/circuitboard/arcade/orion_trail + circuit = /obj/item/weapon/circuitboard/computer/arcade/orion_trail var/busy = 0 //prevent clickspam that allowed people to ~speedrun~ the game. var/engine = 0 var/hull = 0 diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index e6f306e03c8..6d3587d5507 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/atmos_alert name = "atmospheric alert console" desc = "Used to monitor the station's air alarms." - circuit = /obj/item/weapon/circuitboard/atmos_alert + circuit = /obj/item/weapon/circuitboard/computer/atmos_alert icon_screen = "alert:0" icon_keyboard = "atmos_key" var/list/priority_alarms = list() diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 32e3ae5c38e..3f40993ffad 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -68,7 +68,7 @@ desc = "Used to monitor the station's atmospherics sensors." icon_screen = "tank" icon_keyboard = "atmos_key" - circuit = /obj/item/weapon/circuitboard/atmos_control + circuit = /obj/item/weapon/circuitboard/computer/atmos_control var/frequency = 1441 var/list/sensors = list( @@ -146,7 +146,7 @@ var/input_tag var/output_tag frequency = 1441 - circuit = /obj/item/weapon/circuitboard/atmos_control/tank + circuit = /obj/item/weapon/circuitboard/computer/atmos_control/tank var/list/input_info var/list/output_info diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 620b7f37e6a..73717cf3f7c 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -1,292 +1,10 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -/obj/structure/computerframe - density = 1 - anchored = 0 - name = "computer-frame" - icon = 'icons/obj/stock_parts.dmi' +/obj/structure/frame/computer + name = "computer frame" icon_state = "0" - var/state = 0 - var/obj/item/weapon/circuitboard/circuit = null -// weight = 1.0E8 - -/obj/item/weapon/circuitboard - density = 0 anchored = 0 - w_class = 2 - name = "circuit board" - icon = 'icons/obj/module.dmi' - icon_state = "id_mod" - item_state = "electronic" - origin_tech = "programming=2" - materials = list(MAT_GLASS=200) - var/frequency = null - var/build_path = null - var/board_type = "computer" - var/list/req_components = null - var/powernet = null - var/list/records = null - var/frame_desc = null + state = 0 -/obj/item/weapon/circuitboard/turbine_computer - name = "circuit board (Turbine Computer)" - build_path = /obj/machinery/computer/turbine_computer - origin_tech = "programming=4;engineering=4;powerstorage=4" -/obj/item/weapon/circuitboard/telesci_console - name = "circuit board (Telescience Console)" - build_path = /obj/machinery/computer/telescience - origin_tech = "programming=3;bluespace=2" -/obj/item/weapon/circuitboard/message_monitor - name = "circuit board (Message Monitor)" - build_path = /obj/machinery/computer/message_monitor - origin_tech = "programming=3" -/obj/item/weapon/circuitboard/security - name = "circuit board (Security)" - build_path = /obj/machinery/computer/security -/obj/item/weapon/circuitboard/aicore - name = "circuit board (AI core)" - origin_tech = "programming=4;biotech=2" - board_type = "other" -/obj/item/weapon/circuitboard/aiupload - name = "circuit board (AI Upload)" - build_path = /obj/machinery/computer/upload/ai - origin_tech = "programming=4" -/obj/item/weapon/circuitboard/borgupload - name = "circuit board (Cyborg Upload)" - build_path = /obj/machinery/computer/upload/borg - origin_tech = "programming=4" -/obj/item/weapon/circuitboard/med_data - name = "circuit board (Medical Records Console)" - build_path = /obj/machinery/computer/med_data -/obj/item/weapon/circuitboard/pandemic - name = "circuit board (PanD.E.M.I.C. 2200)" - build_path = /obj/machinery/computer/pandemic - origin_tech = "programming=2;biotech=2" -/obj/item/weapon/circuitboard/scan_consolenew - name = "circuit board (DNA Machine)" - build_path = /obj/machinery/computer/scan_consolenew - origin_tech = "programming=2;biotech=2" -/obj/item/weapon/circuitboard/communications - name = "circuit board (Communications)" - build_path = /obj/machinery/computer/communications - origin_tech = "programming=2;magnets=2" - var/lastTimeUsed = 0 - -/obj/item/weapon/circuitboard/card - name = "circuit board (ID Console)" - build_path = /obj/machinery/computer/card -/obj/item/weapon/circuitboard/card/centcom - name = "circuit board (Centcom ID Console)" - build_path = /obj/machinery/computer/card/centcom -/obj/item/weapon/circuitboard/card/minor - name = "circuit board (Department Management Console)" - build_path = /obj/machinery/computer/card/minor - var/target_dept = 1 -//obj/item/weapon/circuitboard/shield -// name = "Circuit board (Shield Control)" -// build_path = /obj/machinery/computer/stationshield -/obj/item/weapon/circuitboard/teleporter - name = "circuit board (Teleporter)" - build_path = /obj/machinery/computer/teleporter - origin_tech = "programming=2;bluespace=2" -/obj/item/weapon/circuitboard/secure_data - name = "circuit board (Security Records Console)" - build_path = /obj/machinery/computer/secure_data -/obj/item/weapon/circuitboard/stationalert - name = "circuit board (Station Alerts)" - build_path = /obj/machinery/computer/station_alert -/*/obj/item/weapon/circuitboard/atmospheresiphonswitch - name = "circuit board (Atmosphere siphon control)" - build_path = /obj/machinery/computer/atmosphere/siphonswitch*/ -/obj/item/weapon/circuitboard/atmos_control - name = "circuit board (Atmospheric Monitor)" - build_path = /obj/machinery/computer/atmos_control -/obj/item/weapon/circuitboard/atmos_control/tank - name = "circuit board (Tank Control)" - build_path = /obj/machinery/computer/atmos_control/tank - origin_tech = "programming=2;engineering=3;materials=2" -/obj/item/weapon/circuitboard/atmos_alert - name = "circuit board (Atmospheric Alert)" - build_path = /obj/machinery/computer/atmos_alert -/obj/item/weapon/circuitboard/pod - name = "circuit board (Massdriver control)" - build_path = /obj/machinery/computer/pod -/obj/item/weapon/circuitboard/robotics - name = "circuit board (Robotics Control)" - build_path = /obj/machinery/computer/robotics - origin_tech = "programming=3" -/obj/item/weapon/circuitboard/cloning - name = "circuit board (Cloning)" - build_path = /obj/machinery/computer/cloning - origin_tech = "programming=3;biotech=3" -/obj/item/weapon/circuitboard/arcade/battle - name = "circuit board (Arcade Battle)" - build_path = /obj/machinery/computer/arcade/battle - origin_tech = "programming=1" -/obj/item/weapon/circuitboard/arcade/orion_trail - name = "circuit board (Orion Trail)" - build_path = /obj/machinery/computer/arcade/orion_trail -/obj/item/weapon/circuitboard/turbine_control - name = "circuit board (Turbine control)" - build_path = /obj/machinery/computer/turbine_computer -/obj/item/weapon/circuitboard/solar_control - name = "circuit board (Solar Control)" //name fixed 250810 - build_path = /obj/machinery/power/solar_control - origin_tech = "programming=2;powerstorage=2" -/obj/item/weapon/circuitboard/powermonitor - name = "circuit board (Power Monitor)" //name fixed 250810 - build_path = /obj/machinery/computer/monitor -/obj/item/weapon/circuitboard/olddoor - name = "circuit board (DoorMex)" - build_path = /obj/machinery/computer/pod/old -/obj/item/weapon/circuitboard/syndicatedoor - name = "circuit board (ProComp Executive)" - build_path = /obj/machinery/computer/pod/old/syndicate -/obj/item/weapon/circuitboard/swfdoor - name = "circuit board (Magix)" - build_path = /obj/machinery/computer/pod/old/swf -/obj/item/weapon/circuitboard/prisoner - name = "circuit board (Prisoner Management Console)" - build_path = /obj/machinery/computer/prisoner -/obj/item/weapon/circuitboard/rdconsole - name = "circuit board (RD Console)" - build_path = /obj/machinery/computer/rdconsole/core -/obj/item/weapon/circuitboard/mecha_control - name = "circuit board (Exosuit Control Console)" - build_path = /obj/machinery/computer/mecha -/obj/item/weapon/circuitboard/rdservercontrol - name = "circuit board (R&D Server Control)" - build_path = /obj/machinery/computer/rdservercontrol -/obj/item/weapon/circuitboard/crew - name = "circuit board (Crew Monitoring Console)" - build_path = /obj/machinery/computer/crew - origin_tech = "programming=3;biotech=2;magnets=2" -/obj/item/weapon/circuitboard/mech_bay_power_console - name = "circuit board (Mech Bay Power Control Console)" - build_path = /obj/machinery/computer/mech_bay_power_console - origin_tech = "programming=2;powerstorage=3" -/obj/item/weapon/circuitboard/cargo - name = "circuit board (Supply Console)" - build_path = /obj/machinery/computer/cargo - origin_tech = "programming=3" - var/contraband = 0 - var/emagged = 0 -/obj/item/weapon/circuitboard/cargo/request - name = "circuit board (Supply Request Console)" - build_path = /obj/machinery/computer/cargo/request -/obj/item/weapon/circuitboard/operating - name = "circuit board (Operating Computer)" - build_path = /obj/machinery/computer/operating - origin_tech = "programming=2;biotech=2" -/obj/item/weapon/circuitboard/mining - name = "circuit board (Outpost Status Display)" - build_path = /obj/machinery/computer/security/mining -/obj/item/weapon/circuitboard/comm_monitor - name = "circuit board (Telecommunications Monitor)" - build_path = /obj/machinery/computer/telecomms/monitor - origin_tech = "programming=3" -/obj/item/weapon/circuitboard/comm_server - name = "circuit board (Telecommunications Server Monitor)" - build_path = /obj/machinery/computer/telecomms/server - origin_tech = "programming=3" -/obj/item/weapon/circuitboard/shuttle - name = "circuit board (Shuttle)" - build_path = /obj/machinery/computer/shuttle - var/shuttleId - var/possible_destinations = "" -/obj/item/weapon/circuitboard/labor_shuttle - name = "circuit board (Labor Shuttle)" - build_path = /obj/machinery/computer/shuttle/labor -/obj/item/weapon/circuitboard/labor_shuttle/one_way - name = "circuit board (Prisoner Shuttle Console)" - build_path = /obj/machinery/computer/shuttle/labor/one_way -/obj/item/weapon/circuitboard/ferry - name = "circuit board (Transport Ferry)" - build_path = /obj/machinery/computer/shuttle/ferry -/obj/item/weapon/circuitboard/ferry/request - name = "circuit board (Transport Ferry Console)" - build_path = /obj/machinery/computer/shuttle/ferry/request -/obj/item/weapon/circuitboard/mining_shuttle - name = "circuit board (Mining Shuttle)" - build_path = /obj/machinery/computer/shuttle/mining -/obj/item/weapon/circuitboard/white_ship - name = "circuit board (White Ship)" - build_path = /obj/machinery/computer/shuttle/white_ship -/obj/item/weapon/circuitboard/holodeck// Not going to let people get this, but it's just here for future - name = "circuit board (Holodeck Control)" - build_path = /obj/machinery/computer/holodeck - origin_tech = "programming=4" -/obj/item/weapon/circuitboard/aifixer - name = "circuit board (AI Integrity Restorer)" - build_path = /obj/machinery/computer/aifixer - origin_tech = "programming=3;biotech=2" -/*/obj/item/weapon/circuitboard/prison_shuttle - name = "circuit board (Prison Shuttle)" - build_path = /obj/machinery/computer/prison_shuttle*/ -/obj/item/weapon/circuitboard/slot_machine - name = "circuit board (Slot Machine)" - build_path = /obj/machinery/computer/slot_machine - origin_tech = "programming=1" -/obj/item/weapon/circuitboard/libraryconsole - name = "circuit board (Library Visitor Console)" - build_path = /obj/machinery/computer/libraryconsole - origin_tech = "programming=1" - -/obj/item/weapon/circuitboard/card/minor/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/device/multitool)) - var/list/dept_list = list("general","security","medical","science","engineering") - var/choice = input("Currently set to [dept_list[target_dept]] personnel database. Changing to:","Multitool-Circuitboard interface") as null|anything in dept_list - if(choice) - target_dept = dept_list.Find(choice) - return - -/obj/item/weapon/circuitboard/cargo/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/device/multitool)) - if(!emagged) - contraband = !contraband - user << "Receiver spectrum set to [contraband ? "Broad" : "Standard"]." - else - user << "The spectrum chip is unresponsive." - if(istype(I,/obj/item/weapon/card/emag)) - if(!emagged) - contraband = TRUE - emagged = TRUE - user << "You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband." - -/obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/weapon/screwdriver)) - if(build_path == /obj/machinery/computer/rdconsole/core) - name = "circuit board (RD Console - Robotics)" - build_path = /obj/machinery/computer/rdconsole/robotics - user << "Access protocols successfully updated." - else - name = "circuit board (RD Console)" - build_path = /obj/machinery/computer/rdconsole/core - user << "Defaulting access protocols." - return - -/obj/item/weapon/circuitboard/libraryconsole/attackby(obj/item/I, mob/user, params) - if(istype(I,/obj/item/weapon/screwdriver)) - if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement) - name = "circuit board (Library Visitor Console)" - build_path = /obj/machinery/computer/libraryconsole - user << "Defaulting access protocols." - else - name = "circuit board (Book Inventory Management Console)" - build_path = /obj/machinery/computer/libraryconsole/bookmanagement - user << "Access protocols successfully updated." - return - -/obj/item/weapon/circuitboard/shuttle/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/device/multitool)) - var/chosen_id = round(input(usr, "Choose an ID number (-1 for reset):", "Input an Integer", null) as num|null) - if(chosen_id >= 0) - shuttleId = chosen_id - else - shuttleId = initial(shuttleId) - return - -/obj/structure/computerframe/attackby(obj/item/P, mob/user, params) +/obj/structure/frame/computer/attackby(obj/item/P, mob/user, params) add_fingerprint(user) switch(state) if(0) @@ -319,19 +37,19 @@ user << "You unfasten the frame." anchored = 0 state = 0 - if(istype(P, /obj/item/weapon/circuitboard) && !circuit) - var/obj/item/weapon/circuitboard/B = P - if(B.board_type == "computer") - if(!user.drop_item()) - return - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - user << "You place the circuit board inside the frame." - icon_state = "1" - circuit = P - circuit.add_fingerprint(user) - P.loc = null - else - user << "This frame does not accept circuit boards of this type!" + if(istype(P, /obj/item/weapon/circuitboard/computer) && !circuit) + if(!user.drop_item()) + return + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You place the circuit board inside the frame." + icon_state = "1" + circuit = P + circuit.add_fingerprint(user) + P.loc = null + + else if(istype(P, /obj/item/weapon/circuitboard) && !circuit) + user << "This frame does not accept circuit boards of this type!" + if(istype(P, /obj/item/weapon/screwdriver) && circuit) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) user << "You screw the circuit board into place." @@ -402,3 +120,291 @@ var/obj/B = new src.circuit.build_path (src.loc, circuit) transfer_fingerprints_to(B) qdel(src) + + + +/obj/item/weapon/circuitboard + name = "circuit board" + icon = 'icons/obj/module.dmi' + icon_state = "id_mod" + item_state = "electronic" + origin_tech = "programming=2" + materials = list(MAT_GLASS=1000) + w_class = 2 + var/build_path = null + +/obj/item/weapon/circuitboard/computer/turbine_computer + name = "circuit board (Turbine Computer)" + build_path = /obj/machinery/computer/turbine_computer + origin_tech = "programming=4;engineering=4;powerstorage=4" +/obj/item/weapon/circuitboard/computer/telesci_console + name = "circuit board (Telescience Console)" + build_path = /obj/machinery/computer/telescience + origin_tech = "programming=3;bluespace=2" +/obj/item/weapon/circuitboard/computer/message_monitor + name = "circuit board (Message Monitor)" + build_path = /obj/machinery/computer/message_monitor + origin_tech = "programming=3" +/obj/item/weapon/circuitboard/computer/security + name = "circuit board (Security Cameras)" + build_path = /obj/machinery/computer/security + +/obj/item/weapon/circuitboard/computer/aiupload + name = "circuit board (AI Upload)" + build_path = /obj/machinery/computer/upload/ai + origin_tech = "programming=4" +/obj/item/weapon/circuitboard/computer/borgupload + name = "circuit board (Cyborg Upload)" + build_path = /obj/machinery/computer/upload/borg + origin_tech = "programming=4" +/obj/item/weapon/circuitboard/computer/med_data + name = "circuit board (Medical Records Console)" + build_path = /obj/machinery/computer/med_data +/obj/item/weapon/circuitboard/computer/pandemic + name = "circuit board (PanD.E.M.I.C. 2200)" + build_path = /obj/machinery/computer/pandemic + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/scan_consolenew + name = "circuit board (DNA Machine)" + build_path = /obj/machinery/computer/scan_consolenew + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/communications + name = "circuit board (Communications)" + build_path = /obj/machinery/computer/communications + origin_tech = "programming=2;magnets=2" + var/lastTimeUsed = 0 + +/obj/item/weapon/circuitboard/computer/card + name = "circuit board (ID Console)" + build_path = /obj/machinery/computer/card +/obj/item/weapon/circuitboard/computer/card/centcom + name = "circuit board (Centcom ID Console)" + build_path = /obj/machinery/computer/card/centcom + +/obj/item/weapon/circuitboard/computer/card/minor + name = "circuit board (Department Management Console)" + build_path = /obj/machinery/computer/card/minor + var/target_dept = 1 + var/list/dept_list = list("General","Security","Medical","Science","Engineering") + +/obj/item/weapon/circuitboard/computer/card/minor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + target_dept = (target_dept == dept_list.len) ? 1 : (target_dept + 1) + user << "You set the board to \"[dept_list[target_dept]]\"." + else + return ..() + +/obj/item/weapon/circuitboard/computer/card/minor/examine(user) + ..() + user << "Currently set to \"[dept_list[target_dept]]\"." + +//obj/item/weapon/circuitboard/computer/shield +// name = "Circuit board (Shield Control)" +// build_path = /obj/machinery/computer/stationshield +/obj/item/weapon/circuitboard/computer/teleporter + name = "circuit board (Teleporter)" + build_path = /obj/machinery/computer/teleporter + origin_tech = "programming=2;bluespace=2" +/obj/item/weapon/circuitboard/computer/secure_data + name = "circuit board (Security Records Console)" + build_path = /obj/machinery/computer/secure_data +/obj/item/weapon/circuitboard/computer/stationalert + name = "circuit board (Station Alerts)" + build_path = /obj/machinery/computer/station_alert +/*/obj/item/weapon/circuitboard/computer/atmospheresiphonswitch + name = "circuit board (Atmosphere siphon control)" + build_path = /obj/machinery/computer/atmosphere/siphonswitch*/ +/obj/item/weapon/circuitboard/computer/atmos_control + name = "circuit board (Atmospheric Monitor)" + build_path = /obj/machinery/computer/atmos_control +/obj/item/weapon/circuitboard/computer/atmos_control/tank + name = "circuit board (Tank Control)" + build_path = /obj/machinery/computer/atmos_control/tank + origin_tech = "programming=2;engineering=3;materials=2" +/obj/item/weapon/circuitboard/computer/atmos_alert + name = "circuit board (Atmospheric Alert)" + build_path = /obj/machinery/computer/atmos_alert +/obj/item/weapon/circuitboard/computer/pod + name = "circuit board (Massdriver control)" + build_path = /obj/machinery/computer/pod +/obj/item/weapon/circuitboard/computer/robotics + name = "circuit board (Robotics Control)" + build_path = /obj/machinery/computer/robotics + origin_tech = "programming=3" +/obj/item/weapon/circuitboard/computer/cloning + name = "circuit board (Cloning)" + build_path = /obj/machinery/computer/cloning + origin_tech = "programming=3;biotech=3" +/obj/item/weapon/circuitboard/computer/arcade/battle + name = "circuit board (Arcade Battle)" + build_path = /obj/machinery/computer/arcade/battle + origin_tech = "programming=1" +/obj/item/weapon/circuitboard/computer/arcade/orion_trail + name = "circuit board (Orion Trail)" + build_path = /obj/machinery/computer/arcade/orion_trail +/obj/item/weapon/circuitboard/computer/turbine_control + name = "circuit board (Turbine control)" + build_path = /obj/machinery/computer/turbine_computer +/obj/item/weapon/circuitboard/computer/solar_control + name = "circuit board (Solar Control)" //name fixed 250810 + build_path = /obj/machinery/power/solar_control + origin_tech = "programming=2;powerstorage=2" +/obj/item/weapon/circuitboard/computer/powermonitor + name = "circuit board (Power Monitor)" //name fixed 250810 + build_path = /obj/machinery/computer/monitor +/obj/item/weapon/circuitboard/computer/olddoor + name = "circuit board (DoorMex)" + build_path = /obj/machinery/computer/pod/old +/obj/item/weapon/circuitboard/computer/syndicatedoor + name = "circuit board (ProComp Executive)" + build_path = /obj/machinery/computer/pod/old/syndicate +/obj/item/weapon/circuitboard/computer/swfdoor + name = "circuit board (Magix)" + build_path = /obj/machinery/computer/pod/old/swf +/obj/item/weapon/circuitboard/computer/prisoner + name = "circuit board (Prisoner Management Console)" + build_path = /obj/machinery/computer/prisoner + + +/obj/item/weapon/circuitboard/computer/rdconsole + name = "circuit board (RD Console)" + build_path = /obj/machinery/computer/rdconsole/core + +/obj/item/weapon/circuitboard/computer/rdconsole/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/weapon/screwdriver)) + if(build_path == /obj/machinery/computer/rdconsole/core) + name = "circuit board (RD Console - Robotics)" + build_path = /obj/machinery/computer/rdconsole/robotics + user << "Access protocols successfully updated." + else + name = "circuit board (RD Console)" + build_path = /obj/machinery/computer/rdconsole/core + user << "Defaulting access protocols." + else + return ..() + +/obj/item/weapon/circuitboard/computer/mecha_control + name = "circuit board (Exosuit Control Console)" + build_path = /obj/machinery/computer/mecha +/obj/item/weapon/circuitboard/computer/rdservercontrol + name = "circuit board (R&D Server Control)" + build_path = /obj/machinery/computer/rdservercontrol +/obj/item/weapon/circuitboard/computer/crew + name = "circuit board (Crew Monitoring Console)" + build_path = /obj/machinery/computer/crew + origin_tech = "programming=3;biotech=2;magnets=2" +/obj/item/weapon/circuitboard/computer/mech_bay_power_console + name = "circuit board (Mech Bay Power Control Console)" + build_path = /obj/machinery/computer/mech_bay_power_console + origin_tech = "programming=2;powerstorage=3" + +/obj/item/weapon/circuitboard/computer/cargo + name = "circuit board (Supply Console)" + build_path = /obj/machinery/computer/cargo + origin_tech = "programming=3" + var/contraband = 0 + var/emagged = 0 + +/obj/item/weapon/circuitboard/computer/cargo/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/device/multitool)) + if(!emagged) + contraband = !contraband + user << "Receiver spectrum set to [contraband ? "Broad" : "Standard"]." + else + user << "The spectrum chip is unresponsive." + else if(istype(I,/obj/item/weapon/card/emag)) + if(!emagged) + contraband = TRUE + emagged = TRUE + user << "You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband." + else + return ..() + + +/obj/item/weapon/circuitboard/computer/cargo/request + name = "circuit board (Supply Request Console)" + build_path = /obj/machinery/computer/cargo/request + +/obj/item/weapon/circuitboard/computer/operating + name = "circuit board (Operating Computer)" + build_path = /obj/machinery/computer/operating + origin_tech = "programming=2;biotech=2" +/obj/item/weapon/circuitboard/computer/mining + name = "circuit board (Outpost Status Display)" + build_path = /obj/machinery/computer/security/mining +/obj/item/weapon/circuitboard/computer/comm_monitor + name = "circuit board (Telecommunications Monitor)" + build_path = /obj/machinery/computer/telecomms/monitor + origin_tech = "programming=3" +/obj/item/weapon/circuitboard/computer/comm_server + name = "circuit board (Telecommunications Server Monitor)" + build_path = /obj/machinery/computer/telecomms/server + origin_tech = "programming=3" + +/obj/item/weapon/circuitboard/computer/shuttle + name = "circuit board (Shuttle)" + build_path = /obj/machinery/computer/shuttle + var/shuttleId + var/possible_destinations = "" + +/obj/item/weapon/circuitboard/computer/shuttle/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/multitool)) + var/chosen_id = round(input(usr, "Choose an ID number (-1 for reset):", "Input an Integer", null) as num|null) + if(chosen_id >= 0) + shuttleId = chosen_id + else + shuttleId = initial(shuttleId) + else + return ..() + +/obj/item/weapon/circuitboard/computer/labor_shuttle + name = "circuit board (Labor Shuttle)" + build_path = /obj/machinery/computer/shuttle/labor +/obj/item/weapon/circuitboard/computer/labor_shuttle/one_way + name = "circuit board (Prisoner Shuttle Console)" + build_path = /obj/machinery/computer/shuttle/labor/one_way +/obj/item/weapon/circuitboard/computer/ferry + name = "circuit board (Transport Ferry)" + build_path = /obj/machinery/computer/shuttle/ferry +/obj/item/weapon/circuitboard/computer/ferry/request + name = "circuit board (Transport Ferry Console)" + build_path = /obj/machinery/computer/shuttle/ferry/request +/obj/item/weapon/circuitboard/computer/mining_shuttle + name = "circuit board (Mining Shuttle)" + build_path = /obj/machinery/computer/shuttle/mining +/obj/item/weapon/circuitboard/computer/white_ship + name = "circuit board (White Ship)" + build_path = /obj/machinery/computer/shuttle/white_ship +/obj/item/weapon/circuitboard/computer/holodeck// Not going to let people get this, but it's just here for future + name = "circuit board (Holodeck Control)" + build_path = /obj/machinery/computer/holodeck + origin_tech = "programming=4" +/obj/item/weapon/circuitboard/computer/aifixer + name = "circuit board (AI Integrity Restorer)" + build_path = /obj/machinery/computer/aifixer + origin_tech = "programming=3;biotech=2" +/*/obj/item/weapon/circuitboard/computer/prison_shuttle + name = "circuit board (Prison Shuttle)" + build_path = /obj/machinery/computer/prison_shuttle*/ +/obj/item/weapon/circuitboard/computer/slot_machine + name = "circuit board (Slot Machine)" + build_path = /obj/machinery/computer/slot_machine + origin_tech = "programming=1" + +/obj/item/weapon/circuitboard/computer/libraryconsole + name = "circuit board (Library Visitor Console)" + build_path = /obj/machinery/computer/libraryconsole + origin_tech = "programming=1" + +/obj/item/weapon/circuitboard/computer/libraryconsole/attackby(obj/item/I, mob/user, params) + if(istype(I,/obj/item/weapon/screwdriver)) + if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement) + name = "circuit board (Library Visitor Console)" + build_path = /obj/machinery/computer/libraryconsole + user << "Defaulting access protocols." + else + name = "circuit board (Book Inventory Management Console)" + build_path = /obj/machinery/computer/libraryconsole/bookmanagement + user << "Access protocols successfully updated." + else + return ..() \ No newline at end of file diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 0bdb44931a3..c13ba3af2c4 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -3,7 +3,7 @@ desc = "Used to access the various cameras on the station." icon_screen = "cameras" icon_keyboard = "security_key" - circuit = /obj/item/weapon/circuitboard/security + circuit = /obj/item/weapon/circuitboard/computer/security var/last_pic = 1 var/list/network = list("SS13") var/mapping = 0//For the overview file, interesting bit of code. @@ -177,4 +177,4 @@ icon_screen = "mining" icon_keyboard = "mining_key" network = list("MINE") - circuit = "/obj/item/weapon/circuitboard/mining" + circuit = /obj/item/weapon/circuitboard/computer/mining diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index df02f37b5cb..0bbbeda6165 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -10,7 +10,7 @@ var/time_last_changed_position = 0 icon_screen = "id" icon_keyboard = "id_key" req_one_access = list(access_heads, access_change_ids) - circuit = /obj/item/weapon/circuitboard/card + circuit = /obj/item/weapon/circuitboard/computer/card var/obj/item/weapon/card/id/scan = null var/obj/item/weapon/card/id/modify = null var/authenticated = 0 @@ -483,18 +483,18 @@ var/time_last_changed_position = 0 /obj/machinery/computer/card/centcom name = "\improper Centcom identification console" - circuit = /obj/item/weapon/circuitboard/card/centcom + circuit = /obj/item/weapon/circuitboard/computer/card/centcom req_access = list(access_cent_captain) /obj/machinery/computer/card/minor name = "department management console" desc = "You can use this to change ID's for specific departments." icon_screen = "idminor" - circuit = /obj/item/weapon/circuitboard/card/minor + circuit = /obj/item/weapon/circuitboard/computer/card/minor /obj/machinery/computer/card/minor/New() ..() - var/obj/item/weapon/circuitboard/card/minor/typed_circuit = circuit + var/obj/item/weapon/circuitboard/computer/card/minor/typed_circuit = circuit if(target_dept) typed_circuit.target_dept = target_dept else diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index fc252a50ab4..dc0b949a187 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -4,7 +4,7 @@ desc = "Used to clone people and manage DNA." icon_screen = "dna" icon_keyboard = "med_key" - circuit = /obj/item/weapon/circuitboard/cloning + circuit = /obj/item/weapon/circuitboard/computer/cloning req_access = list(access_heads) //Only used for record deletion right now. var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. var/obj/machinery/clonepod/pod1 = null //Linked cloning pod. diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index e2a77542cee..4416ed3e8e3 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -9,7 +9,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 icon_screen = "comm" icon_keyboard = "tech_key" req_access = list(access_heads) - circuit = /obj/item/weapon/circuitboard/communications + circuit = /obj/item/weapon/circuitboard/computer/communications var/authenticated = 0 var/auth_id = "Unknown" //Who is currently logged in? var/list/messagetitle = list() @@ -57,7 +57,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 if(!href_list["operation"]) return - var/obj/item/weapon/circuitboard/communications/CM = circuit + var/obj/item/weapon/circuitboard/computer/communications/CM = circuit switch(href_list["operation"]) // main interface if("main") @@ -611,5 +611,5 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 return ..() /obj/machinery/computer/communications/proc/overrideCooldown() - var/obj/item/weapon/circuitboard/communications/CM = circuit + var/obj/item/weapon/circuitboard/computer/communications/CM = circuit CM.lastTimeUsed = 0 \ No newline at end of file diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 1ae36a3a43d..35ca17a8641 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -7,7 +7,7 @@ use_power = 1 idle_power_usage = 300 active_power_usage = 300 - var/obj/item/weapon/circuitboard/circuit = null // if circuit==null, computer can't disassembly + var/obj/item/weapon/circuitboard/computer/circuit = null // if circuit==null, computer can't disassembly var/processing = 0 var/brightness_on = 2 var/icon_keyboard = "generic_key" @@ -18,9 +18,8 @@ ..(location) if(C && istype(C)) circuit = C - else - if(circuit) - circuit = new circuit(null) + else if(circuit) + circuit = new circuit(null) power_change() update_icon() @@ -85,7 +84,7 @@ user << " You start to disconnect the monitor..." if(do_after(user, 20/I.toolspeed, target = src)) deconstruction() - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) + var/obj/structure/frame/computer/A = new /obj/structure/frame/computer( src.loc ) A.circuit = circuit A.anchored = 1 circuit = null diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index ad992d3aba3..ab820645505 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -6,7 +6,7 @@ use_power = 1 idle_power_usage = 250 active_power_usage = 500 - circuit = "/obj/item/weapon/circuitboard/crew" + circuit = /obj/item/weapon/circuitboard/computer/crew /obj/machinery/computer/crew/attack_ai(mob/user) if(stat & (BROKEN|NOPOWER)) diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index e2a29dfe536..597b90129a7 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -22,7 +22,7 @@ icon_screen = "dna" icon_keyboard = "med_key" density = 1 - circuit = /obj/item/weapon/circuitboard/scan_consolenew + circuit = /obj/item/weapon/circuitboard/computer/scan_consolenew var/radduration = 2 var/radstrength = 1 diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index 292fc7163b6..3c066205601 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -33,7 +33,7 @@ /obj/machinery/computer/upload/ai name = "\improper AI upload console" desc = "Used to upload laws to the AI." - circuit = /obj/item/weapon/circuitboard/aiupload + circuit = /obj/item/weapon/circuitboard/computer/aiupload /obj/machinery/computer/upload/ai/attack_hand(mob/user) if(..()) @@ -57,7 +57,7 @@ /obj/machinery/computer/upload/borg name = "cyborg upload console" desc = "Used to upload laws to Cyborgs." - circuit = /obj/item/weapon/circuitboard/borgupload + circuit = /obj/item/weapon/circuitboard/computer/borgupload /obj/machinery/computer/upload/borg/attack_hand(mob/user) if(..()) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index b3e94a26be5..51c0c3e8264 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -6,7 +6,7 @@ icon_screen = "medcomp" icon_keyboard = "med_key" req_one_access = list(access_medical, access_forensics_lockers) - circuit = /obj/item/weapon/circuitboard/med_data + circuit = /obj/item/weapon/circuitboard/computer/med_data var/obj/item/weapon/card/id/scan = null var/authenticated = null var/rank = null diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index cab29214d2e..8a74f5f09ee 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -8,7 +8,7 @@ name = "message monitor console" desc = "Used to Monitor the crew's messages, that are sent via PDA. Can also be used to view Request Console messages." icon_screen = "comm_logs" - circuit = /obj/item/weapon/circuitboard/message_monitor + circuit = /obj/item/weapon/circuitboard/computer/message_monitor //Server linked to. var/obj/machinery/message_server/linkedServer = null //Sparks effect - For emag diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index ab5a89b97e9..8a837a5af5a 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -4,7 +4,6 @@ icon_screen = "explosive" icon_keyboard = "security_key" req_access = list(access_brig) - circuit = "/obj/item/weapon/circuitboard/prisoner" var/id = 0 var/temp = null var/status = 0 @@ -12,7 +11,7 @@ var/stop = 0 var/screen = 0 // 0 - No Access Denied, 1 - Access allowed var/obj/item/weapon/card/id/prisoner/inserted_id - circuit = /obj/item/weapon/circuitboard/prisoner + circuit = /obj/item/weapon/circuitboard/computer/prisoner /obj/machinery/computer/prisoner/attack_hand(mob/user) if(..()) diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index a71bb8d789a..1348622a0ff 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -7,7 +7,7 @@ icon_screen = "robot" icon_keyboard = "rd_key" req_access = list(access_robotics) - circuit = /obj/item/weapon/circuitboard/robotics + circuit = /obj/item/weapon/circuitboard/computer/robotics var/temp = null /obj/machinery/computer/robotics/proc/can_control(mob/user, mob/living/silicon/robot/R) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index a1bf31d718e..cd113558b7c 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -6,7 +6,7 @@ icon_screen = "security" icon_keyboard = "security_key" req_one_access = list(access_security, access_forensics_lockers) - circuit = /obj/item/weapon/circuitboard/secure_data + circuit = /obj/item/weapon/circuitboard/computer/secure_data var/obj/item/weapon/card/id/scan = null var/authenticated = null var/rank = null diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index 70442f0dbbc..b6e5672e8f3 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -3,7 +3,7 @@ desc = "Used to access the station's automated alert system." icon_screen = "alert:0" icon_keyboard = "atmos_key" - circuit = /obj/item/weapon/circuitboard/stationalert + circuit = /obj/item/weapon/circuitboard/computer/stationalert var/alarms = list("Fire" = list(), "Atmosphere" = list(), "Power" = list()) /obj/machinery/computer/station_alert/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 1732f1ea7fb..cc914875006 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -1,67 +1,78 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -/obj/machinery/constructable_frame //Made into a seperate type to make future revisions easier. - name = "machine frame" +/obj/structure/frame + name = "frame" icon = 'icons/obj/stock_parts.dmi' icon_state = "box_0" density = 1 anchored = 1 - use_power = 0 var/obj/item/weapon/circuitboard/circuit = null + var/state = 1 + +/obj/structure/frame/examine(user) + ..() + if(circuit) + user << "It has \a [circuit] installed." + +/obj/structure/frame/machine + name = "machine frame" var/list/components = null var/list/req_components = null var/list/req_component_names = null // user-friendly names of components - var/state = 1 -// unfortunately, we have to instance the objects really quickly to get the names -// fortunately, this is only called once when the board is added and the items are immediately GC'd -// and none of the parts do much in their constructors -/obj/machinery/constructable_frame/proc/update_namelist() +/obj/structure/frame/machine/examine(user) + ..() + if(state == 3 && req_components && req_component_names) + var/hasContent = 0 + var/requires = "It requires" + + for(var/i = 1 to req_components.len) + var/tname = req_components[i] + var/amt = req_components[tname] + if(amt == 0) + continue + var/use_and = i == req_components.len + requires += "[(hasContent ? (use_and ? ", and" : ",") : "")] [amt] [amt == 1 ? req_component_names[tname] : "[req_component_names[tname]]\s"]" + hasContent = 1 + + if(hasContent) + user << requires + "." + else + user << "It does not require any more components." + +/obj/structure/frame/machine/proc/update_namelist() if(!req_components) return req_component_names = new() for(var/tname in req_components) - var/path = tname - var/obj/O = new path() - req_component_names[tname] = O.name + if(ispath(tname, /obj/item/stack)) + var/obj/item/stack/S = tname + var/singular_name = initial(S.singular_name) + if(singular_name) + req_component_names[tname] = singular_name + else + req_component_names[tname] = initial(S.name) + else + var/obj/O = tname + req_component_names[tname] = initial(O.name) -/obj/machinery/constructable_frame/proc/get_req_components_amt() +/obj/structure/frame/machine/proc/get_req_components_amt() var/amt = 0 for(var/path in req_components) amt += req_components[path] return amt -// update description of required components remaining -/obj/machinery/constructable_frame/proc/update_req_desc() - if(!req_components || !req_component_names) - return - - var/hasContent = 0 - desc = "Requires" - for(var/i = 1 to req_components.len) - var/tname = req_components[i] - var/amt = req_components[tname] - if(amt == 0) - continue - var/use_and = i == req_components.len - desc += "[(hasContent ? (use_and ? ", and" : ",") : "")] [amt] [amt == 1 ? req_component_names[tname] : "[req_component_names[tname]]\s"]" - hasContent = 1 - - if(!hasContent) - desc = "Does not require any more components." - else - desc += "." - -/obj/machinery/constructable_frame/machine_frame/attackby(obj/item/P, mob/user, params) +/obj/structure/frame/machine/attackby(obj/item/P, mob/user, params) if(P.crit_fail) user << "This part is faulty, you cannot add this to the machine!" return switch(state) if(1) - if(istype(P, /obj/item/weapon/circuitboard)) + if(istype(P, /obj/item/weapon/circuitboard/machine)) user << "The frame needs wiring first!" - return + + else if(istype(P, /obj/item/weapon/circuitboard)) + user << "This frame does not accept circuit boards of this type!" + if(istype(P, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = P if(C.get_amount() >= 5) @@ -102,26 +113,26 @@ user << "You [anchored ? "un" : ""]secure [name]." anchored = !anchored - if(istype(P, /obj/item/weapon/circuitboard)) + if(istype(P, /obj/item/weapon/circuitboard/machine)) if(!anchored) user << "The frame needs to be secured first!" return - var/obj/item/weapon/circuitboard/B = P - if(B.board_type == "machine") - if(!user.drop_item()) - return - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - user << "You add the circuit board to the frame." - circuit = P - P.loc = src - icon_state = "box_2" - state = 3 - components = list() - req_components = circuit.req_components.Copy() - update_namelist() - update_req_desc() - else - user << "This frame does not accept circuit boards of this type!" + var/obj/item/weapon/circuitboard/machine/B = P + if(!user.drop_item()) + return + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << "You add the circuit board to the frame." + circuit = B + B.loc = src + icon_state = "box_2" + state = 3 + components = list() + req_components = B.req_components.Copy() + update_namelist() + + else if(istype(P, /obj/item/weapon/circuitboard)) + user << "This frame does not accept circuit boards of this type!" + if(istype(P, /obj/item/weapon/wirecutters)) playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) user << "You remove the cables." @@ -191,31 +202,35 @@ for(var/obj/item/weapon/stock_parts/part in added_components) components += part user << "[part.name] applied." - replacer.play_rped_sound() - - update_req_desc() + if(added_components.len) + replacer.play_rped_sound() return if(istype(P, /obj/item) && get_req_components_amt()) for(var/I in req_components) if(istype(P, I) && (req_components[I] > 0)) - if(istype(P, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CP = P - var/cable_color = CP.item_color - if(CP.use(1)) - var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src, 1, cable_color) - components += CC - req_components[I]-- - update_req_desc() - else - user << "You need more cable!" + if(istype(P, /obj/item/stack)) + var/obj/item/stack/S = P + var/used_amt = min(round(S.get_amount()), req_components[I]) + + if(used_amt && S.use(used_amt)) + var/obj/item/stack/NS = locate(S.merge_type) in components + + if(!NS) + NS = new S.merge_type(src, used_amt) + components += NS + else + NS.add(used_amt) + + req_components[I] -= used_amt + user << "You add [P] to [src]." return if(!user.drop_item()) break + user << "You add [P] to [src]." P.loc = src components += P req_components[I]-- - update_req_desc() return 1 user << "You cannot add that to the machine!" return 0 @@ -224,318 +239,61 @@ //Machine Frame Circuit Boards /*Common Parts: Parts List: Ignitor, Timer, Infra-red laser, Infra-red sensor, t_scanner, Capacitor, Valve, sensor unit, micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells. -Note: Once everything is added to the public areas, will add m_amt and g_amt to circuit boards since autolathe won't be able -to destroy them and players will be able to make replacements. */ -/obj/item/weapon/circuitboard/vendor - name = "circuit board (Booze-O-Mat Vendor)" - build_path = /obj/machinery/vending/boozeomat - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/vending_refill/boozeomat = 3) +/obj/item/weapon/circuitboard/machine + var/list/req_components = null - var/list/names_paths = list(/obj/machinery/vending/boozeomat = "Booze-O-Mat", - /obj/machinery/vending/coffee = "Solar's Best Hot Drinks", - /obj/machinery/vending/snack = "Getmore Chocolate Corp", - /obj/machinery/vending/cola = "Robust Softdrinks", - /obj/machinery/vending/cigarette = "ShadyCigs Deluxe", - /obj/machinery/vending/autodrobe = "AutoDrobe") +/obj/item/weapon/circuitboard/machine/proc/apply_default_parts(obj/machinery/M) + if(!req_components) + return -/obj/item/weapon/circuitboard/vendor/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/screwdriver)) - set_type(pick(names_paths), user) + M.component_parts = list(src) + loc = null + + for(var/comp_path in req_components) + var/comp_amt = req_components[comp_path] + if(!comp_amt) + continue + + if(ispath(comp_path, /obj/item/stack)) + M.component_parts += new comp_path(null, comp_amt) + else + for(var/i in 1 to comp_amt) + M.component_parts += new comp_path(null) + + M.RefreshParts() -/obj/item/weapon/circuitboard/vendor/proc/set_type(typepath, mob/user) - build_path = typepath - name = "circuit board ([names_paths[build_path]] Vendor)" - user << "You set the board to [names_paths[build_path]]." - req_components = list(text2path("/obj/item/weapon/vending_refill/[copytext("[build_path]", 24)]") = 3) //Never before has i used a method as horrible as this one, im so sorry - -/obj/item/weapon/circuitboard/announcement_system - name = "circuit board (Announcement System)" - build_path = /obj/machinery/announcement_system - board_type = "machine" - origin_tech = "programming=3;bluespace=2" - req_components = list( - /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/item/weapon/circuitboard/smes +/obj/item/weapon/circuitboard/machine/smes name = "circuit board (SMES)" build_path = /obj/machinery/power/smes - board_type = "machine" origin_tech = "programming=4;powerstorage=5;engineering=5" req_components = list( /obj/item/stack/cable_coil = 5, /obj/item/weapon/stock_parts/cell = 5, /obj/item/weapon/stock_parts/capacitor = 1) -/obj/item/weapon/circuitboard/emitter - name = "circuit board (Emitter)" - build_path = /obj/machinery/power/emitter - board_type = "machine" - origin_tech = "programming=4;powerstorage=5;engineering=5" - req_components = list( - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - -/obj/item/weapon/circuitboard/power_compressor - name = "circuit board (Power Compressor)" - build_path = /obj/machinery/power/compressor - board_type = "machine" - origin_tech = "programming=4;powerstorage=5;engineering=4" - req_components = list( - /obj/item/stack/cable_coil = 5, - /obj/item/weapon/stock_parts/manipulator = 6) - -/obj/item/weapon/circuitboard/power_turbine - name = "circuit board (Power Turbine)" - build_path = /obj/machinery/power/turbine - board_type = "machine" - origin_tech = "programming=4;powerstorage=4;engineering=5" - req_components = list( - /obj/item/stack/cable_coil = 5, - /obj/item/weapon/stock_parts/capacitor = 6) - -/obj/item/weapon/circuitboard/mech_recharger - name = "circuit board (Mechbay Recharger)" - build_path = /obj/machinery/mech_bay_recharge_port - board_type = "machine" - origin_tech = "programming=3;powerstorage=4;engineering=4" - req_components = list( - /obj/item/stack/cable_coil = 1, - /obj/item/weapon/stock_parts/capacitor = 5) - -/obj/item/weapon/circuitboard/teleporter_hub +/obj/item/weapon/circuitboard/machine/teleporter_hub name = "circuit board (Teleporter Hub)" build_path = /obj/machinery/teleport/hub - board_type = "machine" origin_tech = "programming=3;engineering=5;bluespace=5;materials=4" req_components = list( /obj/item/weapon/ore/bluespace_crystal = 3, /obj/item/weapon/stock_parts/matter_bin = 1) -/obj/item/weapon/circuitboard/teleporter_station +/obj/item/weapon/circuitboard/machine/teleporter_station name = "circuit board (Teleporter Station)" build_path = /obj/machinery/teleport/station - board_type = "machine" origin_tech = "programming=4;engineering=4;bluespace=4" req_components = list( /obj/item/weapon/ore/bluespace_crystal = 2, /obj/item/weapon/stock_parts/capacitor = 2, /obj/item/weapon/stock_parts/console_screen = 1) -/obj/item/weapon/circuitboard/telesci_pad - name = "circuit board (Telepad)" - build_path = /obj/machinery/telepad - board_type = "machine" - origin_tech = "programming=4;engineering=3;materials=3;bluespace=4" - req_components = list( - /obj/item/weapon/ore/bluespace_crystal = 2, - /obj/item/weapon/stock_parts/capacitor = 1, - /obj/item/stack/cable_coil = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/item/weapon/circuitboard/sleeper - name = "circuit board (Sleeper)" - build_path = /obj/machinery/sleeper - board_type = "machine" - origin_tech = "programming=3;biotech=2;engineering=3;materials=3" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/stack/cable_coil = 1, - /obj/item/weapon/stock_parts/console_screen = 2) - -/obj/item/weapon/circuitboard/cryo_tube - name = "circuit board (Cryotube)" - build_path = /obj/machinery/atmospherics/components/unary/cryo_cell - board_type = "machine" - origin_tech = "programming=4;biotech=3;engineering=4" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/stack/cable_coil = 1, - /obj/item/weapon/stock_parts/console_screen = 4) - -/obj/item/weapon/circuitboard/thermomachine - name = "circuit board (Thermomachine)" - desc = "You can use a screwdriver to switch between heater and freezer." - board_type = "machine" - origin_tech = "programming=3;plasmatech=3" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 2, - /obj/item/weapon/stock_parts/micro_laser = 2, - /obj/item/stack/cable_coil = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/item/weapon/circuitboard/thermomachine/attackby(obj/item/I, mob/user, params) - var/obj/item/weapon/circuitboard/freezer = /obj/item/weapon/circuitboard/thermomachine/freezer - var/obj/item/weapon/circuitboard/heater = /obj/item/weapon/circuitboard/thermomachine/heater - var/obj/item/weapon/circuitboard/newtype - - if(istype(I, /obj/item/weapon/screwdriver)) - var/new_setting = "Heater" - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(build_path == initial(heater.build_path)) - newtype = freezer - new_setting = "Freezer" - else - newtype = heater - name = initial(newtype.name) - build_path = initial(newtype.build_path) - user << "You change the circuitboard setting to \"[new_setting]\"." - -/obj/item/weapon/circuitboard/thermomachine/freezer - name = "circuit board (Freezer)" - build_path = /obj/machinery/atmospherics/components/unary/thermomachine/freezer - -/obj/item/weapon/circuitboard/thermomachine/heater - name = "circuit board (Heater)" - build_path = /obj/machinery/atmospherics/components/unary/thermomachine/heater - -/obj/item/weapon/circuitboard/space_heater - name = "circuit board (Space Heater)" - build_path = /obj/machinery/space_heater - board_type = "machine" - origin_tech = "programming=2;engineering=2" - req_components = list( - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/capacitor = 1, - /obj/item/stack/cable_coil = 3) - -/obj/item/weapon/circuitboard/biogenerator - name = "circuit board (Biogenerator)" - build_path = /obj/machinery/biogenerator - board_type = "machine" - origin_tech = "programming=3;biotech=2;materials=3" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/stack/cable_coil = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/item/weapon/circuitboard/hydroponics - name = "circuit board (Hydroponics Tray)" - build_path = /obj/machinery/hydroponics/constructable - board_type = "machine" - origin_tech = "programming=1;biotech=1" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 2, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/item/weapon/circuitboard/microwave - name = "circuit board (Microwave)" - build_path = /obj/machinery/microwave - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/item/weapon/circuitboard/gibber - name = "circuit board (Gibber)" - build_path = /obj/machinery/gibber - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - -/obj/item/weapon/circuitboard/tesla_coil - name = "circuit board (Tesla Coil)" - build_path = /obj/machinery/power/tesla_coil - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/capacitor = 1) - -/obj/item/weapon/circuitboard/grounding_rod - name = "circuit board (Grounding Rod)" - build_path = /obj/machinery/power/grounding_rod - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/capacitor = 1) - -/obj/item/weapon/circuitboard/processor - name = "circuit board (Food processor)" - build_path = /obj/machinery/processor - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - -/obj/item/weapon/circuitboard/recycler - name = "circuit board (Recycler)" - build_path = /obj/machinery/recycler - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - -/obj/item/weapon/circuitboard/seed_extractor - name = "circuit board (Seed Extractor)" - build_path = /obj/machinery/seed_extractor - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - -/obj/item/weapon/circuitboard/smartfridge - name = "circuit board (Smartfridge)" - build_path = /obj/machinery/smartfridge - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1) - -/obj/item/weapon/circuitboard/smartfridge/New(loc, new_type) - if(new_type) - build_path = new_type - -/obj/item/weapon/circuitboard/smartfridge/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/screwdriver)) - var/list/fridges = list(/obj/machinery/smartfridge = "default", - /obj/machinery/smartfridge/drinks = "drinks", - /obj/machinery/smartfridge/extract = "slimes", - /obj/machinery/smartfridge/chemistry = "chems", - /obj/machinery/smartfridge/chemistry/virology = "viruses") - - var/position = fridges.Find(build_path, fridges) - position = (position == fridges.len) ? 1 : (position + 1) - build_path = fridges[position] - user << "You set the board to [fridges[build_path]]." - -/obj/item/weapon/circuitboard/monkey_recycler - name = "circuit board (Monkey Recycler)" - build_path = /obj/machinery/monkey_recycler - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1) - -/obj/item/weapon/circuitboard/holopad - name = "circuit board (AI Holopad)" - build_path = /obj/machinery/hologram/holopad - board_type = "machine" - origin_tech = "programming=1" - req_components = list( - /obj/item/weapon/stock_parts/capacitor = 1) - -/obj/item/weapon/circuitboard/chem_dispenser +/obj/item/weapon/circuitboard/machine/chem_dispenser name = "circuit board (Portable Chem Dispenser)" build_path = /obj/machinery/chem_dispenser/constructable - board_type = "machine" origin_tech = "materials=4;engineering=4;programming=4;plasmatech=3;biotech=3" req_components = list( /obj/item/weapon/stock_parts/matter_bin = 2, @@ -544,269 +302,12 @@ to destroy them and players will be able to make replacements. /obj/item/weapon/stock_parts/console_screen = 1, /obj/item/weapon/stock_parts/cell = 1) -/obj/item/weapon/circuitboard/chem_master - name = "circuit board (Chem Master 2999)" - build_path = /obj/machinery/chem_master/constructable - board_type = "machine" - origin_tech = "materials=2;programming=2;biotech=1" +/obj/item/weapon/circuitboard/machine/telesci_pad + name = "circuit board (Telepad)" + build_path = /obj/machinery/telepad + origin_tech = "programming=4;engineering=3;materials=3;bluespace=4" req_components = list( - /obj/item/weapon/reagent_containers/glass/beaker = 2, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/item/weapon/circuitboard/chem_heater - name = "circuit board (Chemical Heater)" - build_path = /obj/machinery/chem_heater - board_type = "machine" - origin_tech = "materials=2;engineering=2" - req_components = list( - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -//Almost the same recipe as destructive analyzer to give people choices. -/obj/item/weapon/circuitboard/experimentor - name = "circuit board (E.X.P.E.R.I-MENTOR)" - build_path = /obj/machinery/r_n_d/experimentor - board_type = "machine" - origin_tech = "magnets=1;engineering=1;programming=1;biotech=1;bluespace=2" - req_components = list( - /obj/item/weapon/stock_parts/scanning_module = 1, - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/weapon/stock_parts/micro_laser = 2) - - -/obj/item/weapon/circuitboard/destructive_analyzer - name = "circuit board (Destructive Analyzer)" - build_path = /obj/machinery/r_n_d/destructive_analyzer - board_type = "machine" - origin_tech = "magnets=2;engineering=2;programming=2" - req_components = list( - /obj/item/weapon/stock_parts/scanning_module = 1, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/micro_laser = 1) - -/obj/item/weapon/circuitboard/autolathe - name = "circuit board (Autolathe)" - build_path = /obj/machinery/autolathe - board_type = "machine" - origin_tech = "engineering=2;programming=2" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 3, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/item/weapon/circuitboard/protolathe - name = "circuit board (Protolathe)" - build_path = /obj/machinery/r_n_d/protolathe - board_type = "machine" - origin_tech = "engineering=2;programming=2" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 2, - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/weapon/reagent_containers/glass/beaker = 2) - - -/obj/item/weapon/circuitboard/circuit_imprinter - name = "circuit board (Circuit Imprinter)" - build_path = /obj/machinery/r_n_d/circuit_imprinter - board_type = "machine" - origin_tech = "engineering=2;programming=2" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/reagent_containers/glass/beaker = 2) - -/obj/item/weapon/circuitboard/pacman - name = "circuit board (PACMAN-type Generator)" - build_path = /obj/machinery/power/port_gen/pacman - board_type = "machine" - origin_tech = "programming=3;powerstorage=3;plasmatech=3;engineering=3" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/capacitor = 1) - -/obj/item/weapon/circuitboard/pacman/super - name = "circuit board (SUPERPACMAN-type Generator)" - build_path = /obj/machinery/power/port_gen/pacman/super - origin_tech = "programming=3;powerstorage=4;engineering=4" - -/obj/item/weapon/circuitboard/pacman/mrs - name = "circuit board (MRSPACMAN-type Generator)" - build_path = "/obj/machinery/power/port_gen/pacman/mrs" - origin_tech = "programming=3;powerstorage=5;engineering=5" - -obj/item/weapon/circuitboard/rdserver - name = "circuit board (R&D Server)" - build_path = /obj/machinery/r_n_d/server - board_type = "machine" - origin_tech = "programming=3" - req_components = list( - /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/scanning_module = 1) - -/obj/item/weapon/circuitboard/mechfab - name = "circuit board (Exosuit Fabricator)" - build_path = /obj/machinery/mecha_part_fabricator - board_type = "machine" - origin_tech = "programming=3;engineering=3" - req_components = list( - /obj/item/weapon/stock_parts/matter_bin = 2, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/item/weapon/circuitboard/clonepod - name = "circuit board (Clone Pod)" - build_path = /obj/machinery/clonepod - board_type = "machine" - origin_tech = "programming=3;biotech=3" - req_components = list( - /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/scanning_module = 2, - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/weapon/stock_parts/console_screen = 1) - -/obj/item/weapon/circuitboard/clonescanner - name = "circuit board (Cloning Scanner)" - build_path = /obj/machinery/dna_scannernew - board_type = "machine" - origin_tech = "programming=2;biotech=2" - req_components = list( - /obj/item/weapon/stock_parts/scanning_module = 1, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/console_screen = 1, - /obj/item/stack/cable_coil = 2,) - -/obj/item/weapon/circuitboard/cyborgrecharger - name = "circuit board (Cyborg Recharger)" - build_path = /obj/machinery/recharge_station - board_type = "machine" - origin_tech = "powerstorage=3;engineering=3" - req_components = list( - /obj/item/weapon/stock_parts/capacitor = 2, - /obj/item/weapon/stock_parts/cell = 1, - /obj/item/weapon/stock_parts/manipulator = 1,) - -/obj/item/weapon/circuitboard/recharger - name = "circuit board (Weapon Recharger)" - build_path = /obj/machinery/recharger - board_type = "machine" - origin_tech = "powerstorage=3;engineering=3;materials=4" - req_components = list( - /obj/item/weapon/stock_parts/capacitor = 1,) - -// Telecomms circuit boards: - -/obj/item/weapon/circuitboard/telecomms/receiver - name = "circuit board (Subspace Receiver)" - build_path = /obj/machinery/telecomms/receiver - board_type = "machine" - origin_tech = "programming=2;engineering=2;bluespace=1" - req_components = list( - /obj/item/weapon/stock_parts/subspace/ansible = 1, - /obj/item/weapon/stock_parts/subspace/filter = 1, - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/weapon/stock_parts/micro_laser = 1) - -/obj/item/weapon/circuitboard/telecomms/hub - name = "circuit board (Hub Mainframe)" - build_path = /obj/machinery/telecomms/hub - board_type = "machine" - origin_tech = "programming=2;engineering=2" - req_components = list( - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/subspace/filter = 2) - -/obj/item/weapon/circuitboard/telecomms/relay - name = "circuit board (Relay Mainframe)" - build_path = /obj/machinery/telecomms/relay - board_type = "machine" - origin_tech = "programming=2;engineering=2;bluespace=2" - req_components = list( - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/subspace/filter = 2) - -/obj/item/weapon/circuitboard/telecomms/bus - name = "circuit board (Bus Mainframe)" - build_path = /obj/machinery/telecomms/bus - board_type = "machine" - origin_tech = "programming=2;engineering=2" - req_components = list( - /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/ore/bluespace_crystal = 2, + /obj/item/weapon/stock_parts/capacitor = 1, /obj/item/stack/cable_coil = 1, - /obj/item/weapon/stock_parts/subspace/filter = 1) - -/obj/item/weapon/circuitboard/telecomms/processor - name = "circuit board (Processor Unit)" - build_path = /obj/machinery/telecomms/processor - board_type = "machine" - origin_tech = "programming=2;engineering=2" - req_components = list( - /obj/item/weapon/stock_parts/manipulator = 3, - /obj/item/weapon/stock_parts/subspace/filter = 1, - /obj/item/weapon/stock_parts/subspace/treatment = 2, - /obj/item/weapon/stock_parts/subspace/analyzer = 1, - /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/subspace/amplifier = 1) - -/obj/item/weapon/circuitboard/telecomms/server - name = "circuit board (Telecommunication Server)" - build_path = /obj/machinery/telecomms/server - board_type = "machine" - origin_tech = "programming=2;engineering=2" - req_components = list( - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/stack/cable_coil = 1, - /obj/item/weapon/stock_parts/subspace/filter = 1) - -/obj/item/weapon/circuitboard/telecomms/broadcaster - name = "circuit board (Subspace Broadcaster)" - build_path = /obj/machinery/telecomms/broadcaster - board_type = "machine" - origin_tech = "programming=2;engineering=2;bluespace=1" - req_components = list( - /obj/item/weapon/stock_parts/manipulator = 2, - /obj/item/stack/cable_coil = 1, - /obj/item/weapon/stock_parts/subspace/filter = 1, - /obj/item/weapon/stock_parts/subspace/crystal = 1, - /obj/item/weapon/stock_parts/micro_laser/high = 2) -/obj/item/weapon/circuitboard/ore_redemption - name = "circuit board (Ore Redemption)" - build_path = /obj/machinery/mineral/ore_redemption - board_type = "machine" - origin_tech = "programming=1;engineering=2" - req_components = list( - /obj/item/weapon/stock_parts/console_screen = 1, - /obj/item/weapon/stock_parts/matter_bin = 1, - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/device/assembly/igniter = 1) - -/obj/item/weapon/circuitboard/mining_equipment_vendor - name = "circuit board (Mining Equipment Vendor)" - build_path = /obj/machinery/mineral/equipment_vendor - board_type = "machine" - origin_tech = "programming=1;engineering=2" - req_components = list( - /obj/item/weapon/stock_parts/console_screen = 1, - /obj/item/weapon/stock_parts/matter_bin = 3) - -/obj/item/weapon/circuitboard/mining_equipment_vendor/golem - name = "circuit board (Golem Ship Equipment Vendor)" - build_path = /obj/machinery/mineral/equipment_vendor/golem - -/obj/item/weapon/circuitboard/plantgenes - name = "circuit board (Plant DNA Manipulator)" - build_path = /obj/machinery/plantgenes - board_type = "machine" - origin_tech = "programming=2;biotech=3" - req_components = list( - /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/weapon/stock_parts/micro_laser = 1, - /obj/item/weapon/stock_parts/console_screen = 1, - /obj/item/weapon/stock_parts/scanning_module = 1,) \ No newline at end of file + /obj/item/weapon/stock_parts/console_screen = 1) \ No newline at end of file diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index ed656b1a1df..192ff9df7d1 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -15,16 +15,19 @@ /obj/machinery/dna_scannernew/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/clonescanner(null) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/clonescanner(null) + B.apply_default_parts(src) +/obj/item/weapon/circuitboard/machine/clonescanner + name = "circuit board (Cloning Scanner)" + build_path = /obj/machinery/dna_scannernew + origin_tech = "programming=2;biotech=2" + req_components = list( + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/stack/cable_coil = 2) /obj/machinery/dna_scannernew/RefreshParts() scan_level = 0 diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 5d03cc6f5f2..49bf6e7d916 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -45,10 +45,15 @@ var/const/HOLOPAD_MODE = RANGE_BASED /obj/machinery/hologram/holopad/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/holopad(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/holopad(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/holopad + name = "circuit board (AI Holopad)" + build_path = /obj/machinery/hologram/holopad + origin_tech = "programming=1" + req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) + /obj/machinery/hologram/holopad/RefreshParts() var/holograph_range = 4 diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 7751dcb8bb6..77028a43d1a 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -347,7 +347,7 @@ Class Procs: if(.) deconstruction() playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) - var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(loc) + var/obj/structure/frame/machine/M = new /obj/structure/frame/machine(loc) transfer_fingerprints_to(M) M.state = 2 M.icon_state = "box_1" @@ -396,7 +396,7 @@ Class Procs: var/shouldplaysound = 0 if(istype(W) && component_parts) if(panel_open || W.works_from_distance) - var/obj/item/weapon/circuitboard/CB = locate(/obj/item/weapon/circuitboard) in component_parts + var/obj/item/weapon/circuitboard/machine/CB = locate(/obj/item/weapon/circuitboard/machine) in component_parts var/P if(W.works_from_distance) display_parts(user) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 3ae2ded9223..fe5d9ac35a8 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -12,10 +12,14 @@ /obj/machinery/recharger/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/recharger() - component_parts += new /obj/item/weapon/stock_parts/capacitor() - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/recharger(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/recharger + name = "circuit board (Weapon Recharger)" + build_path = /obj/machinery/recharger + origin_tech = "powerstorage=3;engineering=3;materials=4" + req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) /obj/machinery/recharger/RefreshParts() for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index ae9a16c729d..d7397ebabf4 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -7,7 +7,6 @@ use_power = 1 idle_power_usage = 5 active_power_usage = 1000 - var/circuitboard = "/obj/item/weapon/circuitboard/cyborgrecharger" req_access = list(access_robotics) var/recharge_speed var/repairs @@ -15,15 +14,19 @@ /obj/machinery/recharge_station/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/cyborgrecharger(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/cell/high(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/cyborgrecharger(null) + B.apply_default_parts(src) update_icon() +/obj/item/weapon/circuitboard/machine/cyborgrecharger + name = "circuit board (Cyborg Recharger)" + build_path = /obj/machinery/recharge_station + origin_tech = "powerstorage=3;engineering=3" + req_components = list( + /obj/item/weapon/stock_parts/capacitor = 2, + /obj/item/weapon/stock_parts/cell = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + /obj/machinery/recharge_station/RefreshParts() recharge_speed = 0 repairs = 0 diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 542975781f3..a37a0e4d14e 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -17,16 +17,20 @@ var/const/SAFETY_COOLDOWN = 100 var/datum/material_container/materials /obj/machinery/recycler/New() - // On us ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/recycler(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) materials = new /datum/material_container(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_PLASMA=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_URANIUM=1, MAT_BANANIUM=1)) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/recycler(null) + B.apply_default_parts(src) update_icon() +/obj/item/weapon/circuitboard/machine/recycler + name = "circuit board (Recycler)" + build_path = /obj/machinery/recycler + origin_tech = "programming=1" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + /obj/machinery/recycler/RefreshParts() var/amt_made = 0 var/mat_mod = 0 diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 6322b95731d..a204918d41b 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -21,7 +21,7 @@ density = 1 use_power = 1 idle_power_usage = 50 - circuit = /obj/item/weapon/circuitboard/slot_machine + circuit = /obj/item/weapon/circuitboard/computer/slot_machine var/money = 3000 //How much money it has CONSUMED var/plays = 0 var/working = 0 diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index b164bc08c20..ed76ccd8768 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -24,14 +24,19 @@ /obj/machinery/space_heater/New() ..() cell = new(src) - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/space_heater(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/stack/cable_coil(null, 3) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/space_heater(null) + B.apply_default_parts(src) update_icon() +/obj/item/weapon/circuitboard/machine/space_heater + name = "circuit board (Space Heater)" + build_path = /obj/machinery/space_heater + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/stack/cable_coil = 3) + /obj/machinery/space_heater/construction() qdel(cell) cell = null diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm index 0485e45950e..61598ca32bc 100644 --- a/code/game/machinery/telecomms/computers/logbrowser.dm +++ b/code/game/machinery/telecomms/computers/logbrowser.dm @@ -14,7 +14,7 @@ var/universal_translate = 0 // set to 1 if it can translate nonhuman speech req_access = list(access_tcomsat) - circuit = "/obj/item/weapon/circuitboard/comm_server" + circuit = /obj/item/weapon/circuitboard/computer/comm_server /obj/machinery/computer/telecomms/server/attack_hand(mob/user) if(..()) diff --git a/code/game/machinery/telecomms/computers/telemonitor.dm b/code/game/machinery/telecomms/computers/telemonitor.dm index f7ed78a1315..0fd04b25361 100644 --- a/code/game/machinery/telecomms/computers/telemonitor.dm +++ b/code/game/machinery/telecomms/computers/telemonitor.dm @@ -16,7 +16,7 @@ var/network = "NULL" // the network to probe var/temp = "" // temporary feedback messages - circuit = "/obj/item/weapon/circuitboard/comm_monitor" + circuit = /obj/item/weapon/circuitboard/computer/comm_monitor /obj/machinery/computer/telecomms/monitor/attack_hand(mob/user) if(..()) diff --git a/code/game/machinery/telecomms/machines/broadcaster.dm b/code/game/machinery/telecomms/machines/broadcaster.dm index 91106eae92e..c00bb1a412c 100644 --- a/code/game/machinery/telecomms/machines/broadcaster.dm +++ b/code/game/machinery/telecomms/machines/broadcaster.dm @@ -19,7 +19,6 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept machinetype = 5 /*heatgen = 0 delay = 7*/ - circuitboard = "/obj/item/weapon/circuitboard/telecomms/broadcaster" /obj/machinery/telecomms/broadcaster/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) // Don't broadcast rejected signals @@ -95,16 +94,19 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept /obj/machinery/telecomms/broadcaster/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/telecomms/broadcaster(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/filter(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/crystal(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser/high(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser/high(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/broadcaster(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/telecomms/broadcaster + name = "circuit board (Subspace Broadcaster)" + build_path = /obj/machinery/telecomms/broadcaster + origin_tech = "programming=2;engineering=2;bluespace=1" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/subspace/crystal = 1, + /obj/item/weapon/stock_parts/micro_laser = 2) /obj/machinery/telecomms/broadcaster/Destroy() // In case message_delay is left on 1, otherwise it won't reset the list and people can't say the same thing twice anymore. diff --git a/code/game/machinery/telecomms/machines/bus.dm b/code/game/machinery/telecomms/machines/bus.dm index 7b747d4d332..6c98596c884 100644 --- a/code/game/machinery/telecomms/machines/bus.dm +++ b/code/game/machinery/telecomms/machines/bus.dm @@ -18,7 +18,6 @@ idle_power_usage = 50 machinetype = 2 //heatgen = 20 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/bus" netspeed = 40 var/change_frequency = 0 @@ -52,14 +51,17 @@ /obj/machinery/telecomms/bus/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/telecomms/bus(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/filter(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/bus(null) + B.apply_default_parts(src) +/obj/item/weapon/circuitboard/machine/telecomms/bus + name = "circuit board (Bus Mainframe)" + build_path = /obj/machinery/telecomms/bus + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1) diff --git a/code/game/machinery/telecomms/machines/hub.dm b/code/game/machinery/telecomms/machines/hub.dm index b52adc8cb8d..d5aebbc45fc 100644 --- a/code/game/machinery/telecomms/machines/hub.dm +++ b/code/game/machinery/telecomms/machines/hub.dm @@ -19,7 +19,6 @@ idle_power_usage = 80 machinetype = 7 //heatgen = 40 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/hub" long_range_link = 1 netspeed = 40 @@ -36,16 +35,17 @@ /obj/machinery/telecomms/hub/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/telecomms/hub(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/filter(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/filter(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/stack/cable_coil(null, 2) - RefreshParts() - + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/hub(null) + B.apply_default_parts(src) +/obj/item/weapon/circuitboard/machine/telecomms/hub + name = "circuit board (Hub Mainframe)" + build_path = /obj/machinery/telecomms/hub + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/subspace/filter = 2) diff --git a/code/game/machinery/telecomms/machines/processor.dm b/code/game/machinery/telecomms/machines/processor.dm index 18f8ee4d3e0..71cfc2ec5a6 100644 --- a/code/game/machinery/telecomms/machines/processor.dm +++ b/code/game/machinery/telecomms/machines/processor.dm @@ -18,7 +18,6 @@ machinetype = 3 //heatgen = 100 //delay = 5 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/processor" var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals /obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) @@ -38,22 +37,20 @@ /obj/machinery/telecomms/processor/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/telecomms/processor(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/filter(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/analyzer(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/amplifier(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/stack/cable_coil(null, 2) - RefreshParts() - - - + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/processor(null) + B.apply_default_parts(src) +/obj/item/weapon/circuitboard/machine/telecomms/processor + name = "circuit board (Processor Unit)" + build_path = /obj/machinery/telecomms/processor + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 3, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/subspace/treatment = 2, + /obj/item/weapon/stock_parts/subspace/analyzer = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/subspace/amplifier = 1) //Preset Processors diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm index b1dc2b53c92..095bb0cfca2 100644 --- a/code/game/machinery/telecomms/machines/receiver.dm +++ b/code/game/machinery/telecomms/machines/receiver.dm @@ -17,7 +17,6 @@ idle_power_usage = 30 machinetype = 1 //heatgen = 0 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/receiver" /obj/machinery/telecomms/receiver/receive_signal(datum/signal/signal) @@ -54,16 +53,18 @@ /obj/machinery/telecomms/receiver/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/telecomms/receiver(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/filter(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/ansible(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser/high(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - RefreshParts() - + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/receiver(null) + B.apply_default_parts(src) +/obj/item/weapon/circuitboard/machine/telecomms/receiver + name = "circuit board (Subspace Receiver)" + build_path = /obj/machinery/telecomms/receiver + origin_tech = "programming=2;engineering=2;bluespace=1" + req_components = list( + /obj/item/weapon/stock_parts/subspace/ansible = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/stock_parts/micro_laser = 1) diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm index 51d76d47255..a11e521eea3 100644 --- a/code/game/machinery/telecomms/machines/relay.dm +++ b/code/game/machinery/telecomms/machines/relay.dm @@ -16,7 +16,6 @@ idle_power_usage = 30 machinetype = 8 //heatgen = 0 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/relay" netspeed = 5 long_range_link = 1 var/broadcasting = 1 @@ -48,16 +47,17 @@ /obj/machinery/telecomms/relay/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/telecomms/relay(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/filter(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/filter(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/stack/cable_coil(null, 2) - RefreshParts() - + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/relay(null) + B.apply_default_parts(src) +/obj/item/weapon/circuitboard/machine/telecomms/relay + name = "circuit board (Relay Mainframe)" + build_path = /obj/machinery/telecomms/relay + origin_tech = "programming=2;engineering=2;bluespace=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/subspace/filter = 2) diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm index 9e54644b1f1..b68e618daf3 100644 --- a/code/game/machinery/telecomms/machines/server.dm +++ b/code/game/machinery/telecomms/machines/server.dm @@ -17,7 +17,6 @@ idle_power_usage = 15 machinetype = 4 //heatgen = 50 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/server" var/list/log_entries = list() var/list/stored_names = list() var/list/TrafficActions = list() @@ -35,15 +34,19 @@ /obj/machinery/telecomms/server/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/telecomms/server(null) - component_parts += new /obj/item/weapon/stock_parts/subspace/filter(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/telecomms/server(null) + B.apply_default_parts(src) server_radio = new() +/obj/item/weapon/circuitboard/machine/telecomms/server + name = "circuit board (Telecommunication Server)" + build_path = /obj/machinery/telecomms/server + origin_tech = "programming=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/subspace/filter = 1) + /obj/machinery/telecomms/server/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) if(signal.data["message"]) diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 161de617ea5..21aece34bb8 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -29,7 +29,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() var/toggled = 1 // Is it toggled on var/on = 1 var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub) - var/circuitboard = null // string pointing to a circuitboard type var/hide = 0 // Is it a hidden machine? var/listening_level = 0 // 0 = auto set in New() - this is the z level that the machine is listening to. diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 38c914ecaf5..bb5479c82c9 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -3,7 +3,7 @@ desc = "Used to control a linked teleportation Hub and Station." icon_screen = "teleport" icon_keyboard = "teleport_key" - circuit = "/obj/item/weapon/circuitboard/teleporter" + circuit = /obj/item/weapon/circuitboard/computer/teleporter var/obj/item/device/gps/locked = null var/regime_set = "Teleporter" var/id = null @@ -256,7 +256,7 @@ ..() link_power_station() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/teleporter_hub(null) + component_parts += new /obj/item/weapon/circuitboard/machine/teleporter_hub(null) component_parts += new /obj/item/weapon/ore/bluespace_crystal/artificial(null) component_parts += new /obj/item/weapon/ore/bluespace_crystal/artificial(null) component_parts += new /obj/item/weapon/ore/bluespace_crystal/artificial(null) @@ -364,7 +364,7 @@ /obj/machinery/teleport/station/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/teleporter_station(null) + component_parts += new /obj/item/weapon/circuitboard/machine/teleporter_station(null) component_parts += new /obj/item/weapon/ore/bluespace_crystal/artificial(null) component_parts += new /obj/item/weapon/ore/bluespace_crystal/artificial(null) component_parts += new /obj/item/weapon/stock_parts/capacitor(null) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 30cce02c00d..55479c7e462 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -58,14 +58,8 @@ ..() wires = new /datum/wires/vending(src) if(refill_canister) //constructable vending machine - component_parts = list() - var/obj/item/weapon/circuitboard/vendor/V = new(null) - V.set_type(type) - component_parts += V - component_parts += new refill_canister - component_parts += new refill_canister - component_parts += new refill_canister - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/vendor(null) + B.apply_default_parts(src) else build_inventory(products) build_inventory(contraband, 1) @@ -78,6 +72,44 @@ last_slogan = world.time + rand(0, slogan_delay) power_change() +/obj/item/weapon/circuitboard/machine/vendor + name = "circuit board (Booze-O-Mat Vendor)" + build_path = /obj/machinery/vending/boozeomat + origin_tech = "programming=1" + req_components = list( + /obj/item/weapon/vending_refill/boozeomat = 3) + + var/list/names_paths = list(/obj/machinery/vending/boozeomat = "Booze-O-Mat", + /obj/machinery/vending/coffee = "Solar's Best Hot Drinks", + /obj/machinery/vending/snack = "Getmore Chocolate Corp", + /obj/machinery/vending/cola = "Robust Softdrinks", + /obj/machinery/vending/cigarette = "ShadyCigs Deluxe", + /obj/machinery/vending/autodrobe = "AutoDrobe") + +/obj/item/weapon/circuitboard/machine/vendor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + var/position = names_paths.Find(build_path) + position = (position == names_paths.len) ? 1 : (position + 1) + var/typepath = names_paths[position] + + user << "You set the board to \"[names_paths[typepath]]\"." + set_type(typepath) + else + return ..() + +/obj/item/weapon/circuitboard/machine/vendor/proc/set_type(var/obj/machinery/vending/typepath) + build_path = typepath + name = "circuit board ([names_paths[build_path]] Vendor)" + req_components = list(initial(typepath.refill_canister) = 3) + +/obj/item/weapon/circuitboard/machine/vendor/apply_default_parts(obj/machinery/M) + for(var/typepath in names_paths) + if(istype(M, typepath)) + set_type(typepath) + break + ..() + + /obj/machinery/vending/Destroy() qdel(wires) wires = null diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index f3f730d4bc7..c3847474e60 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -26,17 +26,18 @@ /obj/machinery/mech_bay_recharge_port/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/mech_recharger(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mech_recharger(null) + B.apply_default_parts(src) recharging_turf = get_step(loc, dir) +/obj/item/weapon/circuitboard/machine/mech_recharger + name = "circuit board (Mechbay Recharger)" + build_path = /obj/machinery/mech_bay_recharge_port + origin_tech = "programming=3;powerstorage=4;engineering=4" + req_components = list( + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/capacitor = 5) + /obj/machinery/mech_bay_recharge_port/RefreshParts() var/MC for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) @@ -82,7 +83,7 @@ desc = "Used to control mechbay power ports." icon_screen = "recharge_comp" icon_keyboard = "rd_key" - circuit = /obj/item/weapon/circuitboard/mech_bay_power_console + circuit = /obj/item/weapon/circuitboard/computer/mech_bay_power_console var/obj/machinery/mech_bay_recharge_port/recharge_port /obj/machinery/computer/mech_bay_power_console/attack_ai(mob/user) diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 5748be75618..5de9c676059 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -46,16 +46,20 @@ /obj/machinery/mecha_part_fabricator/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/mechfab(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mechfab(null) + B.apply_default_parts(src) files = new /datum/research(src) //Setup the research data holder. +/obj/item/weapon/circuitboard/machine/mechfab + name = "circuit board (Exosuit Fabricator)" + build_path = /obj/machinery/mecha_part_fabricator + origin_tech = "programming=3;engineering=3" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + /obj/machinery/mecha_part_fabricator/RefreshParts() var/T = 0 diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index ab7641dd681..0fc08605bcf 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -4,7 +4,7 @@ icon_screen = "mecha" icon_keyboard = "tech_key" req_access = list(access_robotics) - circuit = "/obj/item/weapon/circuitboard/mecha_control" + circuit = /obj/item/weapon/circuitboard/computer/mecha_control var/list/located = list() var/screen = 0 var/stored_data diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index c14ddd5470c..40037689a9e 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -321,7 +321,6 @@ icon = 'icons/obj/module.dmi' icon_state = "std_mod" item_state = "electronic" - board_type = "other" flags = CONDUCT force = 5 w_class = 2 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 84f474abe0a..76cf1ff5a33 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -26,11 +26,12 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("floor tile", /obj/item/stack/tile/plasteel, 1, 4, 20), \ new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60), \ null, \ - new/datum/stack_recipe("computer frame", /obj/structure/computerframe, 5, time = 25, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("computer frame", /obj/structure/frame/computer, 5, time = 25, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("machine frame", /obj/structure/frame/machine, 5, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("firelock frame", /obj/structure/firelock_frame, 3, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("machine frame", /obj/machinery/constructable_frame/machine_frame, 5, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("meatspike frame", /obj/structure/kitchenspike_frame, 5, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("reflector frame", /obj/structure/reflector, 5, time = 25, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index b4e7b5dd5ef..7da9e29ce27 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -64,6 +64,7 @@ return if (!src || get_amount() <= 0) user << browse(null, "window=stack") + return user.set_machine(src) //for correct work of onclose var/t1 = text("Constructions from []Amount Left: []
", src, src.get_amount()) for(var/i=1;i<=recipes.len,i++) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 99b3a72e6ae..6538bba7f06 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -804,7 +804,7 @@ /obj/item/weapon/storage/box/rndboards/New() ..() - new /obj/item/weapon/circuitboard/protolathe(src) - new /obj/item/weapon/circuitboard/destructive_analyzer(src) - new /obj/item/weapon/circuitboard/circuit_imprinter(src) - new /obj/item/weapon/circuitboard/rdconsole(src) + new /obj/item/weapon/circuitboard/machine/protolathe(src) + new /obj/item/weapon/circuitboard/machine/destructive_analyzer(src) + new /obj/item/weapon/circuitboard/machine/circuit_imprinter(src) + new /obj/item/weapon/circuitboard/computer/rdconsole(src) diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm index ef533fe16a1..0e0ff304900 100644 --- a/code/game/objects/structures/ai_core.dm +++ b/code/game/objects/structures/ai_core.dm @@ -246,3 +246,8 @@ atom/proc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/ qdel(src) else //If for some reason you use an empty card on an empty AI terminal. user << "There is no AI loaded on this terminal!" + + +/obj/item/weapon/circuitboard/aicore + name = "circuit board (AI core)" + origin_tech = "programming=4;biotech=2" diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index d896d93a9a3..cdd0e0fea57 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -22,14 +22,17 @@ /obj/machinery/atmospherics/components/unary/cryo_cell/New() ..() initialize_directions = dir - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/cryo_tube(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/cryo_tube(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/cryo_tube + name = "circuit board (Cryotube)" + build_path = /obj/machinery/atmospherics/components/unary/cryo_cell + origin_tech = "programming=4;biotech=3;engineering=4" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/console_screen = 4) /obj/machinery/atmospherics/components/unary/cryo_cell/construction() ..(dir, dir) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index ed142bbf4ed..fc06e542cba 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -17,14 +17,37 @@ /obj/machinery/atmospherics/components/unary/thermomachine/New() ..() initialize_directions = dir - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/thermomachine + name = "circuit board (Thermomachine)" + desc = "You can use a screwdriver to switch between heater and freezer." + origin_tech = "programming=3;plasmatech=3" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/micro_laser = 2, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/item/weapon/circuitboard/machine/thermomachine/attackby(obj/item/I, mob/user, params) + var/obj/item/weapon/circuitboard/machine/freezer = /obj/item/weapon/circuitboard/machine/thermomachine/freezer + var/obj/item/weapon/circuitboard/machine/heater = /obj/item/weapon/circuitboard/machine/thermomachine/heater + var/obj/item/weapon/circuitboard/machine/newtype + + if(istype(I, /obj/item/weapon/screwdriver)) + var/new_setting = "Heater" + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + if(build_path == initial(heater.build_path)) + newtype = freezer + new_setting = "Freezer" + else + newtype = heater + name = initial(newtype.name) + build_path = initial(newtype.build_path) + user << "You change the circuitboard setting to \"[new_setting]\"." + else + return ..() /obj/machinery/atmospherics/components/unary/thermomachine/construction() ..(dir,dir) @@ -169,7 +192,12 @@ /obj/machinery/atmospherics/components/unary/thermomachine/freezer/New() ..() - component_parts += new /obj/item/weapon/circuitboard/thermomachine/freezer(null) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine/freezer(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/thermomachine/freezer + name = "circuit board (Freezer)" + build_path = /obj/machinery/atmospherics/components/unary/thermomachine/freezer /obj/machinery/atmospherics/components/unary/thermomachine/freezer/RefreshParts() ..() @@ -189,7 +217,12 @@ /obj/machinery/atmospherics/components/unary/thermomachine/heater/New() ..() - component_parts += new /obj/item/weapon/circuitboard/thermomachine/heater(null) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/thermomachine/heater(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/thermomachine/heater + name = "circuit board (Heater)" + build_path = /obj/machinery/atmospherics/components/unary/thermomachine/heater /obj/machinery/atmospherics/components/unary/thermomachine/heater/RefreshParts() ..() diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm index 472d2442557..4a3e5bdfec0 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -2,7 +2,7 @@ name = "supply console" desc = "Used to order supplies, approve requests, and control the shuttle." icon_screen = "supply" - circuit = /obj/item/weapon/circuitboard/cargo + circuit = /obj/item/weapon/circuitboard/computer/cargo var/requestonly = FALSE var/contraband = FALSE @@ -10,12 +10,12 @@ name = "supply request console" desc = "Used to request supplies from cargo." icon_screen = "request" - circuit = /obj/item/weapon/circuitboard/cargo/request + circuit = /obj/item/weapon/circuitboard/computer/cargo/request requestonly = TRUE /obj/machinery/computer/cargo/New() ..() - var/obj/item/weapon/circuitboard/cargo/board = circuit + var/obj/item/weapon/circuitboard/computer/cargo/board = circuit contraband = board.contraband emagged = board.emagged @@ -28,7 +28,7 @@ contraband = TRUE // This also permamently sets this on the circuit board - var/obj/item/weapon/circuitboard/cargo/board = circuit + var/obj/item/weapon/circuitboard/computer/cargo/board = circuit board.contraband = TRUE board.emagged = TRUE diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index b78bb3b2e37..51a563918fb 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -13,7 +13,7 @@ /datum/export/solar/control_board cost = 150 unit_name = "solar panel control board" - export_types = list(/obj/item/weapon/circuitboard/solar_control) + export_types = list(/obj/item/weapon/circuitboard/computer/solar_control) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index ef1c1ef85cd..ef657aedc10 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -530,7 +530,7 @@ /obj/item/solar_assembly, /obj/item/solar_assembly, /obj/item/solar_assembly, - /obj/item/weapon/circuitboard/solar_control, + /obj/item/weapon/circuitboard/computer/solar_control, /obj/item/weapon/electronics/tracker, /obj/item/weapon/paper/solar) crate_name = "solar panel crate" diff --git a/code/modules/food&drinks/kitchen machinery/gibber.dm b/code/modules/food&drinks/kitchen machinery/gibber.dm index 84a92fbaca7..93e3d1799fd 100644 --- a/code/modules/food&drinks/kitchen machinery/gibber.dm +++ b/code/modules/food&drinks/kitchen machinery/gibber.dm @@ -48,11 +48,16 @@ /obj/machinery/gibber/New() ..() src.overlays += image('icons/obj/kitchen.dmi', "grjam") - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/gibber(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/gibber(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/gibber + name = "circuit board (Gibber)" + build_path = /obj/machinery/gibber + origin_tech = "programming=1" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) /obj/machinery/gibber/RefreshParts() var/gib_time = 40 diff --git a/code/modules/food&drinks/kitchen machinery/microwave.dm b/code/modules/food&drinks/kitchen machinery/microwave.dm index 878d51853b1..5e8171bf0dd 100644 --- a/code/modules/food&drinks/kitchen machinery/microwave.dm +++ b/code/modules/food&drinks/kitchen machinery/microwave.dm @@ -24,13 +24,18 @@ /obj/machinery/microwave/New() create_reagents(100) - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/microwave(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/stack/cable_coil(null, 2) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/microwave(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/microwave + name = "circuit board (Microwave)" + build_path = /obj/machinery/microwave + origin_tech = "programming=1;magnets=1" + req_components = list( + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/console_screen = 1) /obj/machinery/microwave/RefreshParts() var/E diff --git a/code/modules/food&drinks/kitchen machinery/monkeyrecycler.dm b/code/modules/food&drinks/kitchen machinery/monkeyrecycler.dm index b1e7f5632fd..a446c16d444 100644 --- a/code/modules/food&drinks/kitchen machinery/monkeyrecycler.dm +++ b/code/modules/food&drinks/kitchen machinery/monkeyrecycler.dm @@ -16,11 +16,16 @@ /obj/machinery/monkey_recycler/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/monkey_recycler(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/monkey_recycler(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/monkey_recycler + name = "circuit board (Monkey Recycler)" + build_path = /obj/machinery/monkey_recycler + origin_tech = "programming=1;biotech=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) /obj/machinery/monkey_recycler/RefreshParts() var/req_grind = 5 diff --git a/code/modules/food&drinks/kitchen machinery/processor.dm b/code/modules/food&drinks/kitchen machinery/processor.dm index ab460e14999..f0c41e5f082 100644 --- a/code/modules/food&drinks/kitchen machinery/processor.dm +++ b/code/modules/food&drinks/kitchen machinery/processor.dm @@ -16,12 +16,17 @@ var/rating_amount = 1 /obj/machinery/processor/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/processor(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - RefreshParts() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/processor(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/processor + name = "circuit board (Food Processor)" + build_path = /obj/machinery/processor + origin_tech = "programming=1" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) /obj/machinery/processor/RefreshParts() for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) diff --git a/code/modules/food&drinks/kitchen machinery/smartfridge.dm b/code/modules/food&drinks/kitchen machinery/smartfridge.dm index 1eac74d44c7..ca7dfd00041 100644 --- a/code/modules/food&drinks/kitchen machinery/smartfridge.dm +++ b/code/modules/food&drinks/kitchen machinery/smartfridge.dm @@ -19,10 +19,33 @@ /obj/machinery/smartfridge/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/smartfridge(null, type) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/smartfridge(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/smartfridge + name = "circuit board (Smartfridge)" + build_path = /obj/machinery/smartfridge + origin_tech = "programming=1" + req_components = list(/obj/item/weapon/stock_parts/matter_bin = 1) + +/obj/item/weapon/circuitboard/machine/smartfridge/New(loc, new_type) + if(new_type) + build_path = new_type + +/obj/item/weapon/circuitboard/machine/smartfridge/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + var/list/fridges = list(/obj/machinery/smartfridge = "default", + /obj/machinery/smartfridge/drinks = "drinks", + /obj/machinery/smartfridge/extract = "slimes", + /obj/machinery/smartfridge/chemistry = "chems", + /obj/machinery/smartfridge/chemistry/virology = "viruses") + + var/position = fridges.Find(build_path, fridges) + position = (position == fridges.len) ? 1 : (position + 1) + build_path = fridges[position] + user << "You set the board to [fridges[build_path]]." + else + return ..() /obj/machinery/smartfridge/construction() for(var/datum/A in contents) diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 9ebde1d58ab..c951b922b8b 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -16,15 +16,20 @@ var/max_items = 40 /obj/machinery/biogenerator/New() - ..() - create_reagents(1000) - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/biogenerator(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() + ..() + create_reagents(1000) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/biogenerator(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/biogenerator + name = "circuit board (Biogenerator)" + build_path = /obj/machinery/biogenerator + origin_tech = "programming=3;biotech=2;materials=3" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/stack/cable_coil = 1, + /obj/item/weapon/stock_parts/console_screen = 1) /obj/machinery/biogenerator/RefreshParts() var/E = 0 diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index 1f062578259..2f0e44878b3 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -23,13 +23,18 @@ /obj/machinery/plantgenes/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/plantgenes(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/plantgenes(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/plantgenes + name = "circuit board (Plant DNA Manipulator)" + build_path = /obj/machinery/plantgenes + origin_tech = "programming=2;biotech=3" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/weapon/stock_parts/scanning_module = 1) /obj/machinery/plantgenes/RefreshParts() rating = 0 @@ -353,7 +358,7 @@ /obj/machinery/plantgenes/seedvault/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/plantgenes(src) + component_parts += new /obj/item/weapon/circuitboard/machine/plantgenes(src) component_parts += new /obj/item/weapon/stock_parts/console_screen(src) component_parts += new /obj/item/weapon/stock_parts/scanning_module/triphasic(src) component_parts += new /obj/item/weapon/stock_parts/micro_laser/quadultra(src) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 09d0f9b748f..ce238c7eaa1 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -34,13 +34,17 @@ /obj/machinery/hydroponics/constructable/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/hydroponics(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/hydroponics(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/hydroponics + name = "circuit board (Hydroponics Tray)" + build_path = /obj/machinery/hydroponics/constructable + origin_tech = "programming=1;biotech=1" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/console_screen = 1) /obj/machinery/hydroponics/constructable/RefreshParts() var/tmp_capacity = 0 diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index e7e63b26e23..1d146cdff00 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -50,11 +50,16 @@ /obj/machinery/seed_extractor/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/seed_extractor(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/seed_extractor(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/seed_extractor + name = "circuit board (Seed Extractor)" + build_path = /obj/machinery/seed_extractor + origin_tech = "programming=1" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1) /obj/machinery/seed_extractor/RefreshParts() for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts) diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 16862d3e8a5..bdad0908afe 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -19,7 +19,7 @@ icon_state = "oldcomp" icon_screen = "library" icon_keyboard = null - circuit = /obj/item/weapon/circuitboard/libraryconsole + circuit = /obj/item/weapon/circuitboard/computer/libraryconsole var/screenstate = 0 var/title var/category = "Any" diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 58a7559c55c..9503ed2808b 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -24,14 +24,19 @@ /obj/machinery/mineral/ore_redemption/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/ore_redemption(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/device/assembly/igniter(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/ore_redemption(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/ore_redemption + name = "circuit board (Ore Redemption)" + build_path = /obj/machinery/mineral/ore_redemption + origin_tech = "programming=1;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/device/assembly/igniter = 1) /obj/machinery/mineral/ore_redemption/RefreshParts() var/ore_pickup_rate_temp = 15 @@ -322,13 +327,16 @@ /obj/machinery/mineral/equipment_vendor/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/mining_equipment_vendor(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mining_equipment_vendor(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/mining_equipment_vendor + name = "circuit board (Mining Equipment Vendor)" + build_path = /obj/machinery/mineral/equipment_vendor + origin_tech = "programming=1;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/console_screen = 1, + /obj/item/weapon/stock_parts/matter_bin = 3) /obj/machinery/mineral/equipment_vendor/power_change() ..() @@ -1151,10 +1159,9 @@ /obj/machinery/mineral/equipment_vendor/golem/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/mining_equipment_vendor/golem(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mining_equipment_vendor/golem(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/mining_equipment_vendor/golem + name = "circuit board (Golem Ship Equipment Vendor)" + build_path = /obj/machinery/mineral/equipment_vendor/golem diff --git a/code/modules/mining/laborcamp/laborshuttle.dm b/code/modules/mining/laborcamp/laborshuttle.dm index 079eaeab8dd..2e88d4e413c 100644 --- a/code/modules/mining/laborcamp/laborshuttle.dm +++ b/code/modules/mining/laborcamp/laborshuttle.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/shuttle/labor name = "labor shuttle console" desc = "Used to call and send the labor camp shuttle." - circuit = /obj/item/weapon/circuitboard/labor_shuttle + circuit = /obj/item/weapon/circuitboard/computer/labor_shuttle shuttleId = "laborcamp" possible_destinations = "laborcamp_home;laborcamp_away" req_access = list(access_brig) @@ -11,7 +11,7 @@ name = "prisoner shuttle console" desc = "A one-way shuttle console, used to summon the shuttle to the labor camp." possible_destinations = "laborcamp_away" - circuit = /obj/item/weapon/circuitboard/labor_shuttle/one_way + circuit = /obj/item/weapon/circuitboard/computer/labor_shuttle/one_way req_access = list( ) /obj/machinery/computer/shuttle/labor/one_way/Topic(href, href_list) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 0619d722f44..c577ca74bee 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -53,7 +53,7 @@ /obj/machinery/computer/shuttle/mining name = "Mining Shuttle Console" desc = "Used to call and send the mining shuttle." - circuit = /obj/item/weapon/circuitboard/mining_shuttle + circuit = /obj/item/weapon/circuitboard/computer/mining_shuttle shuttleId = "mining" possible_destinations = "mining_home;mining_away" no_destination_swap = 1 diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index d6a58af95cf..5a1dffc3c42 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -85,7 +85,7 @@ //Parrots will generally sit on their perch unless something catches their eye. //These vars store their preffered perch and if they dont have one, what they can use as a perch var/obj/parrot_perch = null - var/obj/desired_perches = list(/obj/structure/computerframe, /obj/structure/displaycase, \ + var/obj/desired_perches = list(/obj/structure/frame/computer, /obj/structure/displaycase, \ /obj/structure/filingcabinet, /obj/machinery/teleport, \ /obj/machinery/computer, /obj/machinery/clonepod, \ /obj/machinery/dna_scannernew, /obj/machinery/telecomms, \ diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index f1b3d4ccbbc..6d29f794ee6 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -251,6 +251,7 @@ /obj/item/weapon/stock_parts/cell/bluespace name = "bluespace power cell" + desc = "A rechargable transdimensional power cell." origin_tech = "powerstorage=7" icon_state = "bscell" maxcharge = 40000 diff --git a/code/modules/power/monitor.dm b/code/modules/power/monitor.dm index b0f11026686..5f663a89c30 100644 --- a/code/modules/power/monitor.dm +++ b/code/modules/power/monitor.dm @@ -6,7 +6,7 @@ use_power = 2 idle_power_usage = 20 active_power_usage = 100 - circuit = /obj/item/weapon/circuitboard/powermonitor + circuit = /obj/item/weapon/circuitboard/computer/powermonitor var/obj/structure/cable/attached diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 09b33ebb881..a61bef51c4f 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -94,7 +94,7 @@ display round(lastgen) and plasmatank amount var/max_sheets = 100 var/sheet_name = "" var/sheet_path = /obj/item/stack/sheet/mineral/plasma - var/board_path = "/obj/item/weapon/circuitboard/pacman" + var/board_path = /obj/item/weapon/circuitboard/machine/pacman var/sheet_left = 0 // How much is left of the sheet var/time_per_sheet = 260 var/current_heat = 0 @@ -106,16 +106,31 @@ display round(lastgen) and plasmatank amount /obj/machinery/power/port_gen/pacman/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) - component_parts += new /obj/item/stack/cable_coil(src, 1) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new board_path(src) + var/obj/item/weapon/circuitboard/machine/B = new board_path(null) + B.apply_default_parts(src) + var/obj/sheet = new sheet_path(null) sheet_name = sheet.name - RefreshParts() + +/obj/item/weapon/circuitboard/machine/pacman + name = "circuit board (PACMAN-type Generator)" + build_path = /obj/machinery/power/port_gen/pacman + origin_tech = "programming=3;powerstorage=3;plasmatech=3;engineering=3" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/capacitor = 1) + +/obj/item/weapon/circuitboard/machine/pacman/super + name = "circuit board (SUPERPACMAN-type Generator)" + build_path = /obj/machinery/power/port_gen/pacman/super + origin_tech = "programming=3;powerstorage=4;engineering=4" + +/obj/item/weapon/circuitboard/machine/pacman/mrs + name = "circuit board (MRSPACMAN-type Generator)" + build_path = "/obj/machinery/power/port_gen/pacman/mrs" + origin_tech = "programming=3;powerstorage=5;engineering=5" /obj/machinery/power/port_gen/pacman/Destroy() DropFuel() @@ -316,7 +331,7 @@ display round(lastgen) and plasmatank amount sheet_path = /obj/item/stack/sheet/mineral/uranium power_gen = 15000 time_per_sheet = 85 - board_path = "/obj/item/weapon/circuitboard/pacman/super" + board_path = /obj/item/weapon/circuitboard/machine/pacman/super overheat() explosion(src.loc, 3, 3, 3, -1) @@ -326,6 +341,6 @@ display round(lastgen) and plasmatank amount sheet_path = /obj/item/stack/sheet/mineral/diamond power_gen = 40000 time_per_sheet = 80 - board_path = "/obj/item/weapon/circuitboard/pacman/mrs" + board_path = /obj/item/weapon/circuitboard/machine/pacman/mrs overheat() explosion(src.loc, 4, 4, 4, -1) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 051ca76dc48..660e1b409c1 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -29,12 +29,18 @@ /obj/machinery/power/emitter/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/emitter(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/emitter(null) + B.apply_default_parts(src) RefreshParts() +/obj/item/weapon/circuitboard/machine/emitter + name = "circuit board (Emitter)" + build_path = /obj/machinery/power/emitter + origin_tech = "programming=4;powerstorage=5;engineering=5" + req_components = list( + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/manipulator = 1) + /obj/machinery/power/emitter/RefreshParts() var/max_firedelay = 120 var/firedelay = 120 diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 6543360d433..4cc5fb43e77 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -44,7 +44,7 @@ /obj/machinery/power/smes/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/smes(null) + component_parts += new /obj/item/weapon/circuitboard/machine/smes(null) for(var/i in 1 to 5) component_parts += new /obj/item/weapon/stock_parts/cell/high/empty(null) component_parts += new /obj/item/stack/cable_coil(null, 5) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 48553748ed3..827da56ee9b 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -442,9 +442,9 @@ if(do_after(user, 20/I.toolspeed, target = src)) if (src.stat & BROKEN) user << "The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) + var/obj/structure/frame/computer/A = new /obj/structure/frame/computer( src.loc ) new /obj/item/weapon/shard( src.loc ) - var/obj/item/weapon/circuitboard/solar_control/M = new /obj/item/weapon/circuitboard/solar_control( A ) + var/obj/item/weapon/circuitboard/computer/solar_control/M = new /obj/item/weapon/circuitboard/computer/solar_control( A ) for (var/obj/C in src) C.loc = src.loc A.circuit = M @@ -454,8 +454,8 @@ qdel(src) else user << "You disconnect the monitor." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - var/obj/item/weapon/circuitboard/solar_control/M = new /obj/item/weapon/circuitboard/solar_control( A ) + var/obj/structure/frame/computer/A = new /obj/structure/frame/computer( src.loc ) + var/obj/item/weapon/circuitboard/computer/solar_control/M = new /obj/item/weapon/circuitboard/computer/solar_control( A ) for (var/obj/C in src) C.loc = src.loc A.circuit = M diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 721fb142ee6..ddb453f9082 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -10,10 +10,14 @@ /obj/machinery/power/tesla_coil/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/tesla_coil(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/tesla_coil(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/tesla_coil + name = "circuit board (Tesla Coil)" + build_path = /obj/machinery/power/tesla_coil + origin_tech = "programming=1;engineering=2;powerstorage=3" + req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) /obj/machinery/power/tesla_coil/RefreshParts() var/power_multiplier = 0 @@ -62,10 +66,14 @@ /obj/machinery/power/grounding_rod/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/grounding_rod(null) - component_parts += new /obj/item/weapon/stock_parts/capacitor(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/grounding_rod(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/grounding_rod + name = "circuit board (Grounding Rod)" + build_path = /obj/machinery/power/grounding_rod + origin_tech = "programming=1;engineering=1;powerstorage=1" + req_components = list(/obj/item/weapon/stock_parts/capacitor = 1) /obj/machinery/power/grounding_rod/attackby(obj/item/W, mob/user, params) if(default_deconstruction_screwdriver(user, "grounding_rod", "grounding_rod", W)) diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index 1e5036354ad..a4a7f60b165 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -58,7 +58,7 @@ desc = "A computer to remotely control a gas turbine." icon_screen = "turbinecomp" icon_keyboard = "tech_key" - circuit = /obj/item/weapon/circuitboard/turbine_computer + circuit = /obj/item/weapon/circuitboard/computer/turbine_computer var/obj/machinery/power/compressor/compressor var/id = 0 @@ -66,21 +66,20 @@ /obj/machinery/power/compressor/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/power_compressor(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/stack/cable_coil(null, 5) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/power_compressor(null) + B.apply_default_parts(src) // The inlet of the compressor is the direction it faces gas_contained = new inturf = get_step(src, dir) +/obj/item/weapon/circuitboard/machine/power_compressor + name = "circuit board (Power Compressor)" + build_path = /obj/machinery/power/compressor + origin_tech = "programming=4;powerstorage=5;engineering=4" + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/stock_parts/manipulator = 6) /obj/machinery/power/compressor/initialize() ..() @@ -188,20 +187,18 @@ /obj/machinery/power/turbine/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/power_turbine(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/stack/cable_coil(src, 5) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/power_turbine(null) + B.apply_default_parts(src) // The outlet is pointed at the direction of the turbine component - outturf = get_step(src, dir) +/obj/item/weapon/circuitboard/machine/power_turbine + name = "circuit board (Power Turbine)" + build_path = /obj/machinery/power/turbine + origin_tech = "programming=4;powerstorage=4;engineering=5" + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/stock_parts/capacitor = 6) /obj/machinery/power/turbine/initialize() ..() diff --git a/code/modules/procedural mapping/mapGenerators/syndicate.dm b/code/modules/procedural mapping/mapGenerators/syndicate.dm index fc3d9dc0387..98e87a8b91d 100644 --- a/code/modules/procedural mapping/mapGenerators/syndicate.dm +++ b/code/modules/procedural mapping/mapGenerators/syndicate.dm @@ -15,7 +15,7 @@ clusterCheckFlags = CLUSTER_CHECK_ALL spawnableTurfs = list() spawnableAtoms = list(/obj/structure/table = 20,/obj/structure/chair = 15,/obj/structure/chair/stool = 10, \ - /obj/structure/computerframe = 15, /obj/item/weapon/storage/toolbox/syndicate = 15 ,\ + /obj/structure/frame/computer = 15, /obj/item/weapon/storage/toolbox/syndicate = 15 ,\ /obj/structure/closet/syndicate = 25, /obj/machinery/suit_storage_unit/syndicate = 15) /datum/mapGeneratorModule/splatterLayer/syndieMobs diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index c36bcf88bc9..38da68a18ad 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -225,7 +225,7 @@ /obj/machinery/chem_dispenser/constructable/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/chem_dispenser(null) + component_parts += new /obj/item/weapon/circuitboard/machine/chem_dispenser(null) component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) component_parts += new /obj/item/weapon/stock_parts/manipulator(null) diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index edd2c9dd055..5a097bdc746 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -13,11 +13,16 @@ /obj/machinery/chem_heater/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/chem_heater(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/chem_heater(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/chem_heater + name = "circuit board (Chemical Heater)" + build_path = /obj/machinery/chem_heater + origin_tech = "materials=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/console_screen = 1) /obj/machinery/chem_heater/RefreshParts() heater_coefficient = 0.10 diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 8aba55937ef..4730cd0f891 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -1,6 +1,6 @@ /obj/machinery/chem_master name = "ChemMaster 3000" - desc = "Used to bottle chemicals to create pills." + desc = "Used to seperate chemicals and distribute them in a variety of forms." density = 1 anchored = 1 icon = 'icons/obj/chemical.dmi' @@ -16,6 +16,37 @@ /obj/machinery/chem_master/New() create_reagents(100) overlays += "waitlight" + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/chem_master(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/chem_master + name = "circuit board (ChemMaster 3000)" + build_path = /obj/machinery/chem_master + origin_tech = "materials=2;programming=2;biotech=1" + req_components = list( + /obj/item/weapon/reagent_containers/glass/beaker = 2, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + +/obj/item/weapon/circuitboard/machine/chem_master/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/screwdriver)) + var/new_name = "ChemMaster" + var/new_path = /obj/machinery/chem_master + + if(build_path == /obj/machinery/chem_master) + new_name = "CondiMaster" + new_path = /obj/machinery/chem_master/condimaster + + build_path = new_path + name = "circuit board ([new_name] 3000)" + user << "You change the circuit board setting to \"[new_name]\"." + else + return ..() + +/obj/machinery/chem_master/RefreshParts() + reagents.maximum_volume = 0 + for(var/obj/item/weapon/reagent_containers/glass/beaker/B in component_parts) + reagents.maximum_volume += B.reagents.maximum_volume /obj/machinery/chem_master/ex_act(severity, target) if(severity < 3) @@ -33,6 +64,21 @@ stat |= NOPOWER /obj/machinery/chem_master/attackby(obj/item/I, mob/user, params) + if(default_deconstruction_screwdriver(user, "mixer0_nopower", "mixer0", I)) + if(beaker) + beaker.loc = src.loc + beaker = null + reagents.clear_reagents() + if(bottle) + bottle.loc = src.loc + bottle = null + return + + else if(exchange_parts(user, I)) + return + else if(default_deconstruction_crowbar(I)) + return + if(default_unfasten_wrench(user, I)) return @@ -329,33 +375,6 @@ desc = "Used to create condiments and other cooking supplies." condi = 1 -/obj/machinery/chem_master/constructable - name = "ChemMaster 2999" - desc = "Used to seperate chemicals and distribute them in a variety of forms." - -/obj/machinery/chem_master/constructable/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/chem_master(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(null) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(null) - -/obj/machinery/chem_master/constructable/attackby(obj/item/B, mob/user, params) - if(default_deconstruction_screwdriver(user, "mixer0_nopower", "mixer0", B)) - if(beaker) - beaker.loc = src.loc - beaker = null - reagents.clear_reagents() - if(bottle) - bottle.loc = src.loc - bottle = null - return - - else if(exchange_parts(user, B)) - return - else if(default_deconstruction_crowbar(B)) - return - else - return ..() \ No newline at end of file +/obj/item/weapon/circuitboard/machine/chem_master/condi + name = "circuit board (CondiMaster 3000)" + build_path = /obj/machinery/chem_master/condimaster \ No newline at end of file diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 7fe9064c014..0fc16281542 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -5,7 +5,7 @@ anchored = 1 icon = 'icons/obj/chemical.dmi' icon_state = "mixer0" - circuit = /obj/item/weapon/circuitboard/pandemic + circuit = /obj/item/weapon/circuitboard/computer/pandemic use_power = 1 idle_power_usage = 20 var/temp_html = "" diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index b113b49127d..2cdc11189e1 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -32,15 +32,19 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). /obj/machinery/r_n_d/circuit_imprinter/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/circuit_imprinter(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/circuit_imprinter(null) + B.apply_default_parts(src) reagents.my_atom = src +/obj/item/weapon/circuitboard/machine/circuit_imprinter + name = "circuit board (Circuit Imprinter)" + build_path = /obj/machinery/r_n_d/circuit_imprinter + origin_tech = "engineering=2;programming=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/reagent_containers/glass/beaker = 2) + /obj/machinery/r_n_d/circuit_imprinter/RefreshParts() var/T = 0 for(var/obj/item/weapon/reagent_containers/glass/G in component_parts) diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm index d945d5d79a4..c25d7ffbe13 100644 --- a/code/modules/research/designs/AI_module_designs.dm +++ b/code/modules/research/designs/AI_module_designs.dm @@ -2,6 +2,16 @@ //////////AI Module Disks////////// /////////////////////////////////// +/datum/design/aicore + name = "AI Design (AI Core)" + desc = "Allows for the construction of circuit boards used to build new AI cores." + id = "aicore" + req_tech = list("programming" = 4, "biotech" = 3) + build_type = IMPRINTER + materials = list(MAT_GLASS = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/aicore + category = list("AI Modules") + /datum/design/safeguard_module name = "Module Design (Safeguard)" diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 9eeaebdd865..1da2314a25b 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -7,17 +7,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/security - category = list("Computer Boards") - -/datum/design/aicore - name = "AI Design (AI Core)" - desc = "Allows for the construction of circuit boards used to build new AI cores." - id = "aicore" - req_tech = list("programming" = 4, "biotech" = 3) - build_type = IMPRINTER - materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/aicore + build_path = /obj/item/weapon/circuitboard/computer/security category = list("Computer Boards") /datum/design/aiupload @@ -27,7 +17,7 @@ req_tech = list("programming" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/aiupload + build_path = /obj/item/weapon/circuitboard/computer/aiupload category = list("Computer Boards") /datum/design/borgupload @@ -37,7 +27,7 @@ req_tech = list("programming" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/borgupload + build_path = /obj/item/weapon/circuitboard/computer/borgupload category = list("Computer Boards") /datum/design/med_data @@ -47,7 +37,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/med_data + build_path = /obj/item/weapon/circuitboard/computer/med_data category = list("Computer Boards") /datum/design/operating @@ -57,7 +47,7 @@ req_tech = list("programming" = 2, "biotech" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/operating + build_path = /obj/item/weapon/circuitboard/computer/operating category = list("Computer Boards") /datum/design/pandemic @@ -67,7 +57,7 @@ req_tech = list("programming" = 2, "biotech" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/pandemic + build_path = /obj/item/weapon/circuitboard/computer/pandemic category = list("Computer Boards") /datum/design/scan_console @@ -77,7 +67,7 @@ req_tech = list("programming" = 2, "biotech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/scan_consolenew + build_path = /obj/item/weapon/circuitboard/computer/scan_consolenew category = list("Computer Boards") /datum/design/comconsole @@ -87,7 +77,7 @@ req_tech = list("programming" = 2, "magnets" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/communications + build_path = /obj/item/weapon/circuitboard/computer/communications category = list("Computer Boards") /datum/design/idcardconsole @@ -97,7 +87,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/card + build_path = /obj/item/weapon/circuitboard/computer/card category = list("Computer Boards") /datum/design/crewconsole @@ -107,7 +97,7 @@ req_tech = list("programming" = 3, "magnets" = 2, "biotech" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/crew + build_path = /obj/item/weapon/circuitboard/computer/crew category = list("Computer Boards") @@ -118,7 +108,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/secure_data + build_path = /obj/item/weapon/circuitboard/computer/secure_data category = list("Computer Boards") /datum/design/atmosalerts @@ -128,7 +118,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/atmos_alert + build_path = /obj/item/weapon/circuitboard/computer/atmos_alert category = list("Computer Boards") /datum/design/atmos_control @@ -138,7 +128,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/atmos_control + build_path = /obj/item/weapon/circuitboard/computer/atmos_control category = list("Computer Boards") /datum/design/robocontrol @@ -148,7 +138,7 @@ req_tech = list("programming" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/robotics + build_path = /obj/item/weapon/circuitboard/computer/robotics category = list("Computer Boards") /datum/design/arcadebattle @@ -158,7 +148,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/arcade/battle + build_path = /obj/item/weapon/circuitboard/computer/arcade/battle category = list("Computer Boards") /datum/design/orion_trail @@ -168,7 +158,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/arcade/orion_trail + build_path = /obj/item/weapon/circuitboard/computer/arcade/orion_trail category = list("Computer Boards") /datum/design/slot_machine @@ -178,7 +168,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/slot_machine + build_path = /obj/item/weapon/circuitboard/computer/slot_machine category = list("Computer Boards") /datum/design/powermonitor @@ -188,7 +178,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/powermonitor + build_path = /obj/item/weapon/circuitboard/computer/powermonitor category = list("Computer Boards") /datum/design/solarcontrol @@ -198,7 +188,7 @@ req_tech = list("programming" = 2, "powerstorage" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/solar_control + build_path = /obj/item/weapon/circuitboard/computer/solar_control category = list("Computer Boards") /datum/design/prisonmanage @@ -208,7 +198,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/prisoner + build_path = /obj/item/weapon/circuitboard/computer/prisoner category = list("Computer Boards") /datum/design/mechacontrol @@ -218,7 +208,7 @@ req_tech = list("programming" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/mecha_control + build_path = /obj/item/weapon/circuitboard/computer/mecha_control category = list("Computer Boards") /datum/design/mechapower @@ -228,7 +218,7 @@ req_tech = list("programming" = 2, "powerstorage" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/mech_bay_power_console + build_path = /obj/item/weapon/circuitboard/computer/mech_bay_power_console category = list("Computer Boards") /datum/design/rdconsole @@ -238,7 +228,7 @@ req_tech = list("programming" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/rdconsole + build_path = /obj/item/weapon/circuitboard/computer/rdconsole category = list("Computer Boards") /datum/design/cargo @@ -248,7 +238,7 @@ req_tech = list("programming" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/cargo + build_path = /obj/item/weapon/circuitboard/computer/cargo category = list("Computer Boards") /datum/design/cargorequest @@ -258,7 +248,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/cargo/request + build_path = /obj/item/weapon/circuitboard/computer/cargo/request category = list("Computer Boards") /datum/design/mining @@ -268,7 +258,7 @@ req_tech = list("programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/mining + build_path = /obj/item/weapon/circuitboard/computer/mining category = list("Computer Boards") /datum/design/comm_monitor @@ -278,7 +268,7 @@ req_tech = list("programming" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/comm_monitor + build_path = /obj/item/weapon/circuitboard/computer/comm_monitor category = list("Computer Boards") /datum/design/comm_server @@ -288,7 +278,7 @@ req_tech = list("programming" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/comm_server + build_path = /obj/item/weapon/circuitboard/computer/comm_server category = list("Computer Boards") /datum/design/message_monitor @@ -298,7 +288,7 @@ req_tech = list("programming" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/message_monitor + build_path = /obj/item/weapon/circuitboard/computer/message_monitor category = list("Computer Boards") /datum/design/aifixer @@ -308,7 +298,7 @@ req_tech = list("programming" = 3, "biotech" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/aifixer + build_path = /obj/item/weapon/circuitboard/computer/aifixer category = list("Computer Boards") /datum/design/libraryconsole @@ -318,5 +308,5 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/libraryconsole + build_path = /obj/item/weapon/circuitboard/computer/libraryconsole category = list("Computer Boards") diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 0a4b1da496b..fe53f327a7e 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -9,7 +9,7 @@ req_tech = list("programming" = 4, "powerstorage" = 5, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/smes + build_path = /obj/item/weapon/circuitboard/machine/smes category = list ("Engineering Machinery") /datum/design/announcement_system @@ -19,7 +19,7 @@ req_tech = list("programming" = 3, "bluespace" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/announcement_system + build_path = /obj/item/weapon/circuitboard/machine/announcement_system category = list("Subspace Telecomms") /datum/design/turbine_computer @@ -29,7 +29,7 @@ req_tech = list("programming" = 4, "powerstorage" = 4, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/turbine_computer + build_path = /obj/item/weapon/circuitboard/computer/turbine_computer category = list ("Engineering Machinery") /datum/design/emitter @@ -39,7 +39,7 @@ req_tech = list("programming" = 4, "powerstorage" = 5, "engineering" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/emitter + build_path = /obj/item/weapon/circuitboard/machine/emitter category = list ("Engineering Machinery") /datum/design/power_compressor @@ -49,7 +49,7 @@ req_tech = list("programming" = 4, "powerstorage" = 5, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/power_compressor + build_path = /obj/item/weapon/circuitboard/machine/power_compressor category = list ("Engineering Machinery") /datum/design/power_turbine @@ -59,7 +59,7 @@ req_tech = list("programming" = 4, "powerstorage" = 4, "engineering" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/power_turbine + build_path = /obj/item/weapon/circuitboard/machine/power_turbine category = list ("Engineering Machinery") /datum/design/thermomachine @@ -69,7 +69,7 @@ req_tech = list("programming" = 3, "plasmatech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/thermomachine + build_path = /obj/item/weapon/circuitboard/machine/thermomachine category = list ("Engineering Machinery") /datum/design/space_heater @@ -79,7 +79,7 @@ req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/space_heater + build_path = /obj/item/weapon/circuitboard/machine/space_heater category = list ("Engineering Machinery") /datum/design/teleport_station @@ -89,7 +89,7 @@ req_tech = list("programming" = 4, "bluespace" = 4, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/teleporter_station + build_path = /obj/item/weapon/circuitboard/machine/teleporter_station category = list ("Teleportation Machinery") /datum/design/teleport_hub @@ -99,7 +99,7 @@ req_tech = list("programming" = 3, "bluespace" = 5, "materials" = 4, "engineering" = 5) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/teleporter_hub + build_path = /obj/item/weapon/circuitboard/machine/teleporter_hub category = list ("Teleportation Machinery") /datum/design/telepad @@ -109,7 +109,7 @@ req_tech = list("programming" = 4, "bluespace" = 4, "materials" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telesci_pad + build_path = /obj/item/weapon/circuitboard/machine/telesci_pad category = list ("Teleportation Machinery") /datum/design/teleconsole @@ -119,7 +119,7 @@ req_tech = list("programming" = 3, "bluespace" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/teleporter + build_path = /obj/item/weapon/circuitboard/computer/teleporter category = list("Teleportation Machinery") /datum/design/telesci_console @@ -129,7 +129,7 @@ req_tech = list("programming" = 3, "bluespace" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telesci_console + build_path = /obj/item/weapon/circuitboard/computer/telesci_console category = list("Teleportation Machinery") /datum/design/sleeper @@ -139,7 +139,7 @@ req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/sleeper + build_path = /obj/item/weapon/circuitboard/machine/sleeper category = list ("Medical Machinery") /datum/design/cryotube @@ -149,7 +149,7 @@ req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/cryo_tube + build_path = /obj/item/weapon/circuitboard/machine/cryo_tube category = list ("Medical Machinery") /datum/design/chem_dispenser @@ -159,7 +159,7 @@ req_tech = list("programming" = 4, "biotech" = 3, "engineering" = 4, "materials" = 4, "plasmatech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/chem_dispenser + build_path = /obj/item/weapon/circuitboard/machine/chem_dispenser category = list ("Medical Machinery") /datum/design/chem_master @@ -169,7 +169,7 @@ req_tech = list("biotech" = 1, "materials" = 2, "programming" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/chem_master + build_path = /obj/item/weapon/circuitboard/machine/chem_master category = list ("Medical Machinery") /datum/design/chem_heater @@ -179,7 +179,7 @@ req_tech = list("engineering" = 2, "materials" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/chem_heater + build_path = /obj/item/weapon/circuitboard/machine/chem_heater category = list ("Medical Machinery") /datum/design/clonecontrol @@ -189,7 +189,7 @@ req_tech = list("programming" = 3, "biotech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/cloning + build_path = /obj/item/weapon/circuitboard/computer/cloning category = list("Medical Machinery") /datum/design/clonepod @@ -199,7 +199,7 @@ req_tech = list("programming" = 3, "biotech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/clonepod + build_path = /obj/item/weapon/circuitboard/machine/clonepod category = list("Medical Machinery") /datum/design/clonescanner @@ -209,7 +209,7 @@ req_tech = list("programming" = 3, "biotech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/clonescanner + build_path = /obj/item/weapon/circuitboard/machine/clonescanner category = list("Medical Machinery") /datum/design/biogenerator @@ -219,7 +219,7 @@ req_tech = list("programming" = 3, "biotech" = 2, "materials" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/biogenerator + build_path = /obj/item/weapon/circuitboard/machine/biogenerator category = list ("Hydroponics Machinery") /datum/design/hydroponics @@ -229,7 +229,7 @@ req_tech = list("programming" = 1, "biotech" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/hydroponics + build_path = /obj/item/weapon/circuitboard/machine/hydroponics category = list ("Hydroponics Machinery") /datum/design/destructive_analyzer @@ -239,7 +239,7 @@ req_tech = list("programming" = 2, "magnets" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/destructive_analyzer + build_path = /obj/item/weapon/circuitboard/machine/destructive_analyzer category = list("Research Machinery") /datum/design/experimentor @@ -249,7 +249,7 @@ req_tech = list("programming" = 2, "magnets" = 2, "engineering" = 2, "bluespace" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/experimentor + build_path = /obj/item/weapon/circuitboard/machine/experimentor category = list("Research Machinery") /datum/design/protolathe @@ -259,7 +259,7 @@ req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/protolathe + build_path = /obj/item/weapon/circuitboard/machine/protolathe category = list("Research Machinery") /datum/design/circuit_imprinter @@ -269,7 +269,7 @@ req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/circuit_imprinter + build_path = /obj/item/weapon/circuitboard/machine/circuit_imprinter category = list("Research Machinery") /datum/design/rdservercontrol @@ -279,7 +279,7 @@ req_tech = list("programming" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/rdservercontrol + build_path = /obj/item/weapon/circuitboard/computer/rdservercontrol category = list("Research Machinery") /datum/design/rdserver @@ -289,7 +289,7 @@ req_tech = list("programming" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/rdserver + build_path = /obj/item/weapon/circuitboard/machine/rdserver category = list("Research Machinery") /datum/design/mechfab @@ -299,7 +299,7 @@ req_tech = list("programming" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/mechfab + build_path = /obj/item/weapon/circuitboard/machine/mechfab category = list("Research Machinery") /datum/design/cyborgrecharger @@ -309,7 +309,7 @@ req_tech = list("powerstorage" = 3, "engineering" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/cyborgrecharger + build_path = /obj/item/weapon/circuitboard/machine/cyborgrecharger category = list("Research Machinery") /datum/design/mech_recharger @@ -319,7 +319,7 @@ req_tech = list("programming" = 3, "powerstorage" = 4, "engineering" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/mech_recharger + build_path = /obj/item/weapon/circuitboard/machine/mech_recharger category = list("Research Machinery") /datum/design/microwave @@ -329,7 +329,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/microwave + build_path = /obj/item/weapon/circuitboard/machine/microwave category = list ("Misc. Machinery") /datum/design/gibber @@ -339,7 +339,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/gibber + build_path = /obj/item/weapon/circuitboard/machine/gibber category = list ("Misc. Machinery") /datum/design/smartfridge @@ -349,7 +349,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/smartfridge + build_path = /obj/item/weapon/circuitboard/machine/smartfridge category = list ("Misc. Machinery") /datum/design/monkey_recycler @@ -359,7 +359,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/monkey_recycler + build_path = /obj/item/weapon/circuitboard/machine/monkey_recycler category = list ("Misc. Machinery") /datum/design/seed_extractor @@ -369,7 +369,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/seed_extractor + build_path = /obj/item/weapon/circuitboard/machine/seed_extractor category = list ("Misc. Machinery") /datum/design/processor @@ -379,7 +379,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/processor + build_path = /obj/item/weapon/circuitboard/machine/processor category = list ("Misc. Machinery") /datum/design/recycler @@ -389,7 +389,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/recycler + build_path = /obj/item/weapon/circuitboard/machine/recycler category = list ("Misc. Machinery") /datum/design/holopad @@ -399,7 +399,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/holopad + build_path = /obj/item/weapon/circuitboard/machine/holopad category = list ("Misc. Machinery") /datum/design/autolathe @@ -409,7 +409,7 @@ req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/autolathe + build_path = /obj/item/weapon/circuitboard/machine/autolathe category = list ("Misc. Machinery") /datum/design/recharger @@ -419,7 +419,7 @@ req_tech = list("powerstorage" = 3, "engineering" = 3, "materials" = 4) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20, MAT_GOLD = 100) - build_path = /obj/item/weapon/circuitboard/recharger + build_path = /obj/item/weapon/circuitboard/machine/recharger category = list("Misc. Machinery") /datum/design/vendor @@ -429,7 +429,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/vendor + build_path = /obj/item/weapon/circuitboard/machine/vendor category = list ("Misc. Machinery") /datum/design/ore_redemption @@ -439,7 +439,7 @@ req_tech = list("programming" = 1, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/ore_redemption + build_path = /obj/item/weapon/circuitboard/machine/ore_redemption category = list ("Misc. Machinery") @@ -450,7 +450,7 @@ req_tech = list("programming" = 1, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/mining_equipment_vendor + build_path = /obj/item/weapon/circuitboard/machine/mining_equipment_vendor category = list ("Misc. Machinery") /datum/design/tesla_coil @@ -460,7 +460,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/tesla_coil + build_path = /obj/item/weapon/circuitboard/machine/tesla_coil category = list ("Misc. Machinery") /datum/design/grounding_rod @@ -470,7 +470,7 @@ req_tech = list("programming" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/grounding_rod + build_path = /obj/item/weapon/circuitboard/machine/grounding_rod category = list ("Misc. Machinery") /datum/design/plantgenes @@ -480,5 +480,5 @@ req_tech = list("programming" = 4, "biotech" = 3) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/plantgenes + build_path = /obj/item/weapon/circuitboard/machine/plantgenes category = list ("Misc. Machinery") diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index 0719aafb9e8..11bb5c755be 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -79,7 +79,7 @@ build_type = IMPRINTER reliability = 79 materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/pacman + build_path = /obj/item/weapon/circuitboard/machine/pacman category = list("Engineering Machinery") /datum/design/superpacman @@ -90,7 +90,7 @@ build_type = IMPRINTER reliability = 76 materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/pacman/super + build_path = /obj/item/weapon/circuitboard/machine/pacman/super category = list("Engineering Machinery") /datum/design/mrspacman @@ -101,5 +101,5 @@ build_type = IMPRINTER reliability = 74 materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/pacman/mrs + build_path = /obj/item/weapon/circuitboard/machine/pacman/mrs category = list("Engineering Machinery") diff --git a/code/modules/research/designs/telecomms_designs.dm b/code/modules/research/designs/telecomms_designs.dm index 0a36d63e6fa..baa6bb689ba 100644 --- a/code/modules/research/designs/telecomms_designs.dm +++ b/code/modules/research/designs/telecomms_designs.dm @@ -9,7 +9,7 @@ req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telecomms/receiver + build_path = /obj/item/weapon/circuitboard/machine/telecomms/receiver category = list("Subspace Telecomms") /datum/design/telecomms_bus @@ -19,7 +19,7 @@ req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telecomms/bus + build_path = /obj/item/weapon/circuitboard/machine/telecomms/bus category = list("Subspace Telecomms") /datum/design/telecomms_hub @@ -29,7 +29,7 @@ req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telecomms/hub + build_path = /obj/item/weapon/circuitboard/machine/telecomms/hub category = list("Subspace Telecomms") /datum/design/telecomms_relay @@ -39,7 +39,7 @@ req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telecomms/relay + build_path = /obj/item/weapon/circuitboard/machine/telecomms/relay category = list("Subspace Telecomms") /datum/design/telecomms_processor @@ -49,7 +49,7 @@ req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telecomms/processor + build_path = /obj/item/weapon/circuitboard/machine/telecomms/processor category = list("Subspace Telecomms") /datum/design/telecomms_server @@ -59,7 +59,7 @@ req_tech = list("programming" = 2, "engineering" = 2) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telecomms/server + build_path = /obj/item/weapon/circuitboard/machine/telecomms/server category = list("Subspace Telecomms") /datum/design/subspace_broadcaster @@ -69,5 +69,5 @@ req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 1) build_type = IMPRINTER materials = list(MAT_GLASS = 1000, "sacid" = 20) - build_path = /obj/item/weapon/circuitboard/telecomms/broadcaster + build_path = /obj/item/weapon/circuitboard/machine/telecomms/broadcaster category = list("Subspace Telecomms") \ No newline at end of file diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index 85a492092c5..a3b856b5f0f 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -15,12 +15,17 @@ Note: Must be placed within 3 tiles of the R&D Console /obj/machinery/r_n_d/destructive_analyzer/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/destructive_analyzer(null) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/destructive_analyzer(null) + B.apply_default_parts(src) + +/obj/item/weapon/circuitboard/machine/destructive_analyzer + name = "circuit board (Destructive Analyzer)" + build_path = /obj/machinery/r_n_d/destructive_analyzer + origin_tech = "magnets=2;engineering=2;programming=2" + req_components = list( + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/micro_laser = 1) /obj/machinery/r_n_d/destructive_analyzer/RefreshParts() var/T = 0 diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 7ae08a0338b..62216b39872 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -81,17 +81,21 @@ /obj/machinery/r_n_d/experimentor/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/experimentor(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/experimentor(null) + B.apply_default_parts(src) + trackedIan = locate(/mob/living/simple_animal/pet/dog/corgi/Ian) in mob_list trackedRuntime = locate(/mob/living/simple_animal/pet/cat/Runtime) in mob_list SetTypeReactions() - RefreshParts() + +/obj/item/weapon/circuitboard/machine/experimentor + name = "circuit board (E.X.P.E.R.I-MENTOR)" + build_path = /obj/machinery/r_n_d/experimentor + origin_tech = "magnets=1;engineering=1;programming=1;biotech=1;bluespace=2" + req_components = list( + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/stock_parts/micro_laser = 2) /obj/machinery/r_n_d/experimentor/RefreshParts() for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index e704dd823ae..70c6c1c0451 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -34,19 +34,21 @@ Note: Must be placed west/left of and R&D console to function. /obj/machinery/r_n_d/protolathe/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/protolathe(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) materials = new(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_PLASMA=1, MAT_URANIUM=1, MAT_BANANIUM=1)) - RefreshParts() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/protolathe(null) + B.apply_default_parts(src) reagents.my_atom = src +/obj/item/weapon/circuitboard/machine/protolathe + name = "circuit board (Protolathe)" + build_path = /obj/machinery/r_n_d/protolathe + origin_tech = "engineering=2;programming=2" + req_components = list( + /obj/item/weapon/stock_parts/matter_bin = 2, + /obj/item/weapon/stock_parts/manipulator = 2, + /obj/item/weapon/reagent_containers/glass/beaker = 2) + /obj/machinery/r_n_d/protolathe/Destroy() qdel(materials) return ..() diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index f8f2ef29743..5da672ae25d 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -33,7 +33,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, name = "R&D Console" icon_screen = "rdcomp" icon_keyboard = "rd_key" - circuit = /obj/item/weapon/circuitboard/rdconsole + circuit = /obj/item/weapon/circuitboard/computer/rdconsole var/datum/research/files //Stores all the collected research data. var/obj/item/weapon/disk/tech_disk/t_disk = null //Stores the technology disk. var/obj/item/weapon/disk/design_disk/d_disk = null //Stores the design disk. diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index dc2192aa25e..1e5e26d41ce 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -16,13 +16,17 @@ /obj/machinery/r_n_d/server/New() ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/rdserver(null) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() - initialize(); //Agouri + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/rdserver(null) + B.apply_default_parts(src) + initialize() //Agouri + +/obj/item/weapon/circuitboard/machine/rdserver + name = "circuit board (R&D Server)" + build_path = /obj/machinery/r_n_d/server + origin_tech = "programming=3" + req_components = list( + /obj/item/stack/cable_coil = 2, + /obj/item/weapon/stock_parts/scanning_module = 1) /obj/machinery/r_n_d/server/Destroy() griefProtection() @@ -177,7 +181,7 @@ var/list/servers = list() var/list/consoles = list() var/badmin = 0 - circuit = /obj/item/weapon/circuitboard/rdservercontrol + circuit = /obj/item/weapon/circuitboard/computer/rdservercontrol /obj/machinery/computer/rdservercontrol/Topic(href, href_list) if(..()) diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 2b5968cc068..74e2343be67 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -3,13 +3,13 @@ icon_screen = "shuttle" icon_keyboard = "tech_key" req_access = list( ) - circuit = /obj/item/weapon/circuitboard/shuttle + circuit = /obj/item/weapon/circuitboard/computer/shuttle var/shuttleId var/possible_destinations = "" var/admin_controlled var/no_destination_swap = 0 -/obj/machinery/computer/shuttle/New(location, obj/item/weapon/circuitboard/shuttle/C) +/obj/machinery/computer/shuttle/New(location, obj/item/weapon/circuitboard/computer/shuttle/C) ..() if(istype(C)) possible_destinations = C.possible_destinations diff --git a/code/modules/shuttle/ferry.dm b/code/modules/shuttle/ferry.dm index 0921e074f06..f5b142dc4ed 100644 --- a/code/modules/shuttle/ferry.dm +++ b/code/modules/shuttle/ferry.dm @@ -1,13 +1,13 @@ /obj/machinery/computer/shuttle/ferry name = "transport ferry console" - circuit = /obj/item/weapon/circuitboard/ferry + circuit = /obj/item/weapon/circuitboard/computer/ferry shuttleId = "ferry" possible_destinations = "ferry_home;ferry_away" /obj/machinery/computer/shuttle/ferry/request name = "ferry console" - circuit = /obj/item/weapon/circuitboard/ferry/request + circuit = /obj/item/weapon/circuitboard/computer/ferry/request var/cooldown //prevents spamming admins possible_destinations = "ferry_home" admin_controlled = 1 diff --git a/code/modules/shuttle/white_ship.dm b/code/modules/shuttle/white_ship.dm index 4749a5e8d17..924a210e22a 100644 --- a/code/modules/shuttle/white_ship.dm +++ b/code/modules/shuttle/white_ship.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/shuttle/white_ship name = "White Ship Console" desc = "Used to control the White Ship." - circuit = /obj/item/weapon/circuitboard/white_ship + circuit = /obj/item/weapon/circuitboard/computer/white_ship shuttleId = "whiteship" possible_destinations = "whiteship_away;whiteship_home;whiteship_z4;whiteship_lavaland" \ No newline at end of file diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index 8e640ed006d..2259bb961f1 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -13,7 +13,7 @@ /obj/machinery/telepad/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/telesci_pad(null) + component_parts += new /obj/item/weapon/circuitboard/machine/telesci_pad(null) component_parts += new /obj/item/weapon/ore/bluespace_crystal/artificial(null) component_parts += new /obj/item/weapon/ore/bluespace_crystal/artificial(null) component_parts += new /obj/item/weapon/stock_parts/capacitor(null) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index e0f333b8007..59237bfd1b0 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -3,7 +3,7 @@ desc = "Used to teleport objects to and from the telescience telepad." icon_screen = "teleport" icon_keyboard = "teleport_key" - circuit = /obj/item/weapon/circuitboard/telesci_console + circuit = /obj/item/weapon/circuitboard/computer/telesci_console var/sending = 1 var/obj/machinery/telepad/telepad = null var/temp_msg = "Telescience control console initialized.
Welcome." diff --git a/icons/obj/stock_parts.dmi b/icons/obj/stock_parts.dmi index 8b5b5b812e4376f25ea40f1a710fa19f683623e9..6589aabb869e72eed234b3fd77b4d7cfed80d37e 100644 GIT binary patch literal 13401 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 bIzZ6lA<;FPg*y6`A>g(ATe)%>vycA`l;$|Q literal 13157 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