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.
The layout HTML (which was mainly used for the title bar) is no longer hard coded in nanoui.dm.
Layouts are now dynamic and each consists of a template and stylesheet (CSS) file.
Multiple layouts can exist, they can be switched to using the set_layout_key proc. See the proc comments for more info.
Added "default" and "basic" layouts, "basic" has no title bar.
Moved image source assets (GIMP and Flash files) into a separate source folder so that they are not sent to the client.
* Moved the receiveUpdateData JavaScript into the head so that it's loaded first.
This is to prevent an error which occurs if an update is recieved from the server before the UI is fully loaded.
* Simplified the code used in ui_interact procs and updated all current uses.
* Removed ununused jsviews JavaScript code (replaced it with vanilla jsrender).
* Added a message to the UI which shows if JavaScript is disabled (people with JavaScript disabled previously got blank UIs).
as you don't need to provide the full data structure up-front, part of an effort to make NanoUI more accessible.
I have removed the carets (^) from all templates as they are not used any more.
For safety I moved the src_object and user checks from the master controller to the nanoui process proc.
* Transfer open ui instances when transferring a user to another mob
* Runtime fixes in the NanoUI Topic and nanoclose client verb
* Return focus to the map when a NanoUI is opened
Creates NanoUI for the PDA and Syndicate Uplink.
New features:
Crew manifest now sorted with department heads at the top.
Can select individual conversations and delete individual conversations among PDA's
Powernet Monitor much more simple now and easier to read.
Janitorial supplies locator now includes Janicart.
Items will actually refresh if you click "Refresh"
Some other changes:
Captain's PDA cartridge now has all access (added janitor access and quartermaster access)
With the conversation change I had to change how tnote (the variable that holds PDA messages works.
Setup the message server to use the new methods.
Removed procs that will no longer be used (UI generation procs from old UI methods)
Commented everything the best I can.
Created HORRIBLE, TERRIBLE lists. But it's pretty much required because that's how nanoUI rolls.
Created a variable on the uplink called NanoUI items, this list is created upon creation of the
uplink.
I included the functionality for Mimes and Clowns for our downstream servers that have those.
Updated the Chem Dispenser UI with an Energy bar.
UIs attached to the Chem Dispenser will now update on recharge(), recharge now recharges 1 every 15 ticks instead of 2 every 30 (to make it feel more fluid).