Charakterbewegungen hinzugefügt, Deko hinzugefügt, Kochrezepte angepasst

This commit is contained in:
N-Nachtigal 2025-05-14 16:36:42 +02:00
parent 95945c0306
commit a0c893ca0b
1124 changed files with 64294 additions and 763 deletions

81
mods/fmod/README.md Normal file
View file

@ -0,0 +1,81 @@
# fmod
flux's mod boilerplate
## what?
i use this to create a common basic API that all of my mods share. it grabs a lot of mod metadata from e.g. mod.conf
and settingtypes.txt and automatically makes those values available.
this mod is primarily for my own use, but i'd be elated if other people find it useful. suggestions are welcome, but
note that my own patterns come first in any suggested changes. the more mods i create which depend on this (there's
over 70 and counting, though only 50 or 60 are released), the harder it will be to change fundamental features. but
if i've made major mistake somehow, please let me know sooner rather than later!
## public API
* `modname = fmod.create(fork)`
creates the boilerplate.
`fork` is an optional parameter for other people to use if they fork a mod.
the api which is created looks like this:
```lua
local f = string.format
local modname = minetest.get_current_modname()
local S = minetest.get_translator(modname)
local modpath = minetest.get_modpath(modname)
local mod_conf = Settings(modpath .. DIR_DELIM .. "settingtypes.txt")
modname = {
modname = modname,
modpath = modpath,
title = mod_conf:get("title") or modname,
description = mod_conf:get("description"),
author = mod_conf:get("author"),
license = mod_conf:get("license"),
version = mod_conf:get("version"),
fork = fork or "flux", -- fork is the argument to `fmod.create(fork)`
S = S,
has = build_has(mod_conf), -- this reads mod.conf and creates a set from optional_depends
settings = get_settings(modname), -- this reads and parses settingtypes.txt, and populates w/ values from
-- minetest.conf, or otherwise the defaults specified in settingtypes.txt
check_version = function(required)
assert(mod_conf:get("version") >= required, f("%s requires a newer version of %s; please update it", minetest.get_current_modname(), modname))
end,
check_minetest_version = function(major, minor, patch, other, reason)
assert(..., "check that the required version of the game engine is present. \"other\" is reserved for " ..
"future use, once i figure out how to deal w/ engine forks."
)
end,
log = function(level, messagefmt, ...)
return minetest.log(level, f("[%s] %s", modname, f(messagefmt, ...)))
end,
chat_send_player = function(player, messagefmt, ...)
minetest.chat_send_player(player, f("[%s] %s", modname, S(messagefmt, ...)))
end,
chat_send_all = function(message, ...)
minetest.chat_send_all(f("[%s] %s", modname, S(message, ...)))
end,
dofile = function(...)
return dofile(table.concat({modpath, ...}, DIR_DELIM) .. ".lua")
end,
async_dofile = function(...) -- load a file into the async environment
return minetest.register_async_dofile(table.concat({ modpath, ... }, DIR_DELIM) .. ".lua")
end,
}
```
note that fmod itself is created w/ this same boilerplate; therefore, i can indicate that certain mods require an
up-to-date version of fmod to operate.