Visual / layering fixes (#19547)

Package of a few visual changes to make things prettier-er. Also added a
helper for mapping purposes.

  - bugfix: "Carpets now show proper edges again."
- bugfix: "Fixed layering of several map items, like disposal pipes,
that were previously buried underneath turfs in the map editor (and were
invisible as a result)."
- bugfix: "Fixed observer sprites occasionally going underneath certain
objects. Their layering has been fixed."
- bugfix: "Reinforced plastic tables now show up correctly in the map
editor."
- rscadd: "Added a special 'lock' door helper that automatically locks
doors underneath it so mappers don't have to edit variables/icon states
manually."


![image](https://github.com/Aurorastation/Aurora.3/assets/55491249/53d97049-0104-491a-9a56-4d677afec536)

![image](https://github.com/Aurorastation/Aurora.3/assets/55491249/a26c9cf6-1ea9-4654-bc5c-954c878efda3)

![image](https://github.com/Aurorastation/Aurora.3/assets/55491249/6dbee17e-6a24-4cc9-b194-4c46530020be)

Fixes #18762 
Fixes #18840 
Fixes #19101
This commit is contained in:
naut
2024-06-29 17:02:23 +08:00
committed by GitHub
parent de6ef42a6f
commit d63d63d78c
15 changed files with 152 additions and 73 deletions
+56 -52
View File
@@ -58,38 +58,38 @@
#define DECAL_LAYER 2.03
#define RUNE_LAYER 2.04
#define ABOVE_TILE_LAYER 2.05
#define EXPOSED_PIPE_LAYER 2.06
#define EXPOSED_WIRE_LAYER 2.07
#define EXPOSED_WIRE_TERMINAL_LAYER 2.08
#define CATWALK_LAYER 2.09
#define ABOVE_CATWALK_LAYER 2.10
#define BLOOD_LAYER 2.11
#define MOUSETRAP_LAYER 2.12
#define PLANT_LAYER 2.13
#define AO_LAYER 2.14
#define EXPOSED_DISPOSALS_PIPE_LAYER 2.06
#define EXPOSED_PIPE_LAYER 2.07
#define EXPOSED_WIRE_LAYER 2.08
#define EXPOSED_WIRE_TERMINAL_LAYER 2.09
#define CATWALK_LAYER 2.10
#define ABOVE_CATWALK_LAYER 2.11
#define BLOOD_LAYER 2.12
#define MOUSETRAP_LAYER 2.13
#define PLANT_LAYER 2.14
#define AO_LAYER 2.15
//HIDING MOB
#define HIDING_MOB_LAYER 2.15
#define SHALLOW_FLUID_LAYER 2.16
#define HIDING_MOB_LAYER 2.16
#define SHALLOW_FLUID_LAYER 2.17
// OBJ
#define BELOW_DOOR_LAYER 2.18
#define OPEN_DOOR_LAYER 2.19
#define BELOW_TABLE_LAYER 2.20
#define TABLE_LAYER 2.21
#define ABOVE_TABLE_LAYER 2.22
#define BELOW_OBJ_LAYER 2.23
#define STRUCTURE_LAYER 2.24
#define BELOW_DOOR_LAYER 2.69
#define OPEN_DOOR_LAYER 2.70
#define BELOW_TABLE_LAYER 2.71
#define TABLE_LAYER 2.72
#define ABOVE_TABLE_LAYER 2.73
#define WINDOW_FRAME_LAYER 2.74
#define BELOW_WINDOW_LAYER 2.75
#define SIDE_WINDOW_LAYER 2.76
#define FULL_WINDOW_LAYER 2.77
#define ABOVE_WINDOW_LAYER 2.78
#define BELOW_OBJ_LAYER 2.89
#define STRUCTURE_LAYER 2.9
//OBJ_LAYER 3
#define ABOVE_OBJ_LAYER 3.01
#define MOB_SHADOW_LAYER 3.011
#define MOB_EMISSIVE_LAYER 3.012
#define MOB_SHADOW_UPPER_LAYER 3.013
#define UNDERDOOR 3.015 //Just barely under a closed door. TODO: Obsolete?
#define CLOSED_DOOR_LAYER 3.02
#define ABOVE_DOOR_LAYER 3.03
#define SIDE_WINDOW_LAYER 3.04
#define FULL_WINDOW_LAYER 3.05
#define ABOVE_WINDOW_LAYER 3.06
#define HOLOMAP_OVERLAY_LAYER 3.061
#define HOLOMAP_OVERLAY_LAYER 3.02
//LYING MOB AND HUMAN
#define LYING_MOB_LAYER 3.07
#define LYING_HUMAN_LAYER 3.08
@@ -97,33 +97,37 @@
//HUMAN
#define BASE_HUMAN_LAYER 3.10
//MOB_LAYER 4
#define MECH_BASE_LAYER 4.01
#define MECH_INTERMEDIATE_LAYER 4.02
#define MECH_PILOT_LAYER 4.03
#define MECH_LEG_LAYER 4.04
#define MECH_COCKPIT_LAYER 4.05
#define MECH_ARM_LAYER 4.06
#define MECH_HEAD_LAYER 4.07
#define MECH_GEAR_LAYER 4.08
#define MECH_DECAL_LAYER 4.09
//ABOVE_HUMAN
#define ABOVE_HUMAN_LAYER 4.10
#define ABOVE_ABOVE_HUMAN_LAYER 4.101
#define VEHICLE_LOAD_LAYER 4.11
#define CAMERA_LAYER 4.12
//BLOB
#define BLOB_SHIELD_LAYER 4.13
#define BLOB_NODE_LAYER 4.14
#define BLOB_CORE_LAYER 4.15
//EFFECTS BELOW LIGHTING
#define BELOW_PROJECTILE_LAYER 4.16
#define DEEP_FLUID_LAYER 4.17
#define FIRE_LAYER 4.18
#define PROJECTILE_LAYER 4.19
#define ABOVE_PROJECTILE_LAYER 4.20
#define SINGULARITY_LAYER 4.21
#define POINTER_LAYER 4.22
#define MIMICED_LIGHTING_LAYER 4.23 // Z-Mimic-managed lighting
#define UNDERDOOR 4.03
#define CLOSED_DOOR_LAYER 4.04
#define ABOVE_DOOR_LAYER 4.05
#define MECH_BASE_LAYER 4.06
#define MECH_INTERMEDIATE_LAYER 4.07
#define MECH_PILOT_LAYER 4.08
#define MECH_LEG_LAYER 4.09
#define MECH_COCKPIT_LAYER 4.10
#define MECH_ARM_LAYER 4.11
#define MECH_HEAD_LAYER 4.12
#define MECH_GEAR_LAYER 4.13
#define MECH_DECAL_LAYER 4.14
// ABOVE_HUMAN
#define ABOVE_HUMAN_LAYER 4.15
#define ABOVE_ABOVE_HUMAN_LAYER 4.151
#define VEHICLE_LOAD_LAYER 4.16
#define CAMERA_LAYER 4.17
// BLOB
#define BLOB_SHIELD_LAYER 4.18
#define BLOB_NODE_LAYER 4.19
#define BLOB_CORE_LAYER 4.20
// EFFECTS BELOW LIGHTING
#define BELOW_PROJECTILE_LAYER 4.21
#define DEEP_FLUID_LAYER 4.22
#define FIRE_LAYER 4.23
#define PROJECTILE_LAYER 4.24
#define ABOVE_PROJECTILE_LAYER 4.25
#define SINGULARITY_LAYER 4.26
#define POINTER_LAYER 4.27
#define MIMICED_LIGHTING_LAYER 4.28 // Z-Mimic-managed lighting
//FLY_LAYER 5
//OBSERVER
#define OBSERVER_LAYER 5.1
+6 -5
View File
@@ -10,11 +10,12 @@
#define TURF_CAN_BREAK BITFLAG(6)
#define TURF_CAN_BURN BITFLAG(7)
#define TURF_HAS_EDGES BITFLAG(8)
#define TURF_HAS_CORNERS BITFLAG(9)
#define TURF_HAS_INNER_CORNERS BITFLAG(10)
#define TURF_IS_FRAGILE BITFLAG(11)
#define TURF_ACID_IMMUNE BITFLAG(12)
#define TURF_NORUINS BITFLAG(13)
#define TURF_OFFSET_EDGES BITFLAG(9)
#define TURF_HAS_CORNERS BITFLAG(10)
#define TURF_HAS_INNER_CORNERS BITFLAG(11)
#define TURF_IS_FRAGILE BITFLAG(12)
#define TURF_ACID_IMMUNE BITFLAG(13)
#define TURF_NORUINS BITFLAG(14)
//Used for floor/wall smoothing
#define SMOOTH_NONE 0 //Smooth only with itself
@@ -5,7 +5,7 @@
icon_state = "window_frame"
color = COLOR_GRAY20
build_amt = 4
layer = ABOVE_TABLE_LAYER
layer = WINDOW_FRAME_LAYER
anchored = TRUE
density = TRUE
climbable = TRUE
+2 -2
View File
@@ -10,14 +10,14 @@
anchored = TRUE
obj_flags = OBJ_FLAG_CONDUCTABLE | OBJ_FLAG_MOVES_UNSUPPORTED
explosion_resistance = 1
layer = BELOW_OBJ_LAYER
layer = BELOW_WINDOW_LAYER
var/health = 10
var/destroyed = 0
/obj/structure/grille/over
name = "over-frame grille"
icon = 'icons/obj/smooth/window/grille_over.dmi'
layer = BELOW_OBJ_LAYER
layer = BELOW_WINDOW_LAYER
smoothing_flags = SMOOTH_MORE
canSmoothWith = list(
/turf/simulated/wall,
+1 -1
View File
@@ -8,7 +8,7 @@
density = FALSE
anchored = TRUE
w_class = ITEMSIZE_NORMAL
layer = LATTICE_LAYER
layer = ABOVE_TILE_LAYER
obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED
smoothing_flags = SMOOTH_MORE
canSmoothWith = list(
+1 -1
View File
@@ -5,7 +5,7 @@
icon_state = "plasticflaps_preview"
density = 0
anchored = 1
layer = ABOVE_HUMAN_LAYER
layer = UNDERDOOR
explosion_resistance = 5
build_amt = 4
color = COLOR_GRAY20 // ideally this would get_step() the material color from nearby walls but this works for now.
+4 -4
View File
@@ -61,7 +61,7 @@
has_damage_range = 0
has_damage_state = TRUE
damage_temperature = T0C+80
flags = TURF_HAS_EDGES | TURF_HAS_CORNERS | TURF_REMOVE_SHOVEL | TURF_CAN_BREAK | TURF_CAN_BURN
flags = TURF_HAS_EDGES | TURF_OFFSET_EDGES | TURF_HAS_CORNERS | TURF_REMOVE_SHOVEL | TURF_CAN_BREAK | TURF_CAN_BURN
build_type = /obj/item/stack/tile/grass
footstep_sound = /singleton/sound_category/grass_footstep
floor_smooth = SMOOTH_NONE
@@ -73,7 +73,7 @@
desc = "Gritty and unpleasant."
icon = 'icons/turf/flooring/asteroid.dmi'
icon_base = "asteroid"
flags = TURF_HAS_EDGES | TURF_REMOVE_SHOVEL
flags = TURF_HAS_EDGES | TURF_OFFSET_EDGES | TURF_REMOVE_SHOVEL
build_type = null
footstep_sound = /singleton/sound_category/asteroid_footstep
@@ -83,7 +83,7 @@
icon = 'icons/turf/flooring/grass.dmi'
icon_base = "snow"
has_base_range = 2
flags = TURF_HAS_EDGES | TURF_REMOVE_SHOVEL
flags = TURF_HAS_EDGES | TURF_OFFSET_EDGES | TURF_REMOVE_SHOVEL
footstep_sound = /singleton/sound_category/snow_footstep
//Carpet
@@ -94,7 +94,7 @@
icon_base = "carpet"
build_type = /obj/item/stack/tile/carpet
damage_temperature = T0C+200
flags = TURF_HAS_CORNERS | TURF_HAS_INNER_CORNERS | TURF_REMOVE_CROWBAR | TURF_CAN_BREAK | TURF_CAN_BURN
flags = TURF_HAS_CORNERS | TURF_HAS_INNER_CORNERS | TURF_REMOVE_CROWBAR | TURF_CAN_BREAK | TURF_CAN_BURN | TURF_HAS_EDGES
footstep_sound = /singleton/sound_category/carpet_footstep
floor_smooth = SMOOTH_NONE
wall_smooth = SMOOTH_NONE
+2 -3
View File
@@ -35,7 +35,7 @@
if(flooring.has_damage_state && !isnull(broken) && (flooring.flags & TURF_CAN_BREAK))
AddOverlays(get_flooring_overlay("[flooring.icon]_[flooring.icon_base]-broken-edge-[step_dir]", "[flooring.icon_base]_broken_edges", step_dir,(flooring.flags & TURF_HAS_EDGES)))
else if(flooring.flags & TURF_HAS_EDGES)
AddOverlays(get_flooring_overlay("[flooring.icon]_[flooring.icon_base]-edge-[step_dir]", "[flooring.icon_base]_edges", step_dir, (flooring.flags & TURF_HAS_EDGES)))
AddOverlays(get_flooring_overlay("[flooring.icon]_[flooring.icon_base]-edge-[step_dir]", "[flooring.icon_base]_edges", step_dir, (flooring.flags & TURF_OFFSET_EDGES)))
has_smooth = ~(has_border & (NORTH | SOUTH | EAST | WEST))
@@ -57,7 +57,7 @@
if(flooring.has_damage_state && !isnull(broken) && (flooring.flags & TURF_CAN_BREAK))
AddOverlays(get_flooring_overlay("[flooring.icon]_[flooring.icon_base]-broken-edge-[direction]", "[flooring.icon_base]_broken_edges", direction,(flooring.flags & TURF_HAS_EDGES)))
else
AddOverlays(get_flooring_overlay("[flooring.icon]_[flooring.icon_base]-edge-[direction]", "[flooring.icon_base]_edges", direction,(flooring.flags & TURF_HAS_EDGES)))
AddOverlays(get_flooring_overlay("[flooring.icon]_[flooring.icon_base]-edge-[direction]", "[flooring.icon_base]_edges", direction,(flooring.flags & TURF_OFFSET_EDGES)))
if(!isnull(broken) && (flooring.flags & TURF_CAN_BREAK))
if(flooring.has_damage_state)
@@ -97,7 +97,6 @@
I.pixel_x = -world.icon_size
else if (icon_dir & EAST)
I.pixel_x = world.icon_size
I.layer = flooring.decal_layer
flooring_cache[cache_key] = I
return flooring_cache[cache_key]
@@ -1,7 +1,7 @@
/obj/machinery/atmospherics/binary
dir = SOUTH
initialize_directions = SOUTH|NORTH
layer = ABOVE_CATWALK_LAYER
layer = EXPOSED_PIPE_LAYER
var/datum/gas_mixture/air1
var/datum/gas_mixture/air2
@@ -59,3 +59,14 @@
"red" = list(19,38),
"delta" = list(19,38)
)
/// Locks/bolts any (lockable) door/airlock this marker is placed on.
/obj/effect/map_effect/door_helper/lock
icon_state = "locked"
/obj/effect/map_effect/door_helper/lock/modify_door(obj/machinery/door/D)
. = ..()
if(isairlock(D))
var/obj/machinery/door/airlock/A = D
A.locked = TRUE
A.set_airlock_overlays(AIRLOCK_CLOSED)
@@ -3,7 +3,8 @@
desc = "It's a g-g-g-g-ghooooost!" //jinkies!
icon = 'icons/mob/mob.dmi'
icon_state = "ghost"
layer = OBSERVER_PLANE
layer = OBSERVER_LAYER
plane = OBSERVER_PLANE
stat = DEAD
density = 0
canmove = 0
+1 -1
View File
@@ -794,7 +794,7 @@
var/dpdir = 0 // bitmask of pipe directions
dir = 0 // dir will contain dominant direction for junction pipes
var/health = 10 // health points 0-10
layer = DISPOSALS_PIPE_LAYER
layer = EXPOSED_DISPOSALS_PIPE_LAYER
var/sortType = ""
var/subtype = 0
// new pipe, set the icon_state as on map
+1 -1
View File
@@ -17,7 +17,7 @@
table_mat = MATERIAL_MARBLE
/obj/structure/table/reinforced
icon_state = "reinf_preview"
icon_state = "reinf_solid_preview"
table_mat = DEFAULT_TABLE_MATERIAL
table_reinf = DEFAULT_TABLE_REINF_MATERIAL
+63
View File
@@ -0,0 +1,63 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# - (fixes bugs)
# wip
# - (work in progress)
# qol
# - (quality of life)
# soundadd
# - (adds a sound)
# sounddel
# - (removes a sound)
# rscadd
# - (adds a feature)
# rscdel
# - (removes a feature)
# imageadd
# - (adds an image or sprite)
# imagedel
# - (removes an image or sprite)
# spellcheck
# - (fixes spelling or grammar)
# experiment
# - (experimental change)
# balance
# - (balance changes)
# code_imp
# - (misc internal code change)
# refactor
# - (refactors code)
# config
# - (makes a change to the config files)
# admin
# - (makes changes to administrator tools)
# server
# - (miscellaneous changes to server)
#################################
# Your name.
author: nauticall
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
changes:
- bugfix: "Carpets now show proper edges again."
- bugfix: "Fixed layering of several map items, like disposal pipes, that were previously buried underneath turfs in the map editor (and were invisible as a result)."
- bugfix: "Fixed other miscellaneous layering issues."
- bugfix: "Fixed observer sprites occasionally going underneath certain objects. Their layering has been fixed."
- bugfix: "Reinforced plastic tables now show up correctly in the map editor."
- rscadd: "Added a special 'lock' door helper that automatically locks doors underneath it so mappers don't have to edit variables/icon states manually."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB