Stairs update (#94146)

## About The Pull Request

1. Stairs are now on the floor plane, meaning they don't have AO and
blend in with turfs

2. Stairs now blend with adjacent stairs, forming a contiguous sprite

3. There is now a visual indicator that stairs will take you up in the
form of an arrow - The arrow appears when within three tiles and only
appears if the stairs can actually take you up.


https://github.com/user-attachments/assets/d941a312-9470-4d2a-95f0-a1834adf0212

## Why It's Good For The Game

1. The common method of making stairs (stair objects on stair turfs)
looks ugly due to AO
2. Stair turfs have these sprites but not the objects themselves
3. Given stairs now blend in better, I figured there should be a proper
indicator that stairs exist. Helps with fake stair confusion

## Changelog

🆑 Melbert
qol: Stairs now have an indicator that stepping beyond them will take
you upwards. You can disable it in accessibility settings if desired.
image: Stairs blend in and together better.
/🆑
This commit is contained in:
MrMelbert
2025-11-30 17:33:08 -07:00
committed by GitHub
parent 11e38ff10e
commit 6d20c4f20d
4 changed files with 188 additions and 27 deletions
@@ -18,3 +18,18 @@
default_value = FALSE
savefile_key = "remove_double_click"
savefile_identifier = PREFERENCE_PLAYER
/// When toggled, enables staircase indicators
/datum/preference/toggle/stair_indicator
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
default_value = TRUE
savefile_key = "stair_indicator"
savefile_identifier = PREFERENCE_PLAYER
/datum/preference/toggle/stair_indicator/apply_to_client_updated(client/client, value)
if(value || !isliving(client.mob)) // only hide, showing is more trouble than it's worth
return
var/datum/weakref/climber_ref = WEAKREF(client.mob)
for(var/obj/structure/stairs/stair as anything in GLOB.stairs)
stair.clear_climber_image(climber_ref)