And thus, the demonnic MDK was born!
Latest releas: https://github.com/demonnic/MDK/releases/latest
API documentation for the latest release: https://demonnic.github.io/mdk/current/index.html
Report issues: https://github.com/demonnic/MDK/issues
though a copy will also be kept for each version at https://demonnic.github.io/mdk/<version>/index.html , for instance 1.0.0 is https://demonnic.github.io/mdk/1.0.0/index.html
I have rewritten my existing tools and begun adding new ones to the project. It is packaged as a zip file, as it is intended that the .lua files be included in your own mpackage. You can then use lua's require() function to load the specific version of the library included with your package. For instance, if your package places files in getMudletHomeDir() .. "MyPackage" and you include the MDK's .lua files in that directory, then you could create a timer gauge via:
This produces the following timer gauge:
You may recognize this as being similar to my old anitimers package, but these are now an actual extension of Geyser.Gauge and are each independent of the rest, rather than being one intertangled mess like before.
Though the main goal of this shift is to support script writers with their own copies to include in their scripts, I'm also including a reference package which includes all of the tools. For instance, the reference package allows you to require emco using EMCO = require("MDK-1.EMCO"), fText as fText = require("MDK-1.ftext") etc.
The MDK combines the following works
fText, TextFormatter, TableMaker https://github.com/demonnic/fText/wiki
this is a set of text formatting tools for use with monospace ascii fonts (not yet ported to work with utf8)
EMCO https://github.com/EMCO/wiki
Embeddable Multi Console Object . This creates tabbed collections of miniconsoles with various options for placing formatted text inside of them, It is powered by the same logic as my original YATCO package, but is itself modeled more in line with other Geyser objects and is more flexible and stylable than YATCO was
TimerGauge https://github.com/demonnic/MDK/wiki/TimerGauge
Creates a visual timer which uses a gauge to represent the amount of time left as a percentage of the original time. Useful for cooldown timers and the like. Has several options for how to display text on the timergauge, can execute code the same as tempTimer(using both [[send("thing")]] and function() send("thing") end formats) using the hook property, and also hide/show and add/remove itself from its containers when you start or stop it.
SortBox https://github.com/demonnic/MDK/wiki/SortBox
This is like a combined HBox/VBox, in that you can choose which behaviour it has using a propertty. It also has the ability to sort the items within it based on various criteria, from how full a gauge is, to how many seconds are left on a timer gauge, to what the name of the geyser object is and more.
TextGauge https://github.com/demonnic/TextGauges/wiki
Creates a text based gauge for use in the main or miniconsoles. Results with non-monospace fonts will be unpredictable
LuaUnit https://github.com/bluebird75/luauni
For writing unit tests for your packages. Modified slightly for use with Mudlet. I did a video on this at https://www.youtube.com/watch?v=16_aKITBU9g
luaschema https://github.com/sschoener/lua-schema
This is largely included for an upcoming project of mine, but allows for defining schema for tables, and validating that a table matches a particular schema. Useful for enforcing data types and the like.