diff --git a/aurorastation.dme b/aurorastation.dme
index c06b3f9c2cd..80db6869e2f 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -2133,6 +2133,7 @@
#include "code\modules\modular_computers\hardware\portable_hard_drive_presets.dm"
#include "code\modules\modular_computers\hardware\processor_unit.dm"
#include "code\modules\modular_computers\hardware\tesla_link.dm"
+#include "code\modules\modular_computers\items\paper_scanner.dm"
#include "code\modules\modular_computers\NTNet\NTNet.dm"
#include "code\modules\modular_computers\NTNet\NTNet_relay.dm"
#include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm"
diff --git a/code/modules/modular_computers/items/paper_scanner.dm b/code/modules/modular_computers/items/paper_scanner.dm
new file mode 100644
index 00000000000..5b05c2d92ec
--- /dev/null
+++ b/code/modules/modular_computers/items/paper_scanner.dm
@@ -0,0 +1,95 @@
+/obj/item/paper_scanner
+ name = "paper scanner"
+ desc = "A simple device that can be used to scan paper or paper bundles in order to digitize them."
+ desc_info = "Alt-click it while it's in one of your hands to eject the portable drive. Click paper or a paper bundle with it to digitize it and store it in the inserted drive."
+ icon = 'icons/obj/devices/paperscanner.dmi'
+ icon_state = "paperscanner"
+ item_state = "paperscanner"
+ contained_sprite = TRUE
+ var/obj/item/computer_hardware/hard_drive/portable/drive
+
+/obj/item/paper_scanner/Initialize(mapload, ...)
+ . = ..()
+ drive = new /obj/item/computer_hardware/hard_drive/portable(src)
+ update_icon()
+
+/obj/item/paper_scanner/update_icon()
+ cut_overlays()
+ if(drive)
+ add_overlay("paperscanner-drive")
+
+/obj/item/paper_scanner/AltClick(mob/living/carbon/user)
+ if(!drive)
+ to_chat(user, SPAN_WARNING("\The [src] doesn't have a drive installed."))
+ return
+ if(!istype(user))
+ to_chat(user, SPAN_WARNING("You're too simple to work \the [src]."))
+ return
+ if(user.l_hand == src || user.r_hand == src)
+ to_chat(user, SPAN_NOTICE("You eject \the [drive]."))
+ user.put_in_hands(drive)
+ drive = null
+ update_icon()
+ else
+ to_chat(user, SPAN_WARNING("You must be holding \the [src] in one of your hands before you can eject a drive."))
+
+/obj/item/paper_scanner/attackby(obj/item/W, mob/user)
+ if(istype(W, /obj/item/computer_hardware/hard_drive/portable))
+ if(drive)
+ to_chat(user, SPAN_WARNING("\The [src] already has a drive installed!"))
+ return
+ to_chat(user, SPAN_NOTICE("You insert \the [W] into \the [src]."))
+ user.drop_from_inventory(W, src)
+ drive = W
+ update_icon()
+ else
+ ..()
+
+/obj/item/paper_scanner/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
+ if(proximity_flag && (istype(target, /obj/item/paper) || istype(target, /obj/item/paper_bundle)))
+ do_scan(target, user)
+
+/obj/item/paper_scanner/proc/do_scan(var/obj/item/target, var/mob/user)
+ if(!drive)
+ to_chat(user, SPAN_WARNING("\The [src] doesn't have a drive installed."))
+ return
+
+ var/list/pages_to_scan = list()
+ var/obj/item/paper/P = target
+ var/obj/item/paper_bundle/PB = target
+
+ if(istype(P))
+ if(!P.info)
+ to_chat(user, SPAN_WARNING("\The [P] doesn't have any information on it."))
+ return
+ pages_to_scan += P
+ else if(istype(PB))
+ var/has_info = FALSE
+ for(var/obj/item/paper/page in PB.pages)
+ if(page.info)
+ pages_to_scan += page
+ has_info = TRUE
+ if(!has_info)
+ to_chat(user, SPAN_WARNING("\The [PB] doesn't have any information in it."))
+ return
+
+ if(!length(pages_to_scan))
+ return
+
+ user.visible_message("[user] starts making a scan of \the [target]...", SPAN_NOTICE("You start making a scan of \the [target]..."), range = 3)
+ if(do_after(user, 30 * length(pages_to_scan), TRUE, target))
+ if(!drive)
+ to_chat(user, SPAN_WARNING("\The [src] doesn't have a drive installed."))
+ return
+ user.visible_message("[user] makes a scan of \the [target].", SPAN_NOTICE("You make a scan of \the [target]."), range = 3)
+ var/datum/computer_file/data/F = new /datum/computer_file/data(drive)
+ F.filename = target.name != initial(target.name) ? "[target.name] ([worldtime2text()] - [time2text(world.time, "Month DD")])" : "Digital Paper ([worldtime2text()] - [time2text(world.time, "Month DD")])"
+ F.filetype = "TXT"
+ var/data_to_save = ""
+ for(var/thing in pages_to_scan)
+ var/obj/item/paper/page = thing
+ data_to_save += page.info
+ data_to_save += "\[br\]"
+ F.stored_data = data_to_save
+ if(!drive.store_file(F))
+ to_chat(usr, SPAN_WARNING("\The [drive] does not have enough space to store the latest scanned file."))
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index acc59e835f6..76d3676e407 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -29,6 +29,7 @@
if(istype(W, /obj/item/paper) || istype(W, /obj/item/photo))
insert_sheet_at(user, pages.len+1, W)
amount++
+ attack_self(usr) //Update the browsed page.
// burning
else if(istype(W, /obj/item/flame))
@@ -43,6 +44,7 @@
amount++
to_chat(user, "You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].")
+ attack_self(usr) //Update the browsed page.
qdel(W)
else
if(istype(W, /obj/item/tape_roll))
@@ -53,7 +55,6 @@
P.attackby(W, user)
update_icon()
- attack_self(usr) //Update the browsed page.
add_fingerprint(usr)
return
diff --git a/html/changelogs/geeves-paper_scanner.yml b/html/changelogs/geeves-paper_scanner.yml
new file mode 100644
index 00000000000..1f744db96e1
--- /dev/null
+++ b/html/changelogs/geeves-paper_scanner.yml
@@ -0,0 +1,6 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - rscadd: "Added a paper scanner device that can scan paper and paper bundles and convert them into data files."
\ No newline at end of file
diff --git a/icons/obj/devices/paperscanner.dmi b/icons/obj/devices/paperscanner.dmi
new file mode 100644
index 00000000000..1af5e969134
Binary files /dev/null and b/icons/obj/devices/paperscanner.dmi differ
diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm
index 203321c03b4..ce9f10143d2 100644
--- a/maps/aurora/aurora-4_mainlevel.dmm
+++ b/maps/aurora/aurora-4_mainlevel.dmm
@@ -12594,6 +12594,7 @@
dir = 9
},
/obj/structure/table/reinforced,
+/obj/item/paper_scanner,
/turf/simulated/floor/tiled,
/area/bridge)
"awV" = (
@@ -14476,6 +14477,7 @@
req_access = list(7)
},
/obj/effect/floor_decal/corner_wide/mauve/full,
+/obj/item/paper_scanner,
/turf/simulated/floor/tiled/white,
/area/rnd/telesci)
"azV" = (
@@ -16065,6 +16067,7 @@
info = "\[center]\[Large]\[b]NSS Exodus\[/b]\[/large]\[br] \[small]Armoury Inventory\[/small]\[/center] \[hr] \[hr] \[br] \[b]Weaponry\[/b]\[br] \[field] Energy Gun(s)\[br] \[field] Laser Gun(s)\[br] \[field] Ion Rifle(s)\[br] \[field] Combat Shotgun(s) \[hr] \[b]Armour\[/b]\[br] \[field] Bulletproof Vest(s)\[br] \[field] Abalative Vest(s)\[br] \[field] Biohazard Suit(s)\[br] \[field] Bomb Suit(s) \[hr] \[b]Auxiliary Equipment\[/b]\[br] \[field] Gasmask(s)\[br] \[field] box(es) of Flashbangs\[br] \[field] box(es) of Handcuffs\[br] \[field] box(es) of R.O.B.U.S.T. Cartridges \[hr] \[b]Riot Equipment\[/b]\[br] \[field] Stun Baton(s)\[br] \[field] Riot Suit(s)\[br] \[field] Riot Shield(s) \[hr] \[b]Tactical Equipment\[/b]\[br] \[field] Tactical Armour(s)\[br] \[field] Tactical Helmet(s)\[br] \[field] Tactical Jumpsuit(s)\[br] \[field] Green Balaclava(s)\[br] \[field] Tactical HUD(s)\[br] \[field] Combat Belt(s)\[br] \[field] Black Glove(s)\[br] \[field] Jackboot(s) \[hr] \[b]Implants\[/b]\[br] \[field] Tracking Implant Box(es)\[br] \[field] Chemical Implant Box(es) \[hr] \[b]Defense Systems\[/b]\[br] \[field] Deployable Barrier(s)\[br] \[field] Portable Flasher(s) \[hr] \[b]Other\[/b]\[br] \[field] Holobadge Box(es) \[hr] \[b]\[center]Warden's's Signature:\[/b] \[field]\[/center] \[hr]";
name = "Armory Inventory"
},
+/obj/item/paper_scanner,
/turf/simulated/floor/tiled,
/area/security/warden)
"aCA" = (
@@ -21098,6 +21101,10 @@
network = list("Capt_Office");
pixel_y = 30
},
+/obj/item/paper_scanner{
+ pixel_x = 6;
+ pixel_y = -2
+ },
/turf/simulated/floor/carpet,
/area/crew_quarters/captain)
"aKH" = (
@@ -23656,6 +23663,7 @@
},
/obj/structure/table/standard,
/obj/item/folder/sec,
+/obj/item/paper_scanner,
/turf/simulated/floor/tiled,
/area/security/brig)
"aPg" = (
@@ -24284,6 +24292,9 @@
/obj/structure/table/standard,
/obj/item/paper_bin,
/obj/item/pen,
+/obj/item/paper_scanner{
+ pixel_x = 8
+ },
/turf/simulated/floor/carpet,
/area/crew_quarters/heads/chief)
"aQh" = (
@@ -24567,6 +24578,7 @@
pixel_x = 5;
pixel_y = -30
},
+/obj/item/paper_scanner,
/turf/simulated/floor/tiled/dark,
/area/crew_quarters/heads/hos)
"aQI" = (
@@ -26777,6 +26789,9 @@
d2 = 4;
icon_state = "2-4"
},
+/obj/item/paper_scanner{
+ pixel_x = -8
+ },
/turf/simulated/floor/carpet,
/area/journalistoffice)
"aUq" = (
@@ -27593,6 +27608,10 @@
"aVG" = (
/obj/structure/table/reinforced,
/obj/item/modular_computer/laptop/preset/command/hop,
+/obj/item/paper_scanner{
+ pixel_x = 4;
+ pixel_y = 8
+ },
/turf/simulated/floor/wood,
/area/crew_quarters/heads/hop)
"aVH" = (
@@ -32778,6 +32797,7 @@
pixel_x = 5;
pixel_y = -4
},
+/obj/item/paper_scanner,
/turf/simulated/floor/carpet/blue,
/area/medical/exam_room{
name = "\improper Medical - Exam Room 2"
@@ -36570,6 +36590,9 @@
pixel_y = 6
},
/obj/item/pen,
+/obj/item/paper_scanner{
+ pixel_x = 6
+ },
/turf/simulated/floor/tiled/white,
/area/crew_quarters/heads/cmo)
"blG" = (
@@ -37936,6 +37959,7 @@
dir = 4
},
/obj/structure/table/standard,
+/obj/item/paper_scanner,
/turf/simulated/floor/carpet/blue,
/area/medical/exam_room{
name = "\improper Medical - Exam Room 1"
@@ -43660,6 +43684,10 @@
/obj/item/device/eftpos{
eftpos_name = "Research EFTPOS scanner"
},
+/obj/item/paper_scanner{
+ pixel_x = -6;
+ pixel_y = 4
+ },
/turf/simulated/floor/carpet/blue,
/area/rnd/rdoffice)
"bzD" = (
@@ -48531,6 +48559,7 @@
req_access = list(37)
},
/obj/structure/table/wood,
+/obj/item/paper_scanner,
/turf/simulated/floor/wood,
/area/library)
"bKK" = (
@@ -50058,6 +50087,14 @@
/obj/structure/table/wood,
/obj/item/paper_bin,
/obj/item/pen,
+/obj/item/paper_scanner{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/paper_scanner{
+ pixel_x = -2;
+ pixel_y = -2
+ },
/obj/machinery/light{
dir = 8
},
@@ -54016,6 +54053,7 @@
dir = 6
},
/obj/structure/table/standard,
+/obj/item/paper_scanner,
/obj/item/paper_bin{
pixel_x = -3;
pixel_y = 7
@@ -63051,6 +63089,7 @@
dir = 6
},
/obj/structure/table/reinforced,
+/obj/item/paper_scanner,
/turf/simulated/floor/tiled,
/area/bridge)
"mlB" = (
@@ -65721,6 +65760,11 @@
/obj/effect/floor_decal/corner/grey/diagonal,
/turf/simulated/floor/tiled/old_white,
/area/maintenance/medbay)
+"skc" = (
+/obj/structure/table/steel,
+/obj/item/paper_scanner,
+/turf/simulated/floor/carpet/rubber,
+/area/rnd/misc_lab)
"slK" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/window/eastleft{
@@ -67795,6 +67839,9 @@
pixel_x = 3;
pixel_y = 4
},
+/obj/item/paper_scanner{
+ pixel_x = -4
+ },
/turf/simulated/floor/carpet,
/area/lawoffice)
"wzO" = (
@@ -91271,7 +91318,7 @@ btK
buR
bDu
bxc
-byE
+skc
hwh
byE
bCD
diff --git a/maps/aurora/aurora-5_interstitial.dmm b/maps/aurora/aurora-5_interstitial.dmm
index 1092ab48c23..488f871218b 100644
--- a/maps/aurora/aurora-5_interstitial.dmm
+++ b/maps/aurora/aurora-5_interstitial.dmm
@@ -196,8 +196,8 @@
/area/maintenance/interstitial_main)
"ax" = (
/obj/effect/floor_decal/corner/yellow/full{
- icon_state = "corner_white_full";
- dir = 1
+ dir = 1;
+ icon_state = "corner_white_full"
},
/obj/machinery/light{
dir = 4;
@@ -267,8 +267,8 @@
icon_state = "tube1"
},
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 6
+ dir = 6;
+ icon_state = "corner_white"
},
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
@@ -281,8 +281,8 @@
"aK" = (
/obj/machinery/door/firedoor,
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 6
+ dir = 6;
+ icon_state = "corner_white"
},
/obj/machinery/light{
dir = 4;
@@ -293,8 +293,8 @@
/area/maintenance/interstitial_main)
"aL" = (
/obj/effect/floor_decal/corner/yellow/full{
- icon_state = "corner_white_full";
- dir = 8
+ dir = 8;
+ icon_state = "corner_white_full"
},
/obj/structure/sign/vacuum{
pixel_x = -32
@@ -303,8 +303,8 @@
/area/maintenance/interstitial_main)
"aM" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 5
+ dir = 5;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
@@ -315,8 +315,8 @@
icon_state = "4-8"
},
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 5
+ dir = 5;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
@@ -375,8 +375,8 @@
/area/maintenance/interstitial_main)
"aW" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 10
+ dir = 10;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
@@ -551,15 +551,15 @@
},
/obj/machinery/door/window/eastright,
/obj/effect/floor_decal/corner/yellow/full{
- icon_state = "corner_white_full";
- dir = 8
+ dir = 8;
+ icon_state = "corner_white_full"
},
/turf/simulated/floor/tiled,
/area/maintenance/bridge_elevator)
"bm" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 1
+ dir = 1;
+ icon_state = "corner_white"
},
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 10
@@ -595,8 +595,8 @@
/area/maintenance/bridge_elevator)
"bq" = (
/obj/effect/floor_decal/corner/yellow/full{
- icon_state = "corner_white_full";
- dir = 1
+ dir = 1;
+ icon_state = "corner_white_full"
},
/obj/machinery/alarm{
dir = 8;
@@ -660,8 +660,8 @@
},
/obj/machinery/door/window/eastright,
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 9
+ dir = 9;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/bridge_elevator)
@@ -689,8 +689,8 @@
/area/maintenance/bridge_elevator)
"bA" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 6
+ dir = 6;
+ icon_state = "corner_white"
},
/obj/structure/cable/green{
d1 = 2;
@@ -817,8 +817,8 @@
/area/maintenance/bridge_elevator)
"bJ" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 8
+ dir = 8;
+ icon_state = "corner_white"
},
/obj/machinery/light,
/obj/machinery/atmospherics/pipe/simple/hidden{
@@ -833,8 +833,8 @@
/area/maintenance/bridge_elevator)
"bL" = (
/obj/effect/floor_decal/corner/yellow/full{
- icon_state = "corner_white_full";
- dir = 4
+ dir = 4;
+ icon_state = "corner_white_full"
},
/obj/structure/cable/green,
/obj/machinery/power/apc{
@@ -1548,8 +1548,8 @@
dir = 9
},
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/turf/simulated/floor/tiled,
/area/security/training)
@@ -1717,8 +1717,8 @@
icon_state = "1-2"
},
/obj/structure/disposalpipe/junction{
- icon_state = "pipe-j2";
- dir = 2
+ dir = 2;
+ icon_state = "pipe-j2"
},
/turf/simulated/floor/tiled,
/area/security/training)
@@ -2065,6 +2065,9 @@
"eG" = (
/obj/structure/table/wood,
/obj/item/device/flashlight/lamp/green,
+/obj/item/paper_scanner{
+ pixel_x = 6
+ },
/turf/simulated/floor/carpet,
/area/security/detectives_office)
"eH" = (
@@ -2203,8 +2206,8 @@
},
/obj/machinery/firealarm/west,
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/turf/simulated/floor/tiled,
/area/security/training)
@@ -2363,8 +2366,8 @@
"fr" = (
/obj/machinery/photocopier,
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/turf/simulated/floor/lino/grey,
/area/security/detectives_office)
@@ -2513,8 +2516,8 @@
/area/security/detectives_office)
"fH" = (
/turf/simulated/floor/tiled/ramp/bottom{
- tag = "icon-rampbot (NORTH)";
- dir = 1
+ dir = 1;
+ tag = "icon-rampbot (NORTH)"
},
/area/security/detectives_office)
"fI" = (
@@ -2525,8 +2528,8 @@
/obj/structure/table/wood,
/obj/item/device/camera_film,
/obj/item/device/camera{
- name = "detectives camera";
desc = "A one use - polaroid camera. 30 photos left.";
+ name = "detectives camera";
pictures_left = 30
},
/turf/simulated/floor/lino/grey,
@@ -2600,8 +2603,8 @@
/area/security/forensics_office)
"fQ" = (
/obj/structure/disposalpipe/segment{
- icon_state = "conpipe-c";
- dir = 4
+ dir = 4;
+ icon_state = "conpipe-c"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 1
@@ -2651,8 +2654,8 @@
/obj/structure/table/wood,
/obj/item/device/flashlight/lamp/green,
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/turf/simulated/floor/wood,
/area/security/training)
@@ -2665,6 +2668,9 @@
/obj/structure/table/wood,
/obj/item/paper_bin,
/obj/item/pen,
+/obj/item/paper_scanner{
+ pixel_x = -6
+ },
/turf/simulated/floor/wood,
/area/security/training)
"fZ" = (
@@ -2898,8 +2904,8 @@
dir = 9
},
/obj/structure/disposalpipe/junction{
- icon_state = "pipe-j2";
- dir = 2
+ dir = 2;
+ icon_state = "pipe-j2"
},
/obj/structure/cable/green{
d1 = 1;
@@ -3097,8 +3103,8 @@
dir = 4
},
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/turf/simulated/floor/tiled,
/area/security/training)
@@ -3145,8 +3151,8 @@
/area/maintenance/security_interstitial)
"gN" = (
/obj/structure/disposalpipe/segment{
- icon_state = "conpipe-c";
- dir = 4
+ dir = 4;
+ icon_state = "conpipe-c"
},
/obj/structure/cable/green{
d1 = 2;
@@ -3385,8 +3391,8 @@
dir = 6
},
/obj/structure/disposalpipe/segment{
- icon_state = "conpipe-c";
- dir = 4
+ dir = 4;
+ icon_state = "conpipe-c"
},
/obj/structure/cable/green{
d1 = 1;
@@ -3542,8 +3548,8 @@
dir = 4
},
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/turf/simulated/floor/tiled/dark,
/area/security/training)
@@ -3609,8 +3615,8 @@
desc = "Avery Bennett Memorial Hall
The 5th and final victim of the Odin Killer. He was slain by the Odin Killer for his brave, personal investigation on the killings. Studying to become a detective at the time of his death, he was posthumously granted the title.
November 2428 - June 2460"
},
/obj/structure/disposalpipe/junction{
- icon_state = "pipe-j2";
- dir = 4
+ dir = 4;
+ icon_state = "pipe-j2"
},
/turf/simulated/floor/tiled,
/area/security/training)
@@ -3700,8 +3706,8 @@
/obj/structure/table/steel,
/obj/structure/metronome,
/obj/machinery/light/small/red{
- tag = "icon-bulb1 (NORTH)";
- dir = 1
+ dir = 1;
+ tag = "icon-bulb1 (NORTH)"
},
/turf/simulated/floor/reinforced,
/area/medical/psych)
@@ -4141,8 +4147,8 @@
},
/obj/machinery/porta_turret/stationary,
/obj/machinery/light/colored/blue{
- tag = "icon-tube_empty (WEST)";
- dir = 8
+ dir = 8;
+ tag = "icon-tube_empty (WEST)"
},
/turf/simulated/floor/plating,
/area/bridge/selfdestruct)
@@ -4152,8 +4158,8 @@
},
/obj/machinery/porta_turret/stationary,
/obj/machinery/light/colored/blue{
- tag = "icon-tube_empty (EAST)";
- dir = 4
+ dir = 4;
+ tag = "icon-tube_empty (EAST)"
},
/turf/simulated/floor/plating,
/area/bridge/selfdestruct)
@@ -4552,8 +4558,8 @@
dir = 9
},
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/turf/simulated/floor/tiled,
/area/security/range)
@@ -4604,8 +4610,8 @@
/area/security/investigations)
"jF" = (
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/turf/simulated/open,
/area/security/training)
@@ -4863,9 +4869,9 @@
/area/medical/psych)
"kb" = (
/obj/machinery/chakraconsole{
- tag = "icon-body_scannerconsole (EAST)";
+ dir = 4;
icon_state = "body_scannerconsole";
- dir = 4
+ tag = "icon-body_scannerconsole (EAST)"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/effect/floor_decal/corner/green/diagonal,
@@ -5063,8 +5069,8 @@
/area/medical/psych)
"ks" = (
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/obj/effect/floor_decal/corner_wide/green{
dir = 9
@@ -5242,8 +5248,8 @@
dir = 4
},
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/obj/item/device/radio/intercom{
dir = 4;
@@ -5388,8 +5394,8 @@
/area/medical/psych)
"kZ" = (
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/obj/machinery/firealarm/west,
/obj/machinery/ringer{
@@ -5782,8 +5788,8 @@
/area/medical/psych)
"lL" = (
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/obj/effect/floor_decal/corner_wide/green/full,
/turf/simulated/floor/tiled/white,
@@ -5948,8 +5954,8 @@
/area/mine/unexplored)
"mh" = (
/obj/effect/floor_decal/industrial/warning/dust{
- tag = "icon-warning_dust (SOUTHWEST)";
- dir = 10
+ dir = 10;
+ tag = "icon-warning_dust (SOUTHWEST)"
},
/turf/simulated/floor/airless{
icon_state = "asteroidplating"
@@ -7276,8 +7282,8 @@
/area/maintenance/elevator)
"tm" = (
/obj/effect/floor_decal/industrial/warning/dust{
- tag = "icon-warning_dust (SOUTHWEST)";
- dir = 10
+ dir = 10;
+ tag = "icon-warning_dust (SOUTHWEST)"
},
/obj/effect/floor_decal/industrial/warning/dust/corner{
dir = 4
@@ -7622,8 +7628,8 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 9
+ dir = 9;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
@@ -8003,8 +8009,8 @@
pixel_y = 24
},
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 5
+ dir = 5;
+ icon_state = "corner_white"
},
/obj/structure/cable/green{
d2 = 2;
@@ -8347,8 +8353,8 @@
icon_state = "4-8"
},
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 4
+ dir = 4;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
@@ -8926,8 +8932,8 @@
/area/quartermaster/storage)
"En" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 9
+ dir = 9;
+ icon_state = "corner_white"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled,
@@ -9202,8 +9208,8 @@
/area/mine/unexplored)
"FP" = (
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/obj/effect/floor_decal/corner_wide/green{
dir = 9
@@ -9298,8 +9304,8 @@
/area/mine/unexplored)
"Gv" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 10
+ dir = 10;
+ icon_state = "corner_white"
},
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
@@ -9312,8 +9318,8 @@
/area/maintenance/interstitial_construction_site/office)
"Gz" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 10
+ dir = 10;
+ icon_state = "corner_white"
},
/obj/structure/cable{
d1 = 1;
@@ -9587,8 +9593,8 @@
icon_state = "2-4"
},
/obj/structure/disposalpipe/segment{
- icon_state = "conpipe-c";
- dir = 4
+ dir = 4;
+ icon_state = "conpipe-c"
},
/turf/simulated/floor/plating,
/area/maintenance/medbay_interstitial)
@@ -9763,8 +9769,8 @@
/area/quartermaster/storage)
"IP" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 9
+ dir = 9;
+ icon_state = "corner_white"
},
/obj/structure/sign/vacuum{
pixel_x = -32
@@ -9794,8 +9800,8 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/firedoor,
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 9
+ dir = 9;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
@@ -9920,8 +9926,8 @@
icon_state = "tube1"
},
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 6
+ dir = 6;
+ icon_state = "corner_white"
},
/obj/structure/extinguisher_cabinet{
pixel_x = 28
@@ -9962,8 +9968,8 @@
icon_state = "4-8"
},
/obj/effect/floor_decal/corner/yellow/full{
- icon_state = "corner_white_full";
- dir = 4
+ dir = 4;
+ icon_state = "corner_white_full"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
@@ -10297,8 +10303,8 @@
/area/maintenance/interstitial_cargo)
"Kj" = (
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/obj/effect/floor_decal/corner/grey/diagonal,
/turf/simulated/floor/tiled,
@@ -10498,8 +10504,8 @@
/area/medical/upperlevel)
"Lr" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 5
+ dir = 5;
+ icon_state = "corner_white"
},
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/tiled,
@@ -10603,8 +10609,8 @@
icon_state = "12-0"
},
/obj/structure/cable{
- icon_state = "0-4";
- d2 = 4
+ d2 = 4;
+ icon_state = "0-4"
},
/turf/simulated/floor/plating{
roof_type = null
@@ -10618,8 +10624,8 @@
icon_state = "1-8"
},
/obj/structure/disposalpipe/junction{
- icon_state = "pipe-j2";
- dir = 4
+ dir = 4;
+ icon_state = "pipe-j2"
},
/turf/simulated/floor/plating,
/area/maintenance/interstitial_cargo)
@@ -10798,8 +10804,8 @@
/area/maintenance/engineering_ladder)
"Mv" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 6
+ dir = 6;
+ icon_state = "corner_white"
},
/obj/machinery/alarm{
dir = 8;
@@ -11034,8 +11040,8 @@
/area/maintenance/interstitial_cargo)
"NJ" = (
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 6
+ dir = 6;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
@@ -11161,8 +11167,8 @@
icon_state = "1-4"
},
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 1
+ dir = 1;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
@@ -11245,6 +11251,7 @@
},
/obj/structure/table/standard,
/obj/effect/floor_decal/corner/paleblue/diagonal,
+/obj/item/paper_scanner,
/turf/simulated/floor/tiled/white,
/area/security/forensics_office)
"Pm" = (
@@ -11254,8 +11261,8 @@
icon_state = "4-8"
},
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 10
+ dir = 10;
+ icon_state = "corner_white"
},
/obj/machinery/alarm{
dir = 1;
@@ -11613,8 +11620,8 @@
/area/medical/upperlevel)
"QN" = (
/obj/effect/floor_decal/corner/yellow/full{
- icon_state = "corner_white_full";
- dir = 8
+ dir = 8;
+ icon_state = "corner_white_full"
},
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/tiled,
@@ -12055,8 +12062,8 @@
/area/security/forensics_office)
"Ts" = (
/obj/machinery/light{
- icon_state = "tube1";
- dir = 8
+ dir = 8;
+ icon_state = "tube1"
},
/obj/machinery/atmospherics/unary/vent_pump/on,
/obj/effect/floor_decal/corner/pink/full{
@@ -12270,8 +12277,8 @@
/area/quartermaster/storage)
"UA" = (
/obj/effect/floor_decal/industrial/warning/dust{
- tag = "icon-warning_dust (SOUTHWEST)";
- dir = 10
+ dir = 10;
+ tag = "icon-warning_dust (SOUTHWEST)"
},
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/airless{
@@ -12437,8 +12444,8 @@
/obj/machinery/ringer{
department = "Cargo";
id = "cargo_ringer";
- req_access = list(31);
- pixel_x = 30
+ pixel_x = 30;
+ req_access = list(31)
},
/obj/structure/lattice/catwalk/indoor,
/turf/simulated/open,
@@ -12574,8 +12581,8 @@
icon_state = "2-8"
},
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 5
+ dir = 5;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)
@@ -12739,8 +12746,8 @@
icon_state = "2-4"
},
/obj/effect/floor_decal/corner/yellow/full{
- icon_state = "corner_white_full";
- dir = 1
+ dir = 1;
+ icon_state = "corner_white_full"
},
/obj/structure/cable/green{
d1 = 1;
@@ -12847,8 +12854,8 @@
icon_state = "4-8"
},
/obj/effect/floor_decal/corner/yellow{
- icon_state = "corner_white";
- dir = 10
+ dir = 10;
+ icon_state = "corner_white"
},
/turf/simulated/floor/tiled,
/area/maintenance/interstitial_main)