Add consistent monotonic day counter - get_day_count()
authorAuke Kok <sofar@foo-projects.org>
Sun, 6 Mar 2016 20:02:21 +0000 (12:02 -0800)
committerest31 <MTest31@outlook.com>
Wed, 9 Mar 2016 00:45:23 +0000 (01:45 +0100)
commit4e59fcf5c1e40dee764317a1190dceadc3a77829
treebe216e4eb402e8529ff7a001839077f22c74d8ac
parent3ce6642a26d43fd368c24cdfc5460557258fb44f
Add consistent monotonic day counter - get_day_count()

I've written several experimental bits of code that revolve around the
need for a consistent calendar, but implementing one is extremely hard
in mods due to time changes and mods overriding core.get_timeofday(),
which will conflict.

The second part of the problem is that doing this from a mod requires
constant maintenance of a settings file.

An implementation in core is trivial, however, and solves all of
these problems at virtually no cost: No extra branches in server
steps, and a single branch when minetest.set_time_of_day(), which is
entirely reasonable.

We store the day_count value in env_meta.txt.

The use case is obvious: This change allows mods to create an actual
virtual calendar, or properly account for seasonal changes, etc..

We add a "/days" chatcommand that displays the current day count. No
permissions are needed. It can only retrieve the day count, not
modify it.
builtin/game/chatcommands.lua
doc/lua_api.txt
src/environment.cpp
src/environment.h
src/script/lua_api/l_env.cpp
src/script/lua_api/l_env.h