Singletons and abstract_types! (#4760)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request
I finally have the pleasure of killing decl by giving it a new name and
updated handling.
Also abstract_types now have universal support!

Based on:
Baystation12/Baystation12/pull/32114
Baystation12/Baystation12/pull/32687

## Changelog
🆑
code: /decl/ is now /singleton/
code: abstract_type is now on the /datum/ level
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
This commit is contained in:
Zandario
2022-11-27 23:24:30 -08:00
committed by GitHub
parent 079b315330
commit 8eed21e1cf
60 changed files with 725 additions and 529 deletions
@@ -21,14 +21,15 @@
. += I.id
/datum/instrument
/// Used for categorization subtypes.
abstract_type = /datum/instrument
/// Name of the instrument
var/name = "Generic instrument"
/// Uniquely identifies this instrument so runtime changes are possible as opposed to paths. If this is unset, things will use path instead.
var/id
/// Category
var/category = "Unsorted"
/// Used for categorization subtypes
var/abstract_type = /datum/instrument
/// Write here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127
var/list/real_samples
/// assoc list key = /datum/instrument_key. do not fill this yourself!