Files
Bubberstation/code/__DEFINES/door.dm
SkyratBot 1c342cb317 [MIRROR] Variable Door Delay + Timer Based Animations (#28740)
* Variable Door Delay + Timer Based Animations (#84631)

## About The Pull Request

### Variable Door Delay

Door opening/closing delay times are currently static, but many doors do
not have animations that FIT the actual timings.

It would be better if subtypes cound declare how long each animation
takes, and how long it takes for opening to say, become passable and
such.

Let's do that.

### Timer Based Animations

Currently all doors use flick() to do their animations. This is fine
right NOW, but fucks with walleniong because we have to split most
things into segments to make layering work.

So rather then flick let's use client timers and update_icon_state to
achive our effects, alongside a proc that lets us do other effects (like
sound) on playing an animation

## Why It's Good For The Game

Door behavior and visuals better match up, wallening compatability
upstreaming.

## Changelog
🆑
add: Most door animations now better line up with when they are/are not
passable.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>

* Variable Door Delay + Timer Based Animations

* Update airlock_override.dm

* modular fix

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-07-11 19:38:12 +05:30

19 lines
825 B
Plaintext

// Door animation defines
#define DOOR_OPENING_ANIMATION "opening"
#define DOOR_CLOSING_ANIMATION "closing"
#define DOOR_DENY_ANIMATION "deny"
// Door animation STEP defines
// These are used to mark points in the animtion when things in game should change
#define DOOR_OPENING_PASSABLE "opening_passable"
#define DOOR_OPENING_FINISHED "opening_finished"
#define DOOR_CLOSING_UNPASSABLE "closing_unpassable"
#define DOOR_CLOSING_FINISHED "closing_finished"
#define AIRLOCK_OPENING_TRANSPARENT "airlock_opening_transparent"
#define AIRLOCK_OPENING_PASSABLE "airlock_opening_passable"
#define AIRLOCK_OPENING_FINISHED "airlock_opening_finished"
#define AIRLOCK_CLOSING_OPAQUE "airlock_closing_opaque"
#define AIRLOCK_CLOSING_UNPASSABLE "airlock_closing_unpassable"
#define AIRLOCK_CLOSING_FINISHED "airlock_closing_finished"