Add ashtray persistence & fixes (#21925)

# Summary

This PR adds persistency to ash trays. This in turn fixes cigarettes
butts spawning a round later in locations where non-empty ash trays were
found.

## Changes

- Add persistence to ash trays and prevent (fixes) cigarette butt
persistence if in an ash tray.
- Fixed cigarette butts not being persistent if the cigarette was put
out on purpose and landing on the floor.
- Fixed loss of registered persistence track on item pickup.
- Fixed persistent tracks when item is held by player.
- Removed all ash trays on the Horizon as their existence is now
persistent. One-time job for operations after merge.
- Fixed matter configuration on `/obj/item/material` not being set
during `set_material()`.
- Fixed persistent trash on space turfs.
- Minor adjustments in SQL/Readme.md.

---------

Signed-off-by: FabianK3 <21039694+FabianK3@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
This commit is contained in:
FabianK3
2026-03-17 13:12:57 +00:00
committed by GitHub
co-authored by VMSolidus
parent b56522f6e5
commit 6c4e9254b2
12 changed files with 74 additions and 88 deletions
+6
View File
@@ -90,6 +90,12 @@
* The item will be added to the late_loaders list, this is iterated over after
* initalization of subsystems is complete and calls LateInitalize on the atom
* see [this file for the LateIntialize proc](atom.html#proc/LateInitialize)
*
* It's worth noting that LateInitialize will allow the persistence subsystem to apply content,
* which might be needed during the objects init process supplied via Init arguments,
* as the init by the persistence subsystems doesn't provide init arguments.
* Persistence subsystem instanciates object -> LateInit is returned
* -> Persistence subsystem applies content -> LateInit is called to finish the whole init process.
*/
#define INITIALIZE_HINT_LATELOAD 1