Modular Multipurpose Minetest Modding Library
Go to file
2022-09-09 20:03:51 +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 Experimental modules have matured 2022-09-09 14:45:54 +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 file: Use io.lines 2022-07-17 21:33:54 +02:00
func.lua Add vararg module & move func.aggregate to it 2022-09-07 12:43: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 text.utf8 to utf8.char 2022-09-09 14:17:18 +02:00
iterator.lua Fix iterator.for_generator nil handling 2022-09-07 12:02:51 +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 Generalize node box getting 2022-07-10 14:20:45 +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
ranked_set.lua Redo environments 2021-06-17 19:45:08 +02:00
Readme.md Move API documentation to dedicated folder 2022-09-09 20:03:51 +02:00
schema.lua Schema: Add enum support to settingtypes gen 2022-05-13 12:48:03 +02:00
table.lua Minor cleanup 2022-09-06 15:04:25 +02:00
text.lua Add text.contains 2022-09-09 14:22:25 +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.