diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm index f93bfc737a0..07e7273ca21 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm @@ -4051,11 +4051,11 @@ /area/icemoon/surface/outdoors/noteleport) "UK" = ( /obj/structure/table/reinforced/plastitaniumglass, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -5; pixel_y = 8 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = 4; pixel_y = 5 }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm index 0ce6fd74481..2d65f7ff2a0 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm @@ -680,7 +680,7 @@ /area/ruin/syndielab) "QO" = ( /obj/structure/table/reinforced/plastitaniumglass, -/obj/item/computer_disk/syndicate/camera_app{ +/obj/item/disk/computer/syndicate/camera_app{ pixel_y = 4; pixel_x = -5 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_crashsite.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_crashsite.dmm index 4a162ed4e76..ef3307e388d 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_crashsite.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_crashsite.dmm @@ -54,7 +54,7 @@ /obj/structure/chair/comfy/shuttle{ dir = 4 }, -/obj/item/bitrunning_disk/item/pka_mods, +/obj/item/disk/bitrunning/item/pka_mods, /turf/open/floor/mineral/titanium/blue, /area/ruin/unpowered) "k" = ( diff --git a/_maps/RandomRuins/SpaceRuins/anomaly_research.dmm b/_maps/RandomRuins/SpaceRuins/anomaly_research.dmm index 17fe1864a16..88e51a612a6 100644 --- a/_maps/RandomRuins/SpaceRuins/anomaly_research.dmm +++ b/_maps/RandomRuins/SpaceRuins/anomaly_research.dmm @@ -269,7 +269,7 @@ dir = 4 }, /obj/structure/table/wood, -/obj/item/computer_disk/ordnance, +/obj/item/disk/computer/ordnance, /turf/open/floor/iron/dark, /area/misc/anomaly_research) "iq" = ( diff --git a/_maps/RandomRuins/SpaceRuins/derelict7.dmm b/_maps/RandomRuins/SpaceRuins/derelict7.dmm index 49cd1a71613..d12954efd2c 100644 --- a/_maps/RandomRuins/SpaceRuins/derelict7.dmm +++ b/_maps/RandomRuins/SpaceRuins/derelict7.dmm @@ -265,7 +265,7 @@ /obj/effect/turf_decal/trimline/neutral/warning{ dir = 1 }, -/obj/item/computer_disk/ordnance, +/obj/item/disk/computer/ordnance, /turf/open/floor/iron/dark/side/airless{ dir = 1 }, diff --git a/_maps/RandomRuins/SpaceRuins/garbagetruck4.dmm b/_maps/RandomRuins/SpaceRuins/garbagetruck4.dmm index 10c1a56fa26..627842aa210 100644 --- a/_maps/RandomRuins/SpaceRuins/garbagetruck4.dmm +++ b/_maps/RandomRuins/SpaceRuins/garbagetruck4.dmm @@ -635,8 +635,8 @@ "JI" = ( /obj/item/dice/d10, /obj/structure/filingcabinet/chestdrawer, -/obj/item/computer_disk/maintenance/modsuit_control, -/obj/item/computer_disk/maintenance/modsuit_control, +/obj/item/disk/computer/maintenance/modsuit_control, +/obj/item/disk/computer/maintenance/modsuit_control, /turf/open/floor/plating, /area/ruin/space/has_grav/garbagetruck/toystore) "KR" = ( diff --git a/_maps/RandomRuins/SpaceRuins/old_infiltrator.dmm b/_maps/RandomRuins/SpaceRuins/old_infiltrator.dmm index 082f1341908..a98f08c1948 100644 --- a/_maps/RandomRuins/SpaceRuins/old_infiltrator.dmm +++ b/_maps/RandomRuins/SpaceRuins/old_infiltrator.dmm @@ -215,7 +215,7 @@ pixel_y = -4; pixel_x = -7 }, -/obj/item/computer_disk/syndicate/camera_app{ +/obj/item/disk/computer/syndicate/camera_app{ pixel_x = -5; pixel_y = 9 }, diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 93141bbfef4..07001ee233f 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -3051,7 +3051,7 @@ /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/table, /obj/machinery/door/window/brigdoor/right/directional/east, -/obj/item/computer_disk, +/obj/item/disk/computer, /turf/open/floor/iron/dark, /area/ruin/space/ancientstation/delta/ai) "nI" = ( diff --git a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm index e2efec50286..853c4c3c68e 100644 --- a/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm +++ b/_maps/RandomRuins/SpaceRuins/turretedoutpost.dmm @@ -165,7 +165,7 @@ pixel_x = 5; pixel_y = 6 }, -/obj/item/computer_disk/syndicate/camera_app{ +/obj/item/disk/computer/syndicate/camera_app{ pixel_x = -5 }, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm index a190ac27e3e..d0c0389f4e6 100644 --- a/_maps/RandomZLevels/SnowCabin.dmm +++ b/_maps/RandomZLevels/SnowCabin.dmm @@ -3318,7 +3318,7 @@ /obj/effect/turf_decal/weather/snow, /obj/item/modular_computer/pda/syndicate{ desc = "A portable microcomputer by Thinktronic Systems, LTD."; - inserted_disk = /obj/item/computer_disk/virus/clown; + inserted_disk = /obj/item/disk/computer/virus/clown; name = "soviet tablet" }, /obj/effect/decal/remains/human{ @@ -5321,7 +5321,7 @@ /obj/structure/table/reinforced, /obj/item/modular_computer/pda/syndicate{ desc = "A portable microcomputer by Thinktronic Systems, LTD."; - inserted_disk = /obj/item/computer_disk/virus/mime; + inserted_disk = /obj/item/disk/computer/virus/mime; name = "soviet tablet" }, /obj/effect/light_emitter{ diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 7ec1338d0c0..377eb6be16f 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -2644,8 +2644,8 @@ /area/awaymission/moonoutpost19/arrivals) "rc" = ( /obj/structure/table, -/obj/item/computer_disk/ordnance, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance, +/obj/item/disk/computer/ordnance{ pixel_x = -4; pixel_y = 2 }, diff --git a/_maps/RandomZLevels/museum.dmm b/_maps/RandomZLevels/museum.dmm index ab6be28cdfb..a4492aed844 100644 --- a/_maps/RandomZLevels/museum.dmm +++ b/_maps/RandomZLevels/museum.dmm @@ -5535,7 +5535,7 @@ "Ux" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/structure/table, -/obj/item/computer_disk{ +/obj/item/disk/computer{ name = "plant data disk"; icon_state = "datadisk_hydro" }, diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index 624f05678ac..0b5d881f3d5 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -7785,8 +7785,8 @@ /area/awaymission/undergroundoutpost45/engineering) "Yk" = ( /obj/structure/table, -/obj/item/computer_disk/ordnance, -/obj/item/computer_disk/ordnance, +/obj/item/disk/computer/ordnance, +/obj/item/disk/computer/ordnance, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/cafeteria{ dir = 5 diff --git a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm index 02508b9de0f..1b2d3a0e6b5 100644 --- a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm +++ b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm @@ -32163,11 +32163,11 @@ /obj/item/radio/intercom/directional/east, /obj/structure/cable, /obj/machinery/keycard_auth/wall_mounted/directional/south, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -6 }, -/obj/item/computer_disk, -/obj/item/computer_disk{ +/obj/item/disk/computer, +/obj/item/disk/computer{ pixel_x = 6 }, /turf/open/floor/wood, diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 7faa02b1844..17f79580956 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -13971,9 +13971,9 @@ /area/station/maintenance/disposal/incinerator) "dvF" = ( /obj/structure/table/reinforced, -/obj/item/computer_disk/quartermaster, -/obj/item/computer_disk/quartermaster, -/obj/item/computer_disk/quartermaster, +/obj/item/disk/computer/quartermaster, +/obj/item/disk/computer/quartermaster, +/obj/item/disk/computer/quartermaster, /obj/item/gps/mining, /obj/item/paper_bin/carbon, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -38804,11 +38804,11 @@ /area/station/security/holding_cell) "jCf" = ( /obj/structure/table, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = 7; pixel_y = 2 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -2 }, /obj/machinery/light_switch/directional/east{ @@ -46311,17 +46311,17 @@ pixel_x = 4; pixel_y = 1 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_y = 4 }, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -2; pixel_y = 2 }, -/obj/item/computer_disk, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer, +/obj/item/disk/computer/ordnance{ pixel_x = -4; pixel_y = -1 }, @@ -59055,9 +59055,9 @@ "oIL" = ( /obj/machinery/airalarm/directional/south, /obj/effect/turf_decal/bot, -/obj/item/computer_disk/engineering, -/obj/item/computer_disk/engineering, -/obj/item/computer_disk/engineering, +/obj/item/disk/computer/engineering, +/obj/item/disk/computer/engineering, +/obj/item/disk/computer/engineering, /obj/structure/rack, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -66183,10 +66183,10 @@ /area/station/service/chapel) "qtq" = ( /obj/structure/table, -/obj/item/computer_disk/medical{ +/obj/item/disk/computer/medical{ pixel_x = 3 }, -/obj/item/computer_disk/medical{ +/obj/item/disk/computer/medical{ pixel_x = -3 }, /obj/item/toy/figure/cmo, @@ -94883,13 +94883,13 @@ /area/station/science/xenobiology) "xzq" = ( /obj/structure/table/reinforced, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_x = 3 }, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_x = -2 }, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_y = 2 }, /obj/item/toy/figure/rd, diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 70abb1613d3..bf6538a41c4 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -20782,9 +20782,9 @@ }, /obj/structure/table, /obj/item/coin/silver, -/obj/item/computer_disk/quartermaster, -/obj/item/computer_disk/quartermaster, -/obj/item/computer_disk/quartermaster, +/obj/item/disk/computer/quartermaster, +/obj/item/disk/computer/quartermaster, +/obj/item/disk/computer/quartermaster, /obj/item/clipboard, /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 @@ -22970,15 +22970,15 @@ }, /obj/item/stock_parts/power_store/cell/high, /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/computer_disk/engineering{ +/obj/item/disk/computer/engineering{ pixel_x = 4; pixel_y = 3 }, -/obj/item/computer_disk/engineering{ +/obj/item/disk/computer/engineering{ pixel_x = 4; pixel_y = 3 }, -/obj/item/computer_disk/engineering{ +/obj/item/disk/computer/engineering{ pixel_x = 4; pixel_y = 3 }, @@ -23683,12 +23683,12 @@ /area/station/engineering/storage_shared) "gEy" = ( /obj/structure/table, -/obj/item/computer_disk/ordnance, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance, +/obj/item/disk/computer/ordnance{ pixel_x = -5; pixel_y = 4 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = 7; pixel_y = 2 }, @@ -61319,8 +61319,8 @@ /area/station/medical/virology) "rjt" = ( /obj/structure/table/glass, -/obj/item/computer_disk/medical, -/obj/item/computer_disk/medical, +/obj/item/disk/computer/medical, +/obj/item/disk/computer/medical, /obj/machinery/status_display/evac/directional/north, /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/dark, @@ -71218,10 +71218,10 @@ /area/station/service/theater) "tZw" = ( /obj/structure/table, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -2 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = 2; pixel_y = 8 }, @@ -76818,14 +76818,14 @@ /area/station/medical/break_room) "vIg" = ( /obj/structure/table, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = 7; pixel_y = 2 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -2 }, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_x = -5; pixel_y = 6 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 567b6badb80..e8234f1482a 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -10494,9 +10494,9 @@ /obj/structure/table/reinforced, /obj/item/clipboard, /obj/item/paper/monitorkey, -/obj/item/computer_disk/engineering, -/obj/item/computer_disk/engineering, -/obj/item/computer_disk/engineering, +/obj/item/disk/computer/engineering, +/obj/item/disk/computer/engineering, +/obj/item/disk/computer/engineering, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) @@ -26804,7 +26804,7 @@ name = "Dud Rocket"; desc = "An 84mm High Explosive rocket. This one's a dud. Pretty sure." }, -/obj/item/computer_disk/quartermaster{ +/obj/item/disk/computer/quartermaster{ pixel_x = 9; pixel_y = 13 }, @@ -33099,9 +33099,9 @@ /obj/effect/turf_decal/siding{ dir = 4 }, -/obj/item/computer_disk/ordnance, -/obj/item/computer_disk/ordnance, -/obj/item/computer_disk/ordnance, +/obj/item/disk/computer/ordnance, +/obj/item/disk/computer/ordnance, +/obj/item/disk/computer/ordnance, /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 }, @@ -41869,11 +41869,11 @@ /area/station/hallway/primary/starboard) "ote" = ( /obj/structure/table, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -8; pixel_y = -3 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -5; pixel_y = 8 }, @@ -41881,7 +41881,7 @@ dir = 9 }, /obj/machinery/airalarm/directional/west, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_x = 1 }, /turf/open/floor/iron/white, @@ -51565,8 +51565,8 @@ pixel_x = -7; pixel_y = 8 }, -/obj/item/computer_disk/medical, -/obj/item/computer_disk/medical, +/obj/item/disk/computer/medical, +/obj/item/disk/computer/medical, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) "rHn" = ( @@ -58014,11 +58014,11 @@ /obj/item/radio/intercom/directional/east, /obj/structure/table, /obj/effect/turf_decal/bot, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = 7; pixel_y = 2 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -5; pixel_y = 8 }, diff --git a/_maps/map_files/NebulaStation/NebulaStation.dmm b/_maps/map_files/NebulaStation/NebulaStation.dmm index 7ac250c073f..6521255f639 100644 --- a/_maps/map_files/NebulaStation/NebulaStation.dmm +++ b/_maps/map_files/NebulaStation/NebulaStation.dmm @@ -19832,7 +19832,7 @@ fax_name = "Chief Engineer's Office"; name = "Chief Engineer's Fax Machine" }, -/obj/item/computer_disk/engineering, +/obj/item/disk/computer/engineering, /obj/structure/table/reinforced/rglass, /turf/open/floor/carpet/orange, /area/station/command/heads_quarters/ce) @@ -32131,14 +32131,14 @@ }, /obj/effect/mapping_helpers/requests_console/assistance, /obj/effect/mapping_helpers/requests_console/information, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -5; pixel_y = 8 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_y = 1 }, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_x = 4; pixel_y = 6 }, @@ -101353,7 +101353,7 @@ pixel_y = 6; pixel_x = -5 }, -/obj/item/computer_disk/medical, +/obj/item/disk/computer/medical, /obj/machinery/requests_console/directional/south{ department = "Chief Medical Officer's Desk"; name = "Chief Medical Officer's Requests Console" @@ -144154,7 +144154,7 @@ pixel_y = 3; pixel_x = -2 }, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_y = 2; pixel_x = 4 }, diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index c63c1c091ce..f3e01239f79 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -7081,9 +7081,9 @@ /area/awaymission/errorroom) "FO" = ( /obj/structure/table/reinforced, -/obj/item/computer_disk/quartermaster, -/obj/item/computer_disk/quartermaster, -/obj/item/computer_disk/quartermaster, +/obj/item/disk/computer/quartermaster, +/obj/item/disk/computer/quartermaster, +/obj/item/disk/computer/quartermaster, /obj/item/gps/mining, /obj/effect/turf_decal/stripes/line{ dir = 6 diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index d5153099e4a..27fa9526b94 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -14194,15 +14194,15 @@ /area/station/engineering/engine_smes) "dNH" = ( /obj/structure/table, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -8; pixel_y = -3 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -5; pixel_y = 8 }, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_x = 1 }, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -18341,8 +18341,8 @@ /area/station/security/brig) "foD" = ( /obj/structure/table/glass, -/obj/item/computer_disk/medical, -/obj/item/computer_disk/medical, +/obj/item/disk/computer/medical, +/obj/item/disk/computer/medical, /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) @@ -38965,9 +38965,9 @@ dir = 1 }, /obj/structure/window/reinforced/spawner/directional/west, -/obj/item/computer_disk/engineering, -/obj/item/computer_disk/engineering, -/obj/item/computer_disk/engineering, +/obj/item/disk/computer/engineering, +/obj/item/disk/computer/engineering, +/obj/item/disk/computer/engineering, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) "myc" = ( @@ -43745,10 +43745,10 @@ /area/station/construction/mining/aux_base) "okA" = ( /obj/structure/table, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -2 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = 7; pixel_y = 2 }, @@ -48336,8 +48336,8 @@ "pUV" = ( /obj/structure/table, /obj/item/clipboard, -/obj/item/computer_disk/quartermaster, -/obj/item/computer_disk/quartermaster, +/obj/item/disk/computer/quartermaster, +/obj/item/disk/computer/quartermaster, /obj/structure/disposalpipe/segment{ dir = 5 }, @@ -62314,15 +62314,15 @@ pixel_x = 7; pixel_y = -2 }, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_x = -4; pixel_y = 10 }, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_x = 5; pixel_y = 10 }, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_x = 1; pixel_y = 10 }, diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index 2a07700a6ad..28b390be699 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -207,7 +207,7 @@ pixel_y = 4 }, /obj/machinery/firealarm/directional/east, -/obj/item/computer_disk/quartermaster{ +/obj/item/disk/computer/quartermaster{ pixel_x = -6; pixel_y = 4 }, @@ -16102,7 +16102,7 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 }, -/obj/item/computer_disk/ordnance, +/obj/item/disk/computer/ordnance, /obj/machinery/light/warm/directional/south, /obj/item/coffee_cartridge/fancy, /turf/open/floor/iron/dark, @@ -23195,11 +23195,11 @@ /obj/item/radio/intercom/directional/east, /obj/structure/table, /obj/effect/turf_decal/bot, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = 7; pixel_y = 2 }, -/obj/item/computer_disk{ +/obj/item/disk/computer{ pixel_x = -5; pixel_y = 8 }, @@ -36622,7 +36622,7 @@ /turf/open/floor/iron, /area/station/security) "mEN" = ( -/obj/item/computer_disk/maintenance/spectre_meter, +/obj/item/disk/computer/maintenance/spectre_meter, /turf/open/misc/asteroid/airless, /area/station/asteroid) "mEQ" = ( @@ -49449,7 +49449,7 @@ /obj/machinery/modular_computer/preset/civilian{ dir = 1 }, -/obj/item/computer_disk/ordnance{ +/obj/item/disk/computer/ordnance{ pixel_x = 1 }, /turf/open/floor/iron/dark, @@ -64419,7 +64419,7 @@ "whG" = ( /obj/structure/table/reinforced/rglass, /obj/item/folder/blue, -/obj/item/computer_disk/medical, +/obj/item/disk/computer/medical, /obj/item/stamp/head/cmo, /turf/open/floor/holofloor/dark, /area/station/command/heads_quarters/cmo) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index b9abc260dc8..638d1068b2c 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -266,13 +266,13 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items ) = 8, list(//computer disks - /obj/item/computer_disk/maintenance/scanner = 1, - /obj/item/computer_disk/maintenance/camera = 1, - /obj/item/computer_disk/maintenance/modsuit_control = 1, - /obj/item/computer_disk/maintenance/spectre_meter = 1, - /obj/item/computer_disk/maintenance/arcade = 1, + /obj/item/disk/computer/maintenance/scanner = 1, + /obj/item/disk/computer/maintenance/camera = 1, + /obj/item/disk/computer/maintenance/modsuit_control = 1, + /obj/item/disk/computer/maintenance/spectre_meter = 1, + /obj/item/disk/computer/maintenance/arcade = 1, /obj/item/disk/design_disk/liberator = 1, - /obj/item/computer_disk/maintenance/theme = 3, + /obj/item/disk/computer/maintenance/theme = 3, ) = 4, list(//modsuits diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_objects.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_objects.dm index 4f17ad5ae57..5f094f412d9 100644 --- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_objects.dm +++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_objects.dm @@ -82,6 +82,11 @@ icon_file = 'icons/obj/storage/wrapping.dmi' json_config = 'code/datums/greyscale/json_configs/giftdeliverypackage1.json' +/datum/greyscale_config/giftdeliveryfloppy + name = "Gift Floppy Disk Package" + icon_file = 'icons/obj/storage/wrapping.dmi' + json_config = 'code/datums/greyscale/json_configs/giftdeliveryfloppy.json' + /datum/greyscale_config/wrap_paper name = "Wrapping Paper" icon_file = 'icons/obj/stack_objects.dmi' diff --git a/code/datums/greyscale/json_configs/giftdeliveryfloppy.json b/code/datums/greyscale/json_configs/giftdeliveryfloppy.json new file mode 100644 index 00000000000..24b0e0892d8 --- /dev/null +++ b/code/datums/greyscale/json_configs/giftdeliveryfloppy.json @@ -0,0 +1,16 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "giftdeliveryfloppy_base", + "blend_mode": "overlay", + "color_ids": [1] + }, + { + "type": "icon_state", + "icon_state": "giftdeliveryfloppy_ribbon", + "blend_mode": "overlay", + "color_ids": [2] + } + ] +} diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index 1c6590acd64..0217298f9bc 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -215,7 +215,7 @@ /obj/item/disk/holodisk name = "holorecord disk" desc = "Stores recorder holocalls." - icon_state = "holodisk" + sticker_icon_state = "o_holo" obj_flags = UNIQUE_RENAME custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT, /datum/material/glass = SMALL_MATERIAL_AMOUNT) var/datum/holorecord/record diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 33256f6d390..49d737ffd16 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -520,15 +520,15 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new()) /datum/objective_item/steal/hdd_extraction name = "the source code for Project Goon from the master R&D server mainframe" - targetitem = /obj/item/computer_disk/hdd_theft + targetitem = /obj/item/disk/computer/hdd_theft excludefromjob = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST) item_owner = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST) exists_on_map = TRUE difficulty = 4 steal_hint = "The hard drive of the master research server, found in R&D's server room." -/obj/item/computer_disk/hdd_theft/add_stealing_item_objective() - return add_item_to_steal(src, /obj/item/computer_disk/hdd_theft) +/obj/item/disk/computer/hdd_theft/add_stealing_item_objective() + return add_item_to_steal(src, /obj/item/disk/computer/hdd_theft) /datum/objective_item/steal/hdd_extraction/New() special_equipment += /obj/item/paper/guides/antag/hdd_extraction diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index 1ad319486c8..a3e92e9463d 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -159,56 +159,18 @@ SIGNAL_HANDLER set_linked_console(null) -// Disk skins -/datum/atom_skin/dna_disk - abstract_type = /datum/atom_skin/dna_disk - -/datum/atom_skin/dna_disk/red - preview_name = "Red" - new_icon_state = "datadisk0" - -/datum/atom_skin/dna_disk/dark_blue - preview_name = "Dark Blue" - new_icon_state = "datadisk1" - -/datum/atom_skin/dna_disk/yellow - preview_name = "Yellow" - new_icon_state = "datadisk2" - -/datum/atom_skin/dna_disk/black - preview_name = "Black" - new_icon_state = "datadisk3" - -/datum/atom_skin/dna_disk/green - preview_name = "Green" - new_icon_state = "datadisk4" - -/datum/atom_skin/dna_disk/purple - preview_name = "Purple" - new_icon_state = "datadisk5" - -/datum/atom_skin/dna_disk/grey - preview_name = "Grey" - new_icon_state = "datadisk6" - -/datum/atom_skin/dna_disk/light_blue - preview_name = "Light Blue" - new_icon_state = "datadisk7" - //Just for transferring between genetics machines. /obj/item/disk/data - name = "DNA data disk" + name = "\improper DNA data disk" icon_state = "datadisk0" //Gosh I hope syndies don't mistake them for the nuke disk. var/list/genetic_makeup_buffer = list() var/list/mutations = list() var/max_mutations = 6 - var/read_only = FALSE //Well,it's still a floppy disk /obj/item/disk/data/Initialize(mapload) . = ..() - AddComponent(/datum/component/reskinable_item, /datum/atom_skin/dna_disk, infinite = TRUE) icon_state = "datadisk[rand(0,7)]" - add_overlay("datadisk_gene") + set_sticker_icon_state(pick("o_dna1", "o_dna2")) if(length(genetic_makeup_buffer)) var/datum/blood_type = genetic_makeup_buffer["blood_type"] if(blood_type) @@ -225,11 +187,3 @@ for(var/datum/mutation/mut as anything in subtypesof(/datum/mutation)) var/datum/mutation/ref = GET_INITIALIZED_MUTATION(mut) mutations += ref - -/obj/item/disk/data/attack_self(mob/user) - read_only = !read_only - to_chat(user, span_notice("You flip the write-protect tab to [read_only ? "protected" : "unprotected"].")) - -/obj/item/disk/data/examine(mob/user) - . = ..() - . += "The write-protect tab is set to [read_only ? "protected" : "unprotected"]." diff --git a/code/game/objects/effects/spawners/random/exotic.dm b/code/game/objects/effects/spawners/random/exotic.dm index cb43d6f06ae..901bb06cee7 100644 --- a/code/game/objects/effects/spawners/random/exotic.dm +++ b/code/game/objects/effects/spawners/random/exotic.dm @@ -9,7 +9,7 @@ loot = list( // Space loot spawner. Couple of random bits of technology-adjacent stuff including anomaly cores and BEPIS techs. /obj/item/raw_anomaly_core/random, /obj/item/disk/design_disk/bepis, - /obj/item/computer_disk/syndicate/camera_app, + /obj/item/disk/computer/syndicate/camera_app, ) /obj/effect/spawner/random/exotic/languagebook diff --git a/code/game/objects/items/devices/aicard_evil.dm b/code/game/objects/items/devices/aicard_evil.dm index 0c9f0c6f9c4..65860338fc9 100644 --- a/code/game/objects/items/devices/aicard_evil.dm +++ b/code/game/objects/items/devices/aicard_evil.dm @@ -87,15 +87,14 @@ qdel(src) /// Upgrade disk used to increase the range of a syndicate AI -/obj/item/computer_disk/syndie_ai_upgrade +/obj/item/disk/computer/syndie_ai_upgrade name = "AI interaction range upgrade" desc = "A NT data chip containing information that a syndiCard AI can utilize to improve its wireless interfacing abilities. Simply slap it on top of an intelliCard, MODsuit, or AI core and watch it do its work! It's rumoured that there's something 'pretty awful' in it." - icon = 'icons/obj/antags/syndicate_tools.dmi' - icon_state = "something_awful" max_capacity = 1000 w_class = WEIGHT_CLASS_NORMAL + sticker_icon_state = "o_syndicate" -/obj/item/computer_disk/syndie_ai_upgrade/pre_attack(atom/target, mob/living/user, list/modifiers, list/attack_modifiers) +/obj/item/disk/computer/syndie_ai_upgrade/pre_attack(atom/target, mob/living/user, list/modifiers, list/attack_modifiers) var/mob/living/silicon/ai/AI if(isAI(target)) AI = target diff --git a/code/game/objects/items/floppy_disk.dm b/code/game/objects/items/floppy_disk.dm new file mode 100644 index 00000000000..027cfa41cb5 --- /dev/null +++ b/code/game/objects/items/floppy_disk.dm @@ -0,0 +1,370 @@ +#define MAX_DISK_STACK_SIZE 10 +#define STACK_PIXEL_STEP 2 +#define MAX_TEXT_LENGTH 30 +#define STARTING_STICKER "o_empty" + +/datum/atom_skin/floppy_disk + abstract_type = /datum/atom_skin/floppy_disk + +/datum/atom_skin/floppy_disk/red + preview_name = "Red" + new_icon_state = "datadisk0" + +/datum/atom_skin/floppy_disk/dark_blue + preview_name = "Dark Blue" + new_icon_state = "datadisk1" + +/datum/atom_skin/floppy_disk/yellow + preview_name = "Yellow" + new_icon_state = "datadisk2" + +/datum/atom_skin/floppy_disk/black + preview_name = "Black" + new_icon_state = "datadisk3" + +/datum/atom_skin/floppy_disk/green + preview_name = "Green" + new_icon_state = "datadisk4" + +/datum/atom_skin/floppy_disk/purple + preview_name = "Purple" + new_icon_state = "datadisk5" + +/datum/atom_skin/floppy_disk/grey + preview_name = "Grey" + new_icon_state = "datadisk6" + +/datum/atom_skin/floppy_disk/light_blue + preview_name = "Light Blue" + new_icon_state = "datadisk7" + +/obj/item/disk + name = "floppy disk" + desc = "A generic floppy disk. No way Nanotrasen still uses those, right?" + icon = 'icons/obj/devices/floppy_disks.dmi' + icon_state = "datadisk3" + w_class = WEIGHT_CLASS_TINY + inhand_icon_state = "card-id" + lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi' + drop_sound = 'sound/items/handling/disk_drop.ogg' + pickup_sound = 'sound/items/handling/disk_pickup.ogg' + + /// Sticker icons to choose from (as icon states) + var/static/list/sticker_variants = list( + "One" = "o_one", + "Two" = "o_two", + "Three" = "o_three", + "Four" = "o_four", + "Five" = "o_five", + "Six" = "o_six", + "Seven" = "o_seven", + "Eight" = "o_eight", + "Nine" = "o_nine", + "Zero" = "o_zero", + "A" = "o_A", + "B" = "o_B", + "C" = "o_C", + "D" = "o_D", + "E" = "o_E", + "F" = "o_F", + "Code" = "o_code", + "DNA — Green" = "o_dna1", + "DNA — Red" = "o_dna2", + "Medical" = "o_medical", + "Holographic" = "o_holo", + ) + + /// Toggles the readonly state + var/read_only = FALSE + /// If readonly state can be toggled on and off + var/read_only_locked = FALSE + /// The current sticker icon state to display + var/sticker_icon_state = STARTING_STICKER + /// Custom description + var/custom_description + /// Whether this disk can be reskinned + var/reskin_allowed = TRUE + +/obj/item/disk/Initialize(mapload) + . = ..() + if(reskin_allowed) + AddComponent(/datum/component/reskinable_item, /datum/atom_skin/floppy_disk, infinite = FALSE) + update_appearance(UPDATE_OVERLAYS) + +/obj/item/disk/update_overlays() + . = ..() + if(sticker_icon_state) + . += sticker_icon_state + +/obj/item/disk/examine(mob/user) + . = ..() + . += span_notice("The write-protect tab is set to [span_bold("[read_only ? "protected" : "unprotected"]")].") + + if(custom_description) + . += span_notice("There's something scribbled on the sticker:") + . += span_notice(span_italics("\"[custom_description]\"")) + +/obj/item/disk/tool_act(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/pen)) + if(sticker_icon_state != STARTING_STICKER) + to_chat(user, span_warning("You can't add anything else!")) + return ITEM_INTERACT_FAILURE + + var/newdescription = sanitize_text(tgui_input_text(user, "What do you want to write?", "Floppy Disk", max_length = MAX_TEXT_LENGTH, multiline = TRUE)) + if(!newdescription) + return ITEM_INTERACT_FAILURE + + if(!can_interact(user)) + return ITEM_INTERACT_FAILURE + + playsound(src, SFX_WRITING_PEN, 30) + to_chat(user, span_notice("You sign the [src].")) + + custom_description = newdescription + set_sticker_icon_state(pick("o_text1", "o_text2", "o_text3")) + return ITEM_INTERACT_SUCCESS + + . = ..() + +/obj/item/disk/attack_self(mob/user) + if(read_only_locked) + to_chat(user, span_warning("The write-protect tab seems to be stuck in place!")) + return + read_only = !read_only + to_chat(user, span_notice("You flip the write-protect tab to [span_bold("[read_only ? "protected" : "unprotected"]")].")) + +/obj/item/disk/click_alt(mob/user) + if(sticker_icon_state != STARTING_STICKER) + return CLICK_ACTION_BLOCKING + + if(!LAZYLEN(sticker_variants)) + return CLICK_ACTION_BLOCKING + + var/list/items = list() + for(var/variant_name in sticker_variants) + var/icon_state_name = sticker_variants[variant_name] + var/image/item_image = image(icon = icon, icon_state = icon_state) + + var/image/overlay_preview = image(icon = icon, icon_state = icon_state_name) + item_image.overlays += overlay_preview + items += list("[variant_name]" = item_image) + + var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_sticker_menu), user), radius = 38, require_near = TRUE) + if(!pick) + return CLICK_ACTION_BLOCKING + if(!sticker_variants[pick]) + return CLICK_ACTION_BLOCKING + + set_sticker_icon_state(sticker_variants[pick]) + to_chat(user, span_notice("You change the sticker on [src] to '[pick]'.")) + return CLICK_ACTION_SUCCESS + +/// Can we select a new sticker? +/obj/item/disk/proc/check_sticker_menu(mob/user) + if(QDELETED(src)) + return FALSE + if(sticker_icon_state != STARTING_STICKER) + return FALSE + if(!istype(user)) + return FALSE + if(user.incapacitated) + return FALSE + return TRUE + +/// Sets the sticker icon state and updates the appearance +/obj/item/disk/proc/set_sticker_icon_state(new_icon_state) + sticker_icon_state = new_icon_state + update_appearance(UPDATE_OVERLAYS) + +/obj/item/disk/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/disk_stack)) + var/obj/item/disk_stack/held_stack = tool + var/obj/item/disk_stack/new_stack = new(get_turf(src)) + var/should_put_in_hand = user.is_holding(src) + + new_stack.add_to_stack(user, src) + new_stack.merge_stacks(user, held_stack) + + if(should_put_in_hand) + user.put_in_hands(new_stack) + return ITEM_INTERACT_SUCCESS + + if(istype(tool, /obj/item/disk)) + var/obj/item/disk_stack/new_stack = new(get_turf(src)) + new_stack.pixel_x = pixel_x + new_stack.pixel_y = pixel_y + + var/should_put_in_hand = user.is_holding(src) && user.is_holding(tool) + new_stack.add_to_stack(user, src) + new_stack.add_to_stack(user, tool) + new_stack.update_appearance(UPDATE_OVERLAYS) + if(should_put_in_hand) + user.put_in_hands(new_stack) + return ITEM_INTERACT_SUCCESS + +/obj/item/disk_stack + name = "stack of floppy disks" + desc = "A stack of floppy disks. You wonder what happens if you pull out the bottom one..." + icon = null + icon_state = null + w_class = WEIGHT_CLASS_SMALL + inhand_icon_state = "card-id" + lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi' + drop_sound = 'sound/items/handling/disk_drop.ogg' + pickup_sound = 'sound/items/handling/disk_pickup.ogg' + /// List of references to the disks inside the stack + var/list/stacked_disks = list() + +/obj/item/disk_stack/Initialize(mapload) + . = ..() + RegisterSignal(src, COMSIG_MOVABLE_THROW_LANDED, PROC_REF(spread)) + RegisterSignal(src, COMSIG_ATOM_EXITED, PROC_REF(on_exited)) + +/obj/item/disk_stack/Destroy() + stacked_disks.Cut() + return ..() + +/obj/item/disk_stack/examine(mob/user) + . = ..() + . += span_notice("There are [span_bold("[length(stacked_disks)]")] disks in the stack.") + +/obj/item/disk_stack/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/disk_stack)) + return merge_stacks(user, tool) + + if(istype(tool, /obj/item/disk)) + return add_to_stack(user, tool) + +/obj/item/disk_stack/proc/add_to_stack(mob/living/user, obj/item/disk/newdisk) + if(length(stacked_disks) >= MAX_DISK_STACK_SIZE) + balloon_alert(user, "can't add more!") + return ITEM_INTERACT_BLOCKING + + newdisk.forceMove(src) + stacked_disks += newdisk + balloon_alert(user, "added to top") + update_appearance(UPDATE_OVERLAYS) + return ITEM_INTERACT_SUCCESS + +/obj/item/disk_stack/update_overlays() + . = ..() + var/iteration_count = 1 + for(var/obj/item/disk/disk_in_stack in stacked_disks) + var/mutable_appearance/stacked_disk_appearance = mutable_appearance(disk_in_stack.icon, disk_in_stack.icon_state, disk_in_stack.layer + (0.1 * iteration_count)) + stacked_disk_appearance.pixel_z += iteration_count * STACK_PIXEL_STEP + + if(LAZYLEN(disk_in_stack.overlays)) + stacked_disk_appearance.overlays = disk_in_stack.overlays.Copy() + . += stacked_disk_appearance + iteration_count++ + +/obj/item/disk_stack/proc/pop_top_disk(mob/living/user) + if(!length(stacked_disks)) + return FALSE + + var/obj/item/disk/top = stacked_disks[length(stacked_disks)] + user.put_in_hands(top) + balloon_alert(user, "removed top disk") + + if(length(stacked_disks) == 1) + var/obj/item/disk/last_disk = stacked_disks[1] + var/was_in_hand = user.is_holding(src) + if(was_in_hand) + last_disk.forceMove(user) + user.put_in_hands(last_disk) + else + var/turf/T = get_turf(src) + last_disk.forceMove(T) + last_disk.pixel_x = pixel_x + last_disk.pixel_y = pixel_y + + QDEL_IN(src, 0) + return TRUE + + update_appearance(UPDATE_OVERLAYS) + return TRUE + +/obj/item/disk_stack/proc/merge_stacks(mob/user, obj/item/disk_stack/diskstack) + var/amount_counter = 0 + var/list/moved_disks = list() + + for(var/obj/item/disk/each_disk as anything in diskstack.stacked_disks) + if(length(stacked_disks) >= MAX_DISK_STACK_SIZE) + break + + each_disk.forceMove(src) + stacked_disks += each_disk + moved_disks += each_disk + amount_counter += 1 + + diskstack.stacked_disks -= moved_disks + diskstack.update_appearance(UPDATE_OVERLAYS) + + if(!amount_counter) + balloon_alert(user, "no space!") + return ITEM_INTERACT_BLOCKING + + update_appearance(UPDATE_OVERLAYS) + to_chat(user, span_notice("You merge two stacks of disks together.")) + + if(!length(diskstack.stacked_disks)) + QDEL_IN(diskstack, 0) + + return ITEM_INTERACT_SUCCESS + +/obj/item/disk_stack/proc/spread() + SIGNAL_HANDLER + + if(!length(stacked_disks)) + return + + var/turf/landing = get_turf(src) + for(var/obj/item/disk/each_disk as anything in stacked_disks) + each_disk.forceMove(landing) + each_disk.throw_at(get_step(src, pick(NORTH, NORTHEAST, EAST, SOUTHEAST, SOUTH, SOUTHWEST, WEST, NORTHWEST)), 1, 0.8) + + visible_message(span_warning("The stack falls apart!")) + update_appearance(UPDATE_OVERLAYS) + throw_at(get_step(src, pick(NORTH, NORTHEAST, EAST, SOUTHEAST, SOUTH, SOUTHWEST, WEST, NORTHWEST)), 1, 0.8) + +/obj/item/disk_stack/attack_hand_secondary(mob/user, list/modifiers) + if(pop_top_disk(user)) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + . = ..() + +/// Handle disks leaving the stack through other means +/obj/item/disk_stack/proc/on_exited(datum/source, atom/movable/gone, direction) + SIGNAL_HANDLER + + if(!istype(gone, /obj/item/disk)) + return + + stacked_disks -= gone + update_appearance(UPDATE_OVERLAYS) + + if(!length(stacked_disks)) + QDEL_IN(src, 0) + +/obj/item/disk/can_be_package_wrapped() + return TRUE + +/obj/item/disk_stack/can_be_package_wrapped() + return FALSE + +/obj/item/delivery/small/floppy + name = "flat parcel" + desc = "A flat paper parcel." + icon_state = "deliveryfloppy" + base_icon_state = "deliveryfloppy" + +/obj/item/delivery/small/floppy/Initialize(mapload) + . = ..() + new /obj/item/disk/data(src) + +#undef STARTING_STICKER +#undef MAX_DISK_STACK_SIZE +#undef STACK_PIXEL_STEP +#undef MAX_TEXT_LENGTH diff --git a/code/game/objects/items/rcd/RHD.dm b/code/game/objects/items/rcd/RHD.dm index ccd2b9f5063..2b08fc42b72 100644 --- a/code/game/objects/items/rcd/RHD.dm +++ b/code/game/objects/items/rcd/RHD.dm @@ -296,7 +296,7 @@ /obj/item/rcd_upgrade name = "RCD advanced design disk" desc = "It seems to be empty." - icon = 'icons/obj/devices/circuitry_n_data.dmi' + icon = 'icons/obj/devices/floppy_disks.dmi' icon_state = "datadisk3" var/upgrade diff --git a/code/game/objects/items/rcd/RPD.dm b/code/game/objects/items/rcd/RPD.dm index e5ff17bccca..11f1a1fc2c3 100644 --- a/code/game/objects/items/rcd/RPD.dm +++ b/code/game/objects/items/rcd/RPD.dm @@ -598,7 +598,7 @@ /obj/item/rpd_upgrade name = "RPD advanced design disk" desc = "It seems to be empty." - icon = 'icons/obj/devices/circuitry_n_data.dmi' + icon = 'icons/obj/devices/floppy_disks.dmi' icon_state = "datadisk3" /// Bitflags for upgrades var/upgrade_flags diff --git a/code/game/objects/items/robot/ai_upgrades.dm b/code/game/objects/items/robot/ai_upgrades.dm index 9d7e6c41d58..80e97acab18 100644 --- a/code/game/objects/items/robot/ai_upgrades.dm +++ b/code/game/objects/items/robot/ai_upgrades.dm @@ -2,7 +2,7 @@ /obj/item/aiupgrade name = "ai upgrade disk" desc = "You really shouldn't be seeing this" - icon = 'icons/obj/devices/circuitry_n_data.dmi' + icon = 'icons/obj/devices/floppy_disks.dmi' icon_state = "datadisk3" ///The upgrade that will be applied to the AI when installed var/datum/ai_module/to_gift = /datum/ai_module @@ -44,7 +44,7 @@ /obj/item/malf_upgrade name = "combat software upgrade" desc = "A highly illegal, highly dangerous upgrade for artificial intelligence units, granting them a variety of powers as well as the ability to hack APCs.
This upgrade does not override any active laws, and must be applied directly to an active AI core." - icon = 'icons/obj/devices/circuitry_n_data.dmi' + icon = 'icons/obj/devices/floppy_disks.dmi' icon_state = "datadisk3" /obj/item/malf_upgrade/Initialize(mapload) diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm index 0c445cc2986..432e040940b 100644 --- a/code/game/objects/items/stacks/wrap.dm +++ b/code/game/objects/items/stacks/wrap.dm @@ -149,10 +149,14 @@ user.put_in_hands(parcel) item.forceMove(parcel) var/size = round(item.w_class) - parcel.name = "[weight_class_to_text(size)] parcel" + if(istype(item, /obj/item/disk)) + parcel.base_icon_state = "deliveryfloppy" + parcel.name = "floppy disk parcel" + else + parcel.base_icon_state = "deliverypackage[size]" + parcel.name = "[weight_class_to_text(size)] parcel" parcel.update_weight_class(size) size = min(size, 5) - parcel.base_icon_state = "deliverypackage[size]" parcel.update_icon() else return ITEM_INTERACT_BLOCKING diff --git a/code/game/objects/items/storage/boxes/science_boxes.dm b/code/game/objects/items/storage/boxes/science_boxes.dm index 11eebd8699c..c182c5c8a30 100644 --- a/code/game/objects/items/storage/boxes/science_boxes.dm +++ b/code/game/objects/items/storage/boxes/science_boxes.dm @@ -25,12 +25,13 @@ //Disk boxes /obj/item/storage/box/disks - name = "diskette box" + name = "floppy disk box" illustration = "disk_kit" + desc = "A set of 8 Nanotrasen-approved floppy disks in individual packaging." /obj/item/storage/box/disks/PopulateContents() - for(var/i in 1 to 7) - new /obj/item/disk/data(src) + for(var/i in 1 to 8) + new /obj/item/delivery/small/floppy(src) /obj/item/storage/box/monkeycubes name = "monkey cube box" diff --git a/code/game/objects/items/storage/boxes/security_boxes.dm b/code/game/objects/items/storage/boxes/security_boxes.dm index 230ad5eea22..d5df26d2bac 100644 --- a/code/game/objects/items/storage/boxes/security_boxes.dm +++ b/code/game/objects/items/storage/boxes/security_boxes.dm @@ -93,7 +93,7 @@ /obj/item/storage/box/seccarts/PopulateContents() for(var/i in 1 to 6) - new /obj/item/computer_disk/security(src) + new /obj/item/disk/computer/security(src) /obj/item/storage/box/firingpins name = "box of standard firing pins" diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 1e8a9acbba8..c42e33b9a68 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -57,7 +57,7 @@ new /obj/item/clothing/under/chameleon(src) // 2 tc since it's not the full set new /obj/item/clothing/mask/chameleon(src) // Goes with above new /obj/item/clothing/shoes/chameleon/noslip(src) // 2 tc - new /obj/item/computer_disk/syndicate/camera_app(src) // 1 tc + new /obj/item/disk/computer/syndicate/camera_app(src) // 1 tc new /obj/item/multitool/ai_detect(src) // 1 tc new /obj/item/encryptionkey/syndicate(src) // 2 tc new /obj/item/storage/box/syndie_kit/mulligan(src) // 4 tc @@ -122,7 +122,7 @@ new /obj/item/ai_module/toy_ai(src) // ~6 tc new /obj/item/multitool/ai_detect(src) // 1 tc new /obj/item/storage/toolbox/syndicate(src) // 1 tc - new /obj/item/computer_disk/syndicate/camera_app(src) // 1 tc + new /obj/item/disk/computer/syndicate/camera_app(src) // 1 tc new /obj/item/clothing/glasses/thermal/syndi(src) // 4 tc new /obj/item/card/id/advanced/chameleon/elite(src) // 2 tc @@ -143,9 +143,9 @@ if(KIT_SABOTAGE) new /obj/item/storage/backpack/duffelbag/syndie/sabotage(src) // 5 tc for 3 c4 and 2 x4 - new /obj/item/computer_disk/syndicate/camera_app(src) // 1 tc + new /obj/item/disk/computer/syndicate/camera_app(src) // 1 tc new /obj/item/sbeacondrop/powersink(src) // 11 tc - new /obj/item/computer_disk/virus/detomatix(src) // 6 tc + new /obj/item/disk/computer/virus/detomatix(src) // 6 tc new /obj/item/storage/toolbox/syndicate(src) // 1 tc new /obj/item/pizzabox/bomb(src) // 6 tc new /obj/item/storage/box/syndie_kit/emp(src) // 2 tc diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index c13d621036d..b8dce57e7c3 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -128,14 +128,13 @@ Succeed and you will receive a coveted green highlight on your record for this assignment. Fail us and red's the last colour you'll ever see.
\ Do not disappoint us.
" -/obj/item/computer_disk/hdd_theft +/obj/item/disk/computer/hdd_theft name = "r&d server hard disk drive" desc = "For some reason, people really seem to want to steal this. The source code on this drive is probably used for something awful!" - icon = 'icons/obj/antags/syndicate_tools.dmi' - icon_state = "something_awful" max_capacity = 512 w_class = WEIGHT_CLASS_NORMAL resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + sticker_icon_state = "o_nt" // STEALING SUPERMATTER diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index e448c3d553d..0e3be1e463a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -7,7 +7,7 @@ ..() new /obj/item/storage/bag/garment/engineering_chief (src) - new /obj/item/computer_disk/command/ce(src) + new /obj/item/disk/computer/command/ce(src) new /obj/item/radio/headset/heads/ce(src) new /obj/item/megaphone/command(src) new /obj/item/holosign_creator/atmos(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 849c7f74e8e..0b4e5600dbb 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -80,7 +80,7 @@ new /obj/item/clothing/suit/bio_suit/cmo(src) new /obj/item/clothing/head/bio_hood/cmo(src) new /obj/item/storage/bag/garment/chief_medical(src) - new /obj/item/computer_disk/command/cmo(src) + new /obj/item/disk/computer/command/cmo(src) new /obj/item/radio/headset/heads/cmo(src) new /obj/item/megaphone/command(src) new /obj/item/assembly/flash/handheld(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 7531b8bacfd..7df190f2f6c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -9,7 +9,7 @@ new /obj/item/clothing/suit/bio_suit/scientist(src) new /obj/item/clothing/head/bio_hood/scientist(src) new /obj/item/storage/bag/garment/research_director(src) - new /obj/item/computer_disk/command/rd(src) + new /obj/item/disk/computer/command/rd(src) new /obj/item/radio/headset/heads/rd(src) new /obj/item/megaphone/command(src) new /obj/item/storage/lockbox/medal/sci(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index d1fef8c52da..a43f435c4c9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -8,7 +8,7 @@ new /obj/item/clothing/neck/petcollar(src) new /obj/item/pet_carrier(src) new /obj/item/storage/bag/garment/captain(src) - new /obj/item/computer_disk/command/captain(src) + new /obj/item/disk/computer/command/captain(src) new /obj/item/radio/headset/heads/captain/alt(src) new /obj/item/radio/headset/heads/captain(src) new /obj/item/door_remote/captain(src) @@ -29,7 +29,7 @@ new /obj/item/dog_bone(src) new /obj/item/storage/bag/garment/hop(src) new /obj/item/storage/lockbox/medal/service(src) - new /obj/item/computer_disk/command/hop(src) + new /obj/item/disk/computer/command/hop(src) new /obj/item/radio/headset/heads/hop(src) new /obj/item/storage/box/ids(src) new /obj/item/storage/box/silver_ids(src) @@ -53,7 +53,7 @@ /obj/structure/closet/secure_closet/hos/PopulateContents() ..() - new /obj/item/computer_disk/command/hos(src) + new /obj/item/disk/computer/command/hos(src) new /obj/item/radio/headset/heads/hos(src) new /obj/item/radio/headset/heads/hos/alt(src) new /obj/item/storage/bag/garment/hos(src) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm index 0f7dc33bc6f..24314af0b46 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm @@ -1,21 +1,15 @@ -/obj/item/disk - icon = 'icons/obj/devices/circuitry_n_data.dmi' - w_class = WEIGHT_CLASS_TINY - inhand_icon_state = "card-id" - lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi' - icon_state = "datadisk0" - drop_sound = 'sound/items/handling/disk_drop.ogg' - pickup_sound = 'sound/items/handling/disk_pickup.ogg' - // DAT FUKKEN DISK. /obj/item/disk/nuclear name = "nuclear authentication disk" desc = "Better keep this safe." icon_state = "nucleardisk" max_integrity = 250 + sticker_icon_state = null armor_type = /datum/armor/disk_nuclear resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + read_only = TRUE + read_only_locked = TRUE + reskin_allowed = FALSE /// Whether we're a real nuke disk or not. var/fake = FALSE diff --git a/code/modules/bitrunning/objects/debug.dm b/code/modules/bitrunning/objects/debug.dm index 84f77e3a18c..770aecd21c3 100644 --- a/code/modules/bitrunning/objects/debug.dm +++ b/code/modules/bitrunning/objects/debug.dm @@ -1,7 +1,7 @@ /obj/item/bitrunning_debug name = "bitrunning debug item" desc = "Adds points and reduces cooldown time for debugging" - icon = 'icons/obj/devices/circuitry_n_data.dmi' + icon = 'icons/obj/devices/floppy_disks.dmi' base_icon_state = "datadisk" icon_state = "datadisk0" diff --git a/code/modules/bitrunning/objects/disks.dm b/code/modules/bitrunning/objects/disks.dm index f91aeaab043..3b1cd5de782 100644 --- a/code/modules/bitrunning/objects/disks.dm +++ b/code/modules/bitrunning/objects/disks.dm @@ -4,16 +4,17 @@ * You can make the custom cheese spells you've always wanted. * Just make it fun and engaging, it's PvE content. */ -/obj/item/bitrunning_disk +/obj/item/disk/bitrunning name = "generic bitrunning program" desc = "A disk containing source code." - icon = 'icons/obj/devices/circuitry_n_data.dmi' base_icon_state = "datadisk" icon_state = "datadisk0" + sticker_icon_state = "o_code" + reskin_allowed = FALSE /// Name of the choice made var/choice_made -/obj/item/bitrunning_disk/Initialize(mapload) +/obj/item/disk/bitrunning/Initialize(mapload) . = ..() icon_state = "[base_icon_state][rand(0, 7)]" @@ -23,7 +24,7 @@ load_callback = CALLBACK(src, PROC_REF(load_onto_avatar)), \ ) -/obj/item/bitrunning_disk/examine(mob/user) +/obj/item/disk/bitrunning/examine(mob/user) . = ..() . += span_infoplain("This disk must be carried on your person into a netpod to be used.") @@ -35,18 +36,17 @@ . += span_notice("It cannot make another selection.") /// Handles loading our stuff onto avatars -/obj/item/bitrunning_disk/proc/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags) +/obj/item/disk/bitrunning/proc/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags) return NONE - -/obj/item/bitrunning_disk/ability +/obj/item/disk/bitrunning/ability desc = "A disk containing source code. It can be used to preload abilities into the virtual domain. Duplicate abilities will be ignored." /// The selected ability that this grants var/datum/action/granted_action /// The list of actions that this can grant var/list/datum/action/selectable_actions = list() -/obj/item/bitrunning_disk/ability/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags) +/obj/item/disk/bitrunning/ability/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags) if(domain_flags & DOMAIN_FORBIDS_ABILITIES) return BITRUNNER_GEAR_LOAD_BLOCKED @@ -60,8 +60,8 @@ our_action.Grant(avatar) return NONE -/obj/item/bitrunning_disk/ability/attack_self(mob/user, modifiers) - . = ..() +/obj/item/disk/bitrunning/ability/attack_self(mob/user, modifiers) + // Not calling parent to not flip the protection tab if(choice_made) return @@ -86,7 +86,7 @@ choice_made = choice /// Tier 1 programs. Simple, funny, or helpful. -/obj/item/bitrunning_disk/ability/tier1 +/obj/item/disk/bitrunning/ability/tier1 name = "bitrunning program: basic" selectable_actions = list( /datum/action/cooldown/spell/conjure/cheese, @@ -94,7 +94,7 @@ ) /// Tier 2 programs. More complex, powerful, or useful. -/obj/item/bitrunning_disk/ability/tier2 +/obj/item/disk/bitrunning/ability/tier2 name = "bitrunning program: complex" selectable_actions = list( /datum/action/cooldown/spell/pointed/projectile/fireball, @@ -103,7 +103,7 @@ ) /// Tier 3 abilities. Very powerful, game breaking. -/obj/item/bitrunning_disk/ability/tier3 +/obj/item/disk/bitrunning/ability/tier3 name = "bitrunning program: elite" selectable_actions = list( /datum/action/cooldown/spell/shapeshift/dragon, @@ -111,14 +111,14 @@ ) -/obj/item/bitrunning_disk/item +/obj/item/disk/bitrunning/item desc = "A disk containing source code. It can be used to preload items into the virtual domain." /// The selected item that this grants var/obj/granted_item /// The list of actions that this can grant var/list/obj/selectable_items = list() -/obj/item/bitrunning_disk/item/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags) +/obj/item/disk/bitrunning/item/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags) if(domain_flags & DOMAIN_FORBIDS_ITEMS) return BITRUNNER_GEAR_LOAD_BLOCKED @@ -128,7 +128,7 @@ avatar.put_in_hands(new granted_item()) return NONE -/obj/item/bitrunning_disk/item/attack_self(mob/user, modifiers) +/obj/item/disk/bitrunning/item/attack_self(mob/user, modifiers) . = ..() if(choice_made) @@ -151,7 +151,7 @@ choice_made = choice /// Tier 1 items. Simple, funny, or helpful. -/obj/item/bitrunning_disk/item/tier1 +/obj/item/disk/bitrunning/item/tier1 name = "bitrunning gear: simple" selectable_items = list( /obj/item/pizzabox/infinite, @@ -160,7 +160,7 @@ ) /// Tier 2 items. More complex, powerful, or useful. -/obj/item/bitrunning_disk/item/tier2 +/obj/item/disk/bitrunning/item/tier2 name = "bitrunning gear: complex" selectable_items = list( /obj/item/reagent_containers/hypospray/medipen/survival/luxury, @@ -169,7 +169,7 @@ ) /// Tier 3 items. Very powerful, game breaking. -/obj/item/bitrunning_disk/item/tier3 +/obj/item/disk/bitrunning/item/tier3 name = "bitrunning gear: advanced" selectable_items = list( /obj/item/gun/energy/e_gun/nuclear, @@ -178,7 +178,7 @@ ) ///proto-kinetic accelerator mods, to be applied to pka's given inside domains -/obj/item/bitrunning_disk/item/pka_mods +/obj/item/disk/bitrunning/item/pka_mods name = "bitrunning gear: proto-kinetic accelerator mods" selectable_items = list( /obj/item/borg/upgrade/modkit/range, @@ -188,7 +188,7 @@ /obj/item/borg/upgrade/modkit/human_passthrough, ) -/obj/item/bitrunning_disk/item/pka_mods/premium +/obj/item/disk/bitrunning/item/pka_mods/premium name = "bitrunning gear: premium proto-kinetic accelerator mods" selectable_items = list( /obj/item/borg/upgrade/modkit/cooldown/repeater, @@ -199,7 +199,7 @@ ) ///proto-kinetic crusher trophies, to be applied to pkc's given inside domains -/obj/item/bitrunning_disk/item/pkc_mods +/obj/item/disk/bitrunning/item/pkc_mods name = "bitrunning gear: proto-kinetic crusher mods" selectable_items = list( /obj/item/crusher_trophy/watcher_wing, @@ -208,7 +208,7 @@ /obj/item/crusher_trophy/wolf_ear, ) -/obj/item/bitrunning_disk/item/pkc_mods/premium +/obj/item/disk/bitrunning/item/pkc_mods/premium name = "bitrunning gear: premium proto-kinetic crusher mods" selectable_items = list( /obj/item/crusher_trophy/watcher_wing/ice_wing, @@ -220,7 +220,7 @@ /obj/item/crusher_trophy/ice_demon_cube, ) -/obj/item/bitrunning_disk/item/mini_uzi +/obj/item/disk/bitrunning/item/mini_uzi name = "bitrunning gear: mini-uzi" selectable_items = list( /obj/item/gun/ballistic/automatic/mini_uzi, diff --git a/code/modules/bitrunning/objects/gimmick_disks/_gimmick_disk.dm b/code/modules/bitrunning/objects/gimmick_disks/_gimmick_disk.dm index 24702d1254a..3b22db05089 100644 --- a/code/modules/bitrunning/objects/gimmick_disks/_gimmick_disk.dm +++ b/code/modules/bitrunning/objects/gimmick_disks/_gimmick_disk.dm @@ -2,23 +2,23 @@ /** * Bitrunning tech disks which let you load full loadouts into the vdom on first avatar generation. */ -/obj/item/bitrunning_disk/gimmick +/obj/item/disk/bitrunning/gimmick desc = "A disk containing source code. It can be used to preload gimmick loadouts into the virtual domain." /// The selected loadout that this grants var/datum/bitrunning_gimmick/granted_loadout /// The list of loadouts that this can grant var/list/datum/bitrunning_gimmick/selectable_loadouts -/obj/item/bitrunning_disk/gimmick/Destroy() +/obj/item/disk/bitrunning/gimmick/Destroy() QDEL_NULL(granted_loadout) return ..() -/obj/item/bitrunning_disk/gimmick/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags) +/obj/item/disk/bitrunning/gimmick/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags) if(isnull(granted_loadout)) return BITRUNNER_GEAR_LOAD_FAILED return granted_loadout.grant_loadout(neo, avatar, domain_flags) -/obj/item/bitrunning_disk/gimmick/attack_self(mob/user, modifiers) +/obj/item/disk/bitrunning/gimmick/attack_self(mob/user, modifiers) . = ..() if(granted_loadout) diff --git a/code/modules/bitrunning/objects/gimmick_disks/dungeon_disk.dm b/code/modules/bitrunning/objects/gimmick_disks/dungeon_disk.dm index 3cf85bb2c66..b0968de86dd 100644 --- a/code/modules/bitrunning/objects/gimmick_disks/dungeon_disk.dm +++ b/code/modules/bitrunning/objects/gimmick_disks/dungeon_disk.dm @@ -3,7 +3,7 @@ * Bitrunning gimmick loadouts themed around dungeon crawling. * Mostly for fun, have niche but not insignificant advantages. */ -/obj/item/bitrunning_disk/gimmick/dungeon +/obj/item/disk/bitrunning/gimmick/dungeon name = "bitrunning gimmick: dungeon crawling" selectable_loadouts = list( /datum/bitrunning_gimmick/alchemist, diff --git a/code/modules/bitrunning/objects/gimmick_disks/sports_disk.dm b/code/modules/bitrunning/objects/gimmick_disks/sports_disk.dm index 7024a9a4065..97e7cd1934e 100644 --- a/code/modules/bitrunning/objects/gimmick_disks/sports_disk.dm +++ b/code/modules/bitrunning/objects/gimmick_disks/sports_disk.dm @@ -3,7 +3,7 @@ * Bitrunning gimmick loadouts themed around sports. * Mostly for fun, have niche or little advantages. */ -/obj/item/bitrunning_disk/gimmick/sports +/obj/item/disk/bitrunning/gimmick/sports name = "bitrunning gimmick: sports" selectable_loadouts = list( /datum/bitrunning_gimmick/boxer, diff --git a/code/modules/bitrunning/orders/tech.dm b/code/modules/bitrunning/orders/tech.dm index d14cf7bf1a1..1844a38949b 100644 --- a/code/modules/bitrunning/orders/tech.dm +++ b/code/modules/bitrunning/orders/tech.dm @@ -3,42 +3,42 @@ /datum/orderable_item/bitrunning_tech/item_tier1 cost_per_order = 750 - purchase_path = /obj/item/bitrunning_disk/item/tier1 + purchase_path = /obj/item/disk/bitrunning/item/tier1 desc = "This disk contains a program that lets you equip a medical beamgun, a C4 explosive, or a box of infinite pizza." /datum/orderable_item/bitrunning_tech/item_tier2 cost_per_order = 1250 - purchase_path = /obj/item/bitrunning_disk/item/tier2 + purchase_path = /obj/item/disk/bitrunning/item/tier2 desc = "This disk contains a program that lets you equip a luxury medipen, a pistol, or an armour vest." /datum/orderable_item/bitrunning_tech/item_tier3 cost_per_order = 2000 - purchase_path = /obj/item/bitrunning_disk/item/tier3 + purchase_path = /obj/item/disk/bitrunning/item/tier3 desc = "This disk contains a program that lets you equip an advanced energy gun, a dual bladed energy sword, or a minibomb." /datum/orderable_item/bitrunning_tech/ability_tier1 cost_per_order = 750 - purchase_path = /obj/item/bitrunning_disk/ability/tier1 + purchase_path = /obj/item/disk/bitrunning/ability/tier1 desc = "This disk contains a program that lets you cast Summon Cheese or Lesser Heal." /datum/orderable_item/bitrunning_tech/ability_tier2 cost_per_order = 1500 - purchase_path = /obj/item/bitrunning_disk/ability/tier2 + purchase_path = /obj/item/disk/bitrunning/ability/tier2 desc = "This disk contains a program that lets you cast Fireball, Lightning Bolt, or Forcewall." /datum/orderable_item/bitrunning_tech/ability_tier3 cost_per_order = 2500 - purchase_path = /obj/item/bitrunning_disk/ability/tier3 + purchase_path = /obj/item/disk/bitrunning/ability/tier3 desc = "This disk contains a program that lets you shapeshift into a lesser ashdrake, or a polar bear." /datum/orderable_item/bitrunning_tech/gimmick_sports cost_per_order = 750 - purchase_path = /obj/item/bitrunning_disk/gimmick/sports + purchase_path = /obj/item/disk/bitrunning/gimmick/sports desc = "This disk contains a program that lets you equip a sports-themed gimmick loadout." /datum/orderable_item/bitrunning_tech/gimmick_dungeon_crawling cost_per_order = 1250 - purchase_path = /obj/item/bitrunning_disk/gimmick/dungeon + purchase_path = /obj/item/disk/bitrunning/gimmick/dungeon desc = "This disk contains a program that lets you equip a dungeon crawling-themed gimmick loadout." /datum/orderable_item/bitrunning_tech/flip_skillchip @@ -46,21 +46,21 @@ cost_per_order = 1500 /datum/orderable_item/bitrunning_tech/pka_mod - purchase_path = /obj/item/bitrunning_disk/item/pka_mods + purchase_path = /obj/item/disk/bitrunning/item/pka_mods cost_per_order = 750 desc = "This disk contains a program that lets you equip modkits for the proto-kinetic accelerator. Proto-kinetic accelerator not included." /datum/orderable_item/bitrunning_tech/pka_mod/premium - purchase_path = /obj/item/bitrunning_disk/item/pka_mods/premium + purchase_path = /obj/item/disk/bitrunning/item/pka_mods/premium cost_per_order = 1600 desc = "This disk contains a program that lets you equip stronger modkits for the proto-kinetic accelerator. Proto-kinetic accelerator not included." /datum/orderable_item/bitrunning_tech/pkc_mod - purchase_path = /obj/item/bitrunning_disk/item/pkc_mods + purchase_path = /obj/item/disk/bitrunning/item/pkc_mods cost_per_order = 750 desc = "This disk contains a program that lets you equip trophies for the proto-kinetic crusher. Proto-kinetic crusher no included." /datum/orderable_item/bitrunning_tech/pkc_mod/premium - purchase_path = /obj/item/bitrunning_disk/item/pkc_mods/premium + purchase_path = /obj/item/disk/bitrunning/item/pkc_mods/premium cost_per_order = 1600 desc = "This disk contains a program that lets you equip stronger trophies for the proto-kinetic crusher. Proto-kinetic crusher not included." diff --git a/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm b/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm index 39699072057..a8bf3a6e6a2 100644 --- a/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm +++ b/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm @@ -14,7 +14,7 @@ /obj/item/clothing/shoes/sandal = 1, /obj/item/clothing/glasses/sunglasses = 1, /obj/item/gun/energy/laser/chameleon/ballistic_only = 1, - /obj/item/bitrunning_disk/item/mini_uzi = 1, + /obj/item/disk/bitrunning/item/mini_uzi = 1, ) /datum/lazy_template/virtual_domain/island_brawl/setup_domain(list/created_atoms) diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index d5d672425ba..3d4aaef65af 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -19,19 +19,19 @@ /datum/export/advanced_disk cost = CARGO_CRATE_VALUE * 0.4 unit_name = "advanced data disk" - export_types = list(/obj/item/computer_disk/advanced) + export_types = list(/obj/item/disk/computer/advanced) include_subtypes = FALSE /datum/export/super_disk cost = CARGO_CRATE_VALUE * 0.6 unit_name = "super data disk" - export_types = list(/obj/item/computer_disk/super) + export_types = list(/obj/item/disk/computer/super) include_subtypes = FALSE /datum/export/standard_disk cost = CARGO_CRATE_VALUE * 0.2 unit_name = "data disk" - export_types = list(/obj/item/computer_disk) + export_types = list(/obj/item/disk/computer) include_subtypes = TRUE /datum/export/refill_canister diff --git a/code/modules/cargo/markets/market_items/tools.dm b/code/modules/cargo/markets/market_items/tools.dm index d8acad9e0dc..61ec8452e51 100644 --- a/code/modules/cargo/markets/market_items/tools.dm +++ b/code/modules/cargo/markets/market_items/tools.dm @@ -103,7 +103,7 @@ /datum/market_item/tool/program_disk name = "Bootleg Data Disk" desc = "A data disk containing EXCLUSIVE and LIMITED modular programs. Legally, we're not allowed to tell you how we acquired them." - item = /obj/item/computer_disk/black_market + item = /obj/item/disk/computer/black_market price_min = CARGO_CRATE_VALUE * 0.75 price_max = CARGO_CRATE_VALUE * 2 stock_max = 3 diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index 08a0e649a11..6ecc77d4ebf 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -794,7 +794,6 @@ /obj/item/disk/cargo/bluespace_pod //Disk that can be inserted into the Express Console to allow for Advanced Bluespace Pods name = "Bluespace Drop Pod Upgrade" desc = "This disk provides a firmware update to the Express Supply Console, granting the use of Nanotrasen's Bluespace Drop Pods to the supply department." - icon = 'icons/obj/devices/circuitry_n_data.dmi' - icon_state = "cargodisk" - inhand_icon_state = "card-id" - w_class = WEIGHT_CLASS_SMALL + icon_state = "datadisk12" + sticker_icon_state = "o_cargopod" + reskin_allowed = FALSE diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index b98b18787ca..e4af75d9025 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -206,7 +206,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real balloon_alert(user, "headlamp repaired") return ITEM_INTERACT_SUCCESS - if(istype(tool, /obj/item/computer_disk)) + if(istype(tool, /obj/item/disk/computer)) if(!modularInterface) stack_trace("Cyborg [src] ( [type] ) was somehow missing their integrated tablet. Please make a bug report.") create_modularInterface() diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index c213b351e88..4b382d6d668 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -19,7 +19,7 @@ ///The alt slot, only used by certain UIs like the access app. var/obj/item/card/id/alt_stored_id ///The disk in this PDA. If set, this will be inserted on Initialize. - var/obj/item/computer_disk/inserted_disk + var/obj/item/disk/computer/inserted_disk ///The power cell the computer uses to run on. var/obj/item/stock_parts/power_store/internal_cell = /obj/item/stock_parts/power_store/cell ///A pAI currently loaded into the modular computer. @@ -927,7 +927,7 @@ if(istype(tool, /obj/item/paper_bin)) return paper_bin_act(user, tool) - if(istype(tool, /obj/item/computer_disk)) + if(istype(tool, /obj/item/disk/computer)) return computer_disk_act(user, tool) return NONE @@ -999,7 +999,7 @@ bin.update_appearance() return ITEM_INTERACT_SUCCESS -/obj/item/modular_computer/proc/computer_disk_act(mob/user, obj/item/computer_disk/disk) +/obj/item/modular_computer/proc/computer_disk_act(mob/user, obj/item/disk/computer/disk) if(!user.transferItemToLoc(disk, src)) return ITEM_INTERACT_BLOCKING if(inserted_disk) diff --git a/code/modules/modular_computers/computers/item/computer_files.dm b/code/modules/modular_computers/computers/item/computer_files.dm index b0ae073bdd6..62f06b131ba 100644 --- a/code/modules/modular_computers/computers/item/computer_files.dm +++ b/code/modules/modular_computers/computers/item/computer_files.dm @@ -74,7 +74,7 @@ * the same filename (disregarding extension), will return it. * If a computer disk is passed instead, it will check the disk over the computer. */ -/obj/item/modular_computer/proc/find_file_by_name(filename, obj/item/computer_disk/target_disk) +/obj/item/modular_computer/proc/find_file_by_name(filename, obj/item/disk/computer/target_disk) if(!istext(filename)) return null if(isnull(target_disk)) @@ -94,7 +94,7 @@ * A file's uid is always unique to them, so this proc is sometimes preferable over find_file_by_name. * If a computer disk is passed instead, it will check the disk over the computer. */ -/obj/item/modular_computer/proc/find_file_by_uid(uid, obj/item/computer_disk/target_disk) +/obj/item/modular_computer/proc/find_file_by_uid(uid, obj/item/disk/computer/target_disk) if(!isnum(uid)) return null if(isnull(target_disk)) diff --git a/code/modules/modular_computers/computers/item/disks/computer_disk.dm b/code/modules/modular_computers/computers/item/disks/computer_disk.dm index 3161be07921..6740aefbe12 100644 --- a/code/modules/modular_computers/computers/item/disks/computer_disk.dm +++ b/code/modules/modular_computers/computers/item/disks/computer_disk.dm @@ -1,26 +1,21 @@ -/obj/item/computer_disk - name = "data disk" - desc = "Removable disk used to store data." - icon = 'icons/obj/devices/circuitry_n_data.dmi' - icon_state = "datadisk6" - w_class = WEIGHT_CLASS_TINY - ///The amount of storage space is on the disk +/obj/item/disk/computer + /// The amount of free storage space var/max_capacity = 16 - ///The amount of storage space we've got filled + /// The amount of storage space occupied var/used_capacity = 0 - ///List of stored files on this drive. DO NOT MODIFY DIRECTLY! + /// List of stored files on this drive. Do NOT directly modify; use setters instead. var/list/datum/computer_file/stored_files = list() - ///List of all programs that the disk should start with. + /// List of all programs that the disk should start with var/list/datum/computer_file/starting_programs = list() -/obj/item/computer_disk/Initialize(mapload) +/obj/item/disk/computer/Initialize(mapload) . = ..() for(var/programs in starting_programs) var/datum/computer_file/program_type = new programs add_file(program_type) -/obj/item/computer_disk/Destroy(force) +/obj/item/disk/computer/Destroy(force) . = ..() QDEL_LIST(stored_files) @@ -29,7 +24,7 @@ * * Attempts to add an already existing file to the computer disk, then adds that capacity to the used capicity. */ -/obj/item/computer_disk/proc/add_file(datum/computer_file/file) +/obj/item/disk/computer/proc/add_file(datum/computer_file/file) if((file.size + used_capacity) > max_capacity) return FALSE stored_files.Add(file) @@ -42,7 +37,7 @@ * * Removes an app from the stored_files list, then removes their size from the capacity. */ -/obj/item/computer_disk/proc/remove_file(datum/computer_file/file) +/obj/item/disk/computer/proc/remove_file(datum/computer_file/file) if(!(file in stored_files)) return FALSE stored_files.Remove(file) @@ -50,12 +45,12 @@ qdel(file) return TRUE -/obj/item/computer_disk/advanced +/obj/item/disk/computer/advanced name = "advanced data disk" icon_state = "datadisk5" max_capacity = 64 -/obj/item/computer_disk/super +/obj/item/disk/computer/super name = "super data disk" desc = "Removable disk used to store large amounts of data." icon_state = "datadisk3" diff --git a/code/modules/modular_computers/computers/item/disks/maintenance_disks.dm b/code/modules/modular_computers/computers/item/disks/maintenance_disks.dm index 0fb2ccc2eef..3aa30b94f62 100644 --- a/code/modules/modular_computers/computers/item/disks/maintenance_disks.dm +++ b/code/modules/modular_computers/computers/item/disks/maintenance_disks.dm @@ -1,30 +1,30 @@ -/obj/item/computer_disk/maintenance +/obj/item/disk/computer/maintenance name = "maintenance data disk" desc = "A data disk forgotten in the depths of maintenance, might have some useful program on it." /// Medical health analyzer app -/obj/item/computer_disk/maintenance/scanner +/obj/item/disk/computer/maintenance/scanner starting_programs = list(/datum/computer_file/program/maintenance/phys_scanner) ///Camera app, forced to always have largest image size -/obj/item/computer_disk/maintenance/camera +/obj/item/disk/computer/maintenance/camera starting_programs = list(/datum/computer_file/program/maintenance/camera) ///MODsuit UI, in your PDA! -/obj/item/computer_disk/maintenance/modsuit_control +/obj/item/disk/computer/maintenance/modsuit_control starting_programs = list(/datum/computer_file/program/maintenance/modsuit_control) ///Returns A 'spookiness' value based on the number of ghastly creature and hauntium and their distance from the PC. -/obj/item/computer_disk/maintenance/spectre_meter +/obj/item/disk/computer/maintenance/spectre_meter starting_programs = list(/datum/computer_file/program/maintenance/spectre_meter) ///A version of the arcade program with less HP/MP for the enemy and more for the player -/obj/item/computer_disk/maintenance/arcade +/obj/item/disk/computer/maintenance/arcade starting_programs = list(/datum/computer_file/program/arcade/eazy) -/obj/item/computer_disk/maintenance/theme/Initialize(mapload) +/obj/item/disk/computer/maintenance/theme/Initialize(mapload) starting_programs = list(pick(subtypesof(/datum/computer_file/program/maintenance/theme))) return ..() -/obj/item/computer_disk/maintenance/cool_sword +/obj/item/disk/computer/maintenance/cool_sword starting_programs = list(/datum/computer_file/program/maintenance/cool_sword) diff --git a/code/modules/modular_computers/computers/item/disks/role_disks.dm b/code/modules/modular_computers/computers/item/disks/role_disks.dm index 2191aaccdff..073d21f873f 100644 --- a/code/modules/modular_computers/computers/item/disks/role_disks.dm +++ b/code/modules/modular_computers/computers/item/disks/role_disks.dm @@ -1,7 +1,7 @@ /** * Command */ -/obj/item/computer_disk/command +/obj/item/disk/computer/command icon_state = "datadisk7" max_capacity = 32 ///Static list of programss ALL command tablets have. @@ -10,13 +10,13 @@ /datum/computer_file/program/status, ) -/obj/item/computer_disk/command/Initialize(mapload) +/obj/item/disk/computer/command/Initialize(mapload) . = ..() for(var/programs in command_programs) var/datum/computer_file/program/program_type = new programs add_file(program_type) -/obj/item/computer_disk/command/captain +/obj/item/disk/computer/command/captain name = "captain data disk" desc = "Removable disk used to download essential Captain tablet apps." icon_state = "datadisk10" @@ -25,21 +25,21 @@ /datum/computer_file/program/records/medical, ) -/obj/item/computer_disk/command/cmo +/obj/item/disk/computer/command/cmo name = "chief medical officer data disk" desc = "Removable disk used to download essential CMO tablet apps." starting_programs = list( /datum/computer_file/program/records/medical, ) -/obj/item/computer_disk/command/rd +/obj/item/disk/computer/command/rd name = "research director data disk" desc = "Removable disk used to download essential RD tablet apps." starting_programs = list( /datum/computer_file/program/signal_commander, ) -/obj/item/computer_disk/command/hos +/obj/item/disk/computer/command/hos name = "head of security data disk" desc = "Removable disk used to download essential HoS tablet apps." icon_state = "datadisk9" @@ -47,7 +47,7 @@ /datum/computer_file/program/records/security, ) -/obj/item/computer_disk/command/hop +/obj/item/disk/computer/command/hop name = "head of personnel data disk" desc = "Removable disk used to download essential HoP tablet apps." starting_programs = list( @@ -55,7 +55,7 @@ /datum/computer_file/program/job_management, ) -/obj/item/computer_disk/command/ce +/obj/item/disk/computer/command/ce name = "chief engineer data disk" desc = "Removable disk used to download essential CE tablet apps." starting_programs = list( @@ -67,7 +67,7 @@ /** * Security */ -/obj/item/computer_disk/security +/obj/item/disk/computer/security name = "security officer data disk" desc = "Removable disk used to download security-related tablet apps." icon_state = "datadisk9" @@ -78,7 +78,7 @@ /** * Medical */ -/obj/item/computer_disk/medical +/obj/item/disk/computer/medical name = "medical doctor data disk" desc = "Removable disk used to download medical-related tablet apps." icon_state = "datadisk7" @@ -89,10 +89,10 @@ /** * Supply */ -/obj/item/computer_disk/quartermaster +/obj/item/disk/computer/quartermaster name = "cargo data disk" desc = "Removable disk used to download cargo-related tablet apps." - icon_state = "cargodisk" + icon_state = "datadisk12" starting_programs = list( /datum/computer_file/program/shipping, /datum/computer_file/program/budgetorders, @@ -102,7 +102,7 @@ /** * Science */ -/obj/item/computer_disk/ordnance +/obj/item/disk/computer/ordnance name = "ordnance data disk" desc = "Removable disk used to download ordnance-related tablet apps." icon_state = "datadisk5" @@ -114,7 +114,7 @@ /** * Engineering */ -/obj/item/computer_disk/engineering +/obj/item/disk/computer/engineering name = "engineering data disk" desc = "Removable disk used to download engineering-related tablet apps." icon_state = "datadisk6" diff --git a/code/modules/modular_computers/computers/item/disks/unique_disks.dm b/code/modules/modular_computers/computers/item/disks/unique_disks.dm index a5e9d9750f3..9251ffa7922 100644 --- a/code/modules/modular_computers/computers/item/disks/unique_disks.dm +++ b/code/modules/modular_computers/computers/item/disks/unique_disks.dm @@ -1,19 +1,27 @@ -/obj/item/computer_disk/syndicate +/obj/item/disk/computer/syndicate name = "golden data disk" desc = "A data disk with some high-tech programs, probably expensive as hell." - icon_state = "datadisk8" + icon_state = "datadisk9" custom_materials = list(/datum/material/gold = SMALL_MATERIAL_AMOUNT) -/obj/item/computer_disk/syndicate/camera_app +/obj/item/disk/computer/syndicate/Initialize(mapload) + . = ..() + add_overlay("o_syndicate") + +/obj/item/disk/computer/syndicate/camera_app starting_programs = list(/datum/computer_file/program/secureye/syndicate) -/obj/item/computer_disk/syndicate/contractor +/obj/item/disk/computer/syndicate/contractor starting_programs = list(/datum/computer_file/program/contract_uplink) -/obj/item/computer_disk/black_market +/obj/item/disk/computer/black_market desc = "Removable disk used to store data. This one has a smudged piece of paper glued to it, reading \"PC softwarez\"." -/obj/item/computer_disk/black_market/Initialize(mapload) +/obj/item/disk/computer/black_market/Initialize(mapload) + . = ..() + add_overlay("o_code") + +/obj/item/disk/computer/black_market/Initialize(mapload) icon_state = "datadisk[rand(0, 10)]" //Populated with programs not found in the verified downloader app or that require access to download (but not to run). var/list/potential_programs = list( diff --git a/code/modules/modular_computers/computers/item/disks/virus_disk.dm b/code/modules/modular_computers/computers/item/disks/virus_disk.dm index 585e7d31558..fdc336362a5 100644 --- a/code/modules/modular_computers/computers/item/disks/virus_disk.dm +++ b/code/modules/modular_computers/computers/item/disks/virus_disk.dm @@ -2,14 +2,14 @@ * Virus disk * Can't hold apps, instead does unique actions. */ -/obj/item/computer_disk/virus +/obj/item/disk/computer/virus name = "\improper generic virus disk" icon_state = "virusdisk" max_capacity = 0 ///How many charges the virus has left var/charges = 5 -/obj/item/computer_disk/virus/proc/send_virus(obj/item/modular_computer/pda/source, obj/item/modular_computer/pda/target, mob/living/user, message) +/obj/item/disk/computer/virus/proc/send_virus(obj/item/modular_computer/pda/source, obj/item/modular_computer/pda/target, mob/living/user, message) if(charges <= 0) to_chat(user, span_notice("ERROR: Out of charges.")) return FALSE @@ -23,10 +23,10 @@ * Makes people's PDA honk * Can also be used on open panel airlocks to make them honk on opening. */ -/obj/item/computer_disk/virus/clown +/obj/item/disk/computer/virus/clown name = "\improper H.O.N.K. disk" -/obj/item/computer_disk/virus/clown/send_virus(obj/item/modular_computer/pda/source, obj/item/modular_computer/pda/target, mob/living/user, message) +/obj/item/disk/computer/virus/clown/send_virus(obj/item/modular_computer/pda/source, obj/item/modular_computer/pda/target, mob/living/user, message) . = ..() if(!.) return FALSE @@ -40,10 +40,10 @@ * Mime virus * Makes PDA's silent, removing their ringtone. */ -/obj/item/computer_disk/virus/mime +/obj/item/disk/computer/virus/mime name = "\improper sound of silence disk" -/obj/item/computer_disk/virus/mime/send_virus(obj/item/modular_computer/pda/source, obj/item/modular_computer/pda/target, mob/living/user, message) +/obj/item/disk/computer/virus/mime/send_virus(obj/item/modular_computer/pda/source, obj/item/modular_computer/pda/target, mob/living/user, message) . = ..() if(!.) return FALSE @@ -60,11 +60,11 @@ * Detomatix virus * Sends a false message, and blows the PDA up if the target responds to it (or opens their messenger before a timer) */ -/obj/item/computer_disk/virus/detomatix +/obj/item/disk/computer/virus/detomatix name = "\improper D.E.T.O.M.A.T.I.X. disk" charges = 6 -/obj/item/computer_disk/virus/detomatix/send_virus(obj/item/modular_computer/pda/source, obj/item/modular_computer/pda/target, mob/living/user, message) +/obj/item/disk/computer/virus/detomatix/send_virus(obj/item/modular_computer/pda/source, obj/item/modular_computer/pda/target, mob/living/user, message) . = ..() if(!.) return FALSE @@ -101,7 +101,7 @@ * Creates and opens a false uplink on someone's PDA * Can be loaded with TC to show up on the false uplink. */ -/obj/item/computer_disk/virus/frame +/obj/item/disk/computer/virus/frame name = "\improper F.R.A.M.E. disk" ///How many telecrystals the uplink should have @@ -109,7 +109,7 @@ ///How much progression should be shown in the uplink, set on purchase of the item. var/current_progression = 0 -/obj/item/computer_disk/virus/frame/attackby(obj/item/attacking_item, mob/user, list/modifiers, list/attack_modifiers) +/obj/item/disk/computer/virus/frame/attackby(obj/item/attacking_item, mob/user, list/modifiers, list/attack_modifiers) . = ..() if(!istype(attacking_item, /obj/item/stack/telecrystal)) return @@ -122,7 +122,7 @@ telecrystal_stack.use(telecrystal_stack.amount) -/obj/item/computer_disk/virus/frame/send_virus(obj/item/modular_computer/pda/source, obj/item/modular_computer/pda/target, mob/living/user, message) +/obj/item/disk/computer/virus/frame/send_virus(obj/item/modular_computer/pda/source, obj/item/modular_computer/pda/target, mob/living/user, message) . = ..() if(!.) return FALSE diff --git a/code/modules/modular_computers/computers/item/pda.dm b/code/modules/modular_computers/computers/item/pda.dm index 25ef899febb..1df3722a50f 100644 --- a/code/modules/modular_computers/computers/item/pda.dm +++ b/code/modules/modular_computers/computers/item/pda.dm @@ -112,9 +112,9 @@ if(!target_machine.panel_open && !istype(target, /obj/machinery/computer)) return ..() - if(!istype(inserted_disk, /obj/item/computer_disk/virus/clown)) + if(!istype(inserted_disk, /obj/item/disk/computer/virus/clown)) return ..() - var/obj/item/computer_disk/virus/clown/installed_cartridge = inserted_disk + var/obj/item/disk/computer/virus/clown/installed_cartridge = inserted_disk if(!installed_cartridge.charges) to_chat(user, span_notice("Out of virus charges.")) return ..() @@ -225,7 +225,7 @@ if(current_turf) current_turf.hotspot_expose(700,125) - if(istype(inserted_disk, /obj/item/computer_disk/virus/detomatix)) + if(istype(inserted_disk, /obj/item/disk/computer/virus/detomatix)) explosion(src, devastation_range = -1, heavy_impact_range = 1, light_impact_range = 3, flash_range = 4) else explosion(src, devastation_range = -1, heavy_impact_range = -1, light_impact_range = 2, flash_range = 3) diff --git a/code/modules/modular_computers/computers/item/role_tablet_presets.dm b/code/modules/modular_computers/computers/item/role_tablet_presets.dm index b77f273378f..2f655ac1d0c 100644 --- a/code/modules/modular_computers/computers/item/role_tablet_presets.dm +++ b/code/modules/modular_computers/computers/item/role_tablet_presets.dm @@ -326,7 +326,7 @@ icon = 'icons/obj/devices/modular_pda.dmi' icon_state = "pda-clown" post_init_icon_state = null - inserted_disk = /obj/item/computer_disk/virus/clown + inserted_disk = /obj/item/disk/computer/virus/clown greyscale_config = null greyscale_colors = null inserted_item = /obj/item/toy/crayon/rainbow @@ -358,7 +358,7 @@ /obj/item/modular_computer/pda/clown/proc/AfterSlip(mob/living/carbon/human/M) if (istype(M) && (M.real_name != saved_identification)) - var/obj/item/computer_disk/virus/clown/cart = inserted_disk + var/obj/item/disk/computer/virus/clown/cart = inserted_disk if(istype(cart) && cart.charges < 5) cart.charges++ playsound(src,'sound/machines/ping.ogg',30,TRUE) @@ -368,7 +368,7 @@ /obj/item/modular_computer/pda/mime name = "mime PDA" - inserted_disk = /obj/item/computer_disk/virus/mime + inserted_disk = /obj/item/disk/computer/virus/mime icon_state = "/obj/item/modular_computer/pda/mime" greyscale_config = /datum/greyscale_config/tablet/mime greyscale_colors = "#FAFAFA#EA3232" diff --git a/code/modules/modular_computers/file_system/computer_file.dm b/code/modules/modular_computers/file_system/computer_file.dm index 05f3272d833..d719fe5bd36 100644 --- a/code/modules/modular_computers/file_system/computer_file.dm +++ b/code/modules/modular_computers/file_system/computer_file.dm @@ -14,7 +14,7 @@ ///The modular computer hosting the file. var/obj/item/modular_computer/computer ///The computer disk hosting the file. - var/obj/item/computer_disk/disk_host + var/obj/item/disk/computer/disk_host /datum/computer_file/New() ..() diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm index 0cd3595c437..48e19516dad 100644 --- a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm +++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm @@ -276,7 +276,7 @@ return FALSE if(sending_virus) - var/obj/item/computer_disk/virus/disk = computer.inserted_disk + var/obj/item/disk/computer/virus/disk = computer.inserted_disk if(!istype(disk)) return FALSE @@ -376,7 +376,7 @@ data["selected_photo_path"] = !isnull(selected_image) ? SSassets.transport.get_asset_url(selected_image) : null data["on_spam_cooldown"] = !can_send_everyone_message() - var/obj/item/computer_disk/virus/disk = computer.inserted_disk + var/obj/item/disk/computer/virus/disk = computer.inserted_disk if(istype(disk)) data["virus_attach"] = TRUE data["sending_virus"] = sending_virus diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 1c1c45fe59a..b2064b0acdf 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -628,7 +628,7 @@ /obj/item/emitter_disk name = "\improper Diode Disk: Debugger" desc = "This disk can be used on an emitter with an open panel to reset its projectile. Unless this was handed to you by an admin, you should report this on github." - icon = 'icons/obj/devices/circuitry_n_data.dmi' + icon = 'icons/obj/devices/floppy_disks.dmi' icon_state = "datadisk6" var/laser_color = COLOR_VIBRANT_LIME var/stored_proj = /obj/projectile/beam/emitter/hitscan diff --git a/code/modules/research/designs/computer_part_designs.dm b/code/modules/research/designs/computer_part_designs.dm index 7a8242642a1..948073f9f15 100644 --- a/code/modules/research/designs/computer_part_designs.dm +++ b/code/modules/research/designs/computer_part_designs.dm @@ -7,7 +7,7 @@ id = "portadrive_basic" build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT) - build_path = /obj/item/computer_disk + build_path = /obj/item/disk/computer category = list( RND_CATEGORY_INITIAL, RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS @@ -19,7 +19,7 @@ id = "portadrive_advanced" build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 2) - build_path = /obj/item/computer_disk/advanced + build_path = /obj/item/disk/computer/advanced category = list( RND_CATEGORY_INITIAL, RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS @@ -31,7 +31,7 @@ id = "portadrive_super" build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 4) - build_path = /obj/item/computer_disk/super + build_path = /obj/item/disk/computer/super category = list( RND_CATEGORY_INITIAL, RND_CATEGORY_MODULAR_COMPUTERS + RND_SUBCATEGORY_MODULAR_COMPUTERS_PARTS diff --git a/code/modules/research/ordnance/doppler_array.dm b/code/modules/research/ordnance/doppler_array.dm index fda438e4f4e..c516cd38f6a 100644 --- a/code/modules/research/ordnance/doppler_array.dm +++ b/code/modules/research/ordnance/doppler_array.dm @@ -15,7 +15,7 @@ /// List of all explosion records in the form of /datum/data/tachyon_record var/list/records = list() /// Reference to a disk we are going to print to. - var/obj/item/computer_disk/inserted_disk + var/obj/item/disk/computer/inserted_disk // Lighting system to better communicate the directions. light_system = OVERLAY_LIGHT_DIRECTIONAL @@ -49,8 +49,8 @@ . += span_notice("It is currently facing [dir2text(dir)]") /obj/machinery/doppler_array/attackby(obj/item/item, mob/user, list/modifiers, list/attack_modifiers) - if(istype(item, /obj/item/computer_disk)) - var/obj/item/computer_disk/disk = item + if(istype(item, /obj/item/disk/computer)) + var/obj/item/disk/computer/disk = item eject_disk(user) if(user.transferItemToLoc(disk, src)) inserted_disk = disk diff --git a/code/modules/research/ordnance/tank_compressor.dm b/code/modules/research/ordnance/tank_compressor.dm index 06069123f94..189ab23a3a0 100644 --- a/code/modules/research/ordnance/tank_compressor.dm +++ b/code/modules/research/ordnance/tank_compressor.dm @@ -19,7 +19,7 @@ var/record_number = 1 var/obj/item/tank/inserted_tank /// Reference to a disk we are going to print to. - var/obj/item/computer_disk/inserted_disk + var/obj/item/disk/computer/inserted_disk pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY @@ -60,8 +60,8 @@ RegisterSignal(inserted_tank, COMSIG_QDELETING, PROC_REF(tank_destruction)) update_appearance() return - if(istype(item, /obj/item/computer_disk)) - var/obj/item/computer_disk/attacking_disk = item + if(istype(item, /obj/item/disk/computer)) + var/obj/item/disk/computer/attacking_disk = item eject_disk(user) if(user.transferItemToLoc(attacking_disk, src)) inserted_disk = attacking_disk diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 2c591e0fe11..6b900f0e83b 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -116,7 +116,7 @@ /obj/machinery/rnd/server/master max_integrity = 1800 //takes roughly ~15s longer to break then full deconstruction. circuit = null - var/obj/item/computer_disk/hdd_theft/source_code_hdd + var/obj/item/disk/computer/hdd_theft/source_code_hdd var/deconstruction_state = HDD_PANEL_CLOSED var/front_panel_screws = 4 var/hdd_wires = 6 @@ -166,7 +166,7 @@ return ..() /obj/machinery/rnd/server/master/attackby(obj/item/attacking_item, mob/user, list/modifiers, list/attack_modifiers) - if(istype(attacking_item, /obj/item/computer_disk/hdd_theft)) + if(istype(attacking_item, /obj/item/disk/computer/hdd_theft)) switch(deconstruction_state) if(HDD_PANEL_CLOSED) balloon_alert(user, "you can't find a place to insert it!") diff --git a/code/modules/uplink/uplink_items/device_tools.dm b/code/modules/uplink/uplink_items/device_tools.dm index 83ebc1e737d..9696cd1bbb7 100644 --- a/code/modules/uplink/uplink_items/device_tools.dm +++ b/code/modules/uplink/uplink_items/device_tools.dm @@ -104,7 +104,7 @@ /datum/uplink_item/device_tools/camera_app name = "SyndEye Program" desc = "A data disk containing a unique PC app that allows you to watch cameras and track crewmembers." - item = /obj/item/computer_disk/syndicate/camera_app + item = /obj/item/disk/computer/syndicate/camera_app cost = 1 surplus = 90 purchasable_from = ~UPLINK_ALL_SYNDIE_OPS @@ -137,14 +137,14 @@ when used cause the targeted tablet to become a new uplink with zero TCs, and immediately become unlocked. \ You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ telecrystals normally." - item = /obj/item/computer_disk/virus/frame + item = /obj/item/disk/computer/virus/frame cost = 4 restricted = TRUE purchasable_from = ~UPLINK_ALL_SYNDIE_OPS /datum/uplink_item/device_tools/frame/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) . = ..() - var/obj/item/computer_disk/virus/frame/target = . + var/obj/item/disk/computer/virus/frame/target = . if(!target) return target.current_progression = uplink_handler.progression_points diff --git a/code/modules/uplink/uplink_items/explosive.dm b/code/modules/uplink/uplink_items/explosive.dm index 6eb0c05bddd..89d0d9d23ea 100644 --- a/code/modules/uplink/uplink_items/explosive.dm +++ b/code/modules/uplink/uplink_items/explosive.dm @@ -51,7 +51,7 @@ desc = "When inserted into a tablet, this cartridge gives you four opportunities to \ detonate tablets of crewmembers who have their message feature enabled. \ The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." - item = /obj/item/computer_disk/virus/detomatix + item = /obj/item/disk/computer/virus/detomatix cost = 6 restricted = TRUE diff --git a/code/modules/uplink/uplink_items/nukeops.dm b/code/modules/uplink/uplink_items/nukeops.dm index 37ee8997aee..971517074fb 100644 --- a/code/modules/uplink/uplink_items/nukeops.dm +++ b/code/modules/uplink/uplink_items/nukeops.dm @@ -820,7 +820,7 @@ /datum/uplink_item/suits/synd_ai_upgrade name = "Syndicate AI Upgrade" desc = "...unless you buy the Syndicate Upgrade! This data chip allows the captured AI to increase its interaction range by two tiles per application. The Syndicate recommends three or four purchases at most, for a total of seven or infinite meters of range." - item = /obj/item/computer_disk/syndie_ai_upgrade + item = /obj/item/disk/computer/syndie_ai_upgrade cost = 4 purchasable_from = UPLINK_ALL_SYNDIE_OPS cant_discount = TRUE diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm index 9e5a3c4d8ec..1f368e4afdd 100644 --- a/code/modules/vending/assist.dm +++ b/code/modules/vending/assist.dm @@ -8,7 +8,7 @@ /obj/item/assembly/igniter = 3, /obj/item/assembly/prox_sensor = 5, /obj/item/assembly/signaler = 4, - /obj/item/computer_disk/ordnance = 4, + /obj/item/disk/computer/ordnance = 4, /obj/item/stock_parts/capacitor = 3, /obj/item/stock_parts/servo = 3, /obj/item/stock_parts/matter_bin = 3, diff --git a/code/modules/vending/cartridge.dm b/code/modules/vending/cartridge.dm index ccc13b7de72..043782d5366 100644 --- a/code/modules/vending/cartridge.dm +++ b/code/modules/vending/cartridge.dm @@ -7,12 +7,12 @@ icon_deny = "cart-deny" panel_type = "panel6" products = list( - /obj/item/computer_disk/medical = 10, - /obj/item/computer_disk/engineering = 10, - /obj/item/computer_disk/security = 10, - /obj/item/computer_disk/ordnance = 10, - /obj/item/computer_disk/quartermaster = 10, - /obj/item/computer_disk/command/captain = 3, + /obj/item/disk/computer/medical = 10, + /obj/item/disk/computer/engineering = 10, + /obj/item/disk/computer/security = 10, + /obj/item/disk/computer/ordnance = 10, + /obj/item/disk/computer/quartermaster = 10, + /obj/item/disk/computer/command/captain = 3, /obj/item/modular_computer/pda = 10, ) refill_canister = /obj/item/vending_refill/cart diff --git a/code/modules/vending/modularpc.dm b/code/modules/vending/modularpc.dm index 415329366c7..c3363cde229 100644 --- a/code/modules/vending/modularpc.dm +++ b/code/modules/vending/modularpc.dm @@ -8,7 +8,7 @@ product_ads = "Get your gamer gear!;The best GPUs for all of your space-crypto needs!;The most robust cooling!;The finest RGB in space!" vend_reply = "Game on!" products = list( - /obj/item/computer_disk = 8, + /obj/item/disk/computer = 8, /obj/item/modular_computer/laptop = 4, /obj/item/modular_computer/pda = 4, ) diff --git a/icons/obj/devices/circuitry_n_data.dmi b/icons/obj/devices/circuitry_n_data.dmi index cacf3cf13b7..c35a1a60272 100644 Binary files a/icons/obj/devices/circuitry_n_data.dmi and b/icons/obj/devices/circuitry_n_data.dmi differ diff --git a/icons/obj/devices/floppy_disks.dmi b/icons/obj/devices/floppy_disks.dmi new file mode 100644 index 00000000000..fea1c6ad149 Binary files /dev/null and b/icons/obj/devices/floppy_disks.dmi differ diff --git a/icons/obj/storage/wrapping.dmi b/icons/obj/storage/wrapping.dmi index 9d8e757ea15..2759a02ac8b 100644 Binary files a/icons/obj/storage/wrapping.dmi and b/icons/obj/storage/wrapping.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 4e22afe16c1..6f10c88246d 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2544,6 +2544,7 @@ #include "code\game\objects\items\fireaxe.dm" #include "code\game\objects\items\flamethrower.dm" #include "code\game\objects\items\flatpacks.dm" +#include "code\game\objects\items\floppy_disk.dm" #include "code\game\objects\items\forensicsspoofer.dm" #include "code\game\objects\items\frog_statue.dm" #include "code\game\objects\items\gift.dm" diff --git a/tools/UpdatePaths/Scripts/94112_disk_repath.txt b/tools/UpdatePaths/Scripts/94112_disk_repath.txt new file mode 100644 index 00000000000..f5f6ecd21e9 --- /dev/null +++ b/tools/UpdatePaths/Scripts/94112_disk_repath.txt @@ -0,0 +1,7 @@ +# Replaces /obj/item/bitrunning_disk with /obj/item/disk/bitrunning + +/obj/item/bitrunning_disk : /obj/item/disk/bitrunning{@OLD} +/obj/item/bitrunning_disk/@SUBTYPES : /obj/item/disk/bitrunning/@SUBTYPES{@OLD} + +/obj/item/computer_disk : /obj/item/disk/computer{@OLD} +/obj/item/computer_disk/@SUBTYPES : /obj/item/disk/computer/@SUBTYPES{@OLD}