The station alert console no longer uses the old interact proc() to open the window interface.
Makes the records computers use the ui_interact proc to show the window.
This fixes https://github.com/PolarisSS13/Polaris/issues/537.
The station alert console now registers alarms using the correct procs.
The proper fingerprint type should now be applied during Topic() call (this means that admin observer object NanoUI interactions now have a degree of logging).
Relocates obj extension code to the extension file.
Adds a support method, set_extension, to ensure that proper cleanup occurs in the case of multiple additions to the same extension type.
The default multitool menu title is now much shorter.
The cloning computer multitool menu now lists all connected cloning pods.
However, ghosts can now also only view objects in range to ensure that the NanoUI window count is kept low.
Admins do not suffer this restriction and may also interact with these windows.
Now applies fingerprints if the user is adjacent to a physical object, otherwise applies a hidden fingerprint.
CouldUseTopic() is only called when a user has successfully interacted with an object interface/UI.
Refactors how synthetics set their modules. On login, if appearance selection was initiated but not finalized, the selection options popup again. Fixes a long-standing issue of borgs being able to look like the standard module by loging out.
Ensures the syndicate agent IDs and syndicate borgs will always have the same initial access permissions.
Removes now unnecessary syndicate snowflake code from NanoUI.
Synths now utilize actual ids.
Ensures station bound synthetics will not be able to utilize Syndicate/Heist equipment/vessels, as well as the opposite for potential syndicate synths.
Transmission of emotes, visible_message() and say() refactored. All three use get_mobs_or_objects_in_view() to find objects and mobs in containers
Storage objects and closets no longer transfer hear_talk(), see_emote() or show_message() to contents, as this is already covered by the above changes
Takes NanoUI interaction code and splits it into more manageable modules.
The default handler that checks distances, camera coverage, etc., etc.
Admin NanoUI windows now only check for admin rights, ignoring sight, distance, and anything else.
ERT/mercenary appearance changer now remains open for as long as the mob remains on the admin Z-level.
PDAs and uplinks now require that you keep the item somewhere in your main inventory (or contents to be precise). Hands or ears are fine, inside bags are not.
Rig suits also check that they are in the operator's inventory or that the synthetic operator is somewhere within the suit's contents (recursively).
Protolathe and CI build procs moved to them from RD console.
Protolathe and CI now have a build queue. Designs take varying time to
build.
P and CI material storage is now a list instead of a set of vars.
origin_tech is now a list.
All sheets now contain exactly 2000 units of matter.
In design datum, chemicals and materials are two separate lists.
Designs are now sorted. The method is kinda hacky but flexible. They
have a var, sort_string. Designs are sorted alphabetically using it.
Circuits how show whether they build a machine or a computer in CI menu.
Adds item construction, for now protolathe is used.
Reorganizes breathing, and moves common human/monkey breathing code into
carbon. handle_breath() is largely unchanged.
Removes unnecessary handle_internal_lifeform().
Fixes monkies being held by people in mecha in space not being able to breathe.
All mob-interaction logic now resides in nanointeraction.dm and is called by the base CanUseTopic().
Specifics for when objects allows mob-interaction can be specified by overriding CanUseTopic(), see machinery.dm.