Modular Multipurpose Minetest Modding Library
Go to file
2022-10-07 17:54:01 +02:00
build Move text.utf8 to utf8.char 2022-09-09 14:17:18 +02:00
doc Add Minetest .obj model reader 2022-10-03 13:46:40 +02:00
minetest PNG: Fix call vs. assignment ambiguity 2022-10-07 17:54:01 +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 Remove modlib.conf module 2022-10-03 18:27:34 +02:00
iterator.lua Add various iterator.* functions 2022-10-01 12:56:24 +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
less_than.lua Add less_than function utility module 2022-10-01 18:11:44 +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: Incorporate changes to MT serializer 2022-10-02 14:18:16 +02:00
math.lua Add math.rand(om|int) 2022-07-10 15:36:54 +02:00
minetest.lua Expose minetest.obj module 2022-10-03 18:46:16 +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 Remove defunct Lua version compat 2022-10-03 18:24:07 +02:00
schema.lua Fix table values constraint in schema validation 2022-09-18 16:06:12 +02:00
table.lua Add table.(slice|splice|move) 2022-10-01 14:34:31 +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 Add utf8.codes iterator; change utf8.codepoint 2022-10-01 20:39:25 +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. Requires Lua 5.1 / LuaJIT.

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.