Modular Multipurpose Minetest Modding Library
Go to file
2022-09-30 16:09:16 +02:00
build Move text.utf8 to utf8.char 2022-09-09 14:17:18 +02:00
doc Move API documentation to dedicated folder 2022-09-09 20:03:51 +02:00
minetest Add TODO for mod.require 2022-09-30 12:45:15 +02:00
persistence Experimental modules have matured 2022-09-09 14:45:54 +02:00
web Move text.utf8 to utf8.char 2022-09-09 14:17:18 +02:00
b3d.lua b3d writing: Round Lua doubles to floats 2022-07-02 17:39:43 +02:00
binary.lua binary: Float writing: Fix exponent assertions 2022-07-03 13:29:49 +02:00
bluon.lua Experimental modules have matured 2022-09-09 14:45:54 +02:00
file.lua text.split[_unlimited]: Use pattern by default 2022-09-28 20:50:25 +02:00
func.lua Add func.identity 2022-09-30 16:09:16 +02:00
hashheap.lua Fix hashheap 2022-01-19 17:17:07 +01:00
hashlist.lua Fix hashlist:pop_head 2021-12-27 20:09:26 +01:00
heap.lua Heap: Localize math.floor & table.insert 2022-01-19 16:38:06 +01:00
init.lua Move setting tree building from conf to mod module 2022-09-28 20:45:00 +02:00
iterator.lua Add iterator.(reduce|any|all) 2022-09-30 15:14:14 +02:00
json.lua Experimental modules have matured 2022-09-09 14:45:54 +02:00
kdtree.lua Redo environments 2021-06-17 19:45:08 +02:00
License.txt Add proper license file 2021-07-06 22:03:44 +02:00
logo.svg Minor logo fixes 2021-09-11 10:10:52 +02:00
luon.lua Luon & lua log file: Fix handling of keyword keys 2021-12-30 17:12:51 +01:00
math.lua Add math.rand(om|int) 2022-07-10 15:36:54 +02:00
minetest.lua Remove deprecated modlib.log module 2022-09-17 20:07:00 +02:00
mod.conf Update mod.conf: Add dbg & strictest as opt deps 2022-07-10 15:43:52 +02:00
persistence.lua Clean up persistence.lua 2022-02-27 17:41:25 +01:00
quaternion.lua Fix quaternion multiplication 2022-05-12 10:44:18 +02:00
Readme.md Move API documentation to dedicated folder 2022-09-09 20:03:51 +02:00
schema.lua Fix table values constraint in schema validation 2022-09-18 16:06:12 +02:00
table.lua Add table.clear 2022-09-30 15:31:11 +02:00
text.lua Fix text.lines & deprecate text.split_lines 2022-09-29 21:06:51 +02:00
trie.lua Trie: Remove TODO comment 2022-08-19 18:19:45 +02:00
utf8.lua Move text.utf8 to utf8.char 2022-09-09 14:17:18 +02:00
vararg.lua Add vararg module & move func.aggregate to it 2022-09-07 12:43:16 +02:00
vector.lua Add vector.reflect 2022-09-09 14:34:42 +02:00
web.lua Add web.uri.encode[_component] 2022-01-19 17:24:29 +01:00

Logo Modding Library (modlib)

Multipurpose Minetest Modding Library

About

No dependencies. Licensed under the MIT License. Written by Lars Mueller aka LMD or appguru(eu). Notable contributions by luk3yx in the form of suggestions, bug reports and fixes. Another bugfix by NobWow.

Principles

  • Game-agnostic: Modlib aims to provide nothing game-specific;
  • Minimal invasiveness: Modlib should not disrupt other mods; even at the expense of syntactic sugar, changes to the global environment - apart from the addition of the modlib scope - are forbidden
  • Architecture: Modlib is organized hierarchically
  • Performance: Modlib tries to not compromise performance for convenience; modlib loads lazily

Tests

The tests are located in a different repo, modlib_test, as they are quite heavy due to testing the PNG reader using PngSuite. Reading the tests for examples of API usage is recommended.

API

(Incomplete) documentation resides in the doc folder; you'll have to dive into the code for everything else.

The mod namespace is modlib, containing all modules which in turn contain variables & functions.

Modules are lazily loaded by indexing the modlib table. Do _ = modlib.<module> to avoid file load spikes at run time.

Localizing modules (local <module> = modlib.<module>) is recommended.