diff --git a/bones.lua b/bones.lua new file mode 100644 index 0000000000000000000000000000000000000000..142125c70041163b2d151ee2e26fa079bb60d86c --- /dev/null +++ b/bones.lua @@ -0,0 +1,20 @@ +-- bones owner saving workaround +-- https://github.com/minetest/minetest_game/blob/master/mods/bones/init.lua#L120 + +local bones_def = minetest.registered_items["bones:bones"] +assert(bones_def) + +local bones_on_timer = bones_def.on_timer +assert(bones_on_timer) +assert(type(bones_on_timer) == "function") + +minetest.override_item("bones:bones", { + on_timer = function(pos, elapsed) + -- save owner in separate field + local meta = minetest.get_meta(pos) + meta:set_string("_owner", meta:get_string("owner")) + + -- call original function + bones_on_timer(pos, elapsed) + end +}) diff --git a/init.lua b/init.lua index f4c249cfde79ed758161fc0495fc7e511e9ac0d5..5f5af2d6645927a5ddf7f893d3bdd44515d629e2 100644 --- a/init.lua +++ b/init.lua @@ -17,6 +17,10 @@ dofile(MP.."/privs.lua") dofile(MP.."/show_waypoint.lua") dofile(MP.."/search.lua") +if minetest.get_modpath("bones") then + dofile(MP.."/bones.lua") +end + -- optional mapserver-bridge stuff below local http = minetest.request_http_api() diff --git a/mod.conf b/mod.conf index 76046d8c6fc71775575559263f7f6f85a65d6f1e..aff3949dc9e937cd255bf6957e19e94a7b6c8178 100644 --- a/mod.conf +++ b/mod.conf @@ -1,3 +1,3 @@ name = mapserver description = Mod for the mapserver. -optional_depends = default, dye, advtrains, minecart, monitoring +optional_depends = default, dye, advtrains, minecart, monitoring, bones