Controller

by SuperSayu
Utility library for callbacks, controllers, and logging
ID:1716613
 
This library provides the following:
* A system for creating controllers (looping processors that operate every N ticks). This includes hooks for initialization (upon creation, or in response to event hooks - see below), rebirth (after the previous controller crashed), and some code to cut out loop-related instructions and overhead if you use a controller for other purposes, such as logging.

* A system of controller indicators - these are objects displayed in a stat pane that represent the status of the controller, and onto which you can add verbs for controlling the linked controller. Included are a basic indicator with reset/start/stop verbs, and an advanced indicator for the logger, below.

* A logging library that uses byond's SQLite database to keep log information available without (I hope) using egregious memory on the DM server. The logger is a controller, and it has an indicator with verbs to allow you to display log data. Logging functions are collected on the controller, eg, Log.warning("Mob out of bounds",rogue_mob)

* A system of delegates (callbacks/stored procedures) for storing all the information necessary to call a proc in an object

* A hook system using the delegates and controller, so you can trigger multiple delegate calls based on a single event eg, Event.callback(/hook/world_loaded), or Event.callback(/hook/player_death,dead_mob)

* A secure linking library using delegates to avoid passing function parameters over insecure byond:// links. This closes numerous security vulnerabilities while hopefully being usable and readable.

This is not entirely finished but it is workable.
Zip file is empty just a dme.
Fixed, sorry, I don't know why it did that