This reduces the number of assets needing to be sent on join by 150ish.
- Nanoui scripts modified to load templates in parallel instead of one at a time.
- Nanoui scripts modified to be willing to load from the resource bundle if available, falling back to ajax-loading the individual templates if absent.
* Particularly noticable on the cartridge button of the PDA, any time we transmit a name containing \improper or \proper using nanoui it shows up as ÿ
* This is becuase BYOND internally handles these escapes by simply using character 0xFF etc.
* We'd better strip them out before sending them as JSON data so they aren't rendered as ÿ when treated as utf-8 encoding.
This state has two checks:
A preliminary check of the remote target, ensuring it's powered, etc. If the remote target is fully disabled, it closes the window and conducts no further checks.
It then makes a full check, ensuring that the mob is capable, within range of the source remoting to the remote target, etc.
Unlike most other static interaction states, whoever initializes the remote state is responsible for deleting it properly.
Conflicts:
polaris.dme
Updates nanomanager's handling of opening UIs so that it can be called multiple times, changes force_open to simply ignore that the UI is open and try to open it again. Causes a slight flicker if the UI is open, but the window does not move or change size.
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).
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.
You get to cache data, make the best of it.
NanoUI for PDA now won't shove the manifest through list2json every tick, it will cache the json for manifest and shove it into the cache_data so list2json tacks it onto the end.