No longer unconditionally attempts to transfer NanoUIs from one mob to another.
Previously caused runtimes if the source-mob was gibbed or otherwise destroyed.
Ensures the master area is always used, to avoid issues caused by dynamic lightning which splits areas into sub-areas.
Power alarms now handled centrally.
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.
* Simplified how items are positioned on the map (e.g. ((value.x - 1) * 8) is now just value.x, scaling is applied later).
* Added four zoom levels (x1.0 to x2.5, triggered by links in the template).
* Moved the "Generate NanoUI Map" into the Server tab, to prevent it being used by admins accidentally.
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.
The flist (file list) proc was being used multiple times for each client user logon, this now only occurs once when the server starts.
Hopefully this fixes the nanoui assets issue which occurs during peak usage.
* NanoUI now finds and sends it's assets to the client (css, images, javascript and templates).
Part of my effort to make creating NanoUIs as simple as possible. This removes the need to add new NanoUI assets (such as templates) to the client send_resources proc.
* 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.
An example of where the update_user_uis proc will be used is in updating any open PDA UIs for users when sending or receiving messages.
Added a link to the new NanoUI wiki page in the TemplatesGuide.txt file.