diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 0cdad4f7241..1ba6879005b 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -2,35 +2,31 @@ //KEEP THESE IN A NICE ACSCENDING ORDER, PLEASE //NEVER HAVE ANYTHING BELOW THIS PLANE ADJUST IF YOU NEED MORE SPACE -#define LOWEST_EVER_PLANE -100 +#define LOWEST_EVER_PLANE -50 -#define FIELD_OF_VISION_BLOCKER_PLANE -90 +// Doesn't really layer, just throwing this in here cause it's the best place imo +#define FIELD_OF_VISION_BLOCKER_PLANE -45 #define FIELD_OF_VISION_BLOCKER_RENDER_TARGET "*FIELD_OF_VISION_BLOCKER_RENDER_TARGET" -#define CLICKCATCHER_PLANE -80 +#define CLICKCATCHER_PLANE -40 -#define PLANE_SPACE -25 +#define PLANE_SPACE -21 #define PLANE_SPACE_PARALLAX -20 -#define GRAVITY_PULSE_PLANE -13 +#define GRAVITY_PULSE_PLANE -12 #define GRAVITY_PULSE_RENDER_TARGET "*GRAVPULSE_RENDER_TARGET" -#define RENDER_PLANE_TRANSPARENT -12 //Transparent plane that shows openspace underneath the floor +#define RENDER_PLANE_TRANSPARENT -11 //Transparent plane that shows openspace underneath the floor -#define TRANSPARENT_FLOOR_PLANE -11 +#define TRANSPARENT_FLOOR_PLANE -10 -#define FLOOR_PLANE -10 - -#define WALL_PLANE -9 -#define GAME_PLANE -8 -#define GAME_PLANE_FOV_HIDDEN -7 -#define GAME_PLANE_UPPER -6 -#define WALL_PLANE_UPPER -5 -#define GAME_PLANE_UPPER_FOV_HIDDEN -4 +#define FLOOR_PLANE -6 +#define WALL_PLANE -5 +#define GAME_PLANE -4 +#define ABOVE_GAME_PLANE -3 ///Slightly above the game plane but does not catch mouse clicks. Useful for certain visuals that should be clicked through, like seethrough trees -#define SEETHROUGH_PLANE -3 -#define ABOVE_GAME_PLANE -2 +#define SEETHROUGH_PLANE -2 #define RENDER_PLANE_GAME_WORLD -1 @@ -91,31 +87,36 @@ //-------------------- HUD --------------------- //HUD layer defines -#define HUD_PLANE 40 -#define ABOVE_HUD_PLANE 41 +#define HUD_PLANE 35 +#define ABOVE_HUD_PLANE 36 ///Plane of the "splash" icon used that shows on the lobby screen -#define SPLASHSCREEN_PLANE 50 +#define SPLASHSCREEN_PLANE 37 // The largest plane here must still be less than RENDER_PLANE_GAME //-------------------- Rendering --------------------- -#define RENDER_PLANE_GAME 100 -#define RENDER_PLANE_NON_GAME 101 +#define RENDER_PLANE_GAME 40 +/// If fov is enabled we'll draw game to this and do shit to it +#define RENDER_PLANE_GAME_MASKED 41 +/// The bit of the game plane that is let alone is sent here +#define RENDER_PLANE_GAME_UNMASKED 42 +#define RENDER_PLANE_NON_GAME 45 // Only VERY special planes should be here, as they are above not just the game, but the UI planes as well. /// Plane related to the menu when pressing Escape. /// Needed so that we can apply a blur effect to EVERYTHING, and guarantee we are above all UI. -#define ESCAPE_MENU_PLANE 105 +#define ESCAPE_MENU_PLANE 46 -#define RENDER_PLANE_MASTER 110 +#define RENDER_PLANE_MASTER 50 // Lummox I swear to god I will find you // NOTE! You can only ever have planes greater then -10000, if you add too many with large offsets you will brick multiz // Same can be said for large multiz maps. Tread carefully mappers #define HIGHEST_EVER_PLANE RENDER_PLANE_MASTER /// The range unique planes can be in +/// Try and keep this to a nice whole number, so it's easy to look at a plane var and know what's going on #define PLANE_RANGE (HIGHEST_EVER_PLANE - LOWEST_EVER_PLANE) // PLANE_SPACE layer(s) @@ -188,8 +189,6 @@ #define NOT_HIGH_OBJ_LAYER 3.5 #define HIGH_OBJ_LAYER 3.6 #define BELOW_MOB_LAYER 3.7 - -// GAME_PLANE_FOV_HIDDEN layers #define LOW_MOB_LAYER 3.75 #define LYING_MOB_LAYER 3.8 #define VEHICLE_LAYER 3.9 @@ -199,21 +198,16 @@ #define MOB_ABOVE_PIGGYBACK_LAYER 4.06 #define MOB_UPPER_LAYER 4.07 #define HITSCAN_PROJECTILE_LAYER 4.09 //above all mob but still hidden by FoV - -// GAME_PLANE_UPPER layers #define ABOVE_MOB_LAYER 4.1 #define WALL_OBJ_LAYER 4.25 #define TRAM_SIGNAL_LAYER 4.26 -// WALL_PLANE_UPPER layers #define EDGED_TURF_LAYER 4.3 #define ON_EDGED_TURF_LAYER 4.35 - -// GAME_PLANE_UPPER_FOV_HIDDEN layers #define SPACEVINE_LAYER 4.4 #define LARGE_MOB_LAYER 4.5 #define SPACEVINE_MOB_LAYER 4.6 -// Intermediate layer used by both GAME_PLANE_FOV_HIDDEN and ABOVE_GAME_PLANE +// Intermediate layer used by both GAME_PLANE and ABOVE_GAME_PLANE #define ABOVE_ALL_MOB_LAYER 4.7 // ABOVE_GAME_PLANE layers @@ -229,6 +223,8 @@ */ #define WATER_VISUAL_OVERLAY_LAYER 1000 +// SEETHROUGH_PLANE layers here, tho it has no layer values + //---------- LIGHTING ------------- // LIGHTING_PLANE layers diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index b315dd33c86..758e52a58db 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -415,6 +415,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai // Being close enough to the supermatter makes it heal at higher temperatures // and emit less heat. Present on /mob or /datum/mind #define TRAIT_SUPERMATTER_SOOTHER "supermatter_soother" +/// Mob has fov applied to it +#define TRAIT_FOV_APPLIED "fov_applied" /// Trait added when a revenant is visible. #define TRAIT_REVENANT_REVEALED "revenant_revealed" diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 0c6b6b07add..c9b2592e19c 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -201,6 +201,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATION" = TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATION, "TRAIT_FORCED_GRAVITY" = TRAIT_FORCED_GRAVITY, "TRAIT_FORCED_STANDING" = TRAIT_FORCED_STANDING, + "TRAIT_FOV_APPLIED" = TRAIT_FOV_APPLIED, "TRAIT_FREE_FLOAT_MOVEMENT" = TRAIT_FREE_FLOAT_MOVEMENT, "TRAIT_FREE_HYPERSPACE_MOVEMENT" = TRAIT_FREE_HYPERSPACE_MOVEMENT, "TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT" = TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT, diff --git a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm index 8988b2f7f33..63206afdaa9 100644 --- a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm +++ b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm @@ -1,3 +1,38 @@ +/atom/movable/screen/plane_master/field_of_vision_blocker + name = "Field of vision blocker" + documentation = "This is one of those planes that's only used as a filter. It cuts out a portion of the game plate and does effects to it." + plane = FIELD_OF_VISION_BLOCKER_PLANE + appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR + render_target = FIELD_OF_VISION_BLOCKER_RENDER_TARGET + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + render_relay_planes = list() + // We do NOT allow offsetting, because there's no case where you would want to block only one layer, at least currently + allows_offsetting = FALSE + // We mark as multiz_scaled FALSE so transforms don't effect us, and we draw to the planes below us as if they were us. + // This is safe because we will ALWAYS be on the top z layer, so it DON'T MATTER + multiz_scaled = FALSE + +/atom/movable/screen/plane_master/field_of_vision_blocker/show_to(mob/mymob) + . = ..() + if(!. || !mymob) + return . + RegisterSignal(mymob, SIGNAL_ADDTRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_enabled), override = TRUE) + RegisterSignal(mymob, SIGNAL_REMOVETRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_disabled), override = TRUE) + if(HAS_TRAIT(mymob, TRAIT_FOV_APPLIED)) + fov_enabled(mymob) + else + fov_disabled(mymob) + +/atom/movable/screen/plane_master/field_of_vision_blocker/proc/fov_enabled(mob/source) + SIGNAL_HANDLER + if(force_hidden == FALSE) + return + unhide_plane(source) + +/atom/movable/screen/plane_master/field_of_vision_blocker/proc/fov_disabled(mob/source) + SIGNAL_HANDLER + hide_plane(source) + /atom/movable/screen/plane_master/clickcatcher name = "Click Catcher" documentation = "Contains the screen object we use as a backdrop to catch clicks on portions of the screen that would otherwise contain nothing else. \ @@ -168,69 +203,17 @@ add_relay_to(GET_NEW_PLANE(EMISSIVE_RENDER_PLATE, offset), relay_layer = EMISSIVE_WALL_LAYER, relay_color = GLOB.em_block_color) /atom/movable/screen/plane_master/game - name = "Lower game world" - documentation = "Exists mostly because of FOV shit. Basically, if you've just got a normal not ABOVE fov thing, and you don't want it masked, stick it here yeah?" + name = "Game" + documentation = "Holds most non floor/wall things. Anything on this plane \"wants\" to interlayer depending on position." plane = GAME_PLANE render_relay_planes = list(RENDER_PLANE_GAME_WORLD) -/atom/movable/screen/plane_master/game_world_fov_hidden - name = "lower game world fov hidden" - documentation = "If you want something to be hidden by fov, stick it on this plane. We're masked by the fov blocker plane, so the items on us can actually well, disappear." - plane = GAME_PLANE_FOV_HIDDEN - render_relay_planes = list(RENDER_PLANE_GAME_WORLD) - -/atom/movable/screen/plane_master/game_world_fov_hidden/Initialize(mapload, datum/hud/hud_owner) - . = ..() - add_filter("vision_cone", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(FIELD_OF_VISION_BLOCKER_RENDER_TARGET, offset), flags = MASK_INVERSE)) - -/atom/movable/screen/plane_master/field_of_vision_blocker - name = "Field of vision blocker" - documentation = "This is one of those planes that's only used as a filter. It masks out things that want to be hidden by fov.\ -
Literally just contains FOV images, or masks." - plane = FIELD_OF_VISION_BLOCKER_PLANE - appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR - render_target = FIELD_OF_VISION_BLOCKER_RENDER_TARGET - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - render_relay_planes = list() - // We do NOT allow offsetting, because there's no case where you would want to block only one layer, at least currently - allows_offsetting = FALSE - start_hidden = TRUE - // We mark as multiz_scaled FALSE so transforms don't effect us, and we draw to the planes below us as if they were us. - // This is safe because we will ALWAYS be on the top z layer, so it DON'T MATTER - multiz_scaled = FALSE - -/atom/movable/screen/plane_master/field_of_vision_blocker/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) - . = ..() - mirror_parent_hidden() - -/atom/movable/screen/plane_master/game_world_upper - name = "Upper game world" - documentation = "Ok so fov is kinda fucky, because planes in byond serve both as effect groupings and as rendering orderers. Since that's true, we need a plane that we can stick stuff that draws above fov blocked stuff on." - plane = GAME_PLANE_UPPER - render_relay_planes = list(RENDER_PLANE_GAME_WORLD) - -/atom/movable/screen/plane_master/wall_upper - name = "Upper wall" - documentation = "There are some walls that want to render above most things (mostly minerals since they shift over.\ -
We draw them to their own plane so we can hijack them for our emissive mask stuff" - plane = WALL_PLANE_UPPER - render_relay_planes = list(RENDER_PLANE_GAME_WORLD, LIGHT_MASK_PLANE) - -/atom/movable/screen/plane_master/wall_upper/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) - . = ..() - add_relay_to(GET_NEW_PLANE(EMISSIVE_RENDER_PLATE, offset), relay_layer = EMISSIVE_WALL_LAYER, relay_color = GLOB.em_block_color) - -/atom/movable/screen/plane_master/game_world_upper_fov_hidden - name = "Upper game world fov hidden" - documentation = "Just as we need a place to draw things \"above\" the hidden fov plane, we also need to be able to hide stuff that draws over the upper game plane." - plane = GAME_PLANE_UPPER_FOV_HIDDEN +/atom/movable/screen/plane_master/game_world_above + name = "Upper Game" + documentation = "For stuff you want to draw like the game plane, but not ever below its contents" + plane = ABOVE_GAME_PLANE render_relay_planes = list(RENDER_PLANE_GAME_WORLD) -/atom/movable/screen/plane_master/game_world_upper_fov_hidden/Initialize(mapload, datum/hud/hud_owner) - . = ..() - // Dupe of the other hidden plane - add_filter("vision_cone", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(FIELD_OF_VISION_BLOCKER_RENDER_TARGET, offset), flags = MASK_INVERSE)) - /atom/movable/screen/plane_master/seethrough name = "Seethrough" documentation = "Holds the seethrough versions (done using image overrides) of large objects. Mouse transparent, so you can click through them." @@ -239,12 +222,6 @@ render_relay_planes = list(RENDER_PLANE_GAME_WORLD) start_hidden = TRUE -/atom/movable/screen/plane_master/game_world_above - name = "Above game world" - documentation = "We need a place that's unmasked by fov that also draws above the upper game world fov hidden plane. I told you fov was hacky man." - plane = ABOVE_GAME_PLANE - render_relay_planes = list(RENDER_PLANE_GAME_WORLD) - /** * Plane master that byond will by default draw to * Shouldn't be used, exists to prevent people using plane 0 diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm index 02c43d34767..a4ec391c784 100644 --- a/code/_onclick/hud/rendering/render_plate.dm +++ b/code/_onclick/hud/rendering/render_plate.dm @@ -72,7 +72,8 @@ /atom/movable/screen/plane_master/rendering_plate/game_plate name = "Game rendering plate" documentation = "Holds all objects that are ahhh, in character? is maybe the best way to describe it.\ -
We apply a displacement effect from the gravity pulse plane too, so we can warp the game world." +
We apply a displacement effect from the gravity pulse plane too, so we can warp the game world.\ +
If we have fov enabled we'll relay this onto two different rendering plates to apply fov effects to only a portion. If not, we just draw straight to master" plane = RENDER_PLANE_GAME render_relay_planes = list(RENDER_PLANE_MASTER) @@ -84,6 +85,97 @@ // We're basically using alpha as better constant here btw add_filter("spook_color", 2, color_matrix_filter(list(0.75,0.13,0.13,0, 0.13,0.7,0.13,0, 0.13,0.13,0.75,0, -0.06,-0.09,-0.08,1, 0,0,0,0))) +/atom/movable/screen/plane_master/rendering_plate/game_plate/show_to(mob/mymob) + . = ..() + if(!. || !mymob) + return . + RegisterSignal(mymob, SIGNAL_ADDTRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_enabled), override = TRUE) + RegisterSignal(mymob, SIGNAL_REMOVETRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_disabled), override = TRUE) + if(HAS_TRAIT(mymob, TRAIT_FOV_APPLIED)) + fov_enabled(mymob) + else + fov_disabled(mymob) + +/atom/movable/screen/plane_master/rendering_plate/game_plate/proc/fov_enabled(mob/source) + SIGNAL_HANDLER + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_GAME_UNMASKED, offset)) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_GAME_MASKED, offset)) + remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_MASTER, offset)) + +/atom/movable/screen/plane_master/rendering_plate/game_plate/proc/fov_disabled(mob/source) + SIGNAL_HANDLER + remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_GAME_UNMASKED, offset)) + remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_GAME_MASKED, offset)) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_MASTER, offset)) + +///renders the parts of the plate unmasked by fov +/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate + name = "Unmasked Game rendering plate" + documentation = "Holds the bits of the game plate that aren't impacted by fov.\ +
We use an alpha mask to cut out the bits we plan on dealing with elsewhere" + plane = RENDER_PLANE_GAME_UNMASKED + render_relay_planes = list(RENDER_PLANE_MASTER) + +/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) + . = ..() + add_filter("fov_handled", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(FIELD_OF_VISION_BLOCKER_RENDER_TARGET, offset), flags = MASK_INVERSE)) + +/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/show_to(mob/mymob) + . = ..() + if(!. || !mymob) + return . + RegisterSignal(mymob, SIGNAL_ADDTRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_enabled), override = TRUE) + RegisterSignal(mymob, SIGNAL_REMOVETRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_disabled), override = TRUE) + if(HAS_TRAIT(mymob, TRAIT_FOV_APPLIED)) + fov_enabled(mymob) + else + fov_disabled(mymob) + +/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/proc/fov_enabled(mob/source) + SIGNAL_HANDLER + if(force_hidden == FALSE) + return + unhide_plane(source) + +/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/proc/fov_disabled(mob/source) + SIGNAL_HANDLER + hide_plane(source) + +///renders the parts of the plate masked by fov +/atom/movable/screen/plane_master/rendering_plate/masked_game_plate + name = "FOV Game rendering plate" + documentation = "Contains the bits of the game plate that are hidden by some form of fov\ +
Applies a color matrix to dim and create contrast, alongside a blur. Goal is only half being able to see stuff" + plane = RENDER_PLANE_GAME_MASKED + render_relay_planes = list(RENDER_PLANE_MASTER) + +/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) + . = ..() + add_filter("fov_blur", 1, gauss_blur_filter(1.8)) + add_filter("fov_handled_space", 2, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(FIELD_OF_VISION_BLOCKER_RENDER_TARGET, offset))) + add_filter("fov_matrix", 3, color_matrix_filter(list(0.5,-0.15,-0.15,0, -0.15,0.5,-0.15,0, -0.15,-0.15,0.5,0, 0,0,0,1, 0,0,0,0))) + +/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/show_to(mob/mymob) + . = ..() + if(!. || !mymob) + return . + RegisterSignal(mymob, SIGNAL_ADDTRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_enabled), override = TRUE) + RegisterSignal(mymob, SIGNAL_REMOVETRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_disabled), override = TRUE) + if(HAS_TRAIT(mymob, TRAIT_FOV_APPLIED)) + fov_enabled(mymob) + else + fov_disabled(mymob) + +/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/proc/fov_enabled(mob/source) + SIGNAL_HANDLER + if(force_hidden == FALSE) + return + unhide_plane(source) + +/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/proc/fov_disabled(mob/source) + SIGNAL_HANDLER + hide_plane(source) + // Blackness renders weird when you view down openspace, because of transforms and borders and such // This is a consequence of not using lummy's grouped transparency, but I couldn't get that to work without totally fucking up // Sight flags, and shooting vis_contents usage to the moon. So we're doin it different. @@ -293,7 +385,6 @@ plane = RENDER_PLANE_NON_GAME render_relay_planes = list(RENDER_PLANE_MASTER) - /** * Plane master proc called in Initialize() that creates relay objects, and sets them uo as needed * Sets: diff --git a/code/datums/actions/mobs/lava_swoop.dm b/code/datums/actions/mobs/lava_swoop.dm index 7532ccfda08..a5acc29bab6 100644 --- a/code/datums/actions/mobs/lava_swoop.dm +++ b/code/datums/actions/mobs/lava_swoop.dm @@ -199,7 +199,6 @@ icon = 'icons/mob/simple/lavaland/96x96megafauna.dmi' icon_state = "dragon" layer = ABOVE_ALL_MOB_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN pixel_x = -32 duration = 10 randomdir = FALSE diff --git a/code/datums/beam.dm b/code/datums/beam.dm index 6b138387290..152de6ec1e1 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -179,7 +179,6 @@ /obj/effect/ebeam mouse_opacity = MOUSE_OPACITY_TRANSPARENT - plane = GAME_PLANE_UPPER_FOV_HIDDEN layer = ABOVE_ALL_MOB_LAYER anchored = TRUE var/emissive = TRUE diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 81d354a19e8..d9348f98f4b 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -100,7 +100,6 @@ image_icon = 'icons/effects/effects.dmi' image_state = "bluestream" image_layer = ABOVE_MOB_LAYER - image_plane = GAME_PLANE_UPPER var/obj/effect/client_image_holder/bluespace_stream/linked_to /obj/effect/client_image_holder/bluespace_stream/Initialize(mapload, list/mobs_which_see_us) diff --git a/code/datums/components/fov_handler.dm b/code/datums/components/fov_handler.dm index 845d49e8136..73d04a6b0e6 100644 --- a/code/datums/components/fov_handler.dm +++ b/code/datums/components/fov_handler.dm @@ -10,8 +10,6 @@ var/fov_angle = FOV_180_DEGREES /// The blocker mask applied to a client's screen var/atom/movable/screen/fov_blocker/blocker_mask - /// The shadow mask applied to a client's screen - var/atom/movable/screen/fov_shadow/visual_shadow /datum/component/fov_handler/Initialize(fov_type = FOV_180_DEGREES) if(!isliving(parent)) @@ -22,13 +20,9 @@ qdel(src) //no QDEL hint for components, and we dont want this to print a warning regarding bad component application return - for(var/atom/movable/screen/plane_master/plane_master as anything in mob_parent.hud_used.get_true_plane_masters(FIELD_OF_VISION_BLOCKER_PLANE)) - plane_master.unhide_plane(mob_parent) + ADD_TRAIT(mob_parent, TRAIT_FOV_APPLIED, REF(src)) blocker_mask = new - visual_shadow = new - //visual_shadow.alpha = parent_client?.prefs.read_preference(/datum/preference/numeric/fov_darkness) //NOVA EDIT REMOVAL - update_visual_shadow_alpha() //NOVA EDIT ADDITION set_fov_angle(fov_type) on_dir_change(mob_parent, mob_parent.dir, mob_parent.dir) update_fov_size() @@ -36,21 +30,17 @@ /datum/component/fov_handler/Destroy() var/mob/living/mob_parent = parent - for(var/atom/movable/screen/plane_master/plane_master as anything in mob_parent.hud_used.get_true_plane_masters(FIELD_OF_VISION_BLOCKER_PLANE)) - plane_master.hide_plane(mob_parent) + REMOVE_TRAIT(mob_parent, TRAIT_FOV_APPLIED, REF(src)) if(applied_mask) remove_mask() if(blocker_mask) // In a case of early deletion due to volatile client QDEL_NULL(blocker_mask) - if(visual_shadow) // In a case of early deletion due to volatile client - QDEL_NULL(visual_shadow) return ..() /datum/component/fov_handler/proc/set_fov_angle(new_angle) fov_angle = new_angle blocker_mask.icon_state = "[fov_angle]" - visual_shadow.icon_state = "[fov_angle]_v" /// Updates the size of the FOV masks by comparing them to client view size. /datum/component/fov_handler/proc/update_fov_size() @@ -71,8 +61,8 @@ var/y_scale = view_size[2] / current_fov_y current_fov_x = view_size[1] current_fov_y = view_size[2] - visual_shadow.transform = blocker_mask.transform = new_matrix.Scale(x_scale, y_scale) - visual_shadow.transform = blocker_mask.transform = new_matrix.Translate(x_shift * 16, y_shift * 16) + blocker_mask.transform = new_matrix.Scale(x_scale, y_scale) + blocker_mask.transform = new_matrix.Translate(x_shift * 16, y_shift * 16) /// Updates the mask application to client by checking `stat` and `eye` /datum/component/fov_handler/proc/update_mask() @@ -99,13 +89,10 @@ var/client/parent_client = parent_mob.client // Prevents stupid ass hard deletes parent_mob.hud_used.always_visible_inventory -= blocker_mask - parent_mob.hud_used.always_visible_inventory -= visual_shadow if(!parent_client) //Love client volatility!! return applied_mask = FALSE parent_client.screen -= blocker_mask - parent_client.screen -= visual_shadow - /datum/component/fov_handler/proc/add_mask() var/mob/parent_mob = parent @@ -114,15 +101,12 @@ return applied_mask = TRUE parent_client.screen += blocker_mask - parent_client.screen += visual_shadow parent_mob.hud_used.always_visible_inventory += blocker_mask - parent_mob.hud_used.always_visible_inventory += visual_shadow /// When a direction of the user changes, so do the masks /datum/component/fov_handler/proc/on_dir_change(mob/source, old_dir, new_dir) SIGNAL_HANDLER blocker_mask.dir = new_dir - visual_shadow.dir = new_dir /// When a mob logs out, delete the component /datum/component/fov_handler/proc/mob_logout(mob/source) @@ -137,19 +121,7 @@ RegisterSignal(parent, COMSIG_MOB_CLIENT_CHANGE_VIEW, PROC_REF(update_fov_size)) RegisterSignal(parent, COMSIG_MOB_RESET_PERSPECTIVE, PROC_REF(update_mask)) RegisterSignal(parent, COMSIG_MOB_LOGOUT, PROC_REF(mob_logout)) - RegisterSignal(parent, COMSIG_LIVING_COMBAT_MODE_TOGGLE, PROC_REF(update_visual_shadow_alpha)) //NOVA EDIT ADDITION /datum/component/fov_handler/UnregisterFromParent() . = ..() UnregisterSignal(parent, list(COMSIG_MOB_RESET_PERSPECTIVE, COMSIG_ATOM_DIR_CHANGE, COMSIG_LIVING_DEATH, COMSIG_LIVING_REVIVE, COMSIG_MOB_LOGOUT)) - UnregisterSignal(parent, COMSIG_LIVING_COMBAT_MODE_TOGGLE) //NOVA EDIT ADDITION - -//NOVA EDIT ADDITION BEGIN -/// When toggling combat mode, we update the alpha of the shadow mask -/datum/component/fov_handler/proc/update_visual_shadow_alpha() - SIGNAL_HANDLER - var/mob/living/parent_mob = parent - var/pref_to_read = parent_mob.combat_mode ? /datum/preference/numeric/fov_darkness : /datum/preference/numeric/out_of_combat_fov_darkness - var/target_alpha = parent_mob.client.prefs.read_preference(pref_to_read) - visual_shadow.alpha = target_alpha -//NOVA EDIT ADDITION END diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm index c8c969a8c6b..98024e1a00e 100644 --- a/code/datums/components/riding/riding.dm +++ b/code/datums/components/riding/riding.dm @@ -26,8 +26,6 @@ var/list/directional_vehicle_layers = list() /// same as above but instead of layer you have a list(px, py) var/list/directional_vehicle_offsets = list() - /// planes of the rider - var/list/directional_rider_planes = list() /// allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence. var/list/allowed_turf_typecache /// allow typecache for only certain turfs, forbid to allow all but those. allow only certain turfs will take precedence. @@ -108,7 +106,6 @@ var/atom/movable/movable_parent = parent handle_vehicle_layer(movable_parent.dir) handle_vehicle_offsets(movable_parent.dir) - handle_rider_plane(movable_parent.dir) if(rider.pulling == source) rider.stop_pulling() @@ -138,20 +135,9 @@ . = AM.layer AM.layer = . -/datum/component/riding/proc/handle_rider_plane(dir) - var/atom/movable/movable_parent = parent - var/target_plane = directional_rider_planes["[dir]"] - if(isnull(target_plane)) - return - for(var/mob/buckled_mob in movable_parent.buckled_mobs) - SET_PLANE_EXPLICIT(buckled_mob, target_plane, movable_parent) - /datum/component/riding/proc/set_vehicle_dir_layer(dir, layer) directional_vehicle_layers["[dir]"] = layer -/datum/component/riding/proc/set_rider_dir_plane(dir, plane) - directional_rider_planes["[dir]"] = plane - /// This is called after the ridden atom is successfully moved and is used to handle icon stuff /datum/component/riding/proc/vehicle_moved(datum/source, oldloc, dir, forced) SIGNAL_HANDLER @@ -166,7 +152,6 @@ return // runtimed with piggy's without this, look into this more handle_vehicle_offsets(dir) handle_vehicle_layer(dir) - handle_rider_plane(dir) /// Turning is like moving /datum/component/riding/proc/vehicle_turned(datum/source, _old_dir, new_dir) diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm index 3fea34aad9c..53aa87b74bb 100644 --- a/code/datums/components/riding/riding_mob.dm +++ b/code/datums/components/riding/riding_mob.dm @@ -527,10 +527,6 @@ /datum/component/riding/creature/leaper/handle_specials() . = ..() set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(17, 46), TEXT_SOUTH = list(17,51), TEXT_EAST = list(27, 46), TEXT_WEST = list(6, 46))) - set_rider_dir_plane(SOUTH, GAME_PLANE_UPPER) - set_rider_dir_plane(NORTH, GAME_PLANE) - set_rider_dir_plane(EAST, GAME_PLANE_UPPER) - set_rider_dir_plane(WEST, GAME_PLANE_UPPER) /datum/component/riding/creature/leaper/Initialize(mob/living/riding_mob, force = FALSE, ride_check_flags = NONE, potion_boost = FALSE) . = ..() diff --git a/code/datums/components/tactical.dm b/code/datums/components/tactical.dm index ec78f3dfeb9..e8e54926949 100644 --- a/code/datums/components/tactical.dm +++ b/code/datums/components/tactical.dm @@ -40,7 +40,6 @@ var/obj/item/master = parent var/image/I = image(icon = master.icon, icon_state = master.icon_state, loc = user) - SET_PLANE_EXPLICIT(I, GAME_PLANE_FOV_HIDDEN, master) I.copy_overlays(master) I.override = TRUE source.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "sneaking_mission", I) diff --git a/code/datums/elements/immerse.dm b/code/datums/elements/immerse.dm index 6a0ebb74217..d4171588c31 100644 --- a/code/datums/elements/immerse.dm +++ b/code/datums/elements/immerse.dm @@ -109,7 +109,7 @@ SIGNAL_HANDLER if(HAS_TRAIT(movable, TRAIT_IMMERSED)) return - if(movable.layer >= ABOVE_ALL_MOB_LAYER || !ISINRANGE(movable.plane, MUTATE_PLANE(FLOOR_PLANE, source), MUTATE_PLANE(GAME_PLANE_UPPER_FOV_HIDDEN, source))) + if(movable.layer >= ABOVE_ALL_MOB_LAYER || !ISINRANGE(movable.plane, MUTATE_PLANE(FLOOR_PLANE, source), MUTATE_PLANE(GAME_PLANE, source))) return if(is_type_in_typecache(movable, movables_to_ignore)) return diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 44c2cdd0295..f3008ca4ebc 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -6,7 +6,6 @@ use_power = ACTIVE_POWER_USE active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 0.02 layer = WALL_OBJ_LAYER - plane = GAME_PLANE_UPPER resistance_flags = FIRE_PROOF damage_deflection = 12 armor_type = /datum/armor/machinery_camera diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 75cb3bb4352..7da1af14492 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -98,7 +98,6 @@ max_integrity = 20 mouse_opacity = MOUSE_OPACITY_TRANSPARENT layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER /obj/structure/emergency_shield/cult/barrier density = FALSE //toggled on right away by the parent rune diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index daaddb00ce0..8a80692f1a9 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -129,7 +129,6 @@ desc = "Somebody should remove that." gender = NEUTER layer = WALL_OBJ_LAYER - plane = GAME_PLANE_UPPER icon_state = "cobweb1" resistance_flags = FLAMMABLE beauty = -100 diff --git a/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm b/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm index 9a13e68c1b1..efb5b1fbb91 100644 --- a/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm +++ b/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm @@ -17,7 +17,6 @@ anchored = TRUE density = FALSE layer = EDGED_TURF_LAYER - plane = GAME_PLANE_UPPER mouse_opacity = MOUSE_OPACITY_TRANSPARENT animate_movement = NO_STEPS /// The types of turfs that this foam cannot spread to. @@ -298,7 +297,6 @@ opacity = TRUE // changed in New() anchored = TRUE layer = EDGED_TURF_LAYER - plane = GAME_PLANE_UPPER resistance_flags = FIRE_PROOF | ACID_PROOF name = "foamed metal" desc = "A lightweight foamed metal wall that can be used as base to construct a wall." diff --git a/code/game/objects/effects/spiderwebs.dm b/code/game/objects/effects/spiderwebs.dm index 9a3d6c9c8e3..5023f9bd825 100644 --- a/code/game/objects/effects/spiderwebs.dm +++ b/code/game/objects/effects/spiderwebs.dm @@ -114,7 +114,7 @@ opacity = TRUE density = TRUE max_integrity = 90 - plane = GAME_PLANE_UPPER + layer = ABOVE_MOB_LAYER resistance_flags = FIRE_PROOF | FREEZE_PROOF /obj/structure/spider/solid/Initialize(mapload) @@ -130,7 +130,7 @@ opacity = TRUE max_integrity = 60 alpha = 200 - plane = GAME_PLANE_UPPER + layer = ABOVE_MOB_LAYER resistance_flags = FIRE_PROOF | FREEZE_PROOF /obj/structure/spider/passage/Initialize(mapload) diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index a0e9a838dc2..05ecfeec2ba 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -21,7 +21,6 @@ if(SOUTH) target_pixel_y = -16 layer = ABOVE_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) if(EAST) target_pixel_x = 16 if(WEST) @@ -36,12 +35,10 @@ target_pixel_x = 16 target_pixel_y = -16 layer = ABOVE_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) if(SOUTHWEST) target_pixel_x = -16 target_pixel_y = -16 layer = ABOVE_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) animate(src, pixel_x = target_pixel_x, pixel_y = target_pixel_y, alpha = 0, time = duration) /obj/effect/temp_visual/dir_setting/bloodsplatter/xenosplatter diff --git a/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm b/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm index 1e8577bbd3a..81c854f2c3e 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm @@ -3,7 +3,6 @@ icon = 'icons/obj/weapons/guns/projectiles.dmi' icon_state = "nothing" layer = HITSCAN_PROJECTILE_LAYER - plane = GAME_PLANE_FOV_HIDDEN anchored = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT appearance_flags = LONG_GLIDE diff --git a/code/game/objects/effects/temporary_visuals/temporary_visual.dm b/code/game/objects/effects/temporary_visuals/temporary_visual.dm index 0d5b7bf1463..9669b4ed290 100644 --- a/code/game/objects/effects/temporary_visuals/temporary_visual.dm +++ b/code/game/objects/effects/temporary_visuals/temporary_visual.dm @@ -3,7 +3,6 @@ icon_state = "nothing" anchored = TRUE layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER mouse_opacity = MOUSE_OPACITY_TRANSPARENT ///time, in deciseconds, that this object will exist var/duration = 10 diff --git a/code/game/objects/items/kirby_plants/kirbyplants.dm b/code/game/objects/items/kirby_plants/kirbyplants.dm index fe2d49bebec..e06db9abda0 100644 --- a/code/game/objects/items/kirby_plants/kirbyplants.dm +++ b/code/game/objects/items/kirby_plants/kirbyplants.dm @@ -7,7 +7,6 @@ base_icon_state = "plant-01" desc = "A little bit of nature contained in a pot." layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER w_class = WEIGHT_CLASS_HUGE force = 10 throwforce = 13 diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index 7b199a2472c..e695dedbca3 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -157,13 +157,10 @@ inhand_icon_state = null //touching it dusts you, so no need for an inhand icon. pulseicon = "supermatter_sliver_pulse" layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER - /obj/item/nuke_core/supermatter_sliver/attack_tk(mob/user) // no TK dusting memes return - /obj/item/nuke_core/supermatter_sliver/can_be_pulled(user) // no drag memes return FALSE diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index c83fefb2fce..059f78b80c9 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -161,7 +161,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/claymore/highlander/process() if(ishuman(loc)) var/mob/living/carbon/human/holder = loc - SET_PLANE_EXPLICIT(holder, GAME_PLANE_UPPER_FOV_HIDDEN, src) //NO HIDING BEHIND PLANTS FOR YOU, DICKWEED (HA GET IT, BECAUSE WEEDS ARE PLANTS) + layer = ABOVE_ALL_MOB_LAYER //NO HIDING BEHIND PLANTS FOR YOU, DICKWEED (HA GET IT, BECAUSE WEEDS ARE PLANTS) ADD_TRAIT(holder, TRAIT_NOBLOOD, HIGHLANDER_TRAIT) //AND WE WON'T BLEED OUT LIKE COWARDS else if(!(flags_1 & ADMIN_SPAWNED_1)) @@ -285,7 +285,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 return INITIALIZE_HINT_QDEL /obj/item/claymore/highlander/robot/process() - SET_PLANE_IMPLICIT(loc, GAME_PLANE_UPPER_FOV_HIDDEN) + layer = ABOVE_ALL_MOB_LAYER /obj/item/katana name = "katana" diff --git a/code/game/objects/structures/aliens.dm b/code/game/objects/structures/aliens.dm index e637ecc274e..886d0b9bcba 100644 --- a/code/game/objects/structures/aliens.dm +++ b/code/game/objects/structures/aliens.dm @@ -338,7 +338,6 @@ integrity_failure = 0.05 var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive layer = MOB_LAYER - plane = GAME_PLANE_FOV_HIDDEN /// Ref to the hugger within. var/obj/item/clothing/mask/facehugger/child ///Proximity monitor associated with this atom, needed for proximity checks. diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 85a2b66c804..9fd8da19391 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -109,10 +109,8 @@ /obj/structure/chair/proc/handle_layer() if(has_buckled_mobs() && dir == NORTH) layer = ABOVE_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER_FOV_HIDDEN) else layer = OBJ_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE) /obj/structure/chair/post_buckle_mob(mob/living/M) . = ..() @@ -184,7 +182,6 @@ /obj/structure/chair/comfy/proc/gen_armrest() armrest = GetArmrest() armrest.layer = ABOVE_MOB_LAYER - SET_PLANE_EXPLICIT(armrest, GAME_PLANE_UPPER, src) update_armrest() /obj/structure/chair/comfy/proc/GetArmrest() diff --git a/code/game/objects/structures/beds_chairs/pew.dm b/code/game/objects/structures/beds_chairs/pew.dm index 21bf0fbf09c..6388247e8c4 100644 --- a/code/game/objects/structures/beds_chairs/pew.dm +++ b/code/game/objects/structures/beds_chairs/pew.dm @@ -33,10 +33,8 @@ /obj/structure/chair/pew/left/proc/gen_armrest() leftpewarmrest = GetLeftPewArmrest() leftpewarmrest.layer = ABOVE_MOB_LAYER - SET_PLANE_EXPLICIT(leftpewarmrest, GAME_PLANE_UPPER, src) update_leftpewarmrest() - /obj/structure/chair/pew/left/proc/GetLeftPewArmrest() return mutable_appearance('icons/obj/chairs_wide.dmi', "pewend_left_armrest") @@ -76,7 +74,6 @@ /obj/structure/chair/pew/right/proc/gen_armrest() rightpewarmrest = GetRightPewArmrest() rightpewarmrest.layer = ABOVE_MOB_LAYER - SET_PLANE_EXPLICIT(rightpewarmrest, GAME_PLANE_UPPER, src) update_rightpewarmrest() /obj/structure/chair/pew/right/proc/GetRightPewArmrest() diff --git a/code/game/objects/structures/beds_chairs/sofa.dm b/code/game/objects/structures/beds_chairs/sofa.dm index 076f95f4dc9..bf9a221929b 100644 --- a/code/game/objects/structures/beds_chairs/sofa.dm +++ b/code/game/objects/structures/beds_chairs/sofa.dm @@ -36,7 +36,6 @@ path/corner/color_name {\ /obj/structure/chair/sofa/proc/gen_armrest() armrest = mutable_appearance(initial(icon), "[icon_state]_armrest", ABOVE_MOB_LAYER) - SET_PLANE_EXPLICIT(armrest, GAME_PLANE_UPPER, src) update_armrest() /obj/structure/chair/sofa/electrify_self(obj/item/assembly/shock_kit/input_shock_kit, mob/user, list/overlays_from_child_procs) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 8517a321ceb..c440976b409 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -86,7 +86,6 @@ LINEN BINS /obj/item/bedsheet/proc/coverup(mob/living/sleeper) layer = ABOVE_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) pixel_x = 0 pixel_y = 0 balloon_alert(sleeper, "covered") diff --git a/code/game/objects/structures/deployable_turret.dm b/code/game/objects/structures/deployable_turret.dm index 0e810526bdc..ac4b35678c9 100644 --- a/code/game/objects/structures/deployable_turret.dm +++ b/code/game/objects/structures/deployable_turret.dm @@ -12,7 +12,6 @@ max_integrity = 100 buckle_lying = 0 layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER var/view_range = 2.5 var/cooldown = 0 /// The projectile that the turret fires @@ -101,7 +100,6 @@ M.put_in_hands(TC) M.pixel_y = 14 layer = ABOVE_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) setDir(SOUTH) playsound(src,'sound/mecha/mechmove01.ogg', 50, TRUE) set_anchored(TRUE) @@ -136,43 +134,34 @@ switch(dir) if(NORTH) layer = BELOW_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE) user.pixel_x = 0 user.pixel_y = -14 if(NORTHEAST) layer = BELOW_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE) user.pixel_x = -8 user.pixel_y = -4 if(EAST) layer = ABOVE_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) user.pixel_x = -14 user.pixel_y = 0 if(SOUTHEAST) layer = BELOW_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE) user.pixel_x = -8 user.pixel_y = 4 if(SOUTH) layer = ABOVE_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) - plane = GAME_PLANE_UPPER user.pixel_x = 0 user.pixel_y = 14 if(SOUTHWEST) layer = BELOW_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE) user.pixel_x = 8 user.pixel_y = 4 if(WEST) layer = ABOVE_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) user.pixel_x = 14 user.pixel_y = 0 if(NORTHWEST) layer = BELOW_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE) user.pixel_x = 8 user.pixel_y = -4 diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm index 57207cf7aba..a38659aaefe 100644 --- a/code/game/objects/structures/fluff.dm +++ b/code/game/objects/structures/fluff.dm @@ -74,7 +74,7 @@ density = TRUE deconstructible = FALSE layer = EDGED_TURF_LAYER - plane = GAME_PLANE_UPPER + /** * A variety of statue in disrepair; parts are broken off and a gemstone is missing */ diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm index ca019c05c12..bc56b3838ca 100644 --- a/code/game/objects/structures/guillotine.dm +++ b/code/game/objects/structures/guillotine.dm @@ -42,7 +42,6 @@ buckle_lying = 0 buckle_prevents_pull = TRUE layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER /// The sound the guillotine makes when it successfully cuts off a head var/drop_sound = 'sound/weapons/guillotine.ogg' /// The current state of the blade diff --git a/code/game/objects/structures/gym/weight_machine.dm b/code/game/objects/structures/gym/weight_machine.dm index a7426e2f465..055c9788c95 100644 --- a/code/game/objects/structures/gym/weight_machine.dm +++ b/code/game/objects/structures/gym/weight_machine.dm @@ -152,7 +152,6 @@ end_workout() return FALSE var/mutable_appearance/workout = mutable_appearance(icon, "[base_icon_state]-o", ABOVE_MOB_LAYER) - SET_PLANE_EXPLICIT(workout, GAME_PLANE_UPPER, src) flick_overlay_view(workout, 0.8 SECONDS) flick("[base_icon_state]-u", src) var/mob/living/user = buckled_mobs[1] diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index a640e449ff1..a3d09340d87 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -24,7 +24,7 @@ var/turf/our_turf = get_turf(src) if(use_vis_overlay) alpha = 0 - SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE_UPPER, our_turf), dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it + SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE, our_turf), dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it if(source_projector) projector = source_projector LAZYADD(projector.signs, src) diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index 6ac313883df..f4834ecf48a 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -36,7 +36,7 @@ /obj/structure/plasticflaps/proc/gen_overlay() var/turf/our_turf = get_turf(src) - SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE_UPPER, our_turf), dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it + SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE, our_turf), dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it /obj/structure/plasticflaps/examine(mob/user) . = ..() diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm index fb69570eea5..3604bd06c63 100644 --- a/code/game/objects/structures/railings.dm +++ b/code/game/objects/structures/railings.dm @@ -9,7 +9,6 @@ anchored = TRUE pass_flags_self = LETPASSTHROW|PASSSTRUCTURE layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER /// armor is a little bit less than a grille. max_integrity about half that of a grille. armor_type = /datum/armor/structure_railing max_integrity = 25 @@ -164,7 +163,6 @@ icon = 'icons/obj/structures.dmi' icon_state = "wooden_railing" item_deconstruct = /obj/item/stack/sheet/mineral/wood - plane = GAME_PLANE_FOV_HIDDEN layer = ABOVE_MOB_LAYER /obj/structure/railing/wooden_fence/Initialize(mapload) diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm index 6212af2452d..7b86a17e9dc 100644 --- a/code/game/objects/structures/shower.dm +++ b/code/game/objects/structures/shower.dm @@ -204,7 +204,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16)) return var/mutable_appearance/water_falling = mutable_appearance('icons/obj/watercloset.dmi', "water", ABOVE_MOB_LAYER) water_falling.color = mix_color_from_reagents(reagents.reagent_list) - SET_PLANE_EXPLICIT(water_falling, GAME_PLANE_UPPER, src) switch(dir) if(NORTH) water_falling.pixel_y += pixel_shift diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 531df729957..b343cd85f50 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -760,12 +760,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink/kitchen, (-16)) open = !open if(open) layer = SIGN_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE) set_density(FALSE) set_opacity(FALSE) else layer = WALL_OBJ_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) set_density(TRUE) if(opaque_closed) set_opacity(TRUE) @@ -878,7 +876,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink/kitchen, (-16)) /obj/structure/curtain/cloth/fancy/mechanical/proc/close() icon_state = "[icon_type]-closed" layer = WALL_OBJ_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) set_density(TRUE) open = FALSE if(opaque_closed) diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 842b6d7aa47..8da806bcb82 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -6,13 +6,17 @@ name = "rock" icon = MAP_SWITCH('modular_nova/modules/liquids/icons/turf/smoothrocks.dmi', 'icons/turf/mining.dmi') // NOVA EDIT CHANGE icon_state = "rock" + smoothing_groups = SMOOTH_GROUP_CLOSED_TURFS + SMOOTH_GROUP_MINERAL_WALLS + canSmoothWith = SMOOTH_GROUP_MINERAL_WALLS smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER baseturfs = /turf/open/misc/asteroid/airless initial_gas_mix = AIRLESS_ATMOS opacity = TRUE density = TRUE + // We're a BIG wall, larger then 32x32, so we need to be on the game plane + // Otherwise we'll draw under shit in weird ways + plane = GAME_PLANE layer = EDGED_TURF_LAYER - plane = WALL_PLANE_UPPER base_icon_state = "smoothrocks" // This is static @@ -37,14 +41,15 @@ /turf/closed/mineral/Initialize(mapload) - var/static/list/smoothing_groups = SMOOTH_GROUP_CLOSED_TURFS + SMOOTH_GROUP_MINERAL_WALLS - var/static/list/canSmoothWith = SMOOTH_GROUP_MINERAL_WALLS - - // The cost of the list() being in the type def is very large for something as common as minerals - src.smoothing_groups = smoothing_groups - src.canSmoothWith = canSmoothWith - - return ..() + . = ..() + // Mineral turfs are big, so they need to be on the game plane at a high layer + // But they're also turfs, so we need to cut them out from the light mask plane + // So we draw them as if they were on the game plane, and then overlay a copy onto + // The wall plane (so emissives/light masks behave) + // I am so sorry + var/static/mutable_appearance/wall_overlay = mutable_appearance('icons/turf/mining.dmi', "rock", appearance_flags = RESET_TRANSFORM) + wall_overlay.plane = MUTATE_PLANE(WALL_PLANE, src) + overlays += wall_overlay // Inlined version of the bump click element. way faster this way, the element's nice but it's too much overhead /turf/closed/mineral/Bumped(atom/movable/bumped_atom) @@ -689,7 +694,6 @@ /turf/closed/mineral/gibtonite/proc/explosive_reaction(mob/user = null) if(stage == GIBTONITE_UNSTRUCK) activated_overlay = mutable_appearance('icons/turf/smoothrocks_overlays.dmi', "rock_Gibtonite_inactive", ON_EDGED_TURF_LAYER) //shows in gaps between pulses if there are any - SET_PLANE(activated_overlay, WALL_PLANE_UPPER, src) add_overlay(activated_overlay) name = "gibtonite deposit" desc = "An active gibtonite reserve. Run!" diff --git a/code/modules/antagonists/heretic/knife_effect.dm b/code/modules/antagonists/heretic/knife_effect.dm index b1a02fb6800..0bf5a5a4b8c 100644 --- a/code/modules/antagonists/heretic/knife_effect.dm +++ b/code/modules/antagonists/heretic/knife_effect.dm @@ -3,7 +3,7 @@ name = "knife" icon = 'icons/obj/service/kitchen.dmi' icon_state = "knife" - plane = GAME_PLANE_FOV_HIDDEN + layer = LOW_MOB_LAYER /// The color the knife glows around it. var/glow_color = "#ececff" diff --git a/code/modules/art/statues.dm b/code/modules/art/statues.dm index 717f4335969..2158104b6ee 100644 --- a/code/modules/art/statues.dm +++ b/code/modules/art/statues.dm @@ -569,7 +569,7 @@ Moving interrupts content_ma.pixel_y = 0 content_ma.alpha = 255 - var/static/list/plane_whitelist = list(FLOAT_PLANE, GAME_PLANE, GAME_PLANE_UPPER, GAME_PLANE_FOV_HIDDEN, GAME_PLANE_UPPER, GAME_PLANE_UPPER_FOV_HIDDEN, FLOOR_PLANE) + var/static/list/plane_whitelist = list(FLOAT_PLANE, GAME_PLANE, FLOOR_PLANE) /// Ideally we'd have knowledge what we're removing but i'd have to be done on target appearance retrieval var/list/overlays_to_remove = list() diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm index 0ca6bafea26..a005caf86b9 100644 --- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm +++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/crystallizer.dm @@ -10,7 +10,6 @@ name = "crystallizer" desc = "Used to crystallize or solidify gases." layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER density = TRUE max_integrity = 300 armor_type = /datum/armor/binary_crystallizer diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 25965222ab2..a603116d7e8 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -17,7 +17,6 @@ // and will crop the head off. icon_state = "mask_bg" layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER mouse_opacity = MOUSE_OPACITY_TRANSPARENT pixel_y = 22 appearance_flags = KEEP_TOGETHER diff --git a/code/modules/basketball/hoop.dm b/code/modules/basketball/hoop.dm index 9acaa9550bb..f356fc52315 100644 --- a/code/modules/basketball/hoop.dm +++ b/code/modules/basketball/hoop.dm @@ -53,9 +53,6 @@ /obj/structure/hoop/update_overlays() . = ..() - if(dir & NORTH) - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) - var/dir_offset_x = 0 var/dir_offset_y = 0 @@ -72,7 +69,6 @@ var/mutable_appearance/scoreboard = mutable_appearance('icons/obj/signs.dmi', "basketball_scorecard") scoreboard.pixel_x = dir_offset_x scoreboard.pixel_y = dir_offset_y - SET_PLANE_EXPLICIT(scoreboard, GAME_PLANE, src) . += scoreboard var/ones = total_score % 10 diff --git a/code/modules/cargo/gondolapod.dm b/code/modules/cargo/gondolapod.dm index f3dca7a3dca..36ceff8ad51 100644 --- a/code/modules/cargo/gondolapod.dm +++ b/code/modules/cargo/gondolapod.dm @@ -65,13 +65,13 @@ /mob/living/simple_animal/pet/gondola/gondolapod/setOpened() opened = TRUE - SET_PLANE_IMPLICIT(src, GAME_PLANE) + layer = initial(layer) update_appearance() addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, setClosed)), 50) /mob/living/simple_animal/pet/gondola/gondolapod/setClosed() opened = FALSE - SET_PLANE_IMPLICIT(src, GAME_PLANE_FOV_HIDDEN) + layer = LOW_MOB_LAYER update_appearance() /mob/living/simple_animal/pet/gondola/gondolapod/death() diff --git a/code/modules/client/preferences/fov_darkness.dm b/code/modules/client/preferences/fov_darkness.dm deleted file mode 100644 index b0146e10b40..00000000000 --- a/code/modules/client/preferences/fov_darkness.dm +++ /dev/null @@ -1,17 +0,0 @@ -/datum/preference/numeric/fov_darkness - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "fov_darkness" - savefile_identifier = PREFERENCE_PLAYER - - minimum = 0 - maximum = 255 - -/datum/preference/numeric/fov_darkness/create_default_value() - return 255 - -/datum/preference/numeric/fov_darkness/apply_to_client_updated(client/client, value) - if(client.mob) - var/datum/component/fov_handler/fov_component = client.mob.GetComponent(/datum/component/fov_handler) - if(!fov_component) - return - fov_component.visual_shadow.alpha = value diff --git a/code/modules/events/space_vines/vine_structure.dm b/code/modules/events/space_vines/vine_structure.dm index 2f7c78273b1..539b8a75cd4 100644 --- a/code/modules/events/space_vines/vine_structure.dm +++ b/code/modules/events/space_vines/vine_structure.dm @@ -7,7 +7,6 @@ anchored = TRUE density = FALSE layer = SPACEVINE_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN mouse_opacity = MOUSE_OPACITY_OPAQUE //Clicking anywhere on the turf is good enough pass_flags = PASSTABLE | PASSGRILLE max_integrity = 50 diff --git a/code/modules/food_and_drinks/machinery/food_cart.dm b/code/modules/food_and_drinks/machinery/food_cart.dm index f8410d2065d..da92d040f27 100644 --- a/code/modules/food_and_drinks/machinery/food_cart.dm +++ b/code/modules/food_and_drinks/machinery/food_cart.dm @@ -137,4 +137,3 @@ icon = 'icons/obj/fluff/3x3.dmi' icon_state = "stand" layer = ABOVE_MOB_LAYER//big mobs will still go over the tent, this is fine and cool - plane = GAME_PLANE_UPPER diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 046e835c50c..1b95c69b7ae 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -146,7 +146,7 @@ build_stab_overlay() /obj/structure/punji_sticks/proc/build_stab_overlay() - stab_overlay = mutable_appearance(icon, "[icon_state]_stab", layer = ABOVE_MOB_LAYER, offset_spokesman = src, plane = GAME_PLANE_FOV_HIDDEN) + stab_overlay = mutable_appearance(icon, "[icon_state]_stab", layer = ABOVE_MOB_LAYER) /obj/structure/punji_sticks/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents) . = ..() diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.dm b/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.dm index 75ac48c2467..f3b321b88b2 100644 --- a/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.dm +++ b/code/modules/mapfluff/ruins/lavalandruin_code/watcher_grave.dm @@ -143,7 +143,6 @@ icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' icon_state = "watcher_baby" layer = EDGED_TURF_LAYER // Don't render under lightbulbs - plane = GAME_PLANE_UPPER mouse_opacity = MOUSE_OPACITY_TRANSPARENT pixel_y = 22 alpha = 0 diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm index f2734bb7b05..6ce6056b477 100644 --- a/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm +++ b/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm @@ -81,7 +81,6 @@ icon = 'icons/effects/96x96.dmi' icon_state = "gate_blocker" layer = EDGED_TURF_LAYER - plane = GAME_PLANE_UPPER pixel_x = -32 pixel_y = -32 mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/modules/mob/living/basic/guardian/guardian_types/lightning.dm b/code/modules/mob/living/basic/guardian/guardian_types/lightning.dm index 31426475754..b2ac9d66e8c 100644 --- a/code/modules/mob/living/basic/guardian/guardian_types/lightning.dm +++ b/code/modules/mob/living/basic/guardian/guardian_types/lightning.dm @@ -92,4 +92,3 @@ /obj/effect/ebeam/chain name = "lightning chain" layer = LYING_MOB_LAYER - plane = GAME_PLANE_FOV_HIDDEN diff --git a/code/modules/mob/living/basic/heretic/star_gazer.dm b/code/modules/mob/living/basic/heretic/star_gazer.dm index 8f454fd7f78..e503cd65aea 100644 --- a/code/modules/mob/living/basic/heretic/star_gazer.dm +++ b/code/modules/mob/living/basic/heretic/star_gazer.dm @@ -34,7 +34,6 @@ can_buckle_to = FALSE mob_size = MOB_SIZE_HUGE layer = LARGE_MOB_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN flags_1 = PREVENT_CONTENTS_EXPLOSION_1 ai_controller = /datum/ai_controller/basic_controller/star_gazer diff --git a/code/modules/mob/living/basic/jungle/leaper/leaper_abilities.dm b/code/modules/mob/living/basic/jungle/leaper/leaper_abilities.dm index 8ff9edd1476..efc09410db4 100644 --- a/code/modules/mob/living/basic/jungle/leaper/leaper_abilities.dm +++ b/code/modules/mob/living/basic/jungle/leaper/leaper_abilities.dm @@ -42,7 +42,6 @@ icon = 'icons/obj/weapons/guns/projectiles.dmi' icon_state = "leaper_bubble_pop" layer = ABOVE_ALL_MOB_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN duration = 3 SECONDS /obj/effect/temp_visual/leaper_projectile_impact/Initialize(mapload) @@ -160,7 +159,6 @@ icon = 'icons/obj/weapons/guns/projectiles.dmi' icon_state = "leaper" layer = ABOVE_ALL_MOB_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN duration = 1 SECONDS /obj/effect/temp_visual/blood_drop_rising/Initialize(mapload) @@ -172,7 +170,6 @@ icon = 'icons/effects/effects.dmi' icon_state = "blood_effect_falling" layer = ABOVE_ALL_MOB_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN duration = 0.7 SECONDS pixel_y = 60 diff --git a/code/modules/mob/living/basic/jungle/venus_human_trap.dm b/code/modules/mob/living/basic/jungle/venus_human_trap.dm index b59ec233bd0..f9306afe20e 100644 --- a/code/modules/mob/living/basic/jungle/venus_human_trap.dm +++ b/code/modules/mob/living/basic/jungle/venus_human_trap.dm @@ -16,7 +16,6 @@ icon = 'icons/mob/spacevines.dmi' icon_state = "bud0" layer = SPACEVINE_MOB_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN opacity = FALSE canSmoothWith = null smoothing_flags = NONE @@ -135,7 +134,6 @@ health_doll_icon = "venus_human_trap" mob_biotypes = MOB_ORGANIC | MOB_PLANT layer = SPACEVINE_MOB_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN health = 100 maxHealth = 100 obj_damage = 60 diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 8f29a7d2be7..ab870461965 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -6,7 +6,6 @@ throw_speed = 3 throw_range = 5 layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_BRAIN organ_flags = ORGAN_ORGANIC | ORGAN_VITAL diff --git a/code/modules/mob/living/carbon/alien/adult/queen.dm b/code/modules/mob/living/carbon/alien/adult/queen.dm index df03ce3fa9e..f2093738eac 100644 --- a/code/modules/mob/living/carbon/alien/adult/queen.dm +++ b/code/modules/mob/living/carbon/alien/adult/queen.dm @@ -9,7 +9,6 @@ bubble_icon = "alienroyal" mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //above most mobs, but below speechbubbles - plane = GAME_PLANE_UPPER_FOV_HIDDEN pressure_resistance = 200 //Because big, stompy xenos should not be blown around like paper. butcher_results = list(/obj/item/food/meat/slab/xeno = 20, /obj/item/stack/sheet/animalhide/xeno = 3) @@ -23,11 +22,11 @@ /mob/living/carbon/alien/adult/royal/on_lying_down(new_lying_angle) . = ..() - SET_PLANE_IMPLICIT(src, GAME_PLANE_FOV_HIDDEN) //So it won't hide smaller mobs. + layer = LYING_MOB_LAYER /mob/living/carbon/alien/adult/royal/on_standing_up(new_lying_angle) . = ..() - SET_PLANE_IMPLICIT(src, initial(plane)) + layer = initial(layer) /mob/living/carbon/alien/adult/royal/can_inject(mob/user, target_zone, injection_flags) return FALSE diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 4b45f79377f..72aecd31721 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -22,7 +22,6 @@ tint = 3 flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH layer = MOB_LAYER - plane = GAME_PLANE_FOV_HIDDEN max_integrity = 100 item_flags = XENOMORPH_HOLDABLE special_desc_requirement = EXAMINE_CHECK_JOB //NOVA EDIT diff --git a/code/modules/mob/living/living_fov.dm b/code/modules/mob/living/living_fov.dm index 3e22a485f4c..0f400017515 100644 --- a/code/modules/mob/living/living_fov.dm +++ b/code/modules/mob/living/living_fov.dm @@ -10,7 +10,7 @@ // ^ If that case has changed and you need that check, add it. var/rel_x = observed_atom.x - my_turf.x var/rel_y = observed_atom.y - my_turf.y - if(fov_view && observed_atom.plane == GAME_PLANE_FOV_HIDDEN) //NOVA EDIT CHANGE + if(fov_view) if(rel_x >= -1 && rel_x <= 1 && rel_y >= -1 && rel_y <= 1) //Cheap way to check inside that 3x3 box around you return TRUE //Also checks if both are 0 to stop division by zero @@ -133,10 +133,3 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT plane = FIELD_OF_VISION_BLOCKER_PLANE screen_loc = "BOTTOM,LEFT" - -/atom/movable/screen/fov_shadow - icon = 'icons/effects/fov/field_of_view.dmi' - icon_state = "90_v" - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - plane = ABOVE_LIGHTING_PLANE - screen_loc = "BOTTOM,LEFT" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm index 23b061d345d..200800f3d05 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm @@ -25,7 +25,6 @@ pull_force = MOVE_FORCE_OVERPOWERING mob_size = MOB_SIZE_HUGE layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise - plane = GAME_PLANE_UPPER // NOVA EDIT - ORIGINAL: plane = GAME_PLANE_UPPER_FOV_HIDDEN mouse_opacity = MOUSE_OPACITY_OPAQUE // Easier to click on in melee, they're giant targets anyway flags_1 = PREVENT_CONTENTS_EXPLOSION_1 /// Crusher loot dropped when the megafauna is killed with a crusher diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm index 31e916e0f22..3a838ac58cd 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm @@ -23,7 +23,6 @@ environment_smash = ENVIRONMENT_SMASH_NONE sentience_type = SENTIENCE_BOSS layer = LARGE_MOB_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN var/mob/living/set_target var/datum/move_loop/has_target/force_move/our_loop diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 0e69f3978eb..6386fa272b7 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -18,7 +18,6 @@ harm_intent_damage = 0 //Punching elites gets you nowhere stat_attack = HARD_CRIT layer = LARGE_MOB_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN sentience_type = SENTIENCE_BOSS var/chosen_attack = 1 var/list/attack_action_types = list() diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index be218941aea..245afb86932 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -9,7 +9,6 @@ /mob density = TRUE layer = MOB_LAYER - plane = GAME_PLANE_FOV_HIDDEN animate_movement = SLIDE_STEPS hud_possible = list(ANTAG_HUD) pressure_resistance = 8 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index fbc66e56cc3..6dbcb9cfa4e 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -496,7 +496,6 @@ return FALSE //NOVA EDIT ADDITION END move_intent = MOVE_INTENT_RUN - SET_PLANE_IMPLICIT(src, (move_intent == MOVE_INTENT_WALK && !HAS_TRAIT(src, TRAIT_OVERSIZED)) ? GAME_PLANE_FOV_HIDDEN : GAME_PLANE) //NOVA EDIT ADDITION - Oversized Overhaul if(hud_used?.static_inventory) for(var/atom/movable/screen/mov_intent/selector in hud_used.static_inventory) selector.update_appearance() diff --git a/code/modules/mod/mod_link.dm b/code/modules/mod/mod_link.dm index d7f11fa97eb..943ad16eb77 100644 --- a/code/modules/mod/mod_link.dm +++ b/code/modules/mod/mod_link.dm @@ -47,23 +47,19 @@ if(newdir & NORTH) other_visual.pixel_y = 13 other_visual.layer = BELOW_MOB_LAYER - SET_PLANE_IMPLICIT(other_visual, GAME_PLANE_FOV_HIDDEN) if(newdir & SOUTH) other_visual.pixel_y = -24 other_visual.layer = ABOVE_ALL_MOB_LAYER - SET_PLANE_IMPLICIT(other_visual, GAME_PLANE_UPPER_FOV_HIDDEN) new_transform.Scale(-1, 1) new_transform.Translate(-1, 0) if(newdir & EAST) other_visual.pixel_x = 14 other_visual.layer = BELOW_MOB_LAYER - SET_PLANE_IMPLICIT(other_visual, GAME_PLANE_FOV_HIDDEN) new_transform.Shear(0.5, 0) new_transform.Scale(0.65, 1) if(newdir & WEST) other_visual.pixel_x = -14 other_visual.layer = BELOW_MOB_LAYER - SET_PLANE_IMPLICIT(other_visual, GAME_PLANE_FOV_HIDDEN) new_transform.Shear(-0.5, 0) new_transform.Scale(0.65, 1) other_visual.transform = new_transform diff --git a/code/modules/mod/modules/modules_supply.dm b/code/modules/mod/modules/modules_supply.dm index d49bfabd98d..1240a7adff3 100644 --- a/code/modules/mod/modules/modules_supply.dm +++ b/code/modules/mod/modules/modules_supply.dm @@ -245,7 +245,7 @@ mod.wearer.visible_message(span_warning("[mod.wearer] starts whirring!"), \ blind_message = span_hear("You hear a whirring sound.")) playsound(src, 'sound/items/modsuit/loader_charge.ogg', 75, TRUE) - lightning = mutable_appearance('icons/effects/effects.dmi', "electricity3", offset_spokesman = src, plane = GAME_PLANE_FOV_HIDDEN) + lightning = mutable_appearance('icons/effects/effects.dmi', "electricity3", layer = LOW_MOB_LAYER) mod.wearer.add_overlay(lightning) balloon_alert(mod.wearer, "you start charging...") var/power = launch_time diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 917cc3181e9..78aa4731953 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -190,7 +190,6 @@ GLOBAL_LIST_EMPTY(gravity_generators) if(count <= 3) // Their sprite is the top part of the generator part.set_density(FALSE) part.layer = WALL_OBJ_LAYER - SET_PLANE(part, GAME_PLANE_UPPER, our_turf) part.sprite_number = count part.main_part = src generator_parts += part diff --git a/code/modules/power/lighting/light.dm b/code/modules/power/lighting/light.dm index dd8350fdae4..f2abba090dc 100644 --- a/code/modules/power/lighting/light.dm +++ b/code/modules/power/lighting/light.dm @@ -5,7 +5,6 @@ icon_state = "tube" desc = "A lighting fixture." layer = WALL_OBJ_LAYER - plane = GAME_PLANE_UPPER max_integrity = 100 use_power = ACTIVE_POWER_USE idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 0.02 diff --git a/code/modules/power/lighting/light_construct.dm b/code/modules/power/lighting/light_construct.dm index 5be904dad86..905ae72c2e3 100644 --- a/code/modules/power/lighting/light_construct.dm +++ b/code/modules/power/lighting/light_construct.dm @@ -5,7 +5,6 @@ icon_state = "tube-construct-stage1" anchored = TRUE layer = WALL_OBJ_LAYER - plane = GAME_PLANE_UPPER max_integrity = 200 armor_type = /datum/armor/structure_light_construct diff --git a/code/modules/power/supermatter/supermatter_variants.dm b/code/modules/power/supermatter/supermatter_variants.dm index 2390ab3d0b7..9d69066a535 100644 --- a/code/modules/power/supermatter/supermatter_variants.dm +++ b/code/modules/power/supermatter/supermatter_variants.dm @@ -19,7 +19,6 @@ absorption_ratio = 0.125 explosion_power = 12 layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER moveable = TRUE /// Shard SM with it's processing disabled. diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index b6942c5929a..8c456c26863 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -13,7 +13,6 @@ generic_canpass = FALSE blocks_emissive = EMISSIVE_BLOCK_GENERIC layer = MOB_LAYER - plane = GAME_PLANE_FOV_HIDDEN //The sound this plays on impact. var/hitsound // NOVA EDIT CHANGE var/hitsound_wall = "" diff --git a/code/modules/projectiles/projectile/special/curse.dm b/code/modules/projectiles/projectile/special/curse.dm index 25eef224e0d..03b2e0feb53 100644 --- a/code/modules/projectiles/projectile/special/curse.dm +++ b/code/modules/projectiles/projectile/special/curse.dm @@ -7,7 +7,6 @@ base_icon_state = "cursehand" hitsound = 'sound/effects/curse4.ogg' layer = LARGE_MOB_LAYER - plane = GAME_PLANE_UPPER_FOV_HIDDEN damage_type = BURN damage = 10 paralyze = 20 diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 495c729202a..426b9133465 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -204,7 +204,6 @@ GLOBAL_VAR_INIT(bsa_unlock, FALSE) /obj/machinery/bsa/full/proc/get_layer() top_layer = mutable_appearance(icon, layer = ABOVE_MOB_LAYER) - SET_PLANE_EXPLICIT(top_layer, GAME_PLANE_UPPER, src) switch(dir) if(WEST) top_layer.icon_state = "top_west" diff --git a/code/modules/transport/tram/tram_signals.dm b/code/modules/transport/tram/tram_signals.dm index 53fcd97cffe..9e297e8e829 100644 --- a/code/modules/transport/tram/tram_signals.dm +++ b/code/modules/transport/tram/tram_signals.dm @@ -5,7 +5,6 @@ icon = 'icons/obj/tram/crossing_signal.dmi' icon_state = "crossing-inbound" base_icon_state = "crossing-inbound" - plane = GAME_PLANE_UPPER layer = TRAM_SIGNAL_LAYER max_integrity = 250 integrity_failure = 0.25 @@ -72,7 +71,7 @@ desc = "Indicates to pedestrians if it's safe to cross the tracks." icon = 'icons/obj/tram/crossing_signal.dmi' icon_state = "crossing-inbound" - plane = GAME_PLANE_UPPER + layer = TRAM_SIGNAL_LAYER max_integrity = 250 integrity_failure = 0.25 idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 2.4 diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm index 4f755ce0651..3e810c03073 100644 --- a/code/modules/vehicles/_vehicle.dm +++ b/code/modules/vehicles/_vehicle.dm @@ -6,7 +6,6 @@ max_integrity = 300 armor_type = /datum/armor/obj_vehicle layer = VEHICLE_LAYER - plane = GAME_PLANE // NOVA EDIT - ORIGINAL: plane = GAME_PLANE_FOV_HIDDEN density = TRUE anchored = FALSE blocks_emissive = EMISSIVE_BLOCK_GENERIC diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm index b72449de091..aa9a963a101 100644 --- a/code/modules/vehicles/atv.dm +++ b/code/modules/vehicles/atv.dm @@ -59,22 +59,18 @@ turret.pixel_x = base_pixel_x turret.pixel_y = base_pixel_y + 4 turret.layer = ABOVE_MOB_LAYER - SET_PLANE(turret, GAME_PLANE_UPPER, our_turf) if(EAST) turret.pixel_x = base_pixel_x - 12 turret.pixel_y = base_pixel_y + 4 turret.layer = OBJ_LAYER - SET_PLANE(turret, GAME_PLANE, our_turf) if(SOUTH) turret.pixel_x = base_pixel_x turret.pixel_y = base_pixel_y + 4 turret.layer = OBJ_LAYER - SET_PLANE(turret, GAME_PLANE, our_turf) if(WEST) turret.pixel_x = base_pixel_x + 12 turret.pixel_y = base_pixel_y + 4 turret.layer = OBJ_LAYER - SET_PLANE(turret, GAME_PLANE, our_turf) /obj/vehicle/ridden/atv/welder_act(mob/living/user, obj/item/W) if(user.combat_mode) diff --git a/code/modules/vehicles/mecha/combat/savannah_ivanov.dm b/code/modules/vehicles/mecha/combat/savannah_ivanov.dm index 1aa4223b98c..c784219e3c3 100644 --- a/code/modules/vehicles/mecha/combat/savannah_ivanov.dm +++ b/code/modules/vehicles/mecha/combat/savannah_ivanov.dm @@ -147,7 +147,6 @@ chassis.movedelay = 1 chassis.density = FALSE chassis.layer = ABOVE_ALL_MOB_LAYER - SET_PLANE(chassis, GAME_PLANE_UPPER_FOV_HIDDEN, launch_turf) animate(chassis, alpha = 0, time = 8, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL) animate(chassis, pixel_z = 400, time = 10, easing = QUAD_EASING|EASE_IN, flags = ANIMATION_PARALLEL) //Animate our rising mech (just like pods hehe) addtimer(CALLBACK(src, PROC_REF(begin_landing)), 2 SECONDS) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index bb6a650b2ae..e7cc2a3f767 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -746,7 +746,6 @@ tilted = TRUE tilted_rotation = picked_rotation layer = ABOVE_MOB_LAYER - SET_PLANE_IMPLICIT(src, GAME_PLANE_UPPER) if(get_turf(fatty) != get_turf(src)) throw_at(get_turf(fatty), 1, 1, spin = FALSE, quickstart = FALSE) @@ -1016,7 +1015,6 @@ tilted = FALSE layer = initial(layer) - SET_PLANE_IMPLICIT(src, initial(plane)) var/matrix/to_turn = turn(transform, -tilted_rotation) animate(src, transform = to_turn, 0.2 SECONDS) diff --git a/icons/effects/fov/field_of_view.dmi b/icons/effects/fov/field_of_view.dmi index 8086773d140..8a15ae18a92 100644 Binary files a/icons/effects/fov/field_of_view.dmi and b/icons/effects/fov/field_of_view.dmi differ diff --git a/modular_nova/module_template.md b/modular_nova/module_template.md index c1ef271fd64..1ad076b6a8f 100644 --- a/modular_nova/module_template.md +++ b/modular_nova/module_template.md @@ -1,6 +1,6 @@ -https://github.com/GalacticStation/Galaxia/pull/ +https://github.com/NovaSector/NovaSector/pull/ ## \ <!--Title of your addition.--> diff --git a/modular_nova/modules/ashwalkers/code/buildings/railroad.dm b/modular_nova/modules/ashwalkers/code/buildings/railroad.dm index 494dc883f7c..c1751cecd57 100644 --- a/modular_nova/modules/ashwalkers/code/buildings/railroad.dm +++ b/modular_nova/modules/ashwalkers/code/buildings/railroad.dm @@ -78,7 +78,7 @@ /obj/vehicle/ridden/rail_cart/Initialize(mapload) . = ..() attach_trailer() - railoverlay = mutable_appearance(icon, "railoverlay", ABOVE_MOB_LAYER, src, GAME_PLANE_UPPER) + railoverlay = mutable_appearance(icon, "railoverlay", ABOVE_MOB_LAYER, src) AddElement(/datum/element/ridable, /datum/component/riding/vehicle/rail_cart) create_storage(max_total_storage = 21, max_slots = 21) diff --git a/modular_nova/modules/colony_fabricator/code/appliances/wind_turbine.dm b/modular_nova/modules/colony_fabricator/code/appliances/wind_turbine.dm index f6717018445..1713f78a925 100644 --- a/modular_nova/modules/colony_fabricator/code/appliances/wind_turbine.dm +++ b/modular_nova/modules/colony_fabricator/code/appliances/wind_turbine.dm @@ -13,7 +13,6 @@ can_change_cable_layer = FALSE circuit = null layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER can_change_cable_layer = TRUE /// How much power the turbine makes without a storm var/regular_power_production = 2500 diff --git a/modular_nova/modules/disable_worn_fov/code/worn_items.dm b/modular_nova/modules/disable_worn_fov/code/worn_items.dm new file mode 100644 index 00000000000..1934c7a4782 --- /dev/null +++ b/modular_nova/modules/disable_worn_fov/code/worn_items.dm @@ -0,0 +1,9 @@ +/obj/item/clothing/head/costume/tv_head + has_fov = FALSE + +/obj/item/clothing/head/bio_hood/Initialize(mapload) + . = ..() + qdel(GetComponent(/datum/component/clothing_fov_visor)) + +/obj/item/clothing/mask/gas/ + has_fov = FALSE diff --git a/modular_nova/modules/emotes/code/additionalemotes/turf_list.dm b/modular_nova/modules/emotes/code/additionalemotes/turf_list.dm index 64beb934a33..552c4ee037c 100644 --- a/modular_nova/modules/emotes/code/additionalemotes/turf_list.dm +++ b/modular_nova/modules/emotes/code/additionalemotes/turf_list.dm @@ -108,7 +108,7 @@ icon = 'modular_nova/master_files/icons/effects/turf_effects_64.dmi' icon_state = "tails" pixel_x = -16 //correcting the offset for 64 - var/mutable_appearance/overlay = mutable_appearance('modular_nova/master_files/icons/effects/turf_effects_64.dmi', "tails_top", EXTRA_ABOVE_MOB_LAYER, src, GAME_PLANE_UPPER) + var/mutable_appearance/overlay = mutable_appearance('modular_nova/master_files/icons/effects/turf_effects_64.dmi', "tails_top", EXTRA_ABOVE_MOB_LAYER, src) overlay.appearance_flags = TILE_BOUND|PIXEL_SCALE|KEEP_TOGETHER src.add_overlay(overlay) playsound(get_turf(src), 'sound/weapons/thudswoosh.ogg', 25, TRUE) @@ -119,7 +119,7 @@ icon = 'modular_nova/master_files/icons/effects/turf_effects_64.dmi' icon_state = "naga" pixel_x = -16 - var/mutable_appearance/overlay = mutable_appearance('modular_nova/master_files/icons/effects/turf_effects_64.dmi', "naga_top", EXTRA_ABOVE_MOB_LAYER, src, GAME_PLANE_UPPER) + var/mutable_appearance/overlay = mutable_appearance('modular_nova/master_files/icons/effects/turf_effects_64.dmi', "naga_top", EXTRA_ABOVE_MOB_LAYER, src) overlay.appearance_flags = TILE_BOUND|PIXEL_SCALE|KEEP_TOGETHER src.add_overlay(overlay) playsound(get_turf(src), 'modular_nova/modules/emotes/sound/emotes/hiss.ogg', 25, TRUE) diff --git a/modular_nova/modules/liquids/code/liquid_systems/liquid_effect.dm b/modular_nova/modules/liquids/code/liquid_systems/liquid_effect.dm index b2db5f11d41..860c6c8c425 100644 --- a/modular_nova/modules/liquids/code/liquid_systems/liquid_effect.dm +++ b/modular_nova/modules/liquids/code/liquid_systems/liquid_effect.dm @@ -224,7 +224,7 @@ /obj/effect/abstract/liquid_turf/proc/make_state_layer(state, has_top) PRIVATE_PROC(TRUE) - . = list(make_liquid_overlay("stage[state]_bottom", ABOVE_MOB_LAYER, GAME_PLANE_UPPER)) + . = list(make_liquid_overlay("stage[state]_bottom", ABOVE_MOB_LAYER)) if(!has_top) return diff --git a/modular_nova/modules/mapping/code/pool.dm b/modular_nova/modules/mapping/code/pool.dm index 3fab12b079f..d7cd79f1016 100644 --- a/modular_nova/modules/mapping/code/pool.dm +++ b/modular_nova/modules/mapping/code/pool.dm @@ -15,7 +15,6 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT anchored = TRUE layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER /obj/effect/overlay/water/top icon_state = "top" diff --git a/modular_nova/modules/mounted_machine_gun/code/mounted_machine_gun.dm b/modular_nova/modules/mounted_machine_gun/code/mounted_machine_gun.dm index 83850713341..fa9b4c1ae8c 100644 --- a/modular_nova/modules/mounted_machine_gun/code/mounted_machine_gun.dm +++ b/modular_nova/modules/mounted_machine_gun/code/mounted_machine_gun.dm @@ -15,7 +15,6 @@ buckle_lying = 0 SET_BASE_PIXEL(-8, -8) layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER /// The extra range that this turret gives regarding viewrange. var/view_range = 2.5 /// Sound to play when overheated @@ -164,7 +163,6 @@ register_user(user_to_buckle) layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER setDir(SOUTH) playsound(src,'sound/mecha/mechmove01.ogg', 50, TRUE) set_anchored(TRUE) @@ -423,7 +421,6 @@ user.pixel_y = -8 if(EAST) layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER user.pixel_x = -22 user.pixel_y = 0 if(SOUTHEAST) @@ -433,7 +430,6 @@ user.pixel_y = 14 if(SOUTH) layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER user.pixel_x = 0 user.pixel_y = 22 if(SOUTHWEST) @@ -443,7 +439,6 @@ user.pixel_y = 14 if(WEST) layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER user.pixel_x = 22 user.pixel_y = 0 if(NORTHWEST) diff --git a/modular_nova/modules/xenos_skyrat_redo/code/base_skyrat_xeno.dm b/modular_nova/modules/xenos_skyrat_redo/code/base_skyrat_xeno.dm index 2bcba700093..9fc4c261cc6 100644 --- a/modular_nova/modules/xenos_skyrat_redo/code/base_skyrat_xeno.dm +++ b/modular_nova/modules/xenos_skyrat_redo/code/base_skyrat_xeno.dm @@ -7,7 +7,6 @@ base_pixel_x = -16 //All of the xeno sprites are 64x64, and we want them to be level with the tile they are on, much like oversized quirk users mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //above most mobs, but below speechbubbles - plane = GAME_PLANE_UPPER_FOV_HIDDEN maptext_height = 64 maptext_width = 64 pressure_resistance = 200 diff --git a/tgstation.dme b/tgstation.dme index 1844538096a..e6e0d3f05ae 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3665,7 +3665,6 @@ #include "code\modules\client\preferences\clothing.dm" #include "code\modules\client\preferences\darkened_flash.dm" #include "code\modules\client\preferences\food_allergy.dm" -#include "code\modules\client\preferences\fov_darkness.dm" #include "code\modules\client\preferences\fps.dm" #include "code\modules\client\preferences\gender.dm" #include "code\modules\client\preferences\ghost.dm" @@ -7190,6 +7189,7 @@ #include "modular_nova\modules\departmentization\clothing_overrides.dm" #include "modular_nova\modules\departmentization\quartermaster.dm" #include "modular_nova\modules\digi_bloodsole\code\_shoes.dm" +#include "modular_nova\modules\disable_worn_fov\code\worn_items.dm" #include "modular_nova\modules\dogfashion\code\head.dm" #include "modular_nova\modules\drone_adjustments\drone.dm" #include "modular_nova\modules\drone_adjustments\slide_component.dm" diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/fov_darkness.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/fov_darkness.tsx deleted file mode 100644 index 8f6073c8f65..00000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/fov_darkness.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { Feature, FeatureNumberInput } from '../base'; - -export const fov_darkness: Feature<number> = { - name: 'Field of view darkness', - category: 'GAMEPLAY', - description: - 'The density of darkness of field of vision cones you may have by wearing restrictive eye cover.', - component: FeatureNumberInput, -};