Do you ever find yourself using an organization schema like this, where you have a frontend API module with a large amount of internal modules?
If you’re even more brave, you’ll have modules that other modules require for utility purposes that provide things elsewhere, etc, etc…
This type of system can get complicated and convoluted very quickly, and that’s where libdramf comes in in order to provide a way to flatten these dependencies, and provide an easy framework for making modular systems in your games.
A DRAMF instance can be grabbed or created via the frontend module based upon a specific name. By passing any number of modules, etc. to this, the instance will act as a framework to hold all the various functions that your system uses. If a module attempts to call a function that isn’t available, the DRAMF instance will yield the request until the function is available.
DRAMF includes a library function which allows you to seamlessly create DRAMF instances inside of DRAMF instances, allowing easy subdivision of your systems combining to the singular frontend, incase if you have some crazy organization scheme.
All DRAMF instances have a shared variable table inside of them that can be used to store runtime variables, and includes a function to wait for values to exist inside of this table for convenience.
All of these features for this specific organizational schema are done in a mere 150 lines of code, keeping the system clear of bloat and ensuring that DRAMF isn’t in your way, allowing you to get work done.
Documentation is on the Github and inside of a module in the model.