123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- -- ===================================================================
- -- /modpol.lua
- -- Modular Politics (modpol) core
- -- ===================================================================
- -- Basic tables
- -- Main API table
- modpol = {
- }
- -- Table for modpol data
- modpol.orgs = {
- }
- -- Record of every state change should appear here
- modpol.ledger = {
- }
- -- ===================================================================
- -- Locate framework top-level directory.
- -- This function is intended for use under Linux and/or UNIX only. It
- -- returns a relative or absolute path for the framework top-level
- -- directory without a trailing slash.
- local get_script_dir = function()
- local str = debug.getinfo (2, "S").source:sub (2)
- str = str:match ("(.*/)") or "."
- str = str:gsub ("/$", "", 1)
- return str
- end
- -- Absolute or relative path to script directory.
- local topdir = get_script_dir()
- modpol.topdir = topdir
- print (topdir)
- -- ===================================================================
- -- Load dependencies
- -- OldCoder utilities
- dofile (topdir .. "/ocutil.lua")
- -- ===================================================================
- -- Persistent storage
- -- must implement modpol.load_storage() and modpol.store_data()
- -- Select a storage method
- -- Works with CLI:
- dofile (topdir .. "/storage-local.lua")
- -- Works with Minetest 5:
- -- dofile (topdir .. "/storage-mod_storage.lua")
- -- If available, load persistent storage into active tables
- modpol.load_storage()
- -- ===================================================================
- -- ModPol core features
- dofile (topdir .. "/users.lua")
- dofile (topdir .. "/orgs.lua")
- dofile (topdir .. "/interactions.lua")
- -- messaging functions
- dofile (topdir .. "/processes.lua")
- -- ===================================================================
- -- Final checks
- -- create instance if not present
- if (modpol.orgs["instance"] == nil) then
- modpol.add_org("instance", modpol.list_users())
- end
- ocutil.log ("modpol loaded")
- -- ===================================================================
- -- End of file.
|