* if not run_in_place is defined. install daemon files and
assume the path of PREFIX/usr/games for binary lauchers,
not PREFIX/usr/bin
* use FHS as https://www.pathname.com/fhs/2.2/fhs-4.11.html
that defines the right place for game data files as in the
path of PREFIX/usr/share/games
* install all the daemons files for openrc, sysvinit and shitstemd
* install defaults and config files as default for daemon scripts
* to this files to work you must set:
* gameid in defaults , see multicraftserver.defaults file
for set the paths of this file to work in scripts daemons
* log file goes to /var/log/multicraft/multicraft.log
* start config file to /etc/multicraft/multicraft.conf
* user to start the daemon as "multicraft"
* the game group must exist, the user must be into
* the shitstemd custom daemon is special, you can
use as "multicraftserverNAME" and will use the config
file "/e/tc/multicraft/NAME.conf" and log as "/var/log/multicraft/NAME.log"
with gameid as "NAME"
* sysvinit script to new file: multicraftserver.init
* openrc script to new file: multicraftserver.initd
* shit-stemd script to new file: multicraftserver.service
* shist-stemd custom config argument daemon as new file: multicraftserver@.service
* log rotate for all services as multicraftserver.logrotate
* defaults starting values for scripts as multicraftserver.defaults
* closes https://codeberg.org/minenux/minetest-engine-multicraft2/issues/52
* closes https://github.com/MultiCraft/MultiCraft/issues/59
* packages at https://build.opensuse.org/project/show/home:venenux:minenux
Add more detailed light detection functions, a function to get the artificial light (torches) and a function to get the sunlight as seen by the player (you can specify timeofday).
Co-authored-by: rubenwardy <rw@rubenwardy.com>
In compiler design especially, leaving behavior as "undefined" is a _strong_ condition that basically states that all possible integrity is violated; it's the kind of thing that happens when, say, dereferencing a pointer with unknown provenance, and most typically leads to a crash, but can result in all sorts of spectacular errors--thus, "it is undefined" how your program will melt down.
The pure-Lua implementation of `key_value_swap` does not permit UB _per se_ (assuming the implementation of Lua itself is sound), but does deterministically choose the value to which a key is mapped (the last in visitation order wins--since visitation order is arbitrary, _some_ value _will_ be chosen). Most importantly, the program won't do something wildly unexpected.