From a1485b6eaba67dc299627c756adc008e628775a4 Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Sat, 13 Jul 2024 11:41:13 +0200 Subject: [PATCH] Improve recording for move/fly/turn controllers --- basis/mark_lib.lua | 8 ++++++++ move_controller/flycontroller.lua | 13 +++++++++++-- move_controller/movecontroller.lua | 16 +++++++++++++--- move_controller/turncontroller.lua | 11 +++++++++++ 4 files changed, 43 insertions(+), 5 deletions(-) diff --git a/basis/mark_lib.lua b/basis/mark_lib.lua index 8f75197..40dee56 100644 --- a/basis/mark_lib.lua +++ b/basis/mark_lib.lua @@ -87,6 +87,14 @@ function marker.stop(name) MaxNumber[name] = nil end +minetest.register_on_leaveplayer(function(ObjectRef, timed_out) + if ObjectRef and ObjectRef:is_player() then + local name = ObjectRef:get_player_name() + marker.unmark_all(name) + end +end) + + minetest.register_entity(":techage:block_marker", { initial_properties = { visual = "cube", diff --git a/move_controller/flycontroller.lua b/move_controller/flycontroller.lua index 837c948..ecfadb5 100644 --- a/move_controller/flycontroller.lua +++ b/move_controller/flycontroller.lua @@ -79,6 +79,16 @@ local function formspec(nvm, meta) "label[0.3,6.3;" .. status .. "]" end +local function reset_state(pos) + local meta = M(pos) + local nvm = techage.get_nvm(pos) + nvm.lpos1 = {} + nvm.lpos2 = {} + nvm.running = nil + nvm.moveBA = false + meta:set_string("status", "") + meta:set_string("formspec", formspec(nvm, meta)) +end minetest.register_node("techage:ta5_flycontroller", { description = S("TA5 Fly Controller"), @@ -258,8 +268,7 @@ techage.register_node({"techage:ta5_flycontroller"}, { return 2, "" end, on_node_load = function(pos, node) - local nvm = techage.get_nvm(pos) - nvm.running = false + reset_state(pos) end, }) diff --git a/move_controller/movecontroller.lua b/move_controller/movecontroller.lua index d95a6ee..8ed5360 100644 --- a/move_controller/movecontroller.lua +++ b/move_controller/movecontroller.lua @@ -85,6 +85,17 @@ local function formspec(nvm, meta) "label[0.3,4.3;" .. status .. "]" end +local function reset_state(pos) + local meta = M(pos) + local nvm = techage.get_nvm(pos) + nvm.lpos1 = {} + nvm.lpos2 = {} + nvm.running = nil + nvm.lastpos = nil + meta:set_string("status", "") + meta:set_string("formspec", formspec(nvm, meta)) +end + minetest.register_node("techage:ta4_movecontroller", { description = S("TA4 Move Controller"), tiles = { @@ -261,9 +272,8 @@ techage.register_node({"techage:ta4_movecontroller"}, { return 2, "" end, on_node_load = function(pos, node) - local nvm = techage.get_nvm(pos) - M(pos):set_string("teleport_mode", "") -- delete not working op mode - nvm.running = false + M(pos):set_string("teleport_mode", "") -- delete not working (legacy) op mode + reset_state(pos) end, }) diff --git a/move_controller/turncontroller.lua b/move_controller/turncontroller.lua index 2dc9588..6f13f7d 100644 --- a/move_controller/turncontroller.lua +++ b/move_controller/turncontroller.lua @@ -38,6 +38,14 @@ local function formspec(nvm, meta) "label[0.3,2.5;" .. status .. "]" end +local function reset_state(pos) + local meta = M(pos) + local nvm = techage.get_nvm(pos) + nvm.lpos1 = {} + nvm.lpos2 = {} + meta:set_string("status", "") + meta:set_string("formspec", formspec(nvm, meta)) +end minetest.register_node("techage:ta4_turncontroller", { description = S("TA4 Turn Controller"), @@ -193,6 +201,9 @@ techage.register_node({"techage:ta4_turncontroller"}, { return 2 end end, + on_node_load = function(pos, node) + reset_state(pos) + end, }) minetest.register_craft({