diff --git a/aurorastation.dme b/aurorastation.dme index 488a3715f35..489a393a944 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -816,7 +816,6 @@ #include "code\game\machinery\spaceheater.dm" #include "code\game\machinery\stargazer.dm" #include "code\game\machinery\stasis_bed.dm" -#include "code\game\machinery\station_holomap.dm" #include "code\game\machinery\status_display.dm" #include "code\game\machinery\status_display_ai.dm" #include "code\game\machinery\status_display_snowflakes.dm" @@ -2645,7 +2644,11 @@ #include "code\modules\modular_computers\file_system\program_events.dm" #include "code\modules\modular_computers\file_system\script.dm" #include "code\modules\modular_computers\file_system\programs\_program.dm" -#include "code\modules\modular_computers\file_system\programs\app_presets.dm" +#include "code\modules\modular_computers\file_system\programs\app_presets_.dm" +#include "code\modules\modular_computers\file_system\programs\app_presets_antag.dm" +#include "code\modules\modular_computers\file_system\programs\app_presets_crew.dm" +#include "code\modules\modular_computers\file_system\programs\app_presets_equipment.dm" +#include "code\modules\modular_computers\file_system\programs\app_presets_third_party.dm" #include "code\modules\modular_computers\file_system\programs\antagonist\hacked_camera.dm" #include "code\modules\modular_computers\file_system\programs\civilian\cargo_control.dm" #include "code\modules\modular_computers\file_system\programs\civilian\cargo_delivery.dm" @@ -2666,6 +2669,7 @@ #include "code\modules\modular_computers\file_system\programs\games\arcade.dm" #include "code\modules\modular_computers\file_system\programs\generic\lawmanager.dm" #include "code\modules\modular_computers\file_system\programs\generic\manifest.dm" +#include "code\modules\modular_computers\file_system\programs\generic\map.dm" #include "code\modules\modular_computers\file_system\programs\generic\news_browser.dm" #include "code\modules\modular_computers\file_system\programs\generic\ntnrc_client.dm" #include "code\modules\modular_computers\file_system\programs\generic\records.dm" diff --git a/code/__defines/minimap.dm b/code/__defines/minimap.dm index 99076da7397..74781d9b0bd 100644 --- a/code/__defines/minimap.dm +++ b/code/__defines/minimap.dm @@ -1,41 +1,23 @@ // -// Constants and standard colors for the holomap +// Constants and standard colors for the holomap/minimap // -#define HOLOMAP_ICON 'icons/480x480.dmi' // Icon file to start with when drawing holomaps (to get a 480x480 canvas). -#define HOLOMAP_ICON_SIZE 480 // Pixel width & height of the holomap icon. Used for auto-centering etc. -#define ui_holomap "CENTER-7, CENTER-7" // Screen location of the holomap "hud" - // Holomap colors -#define HOLOMAP_OBSTACLE "#FFFFFFDD" // Color of walls and barriers -#define HOLOMAP_PATH "#66666699" // Color of floors +#define HOLOMAP_OBSTACLE "#FFFFFF" // Color of walls and barriers +#define HOLOMAP_PATH "#666666" // Color of floors #define HOLOMAP_HOLOFIER "#79FF79" // Whole map is multiplied by this to give it a green holoish look -#define HOLOMAP_AREACOLOR_COMMAND "#386d8099" -#define HOLOMAP_AREACOLOR_SECURITY "#ae121299" -#define HOLOMAP_AREACOLOR_MEDICAL "#6f9e00c2" -#define HOLOMAP_AREACOLOR_SCIENCE "#A154A699" -#define HOLOMAP_AREACOLOR_ENGINEERING "#F1C23199" -#define HOLOMAP_AREACOLOR_OPERATIONS "#E06F0099" -#define HOLOMAP_AREACOLOR_HALLWAYS "#ffffffa5" -#define HOLOMAP_AREACOLOR_DOCK "#0000FFCC" +#define HOLOMAP_AREACOLOR_COMMAND "#386d80" +#define HOLOMAP_AREACOLOR_SECURITY "#ae1212" +#define HOLOMAP_AREACOLOR_MEDICAL "#6f9e00" +#define HOLOMAP_AREACOLOR_SCIENCE "#A154A6" +#define HOLOMAP_AREACOLOR_ENGINEERING "#F1C231" +#define HOLOMAP_AREACOLOR_OPERATIONS "#E06F00" +#define HOLOMAP_AREACOLOR_HALLWAYS "#ffffff" +#define HOLOMAP_AREACOLOR_DOCK "#0000FF" #define HOLOMAP_AREACOLOR_HANGAR "#777777" -#define HOLOMAP_AREACOLOR_CIVILIAN "#5bc1c199" +#define HOLOMAP_AREACOLOR_CIVILIAN "#5bc1c1" // If someone can come up with a non-conflicting color for the lifts, please update this. #define HOLOMAP_AREACOLOR_LIFTS null -// Handy defines to lookup the pixel offsets for this Z-level. Cache these if you use them in a loop tho. -// Commenting these out for now. Replace if we ever datumize our maps. -/*#define HOLOMAP_PIXEL_OFFSET_X(zLevel) ((using_map.holomap_offset_x.len >= zLevel) ? using_map.holomap_offset_x[zLevel] : 0) -#define HOLOMAP_PIXEL_OFFSET_Y(zLevel) ((using_map.holomap_offset_y.len >= zLevel) ? using_map.holomap_offset_y[zLevel] : 0) -#define HOLOMAP_LEGEND_X(zLevel) ((using_map.holomap_legend_x.len >= zLevel) ? using_map.holomap_legend_x[zLevel] : 96) -#define HOLOMAP_LEGEND_Y(zLevel) ((using_map.holomap_legend_y.len >= zLevel) ? using_map.holomap_legend_y[zLevel] : 96)*/ - -#define HOLOMAP_PIXEL_OFFSET_X(zlevel) ((HOLOMAP_ICON_SIZE - world.maxx) / 2) -#define HOLOMAP_PIXEL_OFFSET_Y(zlevel) ((HOLOMAP_ICON_SIZE - world.maxx) / 2) -#define HOLOMAP_LEGEND_X(zlevel) 96 -#define HOLOMAP_LEGEND_Y(zlevel) 96 -#define HOLOMAP_EXTRA_STATIONMAP "stationmapformatted" -#define HOLOMAP_EXTRA_STATIONMAPAREAS "stationareas" -#define HOLOMAP_EXTRA_STATIONMAPSMALL "stationmapsmall" diff --git a/code/__defines/subsystem-priority.dm b/code/__defines/subsystem-priority.dm index 76f7f784a19..a0a79ea0813 100644 --- a/code/__defines/subsystem-priority.dm +++ b/code/__defines/subsystem-priority.dm @@ -5,7 +5,6 @@ #define SS_INIT_JOBS 21 #define SS_INIT_MAPFINALIZE 20 // Asteroid generation. #define SS_INIT_PARALLAX 19 // Parallax image cache generation. Must run before ghosts are able to join. -#define SS_INIT_HOLOMAP 18 #define SS_INIT_ATOMS 17 // World initialization. Will trigger lighting updates. Observers can join after this loads. #define SS_INIT_ASSETS 16 // Assets subsystem setup. #define SS_INIT_POWER 15 // Initial powernet build. @@ -26,9 +25,10 @@ #define SS_INIT_LIGHTING 0 // Generation of lighting overlays and pre-bake. May cause openturf updates, should initialize before SSzcopy. #define SS_INIT_ZCOPY -1 // Z-mimic flush. Should run after SSoverlay & SSicon_smooth so it copies the smoothed sprites. #define SS_INIT_XENOARCH -2 // Xenoarch is this far below because it can infinite loop if placed in SS_INIT_MISC as it was before, due to some subsystems spawning stuff there. -#define SS_INIT_LOBBY -3 // Lobby timer starts here. The lobby timer won't actually start going down until the MC starts ticking, so you probably want this last -#define SS_INIT_PING -4 // Pinger for the clients -#define SS_INIT_CHAT -5 // To ensure chat remains smooth during init. +#define SS_INIT_HOLOMAP -3 // Minimap subsystem. Should be initialized after all maps, away sites, ships, planets, etc. +#define SS_INIT_LOBBY -4 // Lobby timer starts here. The lobby timer won't actually start going down until the MC starts ticking, so you probably want this last +#define SS_INIT_PING -5 // Pinger for the clients +#define SS_INIT_CHAT -6 // To ensure chat remains smooth during init. // Something to remember when setting priorities: SS_TICKER runs before Normal, which runs before SS_BACKGROUND. // Each group has its own priority bracket. diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 891d141adae..5ec29e359f2 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -1017,7 +1017,6 @@ var/list/wall_items = typecacheof(list( /obj/structure/mirror, /obj/structure/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment, - /obj/machinery/station_map, /obj/structure/sign )) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index da23341b8dd..e6b00d9b296 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -20,7 +20,6 @@ var/list/global_huds var/obj/screen/thermal var/obj/screen/meson var/obj/screen/science - var/obj/screen/holomap /datum/global_hud/proc/setup_overlay(var/icon_state, var/color) var/obj/screen/screen = new /obj/screen() @@ -64,18 +63,6 @@ var/list/global_huds meson = setup_overlay("scanline", "#9fd800") science = setup_overlay("scanline", "#d600d6") - // The holomap screen object is actually totally invisible. - // Station maps work by setting it as an images location before sending to client, not - // actually changing the icon or icon state of the screen object itself! - // Why do they work this way? I don't know really, that is how /vg/ designed them, but since they DO - // work this way, we can take advantage of their immutability by making them part of - // the global_hud (something we have and /vg/ doesn't) instead of an instance per mob. - holomap = new /obj/screen() - holomap.name = "holomap" - holomap.icon = null - holomap.screen_loc = ui_holomap - holomap.mouse_opacity = MOUSE_OPACITY_TRANSPARENT - var/obj/screen/O var/i //that nasty looking dither you get when you're short-sighted diff --git a/code/controllers/subsystems/initialization/holomap.dm b/code/controllers/subsystems/initialization/holomap.dm index e85617e718e..7e1849e3f5b 100644 --- a/code/controllers/subsystems/initialization/holomap.dm +++ b/code/controllers/subsystems/initialization/holomap.dm @@ -6,35 +6,39 @@ SUBSYSTEM_DEF(holomap) flags = SS_NO_FIRE init_order = SS_INIT_HOLOMAP - var/list/holo_minimaps = list() - var/list/extra_minimaps = list() - var/list/station_holomaps = list() + /// List of images of minimaps, for every z-level, initialized at round start. + /// This is the "base" minimap, shows only the physical structure of walls and paths, and respects `HIDE_FROM_HOLOMAP`. + /// Key of list is the `z` of the z-level, value is the `/icon/`. + /// Every image is 255x255px. + var/list/minimaps = list() -/datum/controller/subsystem/holomap/Initialize() - holo_minimaps.len = world.maxz - for (var/z in 1 to world.maxz) - holo_minimaps[z] = generateHoloMinimap(z) + /// Same as `minimaps`, but images are base64 encoded. + var/list/minimaps_base64 = list() - LOG_DEBUG("SSholomap: [holo_minimaps.len] maps.") - - for (var/z in current_map.station_levels) - generateStationMinimap(z) + /// Same as `minimaps_base64`, but the map is colored with `holomap_color` of the `/area/` + var/list/minimaps_area_colored_base64 = list() +/datum/controller/subsystem/holomap/Initialize() + generate_all_minimaps() + LOG_DEBUG("SSholomap: [minimaps.len] maps.") ..() +/datum/controller/subsystem/holomap/proc/generate_all_minimaps() + minimaps.len = world.maxz + minimaps_base64.len = world.maxz + minimaps_area_colored_base64.len = world.maxz -// Generates the "base" holomap for one z-level, showing only the physical structure of walls and paths. -/datum/controller/subsystem/holomap/proc/generateHoloMinimap(zlevel = 1) - // Save these values now to avoid a bazillion array lookups - var/offset_x = HOLOMAP_PIXEL_OFFSET_X(zlevel) - var/offset_y = HOLOMAP_PIXEL_OFFSET_Y(zlevel) + for (var/z in 1 to world.maxz) + generate_minimap(z) + generate_minimap_area_colored(z) +/datum/controller/subsystem/holomap/proc/generate_minimap(zlevel = 1) // Sanity checks - Better to generate a helpful error message now than have DrawBox() runtime - var/icon/canvas = icon(HOLOMAP_ICON, "blank") - if(world.maxx + offset_x > canvas.Width()) - CRASH("Minimap for z=[zlevel] : world.maxx ([world.maxx]) + holomap_offset_x ([offset_x]) must be <= [canvas.Width()]") - if(world.maxy + offset_y > canvas.Height()) - CRASH("Minimap for z=[zlevel] : world.maxy ([world.maxy]) + holomap_offset_y ([offset_y]) must be <= [canvas.Height()]") + var/icon/canvas = icon('icons/255x255.dmi', "blank") + if(world.maxx > canvas.Width()) + CRASH("Minimap for z=[zlevel] : world.maxx ([world.maxx]) must be <= [canvas.Width()]") + if(world.maxy > canvas.Height()) + CRASH("Minimap for z=[zlevel] : world.maxy ([world.maxy]) must be <= [canvas.Height()]") var/list/rock_tcache = typecacheof(list( /turf/simulated/mineral, @@ -64,25 +68,22 @@ SUBSYSTEM_DEF(holomap) if (rock_tcache[Ttype]) continue if (obstacle_tcache[Ttype] || (T.contents.len && locate(/obj/structure/grille, T))) - canvas.DrawBox(HOLOMAP_OBSTACLE, T.x + offset_x, T.y + offset_y) + canvas.DrawBox(HOLOMAP_OBSTACLE + "DD", T.x, T.y) else if(path_tcache[Ttype] || (T.contents.len && locate(/obj/structure/lattice/catwalk, T))) - canvas.DrawBox(HOLOMAP_PATH, T.x + offset_x, T.y + offset_y) + canvas.DrawBox(HOLOMAP_PATH + "DD", T.x, T.y) CHECK_TICK - return canvas - -/datum/controller/subsystem/holomap/proc/generateStationMinimap(zlevel) - // Save these values now to avoid a bazillion array lookups - var/offset_x = HOLOMAP_PIXEL_OFFSET_X(zlevel) - var/offset_y = HOLOMAP_PIXEL_OFFSET_Y(zlevel) + minimaps[zlevel] = canvas + minimaps_base64[zlevel] = icon2base64(canvas) +/datum/controller/subsystem/holomap/proc/generate_minimap_area_colored(zlevel) // Sanity checks - Better to generate a helpful error message now than have DrawBox() runtime - var/icon/canvas = icon(HOLOMAP_ICON, "blank") - if(world.maxx + offset_x > canvas.Width()) - crash_with("Minimap for z=[zlevel] : world.maxx ([world.maxx]) + holomap_offset_x ([offset_x]) must be <= [canvas.Width()]") - if(world.maxy + offset_y > canvas.Height()) - crash_with("Minimap for z=[zlevel] : world.maxy ([world.maxy]) + holomap_offset_y ([offset_y]) must be <= [canvas.Height()]") + var/icon/canvas = icon('icons/255x255.dmi', "blank") + if(world.maxx > canvas.Width()) + crash_with("Minimap for z=[zlevel] : world.maxx ([world.maxx]) must be <= [canvas.Width()]") + if(world.maxy > canvas.Height()) + crash_with("Minimap for z=[zlevel] : world.maxy ([world.maxy]) must be <= [canvas.Height()]") var/turf/T var/area/A @@ -90,30 +91,13 @@ SUBSYSTEM_DEF(holomap) T = thing A = T.loc if (A.holomap_color) - canvas.DrawBox(A.holomap_color, T.x + offset_x, T.y + offset_y) - - // Save this nice area-colored canvas in case we want to layer it or something I guess - extra_minimaps["[HOLOMAP_EXTRA_STATIONMAPAREAS]_[zlevel]"] = canvas + canvas.DrawBox(A.holomap_color + "99", T.x, T.y) - var/icon/map_base = icon(holo_minimaps[zlevel]) + var/icon/map_base = icon(minimaps[zlevel]) map_base.Blend(HOLOMAP_HOLOFIER, ICON_MULTIPLY) // Generate the full sized map by blending the base and areas onto the backdrop - var/icon/big_map = icon(HOLOMAP_ICON, "stationmap") + var/icon/big_map = icon('icons/255x255.dmi', "blank") big_map.Blend(map_base, ICON_OVERLAY) big_map.Blend(canvas, ICON_OVERLAY) - extra_minimaps["[HOLOMAP_EXTRA_STATIONMAP]_[zlevel]"] = big_map - - // Generate the "small" map (I presume for putting on wall map things?) - var/icon/small_map = icon(HOLOMAP_ICON, "blank") - small_map.Blend(map_base, ICON_OVERLAY) - small_map.Blend(canvas, ICON_OVERLAY) - small_map.Scale(WORLD_ICON_SIZE, WORLD_ICON_SIZE) - - // And rotate it in every direction of course! - var/icon/actual_small_map = icon(small_map) - actual_small_map.Insert(new_icon = small_map, dir = SOUTH) - actual_small_map.Insert(new_icon = turn(small_map, 90), dir = WEST) - actual_small_map.Insert(new_icon = turn(small_map, 180), dir = NORTH) - actual_small_map.Insert(new_icon = turn(small_map, 270), dir = EAST) - extra_minimaps["[HOLOMAP_EXTRA_STATIONMAPSMALL]_[zlevel]"] = actual_small_map + minimaps_area_colored_base64[zlevel] = icon2base64(big_map) diff --git a/code/controllers/subsystems/initialization/misc_early.dm b/code/controllers/subsystems/initialization/misc_early.dm index bc08873202e..e656af280cc 100644 --- a/code/controllers/subsystems/initialization/misc_early.dm +++ b/code/controllers/subsystems/initialization/misc_early.dm @@ -18,7 +18,6 @@ SUBSYSTEM_DEF(misc_early) global_hud.thermal, global_hud.meson, global_hud.science, - global_hud.holomap ) // Populate global list of tips by category diff --git a/code/game/machinery/station_holomap.dm b/code/game/machinery/station_holomap.dm deleted file mode 100644 index e61d99c0e3f..00000000000 --- a/code/game/machinery/station_holomap.dm +++ /dev/null @@ -1,245 +0,0 @@ -/obj/machinery/station_map - name = "holomap" - desc = "A virtual map of the surrounding area." - icon = 'icons/obj/machinery/stationmap.dmi' - icon_state = "station_map" - anchored = 1 - density = 0 - idle_power_usage = 10 - active_power_usage = 500 - - light_color = "#64C864" - light_power = 1 - light_range = 2 - gfi_layer_rotation = GFI_ROTATION_DEFDIR - - var/light_power_on = 1 - var/light_range_on = 2 - - layer = WINDOW_PANE_LAYER + 0.1 - - var/mob/watching_mob = null - var/image/small_station_map = null - var/image/floor_markings = null - var/image/panel = null - - var/original_zLevel = 1 // zLevel on which the station map was initialized. - var/bogus = TRUE // set to 0 when you initialize the station map on a zLevel that has its own icon formatted for use by station holomaps. - var/datum/station_holomap/holomap_datum - -/obj/machinery/station_map/Destroy() - SSholomap.station_holomaps -= src - stopWatching() - QDEL_NULL(holomap_datum) - return ..() - -/obj/machinery/station_map/Initialize() - . = ..() - init_map() - create_small_map() - add_floor_decal() - -/obj/machinery/station_map/proc/init_map() - holomap_datum = new() - original_zLevel = loc.z - SSholomap.station_holomaps += src - flags |= ON_BORDER // Why? It doesn't help if its not density - bogus = FALSE - var/turf/T = get_turf(src) - original_zLevel = T.z - if(!("[HOLOMAP_EXTRA_STATIONMAP]_[original_zLevel]" in SSholomap.extra_minimaps)) - bogus = TRUE - holomap_datum.initialize_holomap_bogus() - update_icon() - return - - holomap_datum.initialize_holomap(T, reinit = TRUE) - -/obj/machinery/station_map/proc/create_small_map() - small_station_map = image(SSholomap.extra_minimaps["[HOLOMAP_EXTRA_STATIONMAPSMALL]_[original_zLevel]"], dir = dir) - small_station_map.layer = EFFECTS_ABOVE_LIGHTING_LAYER - small_station_map.filters = filter(type = "drop_shadow", color = light_color + "F0", size = 1, offset = 1, x = 0, y = 0) - -/obj/machinery/station_map/proc/add_floor_decal() - floor_markings = image('icons/obj/machinery/stationmap.dmi', "decal_station_map") - floor_markings.dir = src.dir - floor_markings.layer = ON_TURF_LAYER - update_icon() - -/obj/machinery/station_map/attack_hand(var/mob/user) - if(watching_mob && (watching_mob != user)) - to_chat(user, "Someone else is currently watching the holomap.") - return - if(user.loc != loc) - to_chat(user, "You need to stand in front of \the [src].") - return - startWatching(user) - -// Let people bump up against it to watch -/obj/machinery/station_map/CollidedWith(var/atom/movable/AM) - if(!watching_mob && isliving(AM) && AM.loc == loc) - startWatching(AM) - -// In order to actually get CollidedWith() we need to block movement. We're (visually) on a wall, so people -// couldn't really walk into us anyway. But in reality we are on the turf in front of the wall, so bumping -// against where we seem is actually trying to *exit* our real loc -/obj/machinery/station_map/CheckExit(atom/movable/mover as mob|obj, turf/target as turf) - // LOG_DEBUG("[src] (dir=[dir]) CheckExit([mover], [target]) get_dir() = [get_dir(target, loc)]") - if(get_dir(target, loc) == dir) // Opposite of "normal" since we are visually in the next turf over - return FALSE - else - return TRUE - -/obj/machinery/station_map/proc/startWatching(var/mob/user) - if(isliving(user) && anchored && !(stat & (NOPOWER|BROKEN))) - if(user.client) - holomap_datum.station_map.loc = global_hud.holomap // Put the image on the holomap hud - holomap_datum.station_map.alpha = 0 // Set to transparent so we can fade in - animate(holomap_datum.station_map, alpha = 255, time = 5, easing = LINEAR_EASING) - flick("station_map_activate", src) - user.client.screen |= global_hud.holomap - user.client.images |= holomap_datum.station_map - - watching_mob = user - moved_event.register(watching_mob, src, PROC_REF(checkPosition)) - destroyed_event.register(watching_mob, src, PROC_REF(stopWatching)) - update_use_power(POWER_USE_ACTIVE) - - if(bogus) - to_chat(user, "The holomap failed to initialize. This area of space cannot be mapped.") - else - to_chat(user, "A hologram of the station appears before your eyes.") - -/obj/machinery/station_map/attack_ai(var/mob/living/silicon/robot/user) - return // TODO - Implement for AI ~Leshana - // user.station_holomap.toggleHolomap(user, isAI(user)) - -/obj/machinery/station_map/process() - if((stat & (NOPOWER|BROKEN)) || !anchored) - stopWatching() - -/obj/machinery/station_map/proc/checkPosition() - if(!watching_mob || (watching_mob.loc != loc) || (dir != watching_mob.dir)) - stopWatching() - -/obj/machinery/station_map/proc/stopWatching() - if(watching_mob) - if(watching_mob.client) - animate(holomap_datum.station_map, alpha = 0, time = 5, easing = LINEAR_EASING) - var/mob/M = watching_mob - addtimer(CALLBACK(src, PROC_REF(clear_image), M, holomap_datum.station_map), 5, TIMER_CLIENT_TIME)//we give it time to fade out - moved_event.unregister(watching_mob, src) - destroyed_event.unregister(watching_mob, src) - watching_mob = null - update_use_power(POWER_USE_IDLE) - -/obj/machinery/station_map/proc/clear_image(mob/M, image/I) - if (M.client) - M.client.images -= I - -/obj/machinery/station_map/power_change() - . = ..() - update_icon() - if(stat & NOPOWER) // Maybe port /vg/'s autolights? Done manually for now. - set_light(0) - else - set_light(light_range_on, light_power_on) - -/obj/machinery/station_map/proc/set_broken() - stat |= BROKEN - update_icon() - -/obj/machinery/station_map/update_icon() - cut_overlays() - if(stat & BROKEN) - icon_state = "station_mapb" - else if((stat & NOPOWER) || !anchored) - icon_state = "station_map0" - else - icon_state = "station_map" - - if(bogus) - holomap_datum.initialize_holomap_bogus() - else - small_station_map.icon = SSholomap.extra_minimaps["[HOLOMAP_EXTRA_STATIONMAPSMALL]_[original_zLevel]"] - add_overlay(small_station_map) - holomap_datum.initialize_holomap(get_turf(src)) - - // Put the little "map" overlay down where it looks nice - if(floor_markings) - floor_markings.dir = src.dir - floor_markings.pixel_x = -src.pixel_x - floor_markings.pixel_y = -src.pixel_y - add_overlay(floor_markings) - - if(panel_open) - add_overlay("station_map-panel") - else - cut_overlay("station_map-panel") - -/obj/machinery/station_map/ex_act(severity) - switch(severity) - if(1) - qdel(src) - if(2) - if (prob(50)) - qdel(src) - else - set_broken() - if(3) - if (prob(25)) - set_broken() - -// TODO: Make these constructable. - -/obj/machinery/station_map/mobile - use_power = POWER_USE_OFF - idle_power_usage = 0 - active_power_usage = 0 - -/obj/machinery/station_map/mobile/Initialize() - SHOULD_CALL_PARENT(FALSE) - init_map() - - initialized = TRUE - return INITIALIZE_HINT_NORMAL - -/obj/machinery/station_map/mobile/startWatching(var/mob/user) - if(!user) - return - - create_small_map() - if(!watching_mob && isliving(user)) - ..() - -// Simple datum to keep track of a running holomap. Each machine capable of displaying the holomap will have one. -/datum/station_holomap - var/image/station_map - var/image/cursor - var/image/legend - -/datum/station_holomap/proc/initialize_holomap(turf/T, isAI = null, mob/user = null, reinit = FALSE) - if(!station_map || reinit) - station_map = image(SSholomap.extra_minimaps["[HOLOMAP_EXTRA_STATIONMAP]_[T.z]"]) - if(!cursor || reinit) - cursor = image('icons/misc/holomap_markers.dmi', "you") - if(!legend || reinit) - legend = image('icons/effects/64x64.dmi', "legend") - - if(isAI) - T = get_turf(user.client.eye) - cursor.pixel_x = (T.x - 6 + HOLOMAP_PIXEL_OFFSET_X(T.z)) * PIXEL_MULTIPLIER - cursor.pixel_y = (T.y - 6 + HOLOMAP_PIXEL_OFFSET_Y(T.z)) * PIXEL_MULTIPLIER - - legend.pixel_x = HOLOMAP_LEGEND_X(T.z) - legend.pixel_y = HOLOMAP_LEGEND_Y(T.z) - - station_map.add_overlay(cursor) - station_map.add_overlay(legend) - -/datum/station_holomap/proc/initialize_holomap_bogus() - station_map = image('icons/480x480.dmi', "stationmap") - legend = image('icons/effects/64x64.dmi', "notfound") - legend.pixel_x = 7 * WORLD_ICON_SIZE - legend.pixel_y = 7 * WORLD_ICON_SIZE - station_map.add_overlay(legend) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 634546d1e7e..2151bc8aabe 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -507,22 +507,6 @@ to_chat(src, SPAN_NOTICE("You [C.toggled ? "disable" : "enable"] [C.name].")) C.toggled = !C.toggled -/mob/living/silicon/robot/verb/view_holomap() - set category = "Robot Commands" - set name = "View Holomap" - set desc = "View a virtual map of the surrounding area." - - var/obj/machinery/station_map/mobile/holo_map_object - if(src.holo_map) - holo_map_object = src.holo_map.resolve() - - // Not an else because weakref.resolve() can return false. Edge case - if(!holo_map_object) - holo_map_object = new(src) - src.holo_map = WEAKREF(holo_map) - - holo_map_object.startWatching(src) - /mob/living/silicon/robot/verb/rebuild_overlays() set category = "Robot Commands" set name = "Rebuild Overlays" diff --git a/code/modules/modular_computers/file_system/programs/app_presets.dm b/code/modules/modular_computers/file_system/programs/app_presets.dm deleted file mode 100644 index 129a07efe87..00000000000 --- a/code/modules/modular_computers/file_system/programs/app_presets.dm +++ /dev/null @@ -1,685 +0,0 @@ -/datum/modular_computer_app_presets - var/name = "default_preset" - var/display_name = "default preset" - var/description = "Description of the preset." - var/available = FALSE - -/datum/modular_computer_app_presets/proc/return_install_programs(var/obj/item/modular_computer/comp) - return list() - -/datum/modular_computer_app_presets/all - name = "all" - display_name = "All Programs" - description = "Contains all programs." - available = FALSE - -/datum/modular_computer_app_presets/all/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list() - for(var/F in typesof(/datum/computer_file/program)) - var/datum/computer_file/program/prog = new F(comp) - _prg_list += prog - return _prg_list - -/datum/modular_computer_app_presets/engineering - name = "engineering" - display_name = "Engineering" - description = "Contains the most common engineering programs." - available = TRUE - -/datum/modular_computer_app_presets/engineering/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/power_monitor(comp), - new /datum/computer_file/program/alarm_monitor/engineering(comp), - new /datum/computer_file/program/atmos_control(comp), - new /datum/computer_file/program/rcon_console(comp), - new /datum/computer_file/program/camera_monitor(comp), - new /datum/computer_file/program/lighting_control(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/engineering/atmos - name = "atmos" - display_name = "Engineering - Atmospherics" - description = "Contains the most common engineering programs and atmospheric monitoring software." - available = TRUE - -/datum/modular_computer_app_presets/engineering/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/power_monitor(comp), - new /datum/computer_file/program/alarm_monitor/engineering(comp), - new /datum/computer_file/program/atmos_control(comp), - new /datum/computer_file/program/rcon_console(comp), - new /datum/computer_file/program/camera_monitor(comp), - new /datum/computer_file/program/lighting_control(comp), - new /datum/computer_file/program/scanner/gas(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/engineering/ce - name = "engineering_head" - display_name = "Engineering - CE" - description = "Contains the most common engineering programs and command software." - available = FALSE - -/datum/modular_computer_app_presets/engineering/ce/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/comm(comp, FALSE), - new /datum/computer_file/program/power_monitor(comp), - new /datum/computer_file/program/alarm_monitor/engineering(comp), - new /datum/computer_file/program/atmos_control(comp), - new /datum/computer_file/program/rcon_console(comp), - new /datum/computer_file/program/camera_monitor(comp), - new /datum/computer_file/program/lighting_control(comp), - new /datum/computer_file/program/records/employment(comp), - new /datum/computer_file/program/scanner/gas(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/medical - name = "medical" - display_name = "Medical" - description = "Contains the most common medical programs." - available = TRUE - -/datum/modular_computer_app_presets/medical/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/suit_sensors(comp), - new /datum/computer_file/program/records/medical(comp), - new /datum/computer_file/program/chemistry_codex(comp), - new /datum/computer_file/program/scanner/medical(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/medical/cmo - name = "medical_head" - display_name = "Medical - CMO" - description = "Contains the most common medical programs and command software." - available = FALSE - -/datum/modular_computer_app_presets/medical/cmo/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/comm(comp, FALSE), - new /datum/computer_file/program/suit_sensors(comp), - new /datum/computer_file/program/records/employment(comp), - new /datum/computer_file/program/records/medical(comp), - new /datum/computer_file/program/chemistry_codex(comp), - new /datum/computer_file/program/scanner/medical(comp), - new /datum/computer_file/program/scanner/science(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/research - name = "research" - display_name = "Research" - description = "Contains the most common research programs." - available = TRUE - -/datum/modular_computer_app_presets/research/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/ntnetmonitor(comp), - new /datum/computer_file/program/aidiag(comp), - new /datum/computer_file/program/chemistry_codex(comp), - new /datum/computer_file/program/scanner/science(comp), - new /datum/computer_file/program/scanner/gas(comp), - new /datum/computer_file/program/away_manifest(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/research/rd - name = "research_head" - display_name = "Research - RD" - description = "Contains the most common research programs and command software." - available = FALSE - -/datum/modular_computer_app_presets/research/rd/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/comm(comp, FALSE), - new /datum/computer_file/program/ntnetmonitor(comp), - new /datum/computer_file/program/records/employment(comp), - new /datum/computer_file/program/chemistry_codex(comp), - new /datum/computer_file/program/scanner/science(comp), - new /datum/computer_file/program/away_manifest(comp), - new /datum/computer_file/program/scanner/gas(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/command - name = "command" - display_name = "Command" - description = "Contains the most common command programs." - available = TRUE - -/datum/modular_computer_app_presets/command/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/card_mod(comp), - new /datum/computer_file/program/comm(comp, TRUE), - new /datum/computer_file/program/docks(comp), - new /datum/computer_file/program/away_manifest(comp), - new /datum/computer_file/program/records/employment(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/command/teleporter - name = "command_teleporter" - display_name = "Command - Teleporter" - description = "Contains the most common command programs and has a special teleporter control program loaded." - available = FALSE - -/datum/modular_computer_app_presets/command/teleporter/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/comm(comp, FALSE), - new /datum/computer_file/program/records/employment(comp), - new /datum/computer_file/program/teleporter(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/command/teleporter/ninja - name = "ninja_teleporter" - display_name = "Offsite - Teleporter" - description = "Contains the most common command programs and has a special teleporter control program loaded." - available = FALSE - -/datum/modular_computer_app_presets/command/teleporter/ninja/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/comm(comp, FALSE), - new /datum/computer_file/program/records/employment(comp), - new /datum/computer_file/program/teleporter/ninja(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/command/hop - name = "command_hop" - display_name = "Command - HoP" - description = "Contains the most common command programs." - available = FALSE - -/datum/modular_computer_app_presets/command/hop/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/civilian/cargocontrol(comp), - new /datum/computer_file/program/card_mod(comp), - new /datum/computer_file/program/comm(comp, FALSE), - new /datum/computer_file/program/docks(comp), - new /datum/computer_file/program/away_manifest(comp), - new /datum/computer_file/program/records/employment(comp), - new /datum/computer_file/program/records/security(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/command/captain - name = "captain" - display_name = "Captain" - description = "Contains the most important programs for the Captain." - available = FALSE - -/datum/modular_computer_app_presets/command/captain/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/card_mod(comp), - new /datum/computer_file/program/comm(comp, TRUE), - new /datum/computer_file/program/docks(comp), - new /datum/computer_file/program/away_manifest(comp), - new /datum/computer_file/program/camera_monitor(comp), - new /datum/computer_file/program/digitalwarrant(comp), - new /datum/computer_file/program/penal_mechs(comp), - new /datum/computer_file/program/civilian/cargocontrol(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/alarm_monitor/all(comp), - new /datum/computer_file/program/records/employment(comp), - new /datum/computer_file/program/records/medical(comp), - new /datum/computer_file/program/records/security(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/command/account - name = "command_accounting" - display_name = "Command - Accounting" - description = "Contains all the programs you would need to become a god-tier accountant." - available = FALSE - -/datum/modular_computer_app_presets/command/account/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/civilian/cargocontrol(comp), - new /datum/computer_file/program/records/employment(comp), - new /datum/computer_file/program/account_db(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/command/account/centcomm/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/civilian/cargocontrol(comp), - new /datum/computer_file/program/records/employment(comp), - new /datum/computer_file/program/account_db(comp, TRUE) - ) - return _prg_list - -/datum/modular_computer_app_presets/security - name = "security" - display_name = "Security" - description = "Contains the most common security programs." - available = TRUE - -/datum/modular_computer_app_presets/security/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/alarm_monitor/security(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/camera_monitor(comp), - new /datum/computer_file/program/digitalwarrant(comp), - new /datum/computer_file/program/penal_mechs(comp), - new /datum/computer_file/program/records/security(comp), - new /datum/computer_file/program/guntracker(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/security/armory - name = "security_arm" - display_name = "Security - Armory" - description = "Contains the most common security and armory programs." - available = FALSE - -/datum/modular_computer_app_presets/security/armory/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/alarm_monitor/security(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/camera_monitor(comp), - new /datum/computer_file/program/comm(comp), - new /datum/computer_file/program/digitalwarrant(comp), - new /datum/computer_file/program/penal_mechs(comp), - new /datum/computer_file/program/records/security(comp), - new /datum/computer_file/program/guntracker(comp), - new /datum/computer_file/program/implant_tracker(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/security/investigations - name = "security_inv" - display_name = "Security - Investigations" - description = "Contains the most common security and forensics programs." - available = TRUE - -/datum/modular_computer_app_presets/security/investigations/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/alarm_monitor/security(comp), - new /datum/computer_file/program/camera_monitor(comp), - new /datum/computer_file/program/digitalwarrant(comp), - new /datum/computer_file/program/records/security(comp), - new /datum/computer_file/program/records/medical(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/security/hos - name = "security_head" - display_name = "Security - HoS" - description = "Contains the most common security programs and command software." - available = FALSE - -/datum/modular_computer_app_presets/security/hos/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/alarm_monitor/security(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/comm(comp, FALSE), - new /datum/computer_file/program/camera_monitor(comp), - new /datum/computer_file/program/digitalwarrant(comp), - new /datum/computer_file/program/penal_mechs(comp), - new /datum/computer_file/program/records/security(comp), - new /datum/computer_file/program/records/employment(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/civilian - name = "service" - display_name = "Service" - description = "Contains the most common service programs." - available = TRUE - -/datum/modular_computer_app_presets/civilian/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/game/arcade(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/civilian/janitor - name = "janitor" - display_name = "Janitor" - description = "Contains programs for janitorial service." - available = TRUE - -/datum/modular_computer_app_presets/civilian/janitor/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/civilian/janitor(comp), - new /datum/computer_file/program/game/arcade(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/supply - name = "supply" - display_name = "Supply" - description = "Contains the most common cargo programs." - available = TRUE - -/datum/modular_computer_app_presets/supply/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargocontrol(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/civilian/cargodelivery(comp), - new /datum/computer_file/program/away_manifest(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/supply/om - name = "operations manager" - display_name = "Operations Manager" - description = "Contains the most common cargo programs as well as the OM's ones." - available = FALSE - -/datum/modular_computer_app_presets/supply/om/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargocontrol(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/civilian/cargodelivery(comp), - new /datum/computer_file/program/comm(comp, FALSE), - new /datum/computer_file/program/docks(comp), - new /datum/computer_file/program/away_manifest(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/cargo_delivery - name = "cargo_delivery" - display_name = "Cargo Delivery" - description = "Contains the Delivery App." - available = FALSE - -/datum/modular_computer_app_presets/cargo_delivery/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargodelivery(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/supply/machinist - name = "operations_machinist" - display_name = "Operations - Machinist" - description = "Contains the most common supply programs and medical record software." - available = TRUE - -/datum/modular_computer_app_presets/supply/machinist/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/aidiag(comp), - new /datum/computer_file/program/records/medical(comp), - new /datum/computer_file/program/scanner/science(comp), - new /datum/computer_file/program/scanner/gas(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/representative - name = "representative" - display_name = "Representative" - description = "Contains software intended for representatives." - available = FALSE - -/datum/modular_computer_app_presets/representative/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/records/employment(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/wall_generic - name = "wallgeneric" - display_name = "Wall - Generic" - description = "A generic preset for the wall console." - available = FALSE - -/datum/modular_computer_app_presets/wall_generic/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/civilian/cargoorder(comp), - new /datum/computer_file/program/camera_monitor(comp), - new /datum/computer_file/program/alarm_monitor/engineering(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/merc - name = "merc" - display_name = "Mercenary" - description = "Preset for the Merc Console." - available = FALSE - -/datum/modular_computer_app_presets/merc/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/camera_monitor/hacked(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/ert - name = "ert" - display_name = "EmergencyResposeTeam" - description = "Preset for the ERT Console." - available = FALSE - -/datum/modular_computer_app_presets/ert/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/ntnetdownload(comp), - new /datum/computer_file/program/camera_monitor/hacked(comp), - new /datum/computer_file/program/comm(comp, FALSE), - new /datum/computer_file/program/suit_sensors(comp), - new /datum/computer_file/program/alarm_monitor/all(comp), - new /datum/computer_file/program/lighting_control(comp), - new /datum/computer_file/program/aidiag(comp), - new /datum/computer_file/program/records(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/trashcompactor - name = "trashcompactor" - display_name = "Trash Compactor" - description = "A preset for the Trash Compactor Wall Console." - available = FALSE - -/datum/modular_computer_app_presets/trashcompactor/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/crushercontrol(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/merchant - name = "merchant" - display_name = "Merchant" - description = "A preset for the merchant console." - available = FALSE - -/datum/modular_computer_app_presets/merchant/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/merchant(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/merchant/nka/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/merchant/nka(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/merchant/guild/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/merchant/guild(comp) - ) - return _prg_list - - -/datum/modular_computer_app_presets/merchant/golden_deep/return_install_programs(obj/item/modular_computer/comp) - var/list/_prg_list = list( - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/chat_client(comp), - new /datum/computer_file/program/merchant/golden_deep(comp) - ) - return _prg_list - -/datum/modular_computer_app_presets/ai - name = "ai" - display_name = "AI" - description = "A preset for the AI consoles." - available = FALSE - -/datum/modular_computer_app_presets/ai/return_install_programs(obj/item/modular_computer/comp) - return list( - new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/ntnetdownload(comp) - ) diff --git a/code/modules/modular_computers/file_system/programs/app_presets_.dm b/code/modules/modular_computers/file_system/programs/app_presets_.dm new file mode 100644 index 00000000000..a05754061d9 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/app_presets_.dm @@ -0,0 +1,68 @@ +/datum/modular_computer_app_presets + var/name = "default_preset" + var/display_name = "default preset" + var/description = "Description of the preset." + var/available = FALSE + +/datum/modular_computer_app_presets/proc/return_install_programs(var/obj/item/modular_computer/comp) + return list() + +/datum/modular_computer_app_presets/all + name = "all" + display_name = "All Programs" + description = "Contains all programs." + available = FALSE + +/datum/modular_computer_app_presets/all/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list() + for(var/F in typesof(/datum/computer_file/program)) + var/datum/computer_file/program/prog = new F(comp) + _prg_list += prog + return flatten_list(_prg_list) + +#define COMPUTER_APP_PRESET_SYSTEM list(\ + new /datum/computer_file/program/ntnetdownload(comp),\ + new /datum/computer_file/program/filemanager(comp),\ +) + +#define COMPUTER_APP_PRESET_HORIZON_CIVILIAN list(\ + new /datum/computer_file/program/newsbrowser(comp),\ + new /datum/computer_file/program/manifest(comp),\ + new /datum/computer_file/program/chat_client(comp),\ + new /datum/computer_file/program/civilian/cargoorder(comp),\ + new /datum/computer_file/program/map(comp),\ +) + +#define COMPUTER_APP_PRESET_HORIZON_ENGINEERING list(\ + new /datum/computer_file/program/power_monitor(comp),\ + new /datum/computer_file/program/alarm_monitor/engineering(comp),\ + new /datum/computer_file/program/atmos_control(comp),\ + new /datum/computer_file/program/rcon_console(comp),\ + new /datum/computer_file/program/camera_monitor(comp),\ + new /datum/computer_file/program/lighting_control(comp)\ +) + +#define COMPUTER_APP_PRESET_HORIZON_MEDICAL list(\ + new /datum/computer_file/program/suit_sensors(comp),\ + new /datum/computer_file/program/records/medical(comp),\ + new /datum/computer_file/program/chemistry_codex(comp),\ + new /datum/computer_file/program/scanner/medical(comp),\ +) + +#define COMPUTER_APP_PRESET_HORIZON_RESEARCH list(\ + new /datum/computer_file/program/ntnetmonitor(comp),\ + new /datum/computer_file/program/aidiag(comp),\ + new /datum/computer_file/program/chemistry_codex(comp),\ + new /datum/computer_file/program/scanner/science(comp),\ + new /datum/computer_file/program/scanner/gas(comp),\ + new /datum/computer_file/program/away_manifest(comp),\ +) + +#define COMPUTER_APP_PRESET_HORIZON_SECURITY list(\ + new /datum/computer_file/program/alarm_monitor/security(comp),\ + new /datum/computer_file/program/camera_monitor(comp),\ + new /datum/computer_file/program/digitalwarrant(comp),\ + new /datum/computer_file/program/penal_mechs(comp),\ + new /datum/computer_file/program/records/security(comp),\ + new /datum/computer_file/program/guntracker(comp),\ +) diff --git a/code/modules/modular_computers/file_system/programs/app_presets_antag.dm b/code/modules/modular_computers/file_system/programs/app_presets_antag.dm new file mode 100644 index 00000000000..7e5c2feb5f7 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/app_presets_antag.dm @@ -0,0 +1,50 @@ + +/datum/modular_computer_app_presets/command/teleporter/ninja + name = "ninja_teleporter" + display_name = "Offsite - Teleporter" + description = "Contains the most common command programs and has a special teleporter control program loaded." + available = FALSE + +/datum/modular_computer_app_presets/command/teleporter/ninja/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/comm(comp, FALSE), + new /datum/computer_file/program/records/employment(comp), + new /datum/computer_file/program/teleporter/ninja(comp) + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/merc + name = "merc" + display_name = "Mercenary" + description = "Preset for the Merc Console." + available = FALSE + +/datum/modular_computer_app_presets/merc/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + new /datum/computer_file/program/newsbrowser(comp), + new /datum/computer_file/program/manifest(comp), + new /datum/computer_file/program/camera_monitor/hacked(comp) + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/ert + name = "ert" + display_name = "EmergencyResposeTeam" + description = "Preset for the ERT Console." + available = FALSE + +/datum/modular_computer_app_presets/ert/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + new /datum/computer_file/program/camera_monitor/hacked(comp), + new /datum/computer_file/program/comm(comp, FALSE), + new /datum/computer_file/program/suit_sensors(comp), + new /datum/computer_file/program/alarm_monitor/all(comp), + new /datum/computer_file/program/lighting_control(comp), + new /datum/computer_file/program/aidiag(comp), + new /datum/computer_file/program/records(comp) + ) + return flatten_list(_prg_list) diff --git a/code/modules/modular_computers/file_system/programs/app_presets_crew.dm b/code/modules/modular_computers/file_system/programs/app_presets_crew.dm new file mode 100644 index 00000000000..d797f06f838 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/app_presets_crew.dm @@ -0,0 +1,328 @@ + +/datum/modular_computer_app_presets/engineering + name = "engineering" + display_name = "Engineering" + description = "Contains the most common engineering programs." + available = TRUE + +/datum/modular_computer_app_presets/engineering/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + COMPUTER_APP_PRESET_HORIZON_ENGINEERING, + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/engineering/atmos + name = "atmos" + display_name = "Engineering - Atmospherics" + description = "Contains the most common engineering programs and atmospheric monitoring software." + available = TRUE + +/datum/modular_computer_app_presets/engineering/atmos/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + COMPUTER_APP_PRESET_HORIZON_ENGINEERING, + new /datum/computer_file/program/scanner/gas(comp) + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/engineering/ce + name = "engineering_head" + display_name = "Engineering - CE" + description = "Contains the most common engineering programs and command software." + available = FALSE + +/datum/modular_computer_app_presets/engineering/ce/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + COMPUTER_APP_PRESET_HORIZON_ENGINEERING, + new /datum/computer_file/program/scanner/gas(comp), + new /datum/computer_file/program/comm(comp, FALSE), + new /datum/computer_file/program/records/employment(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/medical + name = "medical" + display_name = "Medical" + description = "Contains the most common medical programs." + available = TRUE + +/datum/modular_computer_app_presets/medical/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + COMPUTER_APP_PRESET_HORIZON_MEDICAL, + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/medical/cmo + name = "medical_head" + display_name = "Medical - CMO" + description = "Contains the most common medical programs and command software." + available = FALSE + +/datum/modular_computer_app_presets/medical/cmo/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + COMPUTER_APP_PRESET_HORIZON_MEDICAL, + new /datum/computer_file/program/comm(comp, FALSE), + new /datum/computer_file/program/records/employment(comp), + new /datum/computer_file/program/scanner/science(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/research + name = "research" + display_name = "Research" + description = "Contains the most common research programs." + available = TRUE + +/datum/modular_computer_app_presets/research/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + COMPUTER_APP_PRESET_HORIZON_RESEARCH, + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/research/rd + name = "research_head" + display_name = "Research - RD" + description = "Contains the most common research programs and command software." + available = FALSE + +/datum/modular_computer_app_presets/research/rd/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + COMPUTER_APP_PRESET_HORIZON_RESEARCH, + new /datum/computer_file/program/comm(comp, FALSE), + new /datum/computer_file/program/records/employment(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/command + name = "command" + display_name = "Command" + description = "Contains the most common command programs." + available = TRUE + +/datum/modular_computer_app_presets/command/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/card_mod(comp), + new /datum/computer_file/program/comm(comp, TRUE), + new /datum/computer_file/program/docks(comp), + new /datum/computer_file/program/away_manifest(comp), + new /datum/computer_file/program/records/employment(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/command/hop + name = "command_hop" + display_name = "Command - HoP" + description = "Contains the most common command programs." + available = FALSE + +/datum/modular_computer_app_presets/command/hop/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/civilian/cargocontrol(comp), + new /datum/computer_file/program/card_mod(comp), + new /datum/computer_file/program/comm(comp, FALSE), + new /datum/computer_file/program/docks(comp), + new /datum/computer_file/program/away_manifest(comp), + new /datum/computer_file/program/records/employment(comp), + new /datum/computer_file/program/records/security(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/command/captain + name = "captain" + display_name = "Captain" + description = "Contains the most important programs for the Captain." + available = FALSE + +/datum/modular_computer_app_presets/command/captain/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/card_mod(comp), + new /datum/computer_file/program/comm(comp, TRUE), + new /datum/computer_file/program/docks(comp), + new /datum/computer_file/program/away_manifest(comp), + new /datum/computer_file/program/camera_monitor(comp), + new /datum/computer_file/program/digitalwarrant(comp), + new /datum/computer_file/program/penal_mechs(comp), + new /datum/computer_file/program/civilian/cargocontrol(comp), + new /datum/computer_file/program/alarm_monitor/all(comp), + new /datum/computer_file/program/records/employment(comp), + new /datum/computer_file/program/records/medical(comp), + new /datum/computer_file/program/records/security(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/security + name = "security" + display_name = "Security" + description = "Contains the most common security programs." + available = TRUE + +/datum/modular_computer_app_presets/security/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + COMPUTER_APP_PRESET_HORIZON_SECURITY, + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/security/armory + name = "security_arm" + display_name = "Security - Armory" + description = "Contains the most common security and armory programs." + available = FALSE + +/datum/modular_computer_app_presets/security/armory/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + COMPUTER_APP_PRESET_HORIZON_SECURITY, + new /datum/computer_file/program/implant_tracker(comp), + new /datum/computer_file/program/comm(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/security/investigations + name = "security_inv" + display_name = "Security - Investigations" + description = "Contains the most common security and forensics programs." + available = TRUE + +/datum/modular_computer_app_presets/security/investigations/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/alarm_monitor/security(comp), + new /datum/computer_file/program/camera_monitor(comp), + new /datum/computer_file/program/digitalwarrant(comp), + new /datum/computer_file/program/records/security(comp), + new /datum/computer_file/program/records/medical(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/security/hos + name = "security_head" + display_name = "Security - HoS" + description = "Contains the most common security programs and command software." + available = FALSE + +/datum/modular_computer_app_presets/security/hos/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + COMPUTER_APP_PRESET_HORIZON_SECURITY, + new /datum/computer_file/program/comm(comp, FALSE), + new /datum/computer_file/program/records/employment(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/civilian + name = "service" + display_name = "Service" + description = "Contains the most common service programs." + available = TRUE + +/datum/modular_computer_app_presets/civilian/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/game/arcade(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/civilian/janitor + name = "janitor" + display_name = "Janitor" + description = "Contains programs for janitorial service." + available = TRUE + +/datum/modular_computer_app_presets/civilian/janitor/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/civilian/janitor(comp), + new /datum/computer_file/program/game/arcade(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/supply + name = "supply" + display_name = "Supply" + description = "Contains the most common cargo programs." + available = TRUE + +/datum/modular_computer_app_presets/supply/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/civilian/cargocontrol(comp), + new /datum/computer_file/program/civilian/cargodelivery(comp), + new /datum/computer_file/program/away_manifest(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/supply/om + name = "operations manager" + display_name = "Operations Manager" + description = "Contains the most common cargo programs as well as the OM's ones." + available = FALSE + +/datum/modular_computer_app_presets/supply/om/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/civilian/cargocontrol(comp), + new /datum/computer_file/program/civilian/cargodelivery(comp), + new /datum/computer_file/program/away_manifest(comp), + new /datum/computer_file/program/comm(comp, FALSE), + new /datum/computer_file/program/docks(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/supply/machinist + name = "operations_machinist" + display_name = "Operations - Machinist" + description = "Contains the most common supply programs and medical record software." + available = TRUE + +/datum/modular_computer_app_presets/supply/machinist/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/aidiag(comp), + new /datum/computer_file/program/records/medical(comp), + new /datum/computer_file/program/scanner/science(comp), + new /datum/computer_file/program/scanner/gas(comp), + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/representative + name = "representative" + display_name = "Representative" + description = "Contains software intended for representatives." + available = FALSE + +/datum/modular_computer_app_presets/representative/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/records/employment(comp), + ) + return flatten_list(_prg_list) diff --git a/code/modules/modular_computers/file_system/programs/app_presets_equipment.dm b/code/modules/modular_computers/file_system/programs/app_presets_equipment.dm new file mode 100644 index 00000000000..18219cd32a1 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/app_presets_equipment.dm @@ -0,0 +1,100 @@ + +/datum/modular_computer_app_presets/wall_generic + name = "wallgeneric" + display_name = "Wall - Generic" + description = "A generic preset for the wall console." + available = FALSE + +/datum/modular_computer_app_presets/wall_generic/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + new /datum/computer_file/program/manifest(comp), + new /datum/computer_file/program/chat_client(comp), + new /datum/computer_file/program/civilian/cargoorder(comp), + new /datum/computer_file/program/camera_monitor(comp), + new /datum/computer_file/program/alarm_monitor/engineering(comp) + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/ai + name = "ai" + display_name = "AI" + description = "A preset for the AI consoles." + available = FALSE + +/datum/modular_computer_app_presets/ai/return_install_programs(obj/item/modular_computer/comp) + return list( + COMPUTER_APP_PRESET_SYSTEM, + ) + +/datum/modular_computer_app_presets/command/teleporter + name = "command_teleporter" + display_name = "Command - Teleporter" + description = "Contains the most common command programs and has a special teleporter control program loaded." + available = FALSE + +/datum/modular_computer_app_presets/command/teleporter/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/comm(comp, FALSE), + new /datum/computer_file/program/records/employment(comp), + new /datum/computer_file/program/teleporter(comp) + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/command/account + name = "command_accounting" + display_name = "Command - Accounting" + description = "Contains all the programs you would need to become a god-tier accountant." + available = FALSE + +/datum/modular_computer_app_presets/command/account/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + new /datum/computer_file/program/newsbrowser(comp), + new /datum/computer_file/program/manifest(comp), + new /datum/computer_file/program/civilian/cargoorder(comp), + new /datum/computer_file/program/civilian/cargocontrol(comp), + new /datum/computer_file/program/records/employment(comp), + new /datum/computer_file/program/account_db(comp) + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/command/account/centcomm/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + new /datum/computer_file/program/newsbrowser(comp), + new /datum/computer_file/program/manifest(comp), + new /datum/computer_file/program/civilian/cargoorder(comp), + new /datum/computer_file/program/civilian/cargocontrol(comp), + new /datum/computer_file/program/records/employment(comp), + new /datum/computer_file/program/account_db(comp, TRUE) + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/trashcompactor + name = "trashcompactor" + display_name = "Trash Compactor" + description = "A preset for the Trash Compactor Wall Console." + available = FALSE + +/datum/modular_computer_app_presets/trashcompactor/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + new /datum/computer_file/program/crushercontrol(comp) + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/cargo_delivery + name = "cargo_delivery" + display_name = "Cargo Delivery" + description = "Contains the Delivery App." + available = FALSE + +/datum/modular_computer_app_presets/cargo_delivery/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + COMPUTER_APP_PRESET_SYSTEM, + COMPUTER_APP_PRESET_HORIZON_CIVILIAN, + new /datum/computer_file/program/civilian/cargodelivery(comp) + ) + return flatten_list(_prg_list) diff --git a/code/modules/modular_computers/file_system/programs/app_presets_third_party.dm b/code/modules/modular_computers/file_system/programs/app_presets_third_party.dm new file mode 100644 index 00000000000..305183e3f07 --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/app_presets_third_party.dm @@ -0,0 +1,47 @@ + +/datum/modular_computer_app_presets/merchant + name = "merchant" + display_name = "Merchant" + description = "A preset for the merchant console." + available = FALSE + +/datum/modular_computer_app_presets/merchant/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + new /datum/computer_file/program/filemanager(comp), + new /datum/computer_file/program/manifest(comp), + new /datum/computer_file/program/newsbrowser(comp), + new /datum/computer_file/program/chat_client(comp), + new /datum/computer_file/program/merchant(comp) + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/merchant/nka/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + new /datum/computer_file/program/filemanager(comp), + new /datum/computer_file/program/manifest(comp), + new /datum/computer_file/program/newsbrowser(comp), + new /datum/computer_file/program/chat_client(comp), + new /datum/computer_file/program/merchant/nka(comp) + ) + return flatten_list(_prg_list) + +/datum/modular_computer_app_presets/merchant/guild/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + new /datum/computer_file/program/filemanager(comp), + new /datum/computer_file/program/manifest(comp), + new /datum/computer_file/program/newsbrowser(comp), + new /datum/computer_file/program/chat_client(comp), + new /datum/computer_file/program/merchant/guild(comp) + ) + return flatten_list(_prg_list) + + +/datum/modular_computer_app_presets/merchant/golden_deep/return_install_programs(obj/item/modular_computer/comp) + var/list/_prg_list = list( + new /datum/computer_file/program/filemanager(comp), + new /datum/computer_file/program/manifest(comp), + new /datum/computer_file/program/newsbrowser(comp), + new /datum/computer_file/program/chat_client(comp), + new /datum/computer_file/program/merchant/golden_deep(comp) + ) + return flatten_list(_prg_list) diff --git a/code/modules/modular_computers/file_system/programs/generic/map.dm b/code/modules/modular_computers/file_system/programs/generic/map.dm new file mode 100644 index 00000000000..1f301858fec --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/generic/map.dm @@ -0,0 +1,55 @@ +/datum/computer_file/program/map + filename = "map" + filedesc = "Map Program" + extended_desc = "This program may be used to see the decks or levels of the vessel, station, or ship." + program_icon_state = "map" + program_key_icon_state = "lightblue_key" + color = LIGHT_COLOR_BLUE + size = 4 + requires_ntnet = TRUE + available_on_ntnet = TRUE + tgui_id = "Map" + + /// If zero/null, show the z-level of the user, otherwise show `z_override` z-level. + var/z_override = 0 + +/datum/computer_file/program/map/ui_data(mob/user) + var/list/data = list() + + // Gather data for computer header + var/headerdata = get_header_data(data["_PC"]) + if(headerdata) + data["_PC"] = headerdata + . = data + + var/z_level = z_override ? z_override : user.z + if(z_level in current_map.station_levels) + data["map_image"] = SSholomap.minimaps_area_colored_base64[z_level] + + data["user_x"] = user.x + data["user_y"] = user.y + data["user_z"] = user.z + data["station_levels"] = current_map.station_levels + data["z_override"] = z_override + + data["dept_colors_map"] = list( + list("d"="Command", "c"=HOLOMAP_AREACOLOR_COMMAND), + list("d"="Security", "c"=HOLOMAP_AREACOLOR_SECURITY), + list("d"="Medical", "c"=HOLOMAP_AREACOLOR_MEDICAL), + list("d"="Science", "c"=HOLOMAP_AREACOLOR_SCIENCE), + list("d"="Engineering", "c"=HOLOMAP_AREACOLOR_ENGINEERING), + list("d"="Operations", "c"=HOLOMAP_AREACOLOR_OPERATIONS), + list("d"="Civilian", "c"=HOLOMAP_AREACOLOR_CIVILIAN), + list("d"="Hallways", "c"=HOLOMAP_AREACOLOR_HALLWAYS), + list("d"="Dock", "c"=HOLOMAP_AREACOLOR_DOCK), + list("d"="Hangar", "c"=HOLOMAP_AREACOLOR_HANGAR), + ) + + return data + +/datum/computer_file/program/map/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + if(action == "z_override") + z_override = text2num(params["z_override"]) diff --git a/html/changelogs/DreamySkrell-minimap-program.yml b/html/changelogs/DreamySkrell-minimap-program.yml new file mode 100644 index 00000000000..bdcd6daefea --- /dev/null +++ b/html/changelogs/DreamySkrell-minimap-program.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: DreamySkrell + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adds PDA map program." + - rscdel: "Removes holomaps." diff --git a/icons/255x255.dmi b/icons/255x255.dmi new file mode 100644 index 00000000000..2e0e7e7a3cf Binary files /dev/null and b/icons/255x255.dmi differ diff --git a/maps/aurora/aurora-1_centcomm.dmm b/maps/aurora/aurora-1_centcomm.dmm index 53b8c870658..5655a8a5633 100644 --- a/maps/aurora/aurora-1_centcomm.dmm +++ b/maps/aurora/aurora-1_centcomm.dmm @@ -1668,14 +1668,6 @@ /obj/effect/step_trigger/thrower/shuttle/northwest, /turf/space/transit/bluespace/west, /area/template_noop) -"aeo" = ( -/obj/machinery/door/airlock/centcom{ - name = "Holding Cells"; - req_access = list(150); - dir = 1 - }, -/turf/unsimulated/floor, -/area/antag/mercenary) "aep" = ( /obj/machinery/door/airlock/external{ frequency = 1332; @@ -1772,19 +1764,6 @@ icon_state = "lino_diamond" }, /area/centcom/bar) -"aey" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "centcom_dock_airlock"; - locked = 1; - name = "Arrivals Airlock"; - req_access = list(13); - dir = 4 - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/unsimulated/floor, -/area/centcom/evac) "aez" = ( /obj/effect/floor_decal/corner/white{ dir = 10 @@ -2018,31 +1997,6 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/unsimulated/floor, /area/centcom/evac) -"afn" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "centcom_dock_airlock"; - locked = 1; - name = "Arrivals Airlock"; - req_access = list(13); - dir = 4 - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/unsimulated/floor, -/area/centcom/evac) -"afo" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "centcom_arrivals_airlock"; - locked = 1; - name = "Arrivals Airlock"; - req_access = list(13); - dir = 1 - }, -/turf/unsimulated/floor, -/area/centcom/spawning) "afp" = ( /obj/machinery/door/airlock/external{ frequency = 1380; @@ -4777,18 +4731,6 @@ }, /turf/simulated/floor/holofloor/wood, /area/holodeck/source_battlemonsters) -"aEW" = ( -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "escape_shuttle_hatch"; - locked = 1; - name = "Shuttle Hatch"; - req_access = list(13); - dir = 4 - }, -/turf/simulated/floor/shuttle/dark_blue, -/area/shuttle/escape) "aFa" = ( /obj/machinery/light{ icon_state = "tube_empty" @@ -8746,11 +8688,6 @@ "bLK" = ( /turf/unsimulated/floor, /area/centcom/holding) -"bLN" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/antag/raider) "bLO" = ( /turf/simulated/wall/shuttle/dark/corner/underlay{ dir = 9 @@ -9336,12 +9273,6 @@ /obj/item/pickaxe/jackhammer, /turf/simulated/floor/plating, /area/shuttle/skipjack) -"chj" = ( -/obj/effect/decal/cleanable/dirt, -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/legion/hangar5) "chs" = ( /obj/structure/girder, /obj/effect/decal/cleanable/dirt, @@ -9784,12 +9715,6 @@ }, /turf/simulated/floor/holofloor/tiled/dark, /area/tdome/tdome1) -"cxn" = ( -/obj/structure/closet/crate/secure/legion, -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/legion/hangar5) "cyX" = ( /obj/effect/floor_decal/corner/red{ dir = 5 @@ -14604,13 +14529,6 @@ }, /turf/simulated/floor/wood, /area/merchant_station) -"fzW" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/effect/large_stock_marker, -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/antag/raider) "fAi" = ( /obj/structure/bed/stool/chair/padded/brown{ dir = 8 @@ -14830,12 +14748,6 @@ }, /turf/unsimulated/floor/plating, /area/shuttle/distress) -"fHj" = ( -/obj/effect/decal/cleanable/dirt, -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/antag/raider) "fHv" = ( /obj/effect/floor_decal/industrial/warning/corner{ dir = 8 @@ -20428,13 +20340,6 @@ /obj/machinery/recharge_station, /turf/unsimulated/floor, /area/antag/loner) -"iYt" = ( -/obj/effect/decal/cleanable/dirt, -/turf/unsimulated/floor{ - dir = 4; - icon_state = "tiled_preview" - }, -/area/antag/raider) "iYu" = ( /obj/machinery/merchant_pad, /turf/simulated/floor/wood, @@ -20745,11 +20650,6 @@ }, /turf/unsimulated/floor/plating, /area/shuttle/administration) -"jnf" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/legion/hangar5) "jnA" = ( /turf/simulated/wall/shuttle/unique/mercenary/small, /area/shuttle/syndicate_elite) @@ -23216,11 +23116,6 @@ icon_state = "white" }, /area/tdome/tdomeobserve) -"kWI" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/legion) "kWN" = ( /obj/machinery/door/blast/odin/open{ _wifi_id = "merc_droppod_3"; @@ -25584,12 +25479,6 @@ icon_state = "tiled_preview" }, /area/centcom/legion/hangar5) -"msJ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/legion/hangar5) "mtf" = ( /obj/structure/sign/nosmoking_2{ pixel_x = 1; @@ -26857,11 +26746,6 @@ density = 1 }, /area/antag/ninja) -"nkv" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/legion/hangar5) "nkw" = ( /obj/machinery/vending/engivend, /obj/effect/floor_decal/industrial/outline/yellow, @@ -28496,11 +28380,6 @@ /obj/effect/spawner/newbomb/timer/syndicate, /turf/simulated/floor/reinforced, /area/shuttle/mercenary) -"ogE" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/legion/hangar5) "ogF" = ( /obj/effect/floor_decal/corner/paleblue{ dir = 5 @@ -30027,12 +29906,6 @@ icon_state = "dark_preview" }, /area/centcom/specops) -"pqX" = ( -/obj/effect/floor_decal/corner/red{ - dir = 9 - }, -/turf/simulated/floor/tiled/dark, -/area/shuttle/administration) "prI" = ( /obj/structure/closet/gimmick{ name = "emergency response team wardrobe" @@ -31481,12 +31354,6 @@ }, /turf/unsimulated/floor/plating, /area/shuttle/arrival) -"qnN" = ( -/obj/effect/decal/cleanable/dirt, -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/antag/raider) "qnP" = ( /turf/simulated/floor/beach/sand{ icon_state = "desert4" @@ -32626,11 +32493,6 @@ icon_state = "7,0" }, /area/centcom/specops) -"rfM" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/legion) "rgr" = ( /obj/structure/shuttle_part/mercenary{ icon_state = "13,19" @@ -33044,11 +32906,6 @@ }, /turf/unsimulated/floor, /area/centcom/holding) -"rvL" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/antag/raider) "rvN" = ( /obj/effect/map_effect/window_spawner/reinforced/crescent, /obj/structure/sign/directions/tram{ @@ -33499,11 +33356,6 @@ icon_state = "wood_preview" }, /area/antag/mercenary) -"rNa" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/antag/raider) "rNL" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -33815,13 +33667,6 @@ }, /turf/space/dynamic, /area/shuttle/mercenary) -"rXI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table/steel, -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/antag/raider) "rXN" = ( /turf/unsimulated/floor{ icon_state = "wood_preview" @@ -33859,11 +33704,6 @@ icon_state = "wood_preview" }, /area/antag/mercenary) -"sai" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/antag/raider) "saE" = ( /turf/unsimulated/wall/steel, /area/antag/burglar) @@ -35699,11 +35539,6 @@ icon_state = "15,2" }, /area/shuttle/legion) -"trx" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/antag/raider) "trT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/flora/pottedplant{ @@ -38569,11 +38404,6 @@ }, /turf/unsimulated/floor, /area/centcom/spawning) -"vmF" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/bar) "vmR" = ( /obj/machinery/computer/shuttle_control/multi/antag/syndicate, /turf/simulated/floor/shuttle/black, @@ -39776,11 +39606,6 @@ }, /turf/unsimulated/floor/plating, /area/shuttle/arrival) -"wcS" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/antag/mercenary) "wcT" = ( /obj/machinery/light{ dir = 4; @@ -40697,12 +40522,6 @@ /obj/effect/floor_decal/corner/red/diagonal, /turf/simulated/floor/tiled/dark, /area/shuttle/mercenary) -"wBB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/legion/hangar5) "wBG" = ( /obj/effect/floor_decal/corner/grey{ dir = 8 @@ -40822,11 +40641,6 @@ }, /turf/unsimulated/floor/plating, /area/centcom/specops) -"wDr" = ( -/turf/unsimulated/floor{ - icon_state = "tiled_preview" - }, -/area/centcom/legion/hangar5) "wDV" = ( /turf/simulated/wall/shuttle/unique/mercenary{ icon_state = "1,11" @@ -55671,7 +55485,7 @@ uaE uaE uaE ybY -wcS +quz dfV mZj dfV @@ -55928,7 +55742,7 @@ uNd uNd xyf ybY -wcS +quz dfV mZj dfV @@ -56182,7 +55996,7 @@ mCu aNE uaE nDL -wcS +quz aNE ybY fNO @@ -56439,7 +56253,7 @@ xVl nVn nVn xVl -wcS +quz aNE uaE uaE @@ -56696,7 +56510,7 @@ gBg aNE ybY xVl -wcS +quz aNE ybY oZE @@ -57724,7 +57538,7 @@ gBg aNE eAt xVl -wcS +quz aNE ybY fNO @@ -57981,7 +57795,7 @@ nOA aNE ybY xVl -wcS +quz aNE uaE uaE @@ -58238,7 +58052,7 @@ uLe xvz ybY xVl -wcS +quz aNE ybY oZE @@ -58498,7 +58312,7 @@ aem uLe xvz ybY -wcS +quz dfV mZj dfV @@ -58751,11 +58565,11 @@ uaE uaE uaE uaE -aeo +aem uNd uNd dKL -wcS +quz dfV mZj dfV @@ -59779,8 +59593,8 @@ uaE neR aiQ enB -fHj -fHj +igl +igl eaK slE aiY @@ -60036,10 +59850,10 @@ uaE neR aiQ toF -qnN -qnN +igl +igl gMF -fHj +igl aiY aaM aaM @@ -60293,8 +60107,8 @@ uaE neR aiQ ipA -rXI -qnN +pQP +igl gSK trT aiY @@ -61058,10 +60872,10 @@ jvO saE aiQ uuE -sai +ajW bsZ ajd -rNa +ajW qrB wFx tLX @@ -61313,14 +61127,14 @@ xSi xSi xSi wqa -fHj +igl lLa bsZ bsZ ajd bHJ uUx -rvL +ajW oDl nvW tYj @@ -61471,13 +61285,13 @@ jGi jGi jGi dqO -pqX +fWE iSs jrN -pqX -pqX -pqX -pqX +fWE +fWE +fWE +fWE odb rFI iSG @@ -61571,13 +61385,13 @@ xSi oxc wqa bqi -rvL +ajW hwW dbq lNt bHJ mqh -qnN +igl sph rvl tYj @@ -63113,7 +62927,7 @@ ahV ahV aiQ ibf -fHj +igl aiQ iFM aiQ @@ -63369,8 +63183,8 @@ ahV ahV ahV bSa -fHj -fHj +igl +igl aiQ bdu dDH @@ -63626,8 +63440,8 @@ ahV ahV ahV sxB -fHj -fHj +igl +igl aiY tsk stK @@ -63883,8 +63697,8 @@ ahV ahV ahV sxB -fHj -fHj +igl +igl aiY iEB stK @@ -64140,8 +63954,8 @@ ahV ahV ahV aiQ -fHj -fHj +igl +igl aiY wkO cRd @@ -64397,8 +64211,8 @@ ahV ahV ahV sxB -fHj -fHj +igl +igl aiY dHW stK @@ -64654,8 +64468,8 @@ ahV ahV ahV sxB -fHj -fHj +igl +igl aiY cOf stK @@ -64911,8 +64725,8 @@ ahV ahV ahV bSa -fHj -fHj +igl +igl aiQ dmM stK @@ -65176,7 +64990,7 @@ aiQ aiQ aiQ chs -trx +ajW aiQ aiQ ajd @@ -65425,16 +65239,16 @@ ahV ahV aiQ hCk -qnN +igl qje aiQ -fzW wsX -fzW +wsX +wsX fIp kns spt -bLN +ajW weG jpD jpD @@ -65682,16 +65496,16 @@ ahV ahV aiQ wbB -qnN -qnN +igl +igl pEP -rvL -fHj -qnN ajW -qnN +igl +igl +ajW +igl ajW -qnN +igl quG aix aix @@ -65939,11 +65753,11 @@ ahV ahV aiQ hCk -qnN -qnN +igl +igl djX -rvL -fHj +ajW +igl ajW ajW ajW @@ -66196,10 +66010,10 @@ ahV ahV aiQ lxL -iYt +slE sdF aiQ -fHj +igl ajW lJD ajW @@ -66460,7 +66274,7 @@ cCB llG ajW ajW -qnN +igl ajW tPw aiY @@ -66711,14 +66525,14 @@ ahV aiQ huN exX -qnN +igl aiY -fHj +igl scd ajW ajW scd -rvL +ajW aYm aiY aaM @@ -66967,15 +66781,15 @@ ahV ahV bPL ise -qnN -qnN +igl +igl tvo ajW aac ajW edH scd -fHj +igl vdU aiY aaM @@ -67232,7 +67046,7 @@ scd ajW nIj scd -fHj +igl xvu aiY aaM @@ -67486,7 +67300,7 @@ ahV aiQ rsQ scd -rvL +ajW kOh scd ajW @@ -75117,9 +74931,9 @@ wzE wzE mbM mbM -aey afm -afn +afm +afm mbM mbM wzE @@ -75367,16 +75181,16 @@ wne qNZ cgd mBc -aEW +aec cYT rGt rGt gmv nHm sXN -aEW aec -aEW +aec +aec pdo jdB xrK @@ -76425,7 +76239,7 @@ urj gdU aBl aMW -afo +afp weB aOa uPQ @@ -78185,7 +77999,7 @@ kRu avR gqa bGR -vmF +xTG ntE eBz wne @@ -80559,7 +80373,7 @@ aaM wmL jcG kaz -kWI +orV cLT mLp qDS @@ -80831,7 +80645,7 @@ qDS kVX bWj owo -rfM +orV rQb sBC bWj @@ -81330,7 +81144,7 @@ aaM wmL jcG kaz -kWI +orV cMK mLp dML @@ -82101,7 +81915,7 @@ aaM wmL jcG kaz -kWI +orV mny dyS ozQ @@ -86725,8 +86539,8 @@ aaM wmL pUN bid -chj -chj +clg +clg pUN mrR ngc @@ -87497,11 +87311,11 @@ wmL xkw iSi cjF -msJ -nkv -msJ -nkv -nkv +clg +jpq +clg +jpq +jpq epk pUU qav @@ -87754,10 +87568,10 @@ wmL xkw iVa clg -msJ +clg lAD cWU -msJ +clg jpq epk pUU @@ -88010,12 +87824,12 @@ aaM wmL xkw xFQ -nkv jpq -cxn +jpq +lAD cXi dGq -msJ +clg epk pUU qav @@ -88267,12 +88081,12 @@ aaM wmL xkw bjR -nkv -nkv -msJ -nkv -msJ -nkv +jpq +jpq +clg +jpq +clg +jpq epk pUU qav @@ -88524,7 +88338,7 @@ aaM wmL pUN bkm -nkv +jpq khS lBN mvu @@ -88781,7 +88595,7 @@ aaM wmL xkw bkr -nkv +jpq pUN pUN pUN @@ -89038,12 +88852,12 @@ aaM wmL xkw blQ -nkv +jpq pUN lIO mym nuL -ogE +jpq oUZ fpt qav @@ -89295,12 +89109,12 @@ aaM wmL xkw bpY -jnf +jpq pUN pUN pUN -ogE -ogE +jpq +jpq oUZ von qav @@ -89557,7 +89371,7 @@ pUN lMp mAd nuL -ogE +jpq oWu pTm qav @@ -89813,8 +89627,8 @@ jpq pUN pUN pUN -ogE -ogE +jpq +jpq pUN pUN pUN @@ -90327,8 +90141,8 @@ wmL pUN pUN pUN -ogE -ogE +jpq +jpq pUN pUU qav @@ -90345,7 +90159,7 @@ von pUU pUN vPG -wBB +clg pUN xCb pUN @@ -90585,7 +90399,7 @@ pUN lVP dau nuL -ogE +jpq pkt pUU qav @@ -90602,7 +90416,7 @@ von pUU pUN vPK -wDr +jpq xii xEl xkw diff --git a/maps/aurora/aurora-3_sublevel.dmm b/maps/aurora/aurora-3_sublevel.dmm index c433b878c2f..9dd7164a4d3 100644 --- a/maps/aurora/aurora-3_sublevel.dmm +++ b/maps/aurora/aurora-3_sublevel.dmm @@ -6,20 +6,6 @@ /obj/effect/landmark/dungeon_spawn, /turf/unsimulated/chasm_mask, /area/mine/unexplored) -"aac" = ( -/obj/machinery/door/airlock/external{ - frequency = 1379; - icon_state = "door_locked"; - id_tag = "eng_sl_eva_outer"; - locked = 1; - luminosity = 1; - name = "Engineering Sub-Level EVA"; - req_access = list(10,13); - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/tiled, -/area/outpost/engineering/hallway) "aad" = ( /obj/structure/grille, /turf/simulated/wall/r_wall, @@ -3513,21 +3499,6 @@ }, /turf/simulated/floor/tiled, /area/outpost/engineering/hallway) -"aip" = ( -/obj/machinery/station_map{ - dir = 1; - pixel_y = -32 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/floor_decal/corner_wide/yellow{ - dir = 10 - }, -/turf/simulated/floor/tiled, -/area/outpost/engineering/hallway) "aiq" = ( /obj/machinery/firealarm/south, /obj/effect/floor_decal/corner_wide/yellow{ @@ -4080,10 +4051,6 @@ }, /turf/simulated/floor/tiled, /area/outpost/engineering/hallway) -"ajs" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/turf/simulated/floor/tiled, -/area/engineering/break_room) "ajt" = ( /obj/machinery/light{ dir = 4 @@ -14542,9 +14509,6 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, -/obj/machinery/station_map{ - pixel_y = 32 - }, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" @@ -34401,16 +34365,6 @@ }, /turf/simulated/floor/plating, /area/outpost/engineering/power) -"uGE" = ( -/obj/machinery/station_map{ - dir = 4; - pixel_x = -32 - }, -/obj/effect/floor_decal/corner_wide/mauve{ - dir = 9 - }, -/turf/simulated/floor/tiled/white, -/area/outpost/research/hallway) "uGF" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/maintenance_hatch{ @@ -49321,9 +49275,9 @@ jXD aim vly akJ -ajs -ajs -ajs +wHR +wHR +wHR xNS ajv qnn @@ -49577,7 +49531,7 @@ pmn ahI xxd uqb -ajs +wHR bVc akn akn @@ -49834,7 +49788,7 @@ hZh eby ain dbr -ajs +wHR ajT rmO rmO @@ -50353,7 +50307,7 @@ xrn rmO rmO tbe -ajs +wHR ntd lYK aaa @@ -50863,11 +50817,11 @@ tZw ain vly ajx -ajs +wHR ajw bTq uTq -ajs +wHR pOl lYK aaa @@ -51631,7 +51585,7 @@ fvN jjk ahi ahK -aip +ain aiQ ajA ajA @@ -53938,7 +53892,7 @@ sOM sOM sOM sOM -aac +fYn ayP aiv dPp @@ -57608,7 +57562,7 @@ xFr aLI aMG aCf -uGE +azn aPg aGC aQt diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm index f922bd20424..417a3335a26 100644 --- a/maps/aurora/aurora-4_mainlevel.dmm +++ b/maps/aurora/aurora-4_mainlevel.dmm @@ -155,19 +155,6 @@ /obj/effect/map_effect/window_spawner/reinforced/firedoor, /turf/simulated/floor/plating, /area/maintenance/security_starboard) -"aat" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Cold Storage"; - req_access = list(66); - dir = 1 - }, -/obj/structure/plasticflaps/airtight, -/turf/simulated/floor/tiled/freezer{ - name = "cold storage tiles"; - temperature = 278 - }, -/area/medical/surgerywing) "aau" = ( /obj/effect/map_effect/window_spawner/reinforced/firedoor, /turf/simulated/floor/plating, @@ -10257,14 +10244,6 @@ }, /turf/simulated/floor/tiled, /area/bridge) -"aty" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/tiled, -/area/bridge) "atz" = ( /obj/structure/cable/green{ d1 = 1; @@ -22591,13 +22570,6 @@ /obj/machinery/alarm/south, /turf/simulated/floor/tiled, /area/hallway/primary/starboard) -"aNJ" = ( -/obj/machinery/station_map{ - dir = 1; - pixel_y = -32 - }, -/turf/simulated/floor/tiled, -/area/hallway/primary/starboard) "aNK" = ( /obj/machinery/door/firedoor, /obj/machinery/door/blast/shutters{ @@ -27780,12 +27752,6 @@ /obj/structure/extinguisher_cabinet/north, /turf/simulated/floor/tiled, /area/hallway/primary/central_one) -"aWM" = ( -/obj/machinery/station_map{ - pixel_y = 32 - }, -/turf/simulated/floor/tiled, -/area/hallway/primary/central_one) "aWN" = ( /obj/structure/sign/directions/engineering{ dir = 8; @@ -29248,13 +29214,6 @@ }, /turf/simulated/floor/tiled, /area/hallway/primary/port) -"aZe" = ( -/obj/machinery/station_map{ - dir = 1; - pixel_y = -32 - }, -/turf/simulated/floor/tiled, -/area/hallway/primary/port) "aZf" = ( /obj/machinery/power/apc/south, /obj/structure/cable/green{ @@ -29584,24 +29543,6 @@ }, /turf/simulated/floor/tiled, /area/hallway/primary/starboard) -"aZK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/station_map{ - dir = 1; - pixel_y = -32 - }, -/obj/machinery/door/firedoor{ - enable_smart_generation = 0 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/tiled, -/area/hallway/primary/starboard) "aZL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34413,10 +34354,6 @@ c_tag = "Central Corridor - Camera 6"; dir = 8 }, -/obj/machinery/station_map{ - dir = 8; - pixel_x = 32 - }, /obj/structure/cable/green{ d1 = 1; d2 = 2; @@ -41772,10 +41709,6 @@ /turf/simulated/floor/tiled, /area/hallway/primary/central_one) "bxq" = ( -/obj/machinery/station_map{ - dir = 4; - pixel_x = -32 - }, /obj/structure/cable/green{ d1 = 1; d2 = 2; @@ -49435,11 +49368,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled, /area/maintenance/research_port) -"bPM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/tiled, -/area/maintenance/research_port) "bPN" = ( /obj/effect/decal/cleanable/dirt, /obj/random/junk, @@ -62174,10 +62102,6 @@ }, /turf/simulated/floor/tiled, /area/maintenance/vault) -"kAL" = ( -/obj/structure/table/wood, -/turf/simulated/floor/carpet, -/area/crew_quarters/bar) "kAV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -63284,10 +63208,6 @@ /obj/structure/trash_pile, /turf/simulated/floor/plating, /area/maintenance/research_port) -"mMJ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/tiled, -/area/maintenance/bar) "mNw" = ( /obj/structure/closet, /obj/random/loot, @@ -89881,7 +89801,7 @@ aQq aVh ePx aXX -aZe +aWs aVq bbq bcV @@ -89926,11 +89846,11 @@ bbs htm bbs bbs -bPM +uzs bQj bQD bPL -bPM +uzs bSf bbs bcY @@ -99388,7 +99308,7 @@ nLT aSr aTT aIi -aWM +aZs aYn aZr baI @@ -99711,7 +99631,7 @@ sEV sEV bYZ ivR -kAL +jnD bSM bNO cbi @@ -103534,7 +103454,7 @@ bGB bBP bIs pie -mMJ +gfU bGC bGC bGC @@ -106586,7 +106506,7 @@ ahC ahC aXa aYq -aZK +aZC avd avd bfh @@ -107640,7 +107560,7 @@ aap bCc bCc bCc -aat +aap bzk bzk bxU @@ -108120,7 +108040,7 @@ aGL qSC cCf aLQ -aNJ +awK aPu aRb aRb @@ -114533,7 +114453,7 @@ aoq apF aqS asi -aty +atx avj awN ayE diff --git a/maps/aurora/aurora-6_surface.dmm b/maps/aurora/aurora-6_surface.dmm index e78020f3465..63726f6e1cf 100644 --- a/maps/aurora/aurora-6_surface.dmm +++ b/maps/aurora/aurora-6_surface.dmm @@ -14,14 +14,6 @@ }, /turf/simulated/floor/wood, /area/security/bridge_surface_checkpoint) -"aac" = ( -/obj/machinery/door/airlock/external{ - icon_state = "door_locked"; - locked = 1; - dir = 4 - }, -/turf/simulated/floor/plating, -/area/bridge/levela) "aaq" = ( /obj/machinery/light{ dir = 8; @@ -11977,10 +11969,6 @@ /obj/effect/floor_decal/corner/dark_blue{ dir = 8 }, -/obj/machinery/station_map{ - dir = 8; - pixel_x = 32 - }, /turf/simulated/floor/tiled, /area/hallway/secondary/entry/central) "kDq" = ( @@ -12694,15 +12682,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/solarmaint) -"lkM" = ( -/obj/effect/floor_decal/corner/lime{ - dir = 5 - }, -/obj/machinery/station_map{ - pixel_y = 32 - }, -/turf/simulated/floor/tiled, -/area/hallway/secondary/entry/fore) "lkU" = ( /obj/machinery/door/airlock{ id_tag = "Dormitory 2"; @@ -13440,10 +13419,6 @@ }, /turf/simulated/floor/plating, /area/hallway/secondary/exit) -"lMR" = ( -/obj/item/device/radio/intercom/east, -/turf/simulated/floor/tiled, -/area/hallway/secondary/entry/central) "lMS" = ( /obj/machinery/door/firedoor, /obj/machinery/door/blast/regular{ @@ -16685,12 +16660,6 @@ }, /turf/simulated/floor/tiled, /area/bridge/levela) -"oGz" = ( -/obj/machinery/door/airlock/glass{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/hallway/secondary/entry/aft) "oHb" = ( /obj/structure/grille, /obj/structure/window/reinforced, @@ -54017,7 +53986,7 @@ twe pMI qmj twe -lkM +vHg oUS kqa cCJ @@ -54806,7 +54775,7 @@ oVw hZo kvz kvz -lMR +wZN kvz kvz aVE @@ -54828,7 +54797,7 @@ qLs kvz kvz xpj -lMR +wZN kvz fCy kvz @@ -56636,7 +56605,7 @@ kvz aVE kvz wGw -oGz +aaa wGw kSh fQm @@ -81559,7 +81528,7 @@ fdu fdu fdu cta -aac +jAf oHb fdu fdu diff --git a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm index 3cfaa5b997c..b16bd0d66ef 100644 --- a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm +++ b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm @@ -8042,18 +8042,6 @@ }, /turf/simulated/floor/tiled/dark, /area/storage/eva) -"fEu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/floor_decal/corner/dark_green{ - dir = 5 - }, -/obj/machinery/station_map{ - pixel_y = 32 - }, -/turf/simulated/floor/tiled, -/area/hangar/auxiliary) "fEy" = ( /obj/structure/railing/mapped{ dir = 4 @@ -9917,10 +9905,6 @@ /area/hangar/canary) "gOP" = ( /obj/effect/floor_decal/corner/dark_green/full, -/obj/machinery/station_map{ - dir = 4; - pixel_x = -32 - }, /obj/structure/railing/mapped, /turf/simulated/floor/tiled, /area/hallway/primary/aft) @@ -15551,9 +15535,6 @@ /obj/effect/floor_decal/corner/dark_green{ dir = 5 }, -/obj/machinery/station_map{ - pixel_y = 32 - }, /turf/simulated/floor/tiled, /area/hangar/intrepid) "kNN" = ( @@ -28963,10 +28944,6 @@ }, /obj/machinery/disposal/small/south, /obj/structure/disposalpipe/trunk, -/obj/machinery/station_map{ - dir = 4; - pixel_x = -32 - }, /turf/simulated/floor/tiled, /area/hangar/intrepid) "ueg" = ( @@ -63011,7 +62988,7 @@ hUC qwT fZu lPW -fEu +hot mSq adX bJa diff --git a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm index 28bf30a266f..4774ece4df0 100644 --- a/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm +++ b/maps/sccv_horizon/sccv_horizon-2_deck_2.dmm @@ -8086,16 +8086,6 @@ }, /turf/simulated/floor/tiled/dark, /area/horizon/grauwolf) -"dMA" = ( -/obj/effect/floor_decal/corner/dark_green{ - dir = 9 - }, -/obj/machinery/station_map{ - dir = 4; - pixel_x = -32 - }, -/turf/simulated/floor/tiled, -/area/horizon/hallway/deck_two/fore) "dMG" = ( /obj/machinery/alarm/east{ alarm_id = 1601; @@ -10907,10 +10897,6 @@ /obj/effect/floor_decal/corner/brown{ dir = 9 }, -/obj/machinery/station_map{ - dir = 1; - pixel_y = -32 - }, /turf/simulated/floor/tiled, /area/hallway/primary/central_two) "fgd" = ( @@ -23614,16 +23600,6 @@ }, /turf/simulated/floor/tiled, /area/hallway/primary/central_two) -"lcG" = ( -/obj/effect/floor_decal/corner/mauve{ - dir = 10 - }, -/obj/machinery/station_map{ - dir = 1; - pixel_y = -32 - }, -/turf/simulated/floor/tiled, -/area/rnd/hallway) "ldk" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -25807,10 +25783,6 @@ /obj/machinery/light{ dir = 8 }, -/obj/machinery/station_map{ - dir = 1; - pixel_y = -32 - }, /turf/simulated/floor/tiled, /area/horizon/stairwell/central) "mgJ" = ( @@ -30146,10 +30118,6 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, -/obj/machinery/station_map{ - dir = 8; - pixel_x = 32 - }, /turf/simulated/floor/tiled, /area/hallway/primary/central_one) "ohc" = ( @@ -30874,16 +30842,6 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled/white, /area/rnd/xenobiology) -"oyK" = ( -/obj/effect/floor_decal/corner/dark_green{ - dir = 10 - }, -/obj/machinery/station_map{ - dir = 1; - pixel_y = -32 - }, -/turf/simulated/floor/tiled, -/area/engineering/lobby) "oyP" = ( /obj/structure/lattice/catwalk/indoor/grate, /obj/machinery/alarm/east, @@ -42433,9 +42391,6 @@ /obj/effect/floor_decal/corner/dark_green{ dir = 5 }, -/obj/machinery/station_map{ - pixel_y = 32 - }, /turf/simulated/floor/tiled, /area/operations/lobby) "ufC" = ( @@ -70618,7 +70573,7 @@ ilT nge fKi xxi -oyK +dpG sYl oUt oUt @@ -71456,7 +71411,7 @@ hGC tre qfC hnf -dMA +tre kgp piY bhj @@ -79713,7 +79668,7 @@ weq sig ybp nnr -lcG +rnA kGX kGX kGX diff --git a/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm b/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm index 71e2db9b9ae..940975406c9 100644 --- a/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm +++ b/maps/sccv_horizon/sccv_horizon-3_deck_3.dmm @@ -20369,9 +20369,6 @@ dir = 5 }, /obj/machinery/atmospherics/unary/vent_pump/on, -/obj/machinery/station_map{ - pixel_y = 32 - }, /turf/simulated/floor/tiled, /area/horizon/hallway/deck_three/primary/port/docks) "pxn" = ( @@ -25402,10 +25399,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/station_map{ - dir = 1; - pixel_y = -32 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, diff --git a/tgui/packages/tgui/interfaces/Map.tsx b/tgui/packages/tgui/interfaces/Map.tsx new file mode 100644 index 00000000000..68a3ea89ba3 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Map.tsx @@ -0,0 +1,146 @@ +import { paginate } from 'common/collections'; +import { useBackend, useLocalState } from '../backend'; +import { Tabs, Slider, Section, NoticeBox, Table } from '../components'; +import { NtosWindow } from '../layouts'; + +export type MapData = { + map_image: any; // base64 icon + user_x: number; + user_y: number; + user_z: number; + station_levels: number[]; + z_override: number; + dept_colors_map: { d: string; c: string }[]; +}; + +export const Map = (props, context) => { + const { act, data } = useBackend(context); + + const [minimapZoom, setMinimapZoom] = useLocalState( + context, + `minimapZoom`, + 100 + ); + + const [showLegend, setShowLegend] = useLocalState( + context, + `showLegend`, + false + ); + + const map_size = 255; + const zoom_mod = minimapZoom / 100.0; + + return ( + + +
+ + Levels: + {data.station_levels?.map((station_level) => ( + + act('z_override', { z_override: station_level }) + }> + {station_level} + + ))} + {data.z_override ? ( + act('z_override', { z_override: 0 })}> + Clear Override + + ) : ( + '' + )} + setShowLegend(!showLegend)}> + {showLegend ? 'Hide Legend' : 'Show Legend'} + + + {showLegend ? ( + + + {paginate(data.dept_colors_map, 2).map((a) => ( + + {a[0].d} + {a[1].d} + + ))} +
+
+ ) : ( + '' + )} + setMinimapZoom(value)}> + Zoom: {minimapZoom}% + + + + + + {!data.z_override || data.user_z === data.z_override ? ( + <> + + + + ) : ( + '' + )} + + +
+
+
+ ); +};