diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index ba4f0f12ea4d..4eb05400649f 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -11,9 +11,9 @@ // Consider these images/atoms as part of the UI/HUD (apart of the appearance_flags) /// Used for progress bars and chat messages -#define APPEARANCE_UI_IGNORE_ALPHA (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE) +#define APPEARANCE_UI_IGNORE_ALPHA (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE|TILE_BOUND) // monkestation edit /// Used for HUD objects -#define APPEARANCE_UI (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|PIXEL_SCALE) +#define APPEARANCE_UI (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|PIXEL_SCALE|TILE_BOUND) // monkestation edit /* These defines specificy screen locations. For more information, see the byond documentation on the screen_loc var. diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index 8b24ae7f67cd..ef26ff7b5fff 100755 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -1,4 +1,5 @@ +#define PARALLAX_ICON_SIZE 672 // monkestation edit /datum/hud/proc/create_parallax(mob/viewmob) var/mob/screenmob = viewmob || mymob var/client/C = screenmob.client @@ -14,11 +15,15 @@ if(!length(C.parallax_layers_cached)) C.parallax_layers_cached = list() C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_1(null, screenmob) + C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/stars(null, screenmob) //monkestation edit + /* monkestation removal C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_2(null, screenmob) C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/planet(null, screenmob) + C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/nebula(null, screenmob) if(SSparallax.random_layer) C.parallax_layers_cached += new SSparallax.random_layer(null, screenmob) C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_3(null, screenmob) + */ //monkestation removal end C.parallax_layers = C.parallax_layers_cached.Copy() @@ -113,8 +118,7 @@ var/animatedir = new_parallax_movedir if(new_parallax_movedir == FALSE) var/animate_time = 0 - for(var/thing in C.parallax_layers) - var/atom/movable/screen/parallax_layer/L = thing + for(var/atom/movable/screen/parallax_layer/L as anything in C.parallax_layers) //monkestation edit L.icon_state = initial(L.icon_state) L.update_o(C.view) var/T = PARALLAX_LOOP_TIME / L.speed @@ -126,18 +130,18 @@ var/matrix/newtransform switch(animatedir) if(NORTH) - newtransform = matrix(1, 0, 0, 0, 1, 480) + newtransform = matrix(1, 0, 0, 0, 1, PARALLAX_ICON_SIZE) // monkestation edit if(SOUTH) - newtransform = matrix(1, 0, 0, 0, 1,-480) + newtransform = matrix(1, 0, 0, 0, 1,-PARALLAX_ICON_SIZE) // monkestation edit if(EAST) - newtransform = matrix(1, 0, 480, 0, 1, 0) + newtransform = matrix(1, 0, PARALLAX_ICON_SIZE, 0, 1, 0) // monkestation edit if(WEST) - newtransform = matrix(1, 0,-480, 0, 1, 0) + newtransform = matrix(1, 0,-PARALLAX_ICON_SIZE, 0, 1, 0) // monkestation edit var/shortesttimer if(!skip_windups) - for(var/thing in C.parallax_layers) - var/atom/movable/screen/parallax_layer/L = thing + for(var/atom/movable/screen/parallax_layer/L as anything in C.parallax_layers) // monkestation edit + //var/atom/movable/screen/parallax_layer/L = thing monkestation removal var/T = PARALLAX_LOOP_TIME / L.speed if (isnull(shortesttimer)) @@ -227,14 +231,16 @@ // This is how we tile parralax sprites // It doesn't use change because we really don't want to animate this - if(parallax_layer.offset_x - change_x > 240) - parallax_layer.offset_x -= 480 - else if(parallax_layer.offset_x - change_x < -240) - parallax_layer.offset_x += 480 - if(parallax_layer.offset_y - change_y > 240) - parallax_layer.offset_y -= 480 - else if(parallax_layer.offset_y - change_y < -240) - parallax_layer.offset_y += 480 + //monkestation edit start + if(parallax_layer.offset_x - change_x > PARALLAX_ICON_SIZE/2) + parallax_layer.offset_x -= PARALLAX_ICON_SIZE + else if(parallax_layer.offset_x - change_x < -PARALLAX_ICON_SIZE/2) + parallax_layer.offset_x += PARALLAX_ICON_SIZE + if(parallax_layer.offset_y - change_y > PARALLAX_ICON_SIZE/2) + parallax_layer.offset_y -= PARALLAX_ICON_SIZE + else if(parallax_layer.offset_y - change_y < -PARALLAX_ICON_SIZE/2) + parallax_layer.offset_y += PARALLAX_ICON_SIZE + //monkestation edit end // Now that we have our offsets, let's do our positioning parallax_layer.offset_x -= change_x @@ -261,11 +267,12 @@ // We need parallax to always pass its args down into initialize, so we immediate init it INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer) /atom/movable/screen/parallax_layer - icon = 'icons/effects/parallax.dmi' + icon = 'monkestation/icons/effects/skybox.dmi' //monkestation edit var/speed = 1 var/offset_x = 0 var/offset_y = 0 var/absolute = FALSE + appearance_flags = APPEARANCE_UI | TILE_BOUND //monkestation edit blend_mode = BLEND_ADD plane = PLANE_SPACE_PARALLAX screen_loc = "CENTER-7,CENTER-7" @@ -290,7 +297,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer) if (!view) view = world.view - var/static/parallax_scaler = world.icon_size / 480 + var/static/parallax_scaler = world.icon_size / PARALLAX_ICON_SIZE //monkestation edit // Turn the view size into a grid of correctly scaled overlays var/list/viewscales = getviewsize(view) @@ -302,12 +309,29 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer) if(x == 0 && y == 0) continue var/mutable_appearance/texture_overlay = mutable_appearance(icon, icon_state) - texture_overlay.transform = matrix(1, 0, x*480, 0, 1, y*480) + texture_overlay.transform = matrix(1, 0, x*PARALLAX_ICON_SIZE, 0, 1, y*PARALLAX_ICON_SIZE) //monkestation edit new_overlays += texture_overlay cut_overlays() add_overlay(new_overlays) +//monkestation edit start /atom/movable/screen/parallax_layer/layer_1 + icon_state = "dyable" // monkestation edit + blend_mode = BLEND_OVERLAY + speed = 0.5 + layer = 1 + +/atom/movable/screen/parallax_layer/layer_1/Initialize(mapload, mob/owner) + . = ..() + src.add_atom_colour(GLOB.starlight_color, ADMIN_COLOUR_PRIORITY) + +/atom/movable/screen/parallax_layer/stars + icon_state = "stars" + blend_mode = BLEND_OVERLAY + layer = 1 + speed = 0.5 +//monkestation edit end +/* monkestation removal start icon_state = "layer1" speed = 0.6 layer = 1 @@ -337,7 +361,6 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer) /atom/movable/screen/parallax_layer/random/asteroids icon_state = "asteroids" layer = 4 - /atom/movable/screen/parallax_layer/planet icon_state = "planet" blend_mode = BLEND_OVERLAY @@ -371,3 +394,6 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer) /atom/movable/screen/parallax_layer/planet/update_o() return //Shit won't move +*/ //monkestation removal end + +#undef PARALLAX_ICON_SIZE diff --git a/code/controllers/subsystem/parallax.dm b/code/controllers/subsystem/parallax.dm index 4cc105ce6c1e..29d8b021a8fa 100644 --- a/code/controllers/subsystem/parallax.dm +++ b/code/controllers/subsystem/parallax.dm @@ -7,16 +7,18 @@ SUBSYSTEM_DEF(parallax) var/list/currentrun var/planet_x_offset = 128 var/planet_y_offset = 128 - var/random_layer - var/random_parallax_color + //var/random_layer //monkestation removal + //var/random_parallax_color //monkestation removal //These are cached per client so needs to be done asap so people joining at roundstart do not miss these. /datum/controller/subsystem/parallax/PreInit() . = ..() + /* monkestation removal if(prob(70)) //70% chance to pick a special extra layer random_layer = pick(/atom/movable/screen/parallax_layer/random/space_gas, /atom/movable/screen/parallax_layer/random/asteroids) random_parallax_color = pick(COLOR_TEAL, COLOR_GREEN, COLOR_SILVER, COLOR_YELLOW, COLOR_CYAN, COLOR_ORANGE, COLOR_PURPLE)//Special color for random_layer1. Has to be done here so everyone sees the same color. + monkestation removal end */ planet_y_offset = rand(100, 160) planet_x_offset = rand(100, 160) diff --git a/code/datums/greyscale/config_types/greyscale_configs.dm b/code/datums/greyscale/config_types/greyscale_configs.dm index 37d332fa8484..c25ae7940c5a 100644 --- a/code/datums/greyscale/config_types/greyscale_configs.dm +++ b/code/datums/greyscale/config_types/greyscale_configs.dm @@ -821,7 +821,7 @@ /datum/greyscale_config/buckets_cleanbot name = "Buckets - Cleanbot" - icon_file = 'icons/mob/silicon/aibots.dmi' + icon_file = 'monkestation/code/modules/aesthetics/icons/cleanbot.dmi' //monkestation edit json_config = 'code/datums/greyscale/json_configs/buckets_bot.json' /datum/greyscale_config/buttondown_slacks diff --git a/code/game/area/areas/misc.dm b/code/game/area/areas/misc.dm index e8e17851232b..53f30c563afd 100644 --- a/code/game/area/areas/misc.dm +++ b/code/game/area/areas/misc.dm @@ -7,7 +7,8 @@ static_lighting = FALSE base_lighting_alpha = 255 - base_lighting_color = COLOR_STARLIGHT + base_lighting_color = "#FFFFFF" + power_light = FALSE power_equip = FALSE power_environ = FALSE @@ -18,13 +19,14 @@ sound_environment = SOUND_AREA_SPACE ambient_buzz = null //Space is deafeningly quiet +/area/space/Initialize(mapload) + . = ..() + set_base_lighting(GLOB.starlight_color, alpha) + /area/space/nearstation icon_state = "space_near" area_flags = UNIQUE_AREA | AREA_USES_STARLIGHT static_lighting = TRUE - base_lighting_alpha = 0 - base_lighting_color = COLOR_WHITE - /area/misc/start name = "start area" icon_state = "start" diff --git a/code/game/area/areas/station.dm b/code/game/area/areas/station.dm index 15b14c66f6fe..4d00873a9280 100644 --- a/code/game/area/areas/station.dm +++ b/code/game/area/areas/station.dm @@ -894,6 +894,10 @@ airlock_wires = /datum/wires/airlock/engineering sound_environment = SOUND_AREA_SPACE +/area/station/solars/Initialize(mapload) + . = ..() + set_base_lighting(new_base_lighting_color = GLOB.starlight_color, new_alpha = 255) + /area/station/solars/fore name = "\improper Fore Solar Array" icon_state = "panelsF" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index a2558607418d..79b191d3ea49 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -22,12 +22,21 @@ /// Someone, for the love of god, profile this. Is there a reason to cache mutable_appearance /// if so, why are we JUST doing the airlocks when we can put this in mutable_appearance.dm for /// everything -/proc/get_airlock_overlay(icon_state, icon_file, atom/offset_spokesman, em_block) +/proc/get_airlock_overlay(icon_state, icon_file, atom/offset_spokesman, em_block, state_color = null) // Monkestation Edit - Airlock accent greyscale color support - Added `state_color = null` var/static/list/airlock_overlays = list() - var/base_icon_key = "[icon_state][REF(icon_file)]" + var/base_icon_key = "[icon_state][REF(icon_file)][state_color]" // Monkestation Edit- Airlock accent greyscale color support - ORIGINAL: var/base_icon_key = "[icon_state][REF(icon_file)]" if(!(. = airlock_overlays[base_icon_key])) + /* Monkestation Edit - Airlock accent greyscale color support - ORIGINAL: . = airlock_overlays[base_icon_key] = mutable_appearance(icon_file, icon_state) + */ // Monkestation Edit START + var/mutable_appearance/airlock_overlay = mutable_appearance(icon_file, icon_state) + if(state_color) + airlock_overlay.color = state_color + + . = airlock_overlays[base_icon_key] = airlock_overlay + // Monkestation Edit END + if(isnull(em_block)) return @@ -416,6 +425,7 @@ if(AIRLOCK_DENY, AIRLOCK_OPENING, AIRLOCK_CLOSING, AIRLOCK_EMAG) icon_state = "nonexistenticonstate" //MADNESS +/* monkestation edit /obj/machinery/door/airlock/update_overlays() . = ..() @@ -494,6 +504,7 @@ floorlight.pixel_x = -32 floorlight.pixel_y = 0 . += floorlight +*/ //monkestation end /obj/machinery/door/airlock/do_animate(animation) switch(animation) diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm index f115443ba0a1..54478d61a423 100644 --- a/code/game/objects/items/airlock_painter.dm +++ b/code/game/objects/items/airlock_painter.dm @@ -219,6 +219,14 @@ if(isfloorturf(target) && use_paint(user)) paint_floor(target) + //monkestation edit start + if(iswallturf(target) && use_paint(user) && stored_custom_color) + var/turf/closed/wall/temp = target + if(user.istate & ISTATE_SECONDARY) + temp.change_trim_color(stored_custom_color) + else + temp.change_paint_color(stored_custom_color) + //monkestation edit end /** * Actually add current decal to the floor. diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index bc708e222409..a56c7b5b269d 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -77,15 +77,16 @@ if (flags_1 & ON_BORDER_1) AddElement(/datum/element/connect_loc, loc_connections) //monkestation edit start - var/new_color = SSstation_coloring.get_default_color() - if(glass_color_blend_to_color && glass_color_blend_to_ratio) - glass_color = BlendRGB(new_color, glass_color_blend_to_color, glass_color_blend_to_ratio) - else - glass_color = new_color - if(fulltile) - color = glass_color - if(mapload && fulltile) - new /obj/structure/window_sill(get_turf(src)) + if(uses_color) + var/new_color = SSstation_coloring.get_default_color() + if(glass_color_blend_to_color && glass_color_blend_to_ratio) + glass_color = BlendRGB(new_color, glass_color_blend_to_color, glass_color_blend_to_ratio) + else + glass_color = new_color + if(fulltile) + color = glass_color + if(mapload && fulltile) + new /obj/structure/window_sill(get_turf(src)) //monkestation edit end /obj/structure/window/examine(mob/user) @@ -927,6 +928,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/plasma/spawner, 0) icon = 'icons/obj/smooth_structures/clockwork_window.dmi' icon_state = "clockwork_window_single" glass_type = /obj/item/stack/sheet/bronze + uses_color // monkestation edit /obj/structure/window/bronze/unanchored anchored = FALSE diff --git a/code/game/turfs/open/floor/glass.dm b/code/game/turfs/open/floor/glass.dm index d653492a6b1e..610f11dd7db3 100644 --- a/code/game/turfs/open/floor/glass.dm +++ b/code/game/turfs/open/floor/glass.dm @@ -36,6 +36,7 @@ . = ..() AddElement(/datum/element/turf_z_transparency) setup_glow() + starlight_color = GLOB.starlight_color /turf/open/floor/glass/Destroy() . = ..() diff --git a/code/game/turfs/open/space/space.dm b/code/game/turfs/open/space/space.dm index 383e9ad8ba34..ab783a749c84 100644 --- a/code/game/turfs/open/space/space.dm +++ b/code/game/turfs/open/space/space.dm @@ -1,3 +1,4 @@ +GLOBAL_VAR_INIT(starlight_color, pick(COLOR_TEAL, COLOR_GREEN, COLOR_CYAN, COLOR_ORANGE, COLOR_PURPLE, COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_MAGENTA)) //monkestation addition /turf/open/space icon = 'icons/turf/space.dmi' icon_state = "space" @@ -21,7 +22,9 @@ plane = PLANE_SPACE layer = SPACE_LAYER light_power = 0.75 - light_color = COLOR_STARLIGHT + light_inner_range = 0.1 + light_outer_range = 4 + light_falloff_curve = 5 space_lit = TRUE bullet_bounce_sound = null vis_flags = VIS_INHERIT_ID //when this be added to vis_contents of something it be associated with something on clicking, important for visualisation of turf in openspace and interraction with openspace that show you turf. @@ -112,13 +115,12 @@ continue enable_starlight() return TRUE - set_light(0) + set_light(l_on = FALSE) return FALSE /// Turns on the stars, if they aren't already /turf/open/space/proc/enable_starlight() - if(!light_outer_range) - set_light(2) + set_light(l_color = GLOB.starlight_color, l_on = TRUE) /turf/open/space/attack_paw(mob/user, list/modifiers) return attack_hand(user, modifiers) diff --git a/code/modules/asset_cache/assets/pipes.dm b/code/modules/asset_cache/assets/pipes.dm index f553051ba7e6..98eba9584978 100644 --- a/code/modules/asset_cache/assets/pipes.dm +++ b/code/modules/asset_cache/assets/pipes.dm @@ -2,6 +2,6 @@ name = "pipes" /datum/asset/spritesheet/pipes/create_spritesheets() - for (var/each in list('icons/obj/atmospherics/pipes/pipe_item.dmi', 'icons/obj/atmospherics/pipes/disposal.dmi', 'icons/obj/atmospherics/pipes/transit_tube.dmi', 'icons/obj/plumbing/fluid_ducts.dmi')) + for (var/each in list('icons/obj/atmospherics/pipes/pipe_item.dmi', 'monkestation/icons/obj/atmospherics/pipes/disposal.dmi', 'icons/obj/atmospherics/pipes/transit_tube.dmi', 'icons/obj/plumbing/fluid_ducts.dmi')) InsertAll("", each, GLOB.alldirs) Insert(sprite_name = "gsensor1", I = 'icons/obj/stationobjs.dmi', icon_state = "gsensor1") diff --git a/code/modules/lighting/static_lighting_area.dm b/code/modules/lighting/static_lighting_area.dm index dc8e9c488793..a28d63d56b96 100644 --- a/code/modules/lighting/static_lighting_area.dm +++ b/code/modules/lighting/static_lighting_area.dm @@ -2,12 +2,13 @@ /// Fills with offsets as they are generated GLOBAL_LIST_INIT_TYPED(fullbright_overlays, /mutable_appearance, list(create_fullbright_overlay(0))) -/proc/create_fullbright_overlay(offset) +/proc/create_fullbright_overlay(offset, color) var/mutable_appearance/lighting_effect = mutable_appearance('icons/effects/alphacolors.dmi', "white") SET_PLANE_W_SCALAR(lighting_effect, LIGHTING_PLANE, offset) lighting_effect.layer = LIGHTING_PRIMARY_LAYER lighting_effect.blend_mode = BLEND_ADD - lighting_effect.color = COLOR_STARLIGHT + if(color) + lighting_effect.color = color return lighting_effect /area diff --git a/code/modules/mob/living/simple_animal/slime/emote.dm b/code/modules/mob/living/simple_animal/slime/emote.dm index e8305a29f552..0b70ca3f0ece 100644 --- a/code/modules/mob/living/simple_animal/slime/emote.dm +++ b/code/modules/mob/living/simple_animal/slime/emote.dm @@ -35,10 +35,6 @@ slime_user.current_mood = mood_key slime_user.regenerate_icons() -/datum/emote/slime/mood/sneaky - key = "moodsneaky" - mood_key = "mischievous" - /datum/emote/slime/mood/smile key = "moodsmile" mood_key = ":3" diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 5333450b1fe0..3ff77a9c455f 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -13,9 +13,9 @@ use_power = NO_POWER_USE /// The icon state used by the emitter when it's on. - var/icon_state_on = "emitter_+a" + var/icon_state_on = "emitter-active" //monkestation edit /// The icon state used by the emitter when it's on and low on power. - var/icon_state_underpowered = "emitter_+u" + var/icon_state_underpowered = "emitter-under" //monkestation edit ///Is the machine active? var/active = FALSE ///Does the machine have power? @@ -303,7 +303,7 @@ /obj/machinery/power/emitter/screwdriver_act(mob/living/user, obj/item/item) if(..()) return TRUE - default_deconstruction_screwdriver(user, "emitter_open", "emitter", item) + default_deconstruction_screwdriver(user, "emitter-open", "emitter", item) //monkestation edit return TRUE /// Attempt to toggle the controls lock of the emitter diff --git a/code/modules/recycling/disposal/construction.dm b/code/modules/recycling/disposal/construction.dm index 440f1131443a..3da1d9ada9ee 100644 --- a/code/modules/recycling/disposal/construction.dm +++ b/code/modules/recycling/disposal/construction.dm @@ -53,6 +53,7 @@ icon_state = "[anchored ? "con" : null]disposal" return ..() + icon = initial(pipe_type.icon) icon_state = "[is_pipe() ? "con" : null][initial(pipe_type.icon_state)]" return ..() diff --git a/code/modules/recycling/disposal/multiz.dm b/code/modules/recycling/disposal/multiz.dm index cb91c8f49f27..63b130e230cb 100644 --- a/code/modules/recycling/disposal/multiz.dm +++ b/code/modules/recycling/disposal/multiz.dm @@ -4,11 +4,13 @@ /obj/structure/disposalpipe/trunk/multiz name = "Disposal trunk that goes up" + icon = 'icons/obj/atmospherics/pipes/disposal.dmi' icon_state = "pipe-up" var/multiz_dir = MULTIZ_PIPE_UP ///Set the multiz direction of your trunk. 1 = up, 2 = down /obj/structure/disposalpipe/trunk/multiz/down name = "Disposal trunk that goes down" + icon = 'icons/obj/atmospherics/pipes/disposal.dmi' icon_state = "pipe-down" multiz_dir = MULTIZ_PIPE_DOWN diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index c39261512c53..cccce2a1ebf5 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -367,7 +367,7 @@ if(!stripe_color) return - var/mutable_appearance/stripe = mutable_appearance('icons/obj/machines/research.dmi', "protolate_stripe") + var/mutable_appearance/stripe = mutable_appearance('monkestation/icons/obj/machines/research.dmi', "protolate_stripe") //monkestation edit if(!panel_open) stripe.icon_state = "protolathe_stripe" diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index c28aaf2731c1..ba4ed3eb7288 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -7,8 +7,8 @@ name = "Energy Cannon" desc = "A heavy duty industrial laser." icon = 'icons/obj/engine/singularity.dmi' - icon_state = "emitter_+a" - base_icon_state = "emitter_+a" + icon_state = "emitter-active" + base_icon_state = "emitter-active" anchored = TRUE density = TRUE resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_paradoxclone.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_paradoxclone.png index a760cc28ee96..d7ff8a1ea66e 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_antag_icons_paradoxclone.png and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_paradoxclone.png differ diff --git a/icons/obj/signs.dmi b/icons/obj/signs.dmi index bddf5166764c..2744a8efe905 100644 Binary files a/icons/obj/signs.dmi and b/icons/obj/signs.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 132a5e666a47..97ef3daa5b66 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/airlock.dm b/monkestation/code/modules/aesthetics/airlock/airlock.dm new file mode 100644 index 000000000000..71376df09091 --- /dev/null +++ b/monkestation/code/modules/aesthetics/airlock/airlock.dm @@ -0,0 +1,574 @@ +//SKYRAT ADDITION BEGIN - AESTHETICS +#define AIRLOCK_LIGHT_POWER 0.5 +#define AIRLOCK_LIGHT_RANGE 2 +#define AIRLOCK_LIGHT_ENGINEERING "engineering" +#define AIRLOCK_POWERON_LIGHT_COLOR "#3aa7c2" +#define AIRLOCK_BOLTS_LIGHT_COLOR "#c22323" +#define AIRLOCK_ACCESS_LIGHT_COLOR "#57e69c" +#define AIRLOCK_EMERGENCY_LIGHT_COLOR "#d1d11d" +#define AIRLOCK_ENGINEERING_LIGHT_COLOR "#fd8719" +#define AIRLOCK_DENY_LIGHT_COLOR "#c22323" +//SKYRAT ADDITION END + +#define AIRLOCK_CLOSED 1 +#define AIRLOCK_CLOSING 2 +#define AIRLOCK_OPEN 3 +#define AIRLOCK_OPENING 4 +#define AIRLOCK_DENY 5 +#define AIRLOCK_EMAG 6 + +#define AIRLOCK_FRAME_CLOSED "closed" +#define AIRLOCK_FRAME_CLOSING "closing" +#define AIRLOCK_FRAME_OPEN "open" +#define AIRLOCK_FRAME_OPENING "opening" + +/obj/machinery/door/airlock + doorOpen = 'monkestation/code/modules/aesthetics/airlock/sound/open.ogg' + doorClose = 'monkestation/code/modules/aesthetics/airlock/sound/close.ogg' + boltUp = 'monkestation/code/modules/aesthetics/airlock/sound/bolts_up.ogg' + boltDown = 'monkestation/code/modules/aesthetics/airlock/sound/bolts_down.ogg' + //noPower = 'sound/machines/doorclick.ogg' + var/forcedOpen = 'monkestation/code/modules/aesthetics/airlock/sound/open_force.ogg' //Come on guys, why aren't all the sound files like this. + var/forcedClosed = 'monkestation/code/modules/aesthetics/airlock/sound/close_force.ogg' + + /// For those airlocks you might want to have varying "fillings" for, without having to + /// have an icon file per door with a different filling. + var/fill_state_suffix = null + /// For the airlocks that use greyscale lights, set this to the color you want your lights to be. + var/greyscale_lights_color = null + /// For the airlocks that use a greyscale accent door color, set this color to the accent color you want it to be. + var/greyscale_accent_color = null + + var/has_environment_lights = TRUE //Does this airlock emit a light? + var/light_color_poweron = AIRLOCK_POWERON_LIGHT_COLOR + var/light_color_bolts = AIRLOCK_BOLTS_LIGHT_COLOR + var/light_color_access = AIRLOCK_ACCESS_LIGHT_COLOR + var/light_color_emergency = AIRLOCK_EMERGENCY_LIGHT_COLOR + var/light_color_engineering = AIRLOCK_ENGINEERING_LIGHT_COLOR + var/light_color_deny = AIRLOCK_DENY_LIGHT_COLOR + var/door_light_range = AIRLOCK_LIGHT_RANGE + var/door_light_power = AIRLOCK_LIGHT_POWER + ///Is this door external? E.g. does it lead to space? Shuttle docking systems bolt doors with this flag. + var/external = FALSE + +/obj/machinery/door/airlock/external + external = TRUE + +/obj/machinery/door/airlock/shuttle + external = TRUE + +/obj/machinery/door/airlock/power_change() + ..() + update_icon() + +/obj/machinery/door/airlock/update_overlays() + . = ..() + var/pre_light_range = 0 + var/pre_light_power = 0 + var/pre_light_color = "" + var/lights_overlay = "" + + var/frame_state + var/light_state + switch(airlock_state) + if(AIRLOCK_CLOSED) + frame_state = AIRLOCK_FRAME_CLOSED + if(locked) + light_state = AIRLOCK_LIGHT_BOLTS + lights_overlay = "lights_bolts" + pre_light_color = light_color_bolts + else if(emergency) + light_state = AIRLOCK_LIGHT_EMERGENCY + lights_overlay = "lights_emergency" + pre_light_color = light_color_emergency + else + lights_overlay = "lights_poweron" + pre_light_color = light_color_poweron + if(AIRLOCK_DENY) + frame_state = AIRLOCK_FRAME_CLOSED + light_state = AIRLOCK_LIGHT_DENIED + lights_overlay = "lights_denied" + pre_light_color = light_color_deny + if(AIRLOCK_EMAG) + frame_state = AIRLOCK_FRAME_CLOSED + if(AIRLOCK_CLOSING) + frame_state = AIRLOCK_FRAME_CLOSING + light_state = AIRLOCK_LIGHT_CLOSING + lights_overlay = "lights_closing" + pre_light_color = light_color_access + if(AIRLOCK_OPEN) + frame_state = AIRLOCK_FRAME_OPEN + if(locked) + lights_overlay = "lights_bolts_open" + pre_light_color = light_color_bolts + else if(emergency) + lights_overlay = "lights_emergency_open" + pre_light_color = light_color_emergency + else + lights_overlay = "lights_poweron_open" + pre_light_color = light_color_poweron + if(AIRLOCK_OPENING) + frame_state = AIRLOCK_FRAME_OPENING + light_state = AIRLOCK_LIGHT_OPENING + lights_overlay = "lights_opening" + pre_light_color = light_color_access + + . += get_airlock_overlay(frame_state, icon, src, em_block = TRUE) + if(airlock_material) + . += get_airlock_overlay("[airlock_material]_[frame_state]", overlays_file, src, em_block = TRUE) + else + . += get_airlock_overlay("fill_[frame_state + fill_state_suffix]", icon, src, em_block = TRUE) + + if(greyscale_lights_color && !light_state) + lights_overlay += "_greyscale" + + if(lights && hasPower()) + . += get_airlock_overlay("lights_[light_state]", overlays_file, src, em_block = FALSE) + pre_light_range = door_light_range + pre_light_power = door_light_power + if(has_environment_lights) + set_light(l_outer_range = pre_light_range, l_power = pre_light_power, l_color = pre_light_color, l_on = TRUE) + else + lights_overlay = "" + set_light(l_on = FALSE) + + var/mutable_appearance/lights_appearance = mutable_appearance(overlays_file, lights_overlay, FLOAT_LAYER, src, ABOVE_LIGHTING_PLANE) + + if(greyscale_lights_color && !light_state) + lights_appearance.color = greyscale_lights_color + + + . += lights_appearance + + if(greyscale_accent_color) + . += get_airlock_overlay("[frame_state]_accent", overlays_file, src, em_block = TRUE, state_color = greyscale_accent_color) + + if(panel_open) + . += get_airlock_overlay("panel_[frame_state][security_level ? "_protected" : null]", overlays_file, src, em_block = TRUE) + if(frame_state == AIRLOCK_FRAME_CLOSED && welded) + . += get_airlock_overlay("welded", overlays_file, src, em_block = TRUE) + + if(airlock_state == AIRLOCK_EMAG) + . += get_airlock_overlay("sparks", overlays_file, src, em_block = FALSE) + + if(hasPower()) + if(frame_state == AIRLOCK_FRAME_CLOSED) + if(atom_integrity < integrity_failure * max_integrity) + . += get_airlock_overlay("sparks_broken", overlays_file, src, em_block = FALSE) + else if(atom_integrity < (0.75 * max_integrity)) + . += get_airlock_overlay("sparks_damaged", overlays_file, src, em_block = FALSE) + else if(frame_state == AIRLOCK_FRAME_OPEN) + if(atom_integrity < (0.75 * max_integrity)) + . += get_airlock_overlay("sparks_open", overlays_file, src, em_block = FALSE) + + if(note) + . += get_airlock_overlay(get_note_state(frame_state), note_overlay_file, src, em_block = TRUE) + + if(frame_state == AIRLOCK_FRAME_CLOSED && seal) + . += get_airlock_overlay("sealed", overlays_file, src, em_block = TRUE) + + if(hasPower() && unres_sides) + for(var/heading in list(NORTH,SOUTH,EAST,WEST)) + if(!(unres_sides & heading)) + continue + var/mutable_appearance/floorlight = mutable_appearance('icons/obj/doors/airlocks/station/overlays.dmi', "unres_[heading]", FLOAT_LAYER, src, ABOVE_LIGHTING_PLANE) + switch (heading) + if (NORTH) + floorlight.pixel_x = 0 + floorlight.pixel_y = 32 + if (SOUTH) + floorlight.pixel_x = 0 + floorlight.pixel_y = -32 + if (EAST) + floorlight.pixel_x = 32 + floorlight.pixel_y = 0 + if (WEST) + floorlight.pixel_x = -32 + floorlight.pixel_y = 0 + . += floorlight + +//STATION AIRLOCKS +/obj/machinery/door/airlock + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/public.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi' + +/obj/machinery/door/airlock/command + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/command.dmi' + +/obj/machinery/door/airlock/security + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security.dmi' + +/obj/machinery/door/airlock/security/old + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security2.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_sec/old + +/obj/machinery/door/airlock/security/old/glass + opacity = FALSE + glass = TRUE + normal_integrity = 400 + +/obj/machinery/door/airlock/engineering + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/engineering.dmi' + +/obj/machinery/door/airlock/medical + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/medical.dmi' + +/obj/machinery/door/airlock/maintenance + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/maintenance.dmi' + +/obj/machinery/door/airlock/maintenance/external + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/maintenanceexternal.dmi' + +/obj/machinery/door/airlock/mining + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/mining.dmi' + +/obj/machinery/door/airlock/atmos + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/atmos.dmi' + +/obj/machinery/door/airlock/research + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/research.dmi' + +/obj/machinery/door/airlock/freezer + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/freezer.dmi' + +/obj/machinery/door/airlock/science + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/science.dmi' + +/obj/machinery/door/airlock/virology + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/virology.dmi' + +//STATION CUSTOM ARILOCKS +/obj/machinery/door/airlock/corporate + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/corporate.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_corporate + normal_integrity = 450 + +/obj/machinery/door/airlock/corporate/glass + opacity = FALSE + glass = TRUE + normal_integrity = 400 + +/obj/machinery/door/airlock/service + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/service.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_service + +/obj/machinery/door/airlock/service/glass + opacity = FALSE + glass = TRUE + +/obj/machinery/door/airlock/captain + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/cap.dmi' + +/obj/machinery/door/airlock/hop + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hop.dmi' + +/obj/machinery/door/airlock/hos + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hos.dmi' + +/obj/machinery/door/airlock/hos/glass + opacity = FALSE + glass = TRUE + normal_integrity = 400 + +/obj/machinery/door/airlock/ce + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/ce.dmi' + +/obj/machinery/door/airlock/ce/glass + opacity = FALSE + glass = TRUE + normal_integrity = 400 + +/obj/machinery/door/airlock/rd + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/rd.dmi' + +/obj/machinery/door/airlock/rd/glass + opacity = FALSE + glass = TRUE + normal_integrity = 400 + +/obj/machinery/door/airlock/qm + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/qm.dmi' + +/obj/machinery/door/airlock/qm/glass + opacity = FALSE + glass = TRUE + normal_integrity = 400 + +/obj/machinery/door/airlock/cmo + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/cmo.dmi' + +/obj/machinery/door/airlock/cmo/glass + opacity = FALSE + glass = TRUE + normal_integrity = 400 + +/obj/machinery/door/airlock/psych + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/psych.dmi' + +/obj/machinery/door/airlock/asylum + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/asylum.dmi' + +/obj/machinery/door/airlock/bathroom + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/bathroom.dmi' + +//STATION MINERAL AIRLOCKS +/obj/machinery/door/airlock/gold + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/gold.dmi' + +/obj/machinery/door/airlock/silver + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/silver.dmi' + +/obj/machinery/door/airlock/diamond + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/diamond.dmi' + +/obj/machinery/door/airlock/uranium + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/uranium.dmi' + +/obj/machinery/door/airlock/plasma + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/plasma.dmi' + +/obj/machinery/door/airlock/bananium + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/bananium.dmi' + +/obj/machinery/door/airlock/sandstone + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/sandstone.dmi' + +/obj/machinery/door/airlock/wood + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/wood.dmi' + +//STATION 2 AIRLOCKS + +/obj/machinery/door/airlock/public + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station2/glass.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi' + +//EXTERNAL AIRLOCKS +/obj/machinery/door/airlock/external + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/external/external.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/external/overlays.dmi' + +//CENTCOM +/obj/machinery/door/airlock/centcom + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/centcom.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi' + +/obj/machinery/door/airlock/grunge + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/centcom.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi' + +//VAULT +/obj/machinery/door/airlock/vault + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/vault/vault.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi' + +//HATCH +/obj/machinery/door/airlock/hatch + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/centcom.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi' + +/obj/machinery/door/airlock/maintenance_hatch + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/maintenance.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi' + +//HIGH SEC +/obj/machinery/door/airlock/highsecurity + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/highsec/highsec.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi' + +//ASSEMBLYS +/obj/structure/door_assembly/door_assembly_public + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station2/glass.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi' + +/obj/structure/door_assembly/door_assembly_com + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/command.dmi' + +/obj/structure/door_assembly/door_assembly_sec + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security.dmi' + +/obj/structure/door_assembly/door_assembly_sec/old + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security2.dmi' + +/obj/structure/door_assembly/door_assembly_eng + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/engineering.dmi' + +/obj/structure/door_assembly/door_assembly_min + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/mining.dmi' + +/obj/structure/door_assembly/door_assembly_atmo + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/atmos.dmi' + +/obj/structure/door_assembly/door_assembly_research + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/research.dmi' + +/obj/structure/door_assembly/door_assembly_science + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/science.dmi' + +/obj/structure/door_assembly/door_assembly_viro + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/virology.dmi' + +/obj/structure/door_assembly/door_assembly_med + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/medical.dmi' + +/obj/structure/door_assembly/door_assembly_mai + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/maintenance.dmi' + +/obj/structure/door_assembly/door_assembly_extmai + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/maintenanceexternal.dmi' + +/obj/structure/door_assembly/door_assembly_ext + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/external/external.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/external/overlays.dmi' + +/obj/structure/door_assembly/door_assembly_fre + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/freezer.dmi' + +/obj/structure/door_assembly/door_assembly_hatch + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/centcom.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi' + +/obj/structure/door_assembly/door_assembly_mhatch + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/maintenance.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi' + +/obj/structure/door_assembly/door_assembly_highsecurity + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/highsec/highsec.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi' + +/obj/structure/door_assembly/door_assembly_vault + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/vault/vault.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi' + + +/obj/structure/door_assembly/door_assembly_centcom + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/centcom.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi' + +/obj/structure/door_assembly/door_assembly_grunge + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/centcom.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi' + +/obj/structure/door_assembly/door_assembly_gold + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/gold.dmi' + +/obj/structure/door_assembly/door_assembly_silver + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/silver.dmi' + +/obj/structure/door_assembly/door_assembly_diamond + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/diamond.dmi' + +/obj/structure/door_assembly/door_assembly_uranium + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/uranium.dmi' + +/obj/structure/door_assembly/door_assembly_plasma + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/plasma.dmi' + +/obj/structure/door_assembly/door_assembly_bananium + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/bananium.dmi' + +/obj/structure/door_assembly/door_assembly_sandstone + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/sandstone.dmi' + +/obj/structure/door_assembly/door_assembly_wood + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/wood.dmi' + +/obj/structure/door_assembly/door_assembly_corporate + name = "corporate airlock assembly" + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/corporate.dmi' + glass_type = /obj/machinery/door/airlock/corporate/glass + airlock_type = /obj/machinery/door/airlock/corporate + +/obj/structure/door_assembly/door_assembly_service + name = "service airlock assembly" + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/service.dmi' + base_name = "service airlock" + glass_type = /obj/machinery/door/airlock/service/glass + airlock_type = /obj/machinery/door/airlock/service + +/obj/structure/door_assembly/door_assembly_captain + name = "captain airlock assembly" + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/cap.dmi' + glass_type = /obj/machinery/door/airlock/command/glass + airlock_type = /obj/machinery/door/airlock/captain + +/obj/structure/door_assembly/door_assembly_hop + name = "head of personnel airlock assembly" + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hop.dmi' + glass_type = /obj/machinery/door/airlock/command/glass + airlock_type = /obj/machinery/door/airlock/hop + +/obj/structure/door_assembly/hos + name = "head of security airlock assembly" + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/hos.dmi' + glass_type = /obj/machinery/door/airlock/hos/glass + airlock_type = /obj/machinery/door/airlock/hos + +/obj/structure/door_assembly/door_assembly_cmo + name = "chief medical officer airlock assembly" + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/cmo.dmi' + glass_type = /obj/machinery/door/airlock/cmo/glass + airlock_type = /obj/machinery/door/airlock/cmo + +/obj/structure/door_assembly/door_assembly_ce + name = "chief engineer airlock assembly" + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/ce.dmi' + glass_type = /obj/machinery/door/airlock/ce/glass + airlock_type = /obj/machinery/door/airlock/ce + +/obj/structure/door_assembly/door_assembly_rd + name = "research director airlock assembly" + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/rd.dmi' + glass_type = /obj/machinery/door/airlock/rd/glass + airlock_type = /obj/machinery/door/airlock/rd + +/obj/structure/door_assembly/door_assembly_qm + name = "quartermaster airlock assembly" + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/qm.dmi' + glass_type = /obj/machinery/door/airlock/qm/glass + airlock_type = /obj/machinery/door/airlock/qm + +/obj/structure/door_assembly/door_assembly_psych + name = "psychologist airlock assembly" + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/psych.dmi' + glass_type = /obj/machinery/door/airlock/medical/glass + airlock_type = /obj/machinery/door/airlock/psych + +/obj/structure/door_assembly/door_assembly_asylum + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/asylum.dmi' + +/obj/structure/door_assembly/door_assembly_bathroom + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/bathroom.dmi' + +/obj/machinery/door/airlock/hydroponics + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/botany.dmi' + +/obj/structure/door_assembly/door_assembly_hydro + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/botany.dmi' + +/obj/structure/door_assembly/ + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/public.dmi' + overlays_file = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi' + +//SKYRAT EDIT ADDITION BEGIN - AESTHETICS +#undef AIRLOCK_LIGHT_POWER +#undef AIRLOCK_LIGHT_RANGE +#undef AIRLOCK_LIGHT_ENGINEERING +#undef AIRLOCK_ENGINEERING_LIGHT_COLOR +#undef AIRLOCK_POWERON_LIGHT_COLOR +#undef AIRLOCK_BOLTS_LIGHT_COLOR +#undef AIRLOCK_ACCESS_LIGHT_COLOR +#undef AIRLOCK_EMERGENCY_LIGHT_COLOR +#undef AIRLOCK_DENY_LIGHT_COLOR +//SKYRAT EDIT END + +#undef AIRLOCK_CLOSED +#undef AIRLOCK_CLOSING +#undef AIRLOCK_OPEN +#undef AIRLOCK_OPENING +#undef AIRLOCK_DENY +#undef AIRLOCK_EMAG + +#undef AIRLOCK_FRAME_CLOSED +#undef AIRLOCK_FRAME_CLOSING +#undef AIRLOCK_FRAME_OPEN +#undef AIRLOCK_FRAME_OPENING diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/asylum.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/asylum.dmi new file mode 100644 index 000000000000..63426497348f Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/asylum.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/bathroom.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/bathroom.dmi new file mode 100644 index 000000000000..68fd49dc9ac1 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/bathroom.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/cap.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/cap.dmi new file mode 100644 index 000000000000..7417588b5390 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/cap.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/ce.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/ce.dmi new file mode 100644 index 000000000000..61825c893a43 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/ce.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/centcom.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/centcom.dmi new file mode 100644 index 000000000000..9d45122dd12c Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/centcom.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi new file mode 100644 index 000000000000..f47a46ad0033 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/centcom/overlays.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/cmo.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/cmo.dmi new file mode 100644 index 000000000000..a44e60ac2c62 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/cmo.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/external/external.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/external/external.dmi new file mode 100644 index 000000000000..cf0c7e78c28f Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/external/external.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/external/overlays.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/external/overlays.dmi new file mode 100644 index 000000000000..7e0080f78c84 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/external/overlays.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/centcom.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/centcom.dmi new file mode 100644 index 000000000000..64d15207b599 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/centcom.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/maintenance.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/maintenance.dmi new file mode 100644 index 000000000000..3303591517f6 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/maintenance.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi new file mode 100644 index 000000000000..662f12813daa Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/highsec/highsec.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/highsec/highsec.dmi new file mode 100644 index 000000000000..eb5e312d93c9 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/highsec/highsec.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi new file mode 100644 index 000000000000..580ca671550a Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hop.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hop.dmi new file mode 100644 index 000000000000..c17a3c2cebe7 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hop.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hos.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hos.dmi new file mode 100644 index 000000000000..9ddc7cb63ba1 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/hos.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile/multi_tile.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile/multi_tile.dmi new file mode 100644 index 000000000000..a400cb6c61d7 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile/multi_tile.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile/overlays.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile/overlays.dmi new file mode 100644 index 000000000000..a6a2b0201387 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile/overlays.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile2/multi_tile.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile2/multi_tile.dmi new file mode 100644 index 000000000000..08175c4e7fa9 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile2/multi_tile.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile2/overlays.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile2/overlays.dmi new file mode 100644 index 000000000000..7de2b627a455 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/multi_tile2/overlays.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/psych.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/psych.dmi new file mode 100644 index 000000000000..0d87893f074d Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/psych.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/qm.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/qm.dmi new file mode 100644 index 000000000000..0ebfb5fd5e47 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/qm.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/rd.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/rd.dmi new file mode 100644 index 000000000000..cac461fb63c5 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/rd.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/shuttle/erokez.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/shuttle/erokez.dmi new file mode 100644 index 000000000000..da8d47bd152b Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/shuttle/erokez.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi new file mode 100644 index 000000000000..d418e45f603d Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/shuttle/wagon.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/shuttle/wagon.dmi new file mode 100644 index 000000000000..c92e9f9199c9 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/shuttle/wagon.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/atmos.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/atmos.dmi new file mode 100644 index 000000000000..b70c027d293d Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/atmos.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/bananium.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/bananium.dmi new file mode 100644 index 000000000000..8254c48a5b31 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/bananium.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/botany.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/botany.dmi new file mode 100644 index 000000000000..5df4a273cacc Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/botany.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/command.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/command.dmi new file mode 100644 index 000000000000..affe4c1fd2f9 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/command.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/corporate.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/corporate.dmi new file mode 100644 index 000000000000..0f5f8ebaea28 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/corporate.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/diamond.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/diamond.dmi new file mode 100644 index 000000000000..e7ec1cffb65d Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/diamond.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/engineering.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/engineering.dmi new file mode 100644 index 000000000000..79f7ce38c464 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/engineering.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/freezer.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/freezer.dmi new file mode 100644 index 000000000000..e0d2c4c52632 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/freezer.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/gold.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/gold.dmi new file mode 100644 index 000000000000..a2977d95cf9d Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/gold.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/maintenance.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/maintenance.dmi new file mode 100644 index 000000000000..f3f73be3ebcf Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/maintenance.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/maintenanceexternal.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/maintenanceexternal.dmi new file mode 100644 index 000000000000..c7d8e6154e8a Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/maintenanceexternal.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/medical.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/medical.dmi new file mode 100644 index 000000000000..e7e46b612171 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/medical.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/mining.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/mining.dmi new file mode 100644 index 000000000000..65abb9f3976a Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/mining.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi new file mode 100644 index 000000000000..8530f0753db2 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/plasma.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/plasma.dmi new file mode 100644 index 000000000000..a90fa8f0bce5 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/plasma.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/public.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/public.dmi new file mode 100644 index 000000000000..4f27d1f8fdb5 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/public.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/research.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/research.dmi new file mode 100644 index 000000000000..15743bb656a5 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/research.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/sandstone.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/sandstone.dmi new file mode 100644 index 000000000000..ac4dc7179059 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/sandstone.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/science.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/science.dmi new file mode 100644 index 000000000000..bf9beefbfe91 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/science.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security.dmi new file mode 100644 index 000000000000..8e7094e2c724 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security2.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security2.dmi new file mode 100644 index 000000000000..c7eff23f6c80 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security2.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/securitysoul.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/securitysoul.dmi new file mode 100644 index 000000000000..2781f4767c42 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/securitysoul.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/service.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/service.dmi new file mode 100644 index 000000000000..ad5f8da851bb Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/service.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/silver.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/silver.dmi new file mode 100644 index 000000000000..47105c88bf14 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/silver.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/uranium.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/uranium.dmi new file mode 100644 index 000000000000..d23811bacd40 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/uranium.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/virology.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/virology.dmi new file mode 100644 index 000000000000..27f504db8116 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/virology.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/wood.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/wood.dmi new file mode 100644 index 000000000000..b5973a7219f2 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/wood.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station2/glass.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station2/glass.dmi new file mode 100644 index 000000000000..bd0a6ddb2e17 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station2/glass.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi new file mode 100644 index 000000000000..1342376d98c7 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi new file mode 100644 index 000000000000..992e678d010f Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/vault/vault.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/vault/vault.dmi new file mode 100644 index 000000000000..9c41b5ac8eb7 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/vault/vault.dmi differ diff --git a/monkestation/code/modules/aesthetics/airlock/sound/bolts_down.ogg b/monkestation/code/modules/aesthetics/airlock/sound/bolts_down.ogg new file mode 100644 index 000000000000..19d62b8acb2a Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/sound/bolts_down.ogg differ diff --git a/monkestation/code/modules/aesthetics/airlock/sound/bolts_up.ogg b/monkestation/code/modules/aesthetics/airlock/sound/bolts_up.ogg new file mode 100644 index 000000000000..0aac1a44fcc5 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/sound/bolts_up.ogg differ diff --git a/monkestation/code/modules/aesthetics/airlock/sound/close.ogg b/monkestation/code/modules/aesthetics/airlock/sound/close.ogg new file mode 100644 index 000000000000..db94b73fb4b6 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/sound/close.ogg differ diff --git a/monkestation/code/modules/aesthetics/airlock/sound/close_force.ogg b/monkestation/code/modules/aesthetics/airlock/sound/close_force.ogg new file mode 100644 index 000000000000..28b190d8e095 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/sound/close_force.ogg differ diff --git a/monkestation/code/modules/aesthetics/airlock/sound/creaking.ogg b/monkestation/code/modules/aesthetics/airlock/sound/creaking.ogg new file mode 100644 index 000000000000..ccdc30b3191a Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/sound/creaking.ogg differ diff --git a/monkestation/code/modules/aesthetics/airlock/sound/open.ogg b/monkestation/code/modules/aesthetics/airlock/sound/open.ogg new file mode 100644 index 000000000000..0b8a0d5f94f1 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/sound/open.ogg differ diff --git a/monkestation/code/modules/aesthetics/airlock/sound/open_force.ogg b/monkestation/code/modules/aesthetics/airlock/sound/open_force.ogg new file mode 100644 index 000000000000..4caefc0b9e4d Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/sound/open_force.ogg differ diff --git a/monkestation/code/modules/aesthetics/airlock/sound/toggle.ogg b/monkestation/code/modules/aesthetics/airlock/sound/toggle.ogg new file mode 100644 index 000000000000..58a06817f008 Binary files /dev/null and b/monkestation/code/modules/aesthetics/airlock/sound/toggle.ogg differ diff --git a/monkestation/code/modules/aesthetics/icons/airalarm.dmi b/monkestation/code/modules/aesthetics/icons/airalarm.dmi new file mode 100644 index 000000000000..577a58f29331 Binary files /dev/null and b/monkestation/code/modules/aesthetics/icons/airalarm.dmi differ diff --git a/monkestation/code/modules/aesthetics/icons/apc.dmi b/monkestation/code/modules/aesthetics/icons/apc.dmi new file mode 100644 index 000000000000..41db02c539ba Binary files /dev/null and b/monkestation/code/modules/aesthetics/icons/apc.dmi differ diff --git a/monkestation/code/modules/aesthetics/icons/camera.dmi b/monkestation/code/modules/aesthetics/icons/camera.dmi new file mode 100644 index 000000000000..7f6ff288af9c Binary files /dev/null and b/monkestation/code/modules/aesthetics/icons/camera.dmi differ diff --git a/monkestation/code/modules/aesthetics/icons/chemical_tanks.dmi b/monkestation/code/modules/aesthetics/icons/chemical_tanks.dmi new file mode 100644 index 000000000000..b4a3e2888fc8 Binary files /dev/null and b/monkestation/code/modules/aesthetics/icons/chemical_tanks.dmi differ diff --git a/monkestation/code/modules/aesthetics/icons/cleanbot.dmi b/monkestation/code/modules/aesthetics/icons/cleanbot.dmi new file mode 100644 index 000000000000..5b4679729f2e Binary files /dev/null and b/monkestation/code/modules/aesthetics/icons/cleanbot.dmi differ diff --git a/monkestation/code/modules/aesthetics/mobs/slime.dm b/monkestation/code/modules/aesthetics/mobs/slime.dm new file mode 100644 index 000000000000..98a9eec3ab89 --- /dev/null +++ b/monkestation/code/modules/aesthetics/mobs/slime.dm @@ -0,0 +1,11 @@ +/mob/living/simple_animal/slime + icon = 'monkestation/icons/mob/slimes.dmi' + +/obj/item/stock_parts/cell/emproof/slime + icon = 'monkestation/icons/mob/slimes.dmi' + +/obj/item/slime_extract + icon = 'monkestation/icons/mob/slimes.dmi' + +/obj/item/stock_parts/cell/high/slime_hypercharged + icon = 'monkestation/icons/mob/slimes.dmi' diff --git a/monkestation/code/modules/aesthetics/objects/misc.dm b/monkestation/code/modules/aesthetics/objects/misc.dm new file mode 100644 index 000000000000..4f1a88bb0316 --- /dev/null +++ b/monkestation/code/modules/aesthetics/objects/misc.dm @@ -0,0 +1,59 @@ +/obj/machinery/field/containment + icon = 'monkestation/icons/obj/engine/singularity.dmi' + +/obj/machinery/power/emitter + icon = 'monkestation/icons/obj/engine/singularity.dmi' + +/obj/machinery/power/emitter/energycannon + icon = 'monkestation/icons/obj/engine/singularity.dmi' + +/obj/machinery/field/generator + icon = 'monkestation/icons/obj/machines/field_generator.dmi' + +/obj/machinery/rnd/production + icon = 'monkestation/icons/obj/machines/research.dmi' + +/obj/machinery/rnd/production/circuit_imprinter + icon = 'monkestation/icons/obj/machines/research.dmi' + +/obj/machinery/rnd/destructive_analyzer + icon = 'monkestation/icons/obj/machines/research.dmi' + +/obj/machinery/disposal + icon = 'monkestation/icons/obj/atmospherics/pipes/disposal.dmi' + +/obj/structure/disposalconstruct + icon = 'monkestation/icons/obj/atmospherics/pipes/disposal.dmi' + +/obj/structure/disposaloutlet + icon = 'monkestation/icons/obj/atmospherics/pipes/disposal.dmi' + +/obj/structure/disposalpipe + icon = 'monkestation/icons/obj/atmospherics/pipes/disposal.dmi' + +/obj/item/wallframe/airalarm + icon = 'monkestation/code/modules/aesthetics/icons/airalarm.dmi' + +/obj/machinery/airalarm + icon = 'monkestation/code/modules/aesthetics/icons/airalarm.dmi' + +/obj/machinery/power/apc + icon = 'monkestation/code/modules/aesthetics/icons/apc.dmi' + +/obj/item/wallframe/apc + icon = 'monkestation/code/modules/aesthetics/icons/apc.dmi' + +/obj/structure/reagent_dispensers + icon = 'monkestation/code/modules/aesthetics/icons/chemical_tanks.dmi' + +/obj/machinery/camera + icon = 'monkestation/code/modules/aesthetics/icons/camera.dmi' + +/obj/item/wallframe/camera + icon = 'monkestation/code/modules/aesthetics/icons/camera.dmi' + +/obj/structure/camera_assembly + icon = 'monkestation/code/modules/aesthetics/icons/camera.dmi' + +/mob/living/simple_animal/bot/cleanbot + icon = 'monkestation/code/modules/aesthetics/icons/cleanbot.dmi' diff --git a/monkestation/code/modules/aesthetics/objects/windows.dm b/monkestation/code/modules/aesthetics/objects/windows.dm index 8b4aa1d3cf00..b13fefdb80e4 100644 --- a/monkestation/code/modules/aesthetics/objects/windows.dm +++ b/monkestation/code/modules/aesthetics/objects/windows.dm @@ -2,6 +2,7 @@ var/glass_color var/glass_color_blend_to_color var/glass_color_blend_to_ratio + var/uses_color = TRUE /obj/structure/window/proc/change_color(new_color) if(glass_color_blend_to_color && glass_color_blend_to_ratio) diff --git a/monkestation/code/modules/aesthetics/subsystem/coloring.dm b/monkestation/code/modules/aesthetics/subsystem/coloring.dm index dd9cf649398d..4b06769dbabb 100644 --- a/monkestation/code/modules/aesthetics/subsystem/coloring.dm +++ b/monkestation/code/modules/aesthetics/subsystem/coloring.dm @@ -26,7 +26,7 @@ SUBSYSTEM_DEF(station_coloring) /area/station/service/hydroponics), pick(blue) = typesof(/area/station/medical), pick(bar) = list(/area/station/service/bar), - pick(brown) = typesof(/area/station/cargo), + pick(brown) = typesof(/area/station/cargo) + typesof(/area/mine), COLOR_WHITE = typesof(/area/shuttle), COLOR_WHITE = typesof(/area/centcom), ) @@ -58,7 +58,7 @@ SUBSYSTEM_DEF(station_coloring) /area/station/service/hydroponics), pick(blue) = typesof(/area/station/medical), pick(bar) = list(/area/station/service/bar), - pick(brown) = typesof(/area/station/cargo), + pick(brown) = typesof(/area/station/cargo) + typesof(/area/mine), COLOR_WHITE = typesof(/area/shuttle), COLOR_WHITE = typesof(/area/centcom), ) diff --git a/monkestation/code/modules/aesthetics/walls/iron.dm b/monkestation/code/modules/aesthetics/walls/iron.dm index 64f3c9e0b0d7..3bc9dd3ca035 100644 --- a/monkestation/code/modules/aesthetics/walls/iron.dm +++ b/monkestation/code/modules/aesthetics/walls/iron.dm @@ -16,18 +16,6 @@ paint_color = color update_appearance() -/turf/closed/wall/attacked_by(obj/item/attacking_item, mob/living/user) - . = ..() - if(wall_trim) - if(istype(attacking_item, /obj/item/airlock_painter/decal)) - var/obj/item/airlock_painter/decal/new_painter = attacking_item - if(user.istate & ISTATE_SECONDARY) - if(new_painter.stored_custom_color) - change_trim_color(new_painter.stored_custom_color) - else - if(new_painter.stored_custom_color) - change_paint_color(new_painter.stored_custom_color) - /turf/closed/wall/update_appearance() . = ..() if(wall_trim) @@ -47,7 +35,20 @@ /turf/closed/wall/smooth_icon() . = ..() - update_appearance() + if(wall_trim) + cut_overlay(managed_wall_trim) + managed_wall_trim = list() + var/image/new_trim = image("icon" = wall_trim, "icon_state" = icon_state, "layer" = src.layer + 0.02) + new_trim.color = trim_color + managed_wall_trim += new_trim + add_overlay(managed_wall_trim) + if(paint_color) + cut_overlay(managed_wall_paint) + managed_wall_paint = list() + var/image/new_trim = image("icon" = icon, "icon_state" = icon_state, "layer" = src.layer + 0.01) + new_trim.color = paint_color + managed_wall_paint += new_trim + add_overlay(managed_wall_paint) /turf/closed/wall/r_wall icon = 'monkestation/icons/turf/walls/reinforced_wall.dmi' @@ -66,3 +67,11 @@ canSmoothWith = SMOOTH_GROUP_AIRLOCK + SMOOTH_GROUP_WINDOW_FULLTILE + SMOOTH_GROUP_WALLS ///pulled from the wall wall_trim = 'monkestation/icons/turf/walls/reinforced_wall_trim.dmi' + + +/turf/closed/indestructible/riveted + icon = 'monkestation/icons/turf/walls/reinforced_wall.dmi' + base_icon_state = "reinforced_wall" + icon_state = "reinforced_wall-0" + smoothing_groups = SMOOTH_GROUP_WALLS + canSmoothWith = SMOOTH_GROUP_AIRLOCK + SMOOTH_GROUP_WINDOW_FULLTILE + SMOOTH_GROUP_WALLS diff --git a/monkestation/code/modules/cryopods/_cryopod.dm b/monkestation/code/modules/cryopods/_cryopod.dm index 14f664c4a03e..3c9333f8c128 100644 --- a/monkestation/code/modules/cryopods/_cryopod.dm +++ b/monkestation/code/modules/cryopods/_cryopod.dm @@ -373,6 +373,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/cryopod, 32) item_content.dropped(mob_occupant) control_computer.frozen_item += item_content for(var/list/stored as anything in control_computer.frozen_crew) + if(!istype(stored)) + continue if(stored["name"] == stored_name) stored["items"] += item_content else diff --git a/monkestation/code/modules/loadouts/items/pocket.dm b/monkestation/code/modules/loadouts/items/pocket.dm index 77fcfecbc57d..b36497c6de84 100644 --- a/monkestation/code/modules/loadouts/items/pocket.dm +++ b/monkestation/code/modules/loadouts/items/pocket.dm @@ -110,15 +110,15 @@ GLOBAL_LIST_INIT(loadout_pocket_items, generate_loadout_items(/datum/loadout_ite name = "Zippo Lighter" item_path = /obj/item/lighter -/datum/loadout_item/pocket_items/zippolighter +/datum/loadout_item/pocket_items/illumative_lighter name = "Illuminative Lighter" item_path = /obj/item/lighter/bright -/datum/loadout_item/pocket_items/zippolighter +/datum/loadout_item/pocket_items/skull_lighter name = "Skull Zippo Lighter" item_path = /obj/item/lighter/skull -/datum/loadout_item/pocket_items/zippolighter +/datum/loadout_item/pocket_items/mime_lighter name = "Mime Lighter" item_path = /obj/item/lighter/mime diff --git a/monkestation/code/modules/outdoors/code/controllers/subsystem/particle_weather.dm b/monkestation/code/modules/outdoors/code/controllers/subsystem/particle_weather.dm index 352d7783b191..e9ed48cb12be 100644 --- a/monkestation/code/modules/outdoors/code/controllers/subsystem/particle_weather.dm +++ b/monkestation/code/modules/outdoors/code/controllers/subsystem/particle_weather.dm @@ -84,6 +84,8 @@ SUBSYSTEM_DEF(particle_weather) return weather_effect /datum/controller/subsystem/particle_weather/proc/set_particle_effect(particles/P) + if(!P) + return particle_effect = P weather_effect.particles = particle_effect diff --git a/monkestation/code/modules/possession/_mob_holder.dm b/monkestation/code/modules/possession/_mob_holder.dm index 1efe07182c62..0660c7ef64dd 100644 --- a/monkestation/code/modules/possession/_mob_holder.dm +++ b/monkestation/code/modules/possession/_mob_holder.dm @@ -31,6 +31,14 @@ ///the held head item var/obj/item/head +/mob/living/basic/possession_holder/Destroy() + . = ..() + stored_item = null + if(id) + id.forceMove(get_turf(src)) + if(head) + head.forceMove(get_turf(src)) + /mob/living/basic/possession_holder/New(loc, obj/item/_stored_item, _l_y_shift = list(0, 0, 0, 0), _r_y_shift = list(0, 0, 0, 0), _r_x_shift = list(0, 0, 0, 0), _l_x_shift = list(0, 0, 0, 0), _head_y_shift = list(0, 0, 0, 0), _head_x_shift = list(0, 0, 0, 0)) . = ..() if(!_stored_item) diff --git a/monkestation/code/modules/power/singularity/rad_collector.dm b/monkestation/code/modules/power/singularity/rad_collector.dm index f900df9a52ce..2b1ac62bc1b8 100644 --- a/monkestation/code/modules/power/singularity/rad_collector.dm +++ b/monkestation/code/modules/power/singularity/rad_collector.dm @@ -9,7 +9,7 @@ /obj/machinery/power/rad_collector name = "Radiation Collector Array" desc = "A device which uses radiation and plasma to produce power." - icon = 'icons/obj/engine/singularity.dmi' + icon = 'monkestation/icons/obj/engine/singularity.dmi' icon_state = "ca" anchored = FALSE density = TRUE diff --git a/monkestation/icons/effects/parallax/ORIGINAL.dmi b/monkestation/icons/effects/parallax/ORIGINAL.dmi new file mode 100644 index 000000000000..2cd02de6f5df Binary files /dev/null and b/monkestation/icons/effects/parallax/ORIGINAL.dmi differ diff --git a/monkestation/icons/effects/parallax/parallax.dmi b/monkestation/icons/effects/parallax/parallax.dmi new file mode 100644 index 000000000000..f5397292396d Binary files /dev/null and b/monkestation/icons/effects/parallax/parallax.dmi differ diff --git a/monkestation/icons/effects/skybox.dmi b/monkestation/icons/effects/skybox.dmi new file mode 100644 index 000000000000..5fa20f8ca1bc Binary files /dev/null and b/monkestation/icons/effects/skybox.dmi differ diff --git a/monkestation/icons/mob/slimes.dmi b/monkestation/icons/mob/slimes.dmi new file mode 100644 index 000000000000..59df9ad7f25f Binary files /dev/null and b/monkestation/icons/mob/slimes.dmi differ diff --git a/monkestation/icons/obj/atmospherics/pipes/disposal.dmi b/monkestation/icons/obj/atmospherics/pipes/disposal.dmi new file mode 100644 index 000000000000..039bc82390bf Binary files /dev/null and b/monkestation/icons/obj/atmospherics/pipes/disposal.dmi differ diff --git a/monkestation/icons/obj/engine/singularity.dmi b/monkestation/icons/obj/engine/singularity.dmi new file mode 100644 index 000000000000..79fe277172f8 Binary files /dev/null and b/monkestation/icons/obj/engine/singularity.dmi differ diff --git a/monkestation/icons/obj/machines/field_generator.dmi b/monkestation/icons/obj/machines/field_generator.dmi new file mode 100644 index 000000000000..74172add6ee6 Binary files /dev/null and b/monkestation/icons/obj/machines/field_generator.dmi differ diff --git a/monkestation/icons/obj/machines/research.dmi b/monkestation/icons/obj/machines/research.dmi index a8f43dedf161..a9ed2ec7736b 100644 Binary files a/monkestation/icons/obj/machines/research.dmi and b/monkestation/icons/obj/machines/research.dmi differ diff --git a/monkestation/icons/turf/walls/reinforced_wall.dmi b/monkestation/icons/turf/walls/reinforced_wall.dmi index 50944160ec40..7b866dc142c4 100644 Binary files a/monkestation/icons/turf/walls/reinforced_wall.dmi and b/monkestation/icons/turf/walls/reinforced_wall.dmi differ diff --git a/monkestation/icons/turf/walls/wall.dmi b/monkestation/icons/turf/walls/wall.dmi index b743d48b5c96..95f226902097 100644 Binary files a/monkestation/icons/turf/walls/wall.dmi and b/monkestation/icons/turf/walls/wall.dmi differ diff --git a/tgstation.dme b/tgstation.dme index f0134d12acd9..b17d9ef3d37d 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5370,6 +5370,9 @@ #include "monkestation\code\game\objects\items\storage\boxes.dm" #include "monkestation\code\game\objects\items\storage\uplink_kits.dm" #include "monkestation\code\modules\admin\antag_tokens.dm" +#include "monkestation\code\modules\aesthetics\airlock\airlock.dm" +#include "monkestation\code\modules\aesthetics\mobs\slime.dm" +#include "monkestation\code\modules\aesthetics\objects\misc.dm" #include "monkestation\code\modules\aesthetics\objects\window_sill.dm" #include "monkestation\code\modules\aesthetics\objects\windows.dm" #include "monkestation\code\modules\aesthetics\subsystem\coloring.dm" @@ -6015,6 +6018,7 @@ #include "monkestation\code\modules\twitch_bits\events\random_item.dm" #include "monkestation\code\modules\twitch_bits\events\rod.dm" #include "monkestation\code\modules\twitch_bits\events\skinny.dm" +#include "monkestation\code\modules\uplink\uplink_items\badass.dm" #include "monkestation\code\modules\uplink\uplink_items\job.dm" #include "monkestation\code\modules\vehicles\monkey_ball.dm" #include "monkestation\code\modules\vehicles\mecha\mecha_actions.dm"