From a45bf2249c048fbbaa83803bc3efe7d039dc8dbe Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Sat, 13 Jun 2020 23:32:00 +0200 Subject: [PATCH] node number bugfixes --- basic_machines/chest.lua | 2 +- basic_machines/consumer.lua | 2 +- basic_machines/ta4_chest.lua | 2 +- basis/command.lua | 13 ++++++++----- carts/chest_cart.lua | 18 +++++++++++------- carts/tank_cart.lua | 15 +++++++++------ chemistry/ta4_doser.lua | 2 +- icta_controller/commands.lua | 1 - icta_controller/controller.lua | 2 +- icta_controller/display.lua | 8 ++++---- icta_controller/signaltower.lua | 4 ++-- liquids/silo.lua | 4 ++-- liquids/tank.lua | 6 +++--- logic/button.lua | 2 +- logic/cart_detector.lua | 2 +- logic/collector.lua | 4 ++-- logic/detector.lua | 2 +- logic/doorblock.lua | 4 ++-- logic/doorcontroller.lua | 4 ++-- logic/gateblock.lua | 4 ++-- logic/lua_logic.lua | 4 ++-- logic/node_detector.lua | 4 ++-- logic/player_detector.lua | 8 ++++---- logic/repeater.lua | 4 ++-- logic/sequencer.lua | 2 +- logic/signallamp.lua | 4 ++-- logic/terminal.lua | 4 ++-- logic/timer.lua | 4 ++-- lua_controller/controller.lua | 2 +- lua_controller/sensorchest.lua | 2 +- lua_controller/server.lua | 2 +- lua_controller/terminal.lua | 4 ++-- manuals/ta4_lua_controller_EN.pdf | Bin 356172 -> 356337 bytes solar/minicell.lua | 4 ++-- wind_turbine/rotor.lua | 4 ++-- 35 files changed, 81 insertions(+), 72 deletions(-) diff --git a/basic_machines/chest.lua b/basic_machines/chest.lua index 5f4e0b3..562cb39 100644 --- a/basic_machines/chest.lua +++ b/basic_machines/chest.lua @@ -42,7 +42,7 @@ local function can_dig(pos, player) end local function after_dig_node(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) end local function formspec2() diff --git a/basic_machines/consumer.lua b/basic_machines/consumer.lua index 0cc5239..53abb76 100644 --- a/basic_machines/consumer.lua +++ b/basic_machines/consumer.lua @@ -197,7 +197,7 @@ function techage.register_consumer(base_name, inv_name, tiles, tNode, validState if crd.power_netw then crd.power_netw:after_dig_node(pos) end - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end diff --git a/basic_machines/ta4_chest.lua b/basic_machines/ta4_chest.lua index 5c77176..d98e00e 100644 --- a/basic_machines/ta4_chest.lua +++ b/basic_machines/ta4_chest.lua @@ -436,7 +436,7 @@ local function on_rotate(pos, node, user, mode, new_param2) end local function after_dig_node(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) convert_to_chest_again(pos, oldnode, digger) end diff --git a/basis/command.lua b/basis/command.lua index 94b4464..12fe9d1 100644 --- a/basis/command.lua +++ b/basis/command.lua @@ -18,6 +18,7 @@ local S = function(pos) if pos then return minetest.pos_to_string(pos) end end --local M = minetest.get_meta local NodeInfoCache = {} +local NumbersToBeRecycled = {} local MP = minetest.get_modpath("techage") local techage_use_sqlite = minetest.settings:get_bool('techage_use_sqlite', false) @@ -210,17 +211,19 @@ function techage.add_node(pos, name) if item_handling_node(name) then Tube:after_place_node(pos) end - -- store position - return get_number(pos, true) + local key = minetest.hash_node_position(pos) + return NumbersToBeRecycled[key] or get_number(pos, true) end -- Function removes the node from the techage lists. -function techage.remove_node(pos) - local number = get_number(pos) +function techage.remove_node(pos, oldnode, oldmetadata) + local number = oldmetadata and oldmetadata.fields and oldmetadata.fields.node_number + number = number or get_number(pos) if number then + local key = minetest.hash_node_position(pos) + NumbersToBeRecycled[key] = number local ninfo = NodeInfoCache[number] or update_nodeinfo(number) if ninfo then - backend.del_nodepos(number) NodeInfoCache[number] = nil if item_handling_node(ninfo.name) then Tube:after_dig_node(pos) diff --git a/carts/chest_cart.lua b/carts/chest_cart.lua index 20e8a6c..2cd29bd 100644 --- a/carts/chest_cart.lua +++ b/carts/chest_cart.lua @@ -17,6 +17,10 @@ local M = minetest.get_meta local S = techage.S local P2S = function(pos) if pos then return minetest.pos_to_string(pos) end end local S2P = minetest.string_to_pos +local MP = minetest.get_modpath("minecart") +local cart = dofile(MP.."/cart_lib1.lua") + +cart:init(true) local function formspec() return "size[8,6]".. @@ -31,7 +35,8 @@ end local function can_dig(pos, player) local owner = M(pos):get_string("owner") - if owner ~= "" and owner ~= player:get_player_name() then + if owner ~= "" and (owner ~= player:get_player_name() or + not minetest.check_player_privs(player:get_player_name(), "minecart")) then return false end local inv = minetest.get_meta(pos):get_inventory() @@ -91,12 +96,11 @@ minetest.register_node("techage:chest_cart", { end, on_place = function(itemstack, placer, pointed_thing) - return minecart.node_on_place(itemstack, placer, pointed_thing, - "techage:chest_cart") + return cart.add_cart(itemstack, placer, pointed_thing, "techage:chest_cart") end, on_punch = function(pos, node, puncher, pointed_thing) - minecart.node_on_punch(pos, node, puncher, pointed_thing, "techage:chest_cart_entity") + cart.node_on_punch(pos, node, puncher, pointed_thing, "techage:chest_cart_entity") end, set_cargo = function(pos, data) @@ -133,9 +137,9 @@ minecart.register_cart_entity("techage:chest_cart_entity", "techage:chest_cart", visual_size = {x=0.66, y=0.66, z=0.66}, static_save = false, }, - on_activate = minecart.on_activate, - on_punch = minecart.on_punch, - on_step = minecart.on_step, + on_activate = cart.on_activate, + on_punch = cart.on_punch, + on_step = cart.on_step, }) techage.register_node({"techage:chest_cart"}, { diff --git a/carts/tank_cart.lua b/carts/tank_cart.lua index 4cc4a14..562ecec 100644 --- a/carts/tank_cart.lua +++ b/carts/tank_cart.lua @@ -19,6 +19,10 @@ local P2S = function(pos) if pos then return minetest.pos_to_string(pos) end end local S2P = minetest.string_to_pos local Pipe = techage.LiquidPipe local liquid = techage.liquid +local MP = minetest.get_modpath("minecart") +local cart = dofile(MP.."/cart_lib1.lua") + +cart:init(true) local CAPACITY = 100 @@ -110,8 +114,7 @@ minetest.register_node("techage:tank_cart", { end, on_place = function(itemstack, placer, pointed_thing) - return minecart.node_on_place(itemstack, placer, pointed_thing, - "techage:tank_cart") + return cart.add_cart(itemstack, placer, pointed_thing, "techage:tank_cart") end, on_punch = function(pos, node, puncher, pointed_thing) @@ -121,7 +124,7 @@ minetest.register_node("techage:tank_cart", { if techage.liquid.is_container_empty(wielded_item) then liquid.on_punch(pos, node, puncher, pointed_thing) else - minecart.node_on_punch(pos, node, puncher, pointed_thing, "techage:tank_cart_entity") + cart.node_on_punch(pos, node, puncher, pointed_thing, "techage:tank_cart_entity") end end, @@ -170,9 +173,9 @@ minecart.register_cart_entity("techage:tank_cart_entity", "techage:tank_cart", { visual_size = {x=0.66, y=0.66, z=0.66}, static_save = false, }, - on_activate = minecart.on_activate, - on_punch = minecart.on_punch, - on_step = minecart.on_step, + on_activate = cart.on_activate, + on_punch = cart.on_punch, + on_step = cart.on_step, }) minetest.register_craft({ diff --git a/chemistry/ta4_doser.lua b/chemistry/ta4_doser.lua index ed63184..a94eae8 100644 --- a/chemistry/ta4_doser.lua +++ b/chemistry/ta4_doser.lua @@ -267,7 +267,7 @@ minetest.register_node("techage:ta4_doser", { del_liquids(pos) end, after_dig_node = function(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) Pipe:after_dig_node(pos) techage.del_mem(pos) end, diff --git a/icta_controller/commands.lua b/icta_controller/commands.lua index f1b096a..e140e4d 100644 --- a/icta_controller/commands.lua +++ b/icta_controller/commands.lua @@ -688,4 +688,3 @@ techage.icta_register_action("set_filter", { return send_single_string(environ, data.number, "filter", payload) end, }) - diff --git a/icta_controller/controller.lua b/icta_controller/controller.lua index 1a2ca3c..9b41145 100644 --- a/icta_controller/controller.lua +++ b/icta_controller/controller.lua @@ -451,8 +451,8 @@ minetest.register_node("techage:ta4_icta_controller", { return end - minetest.node_dig(pos, node, puncher, pointed_thing) techage.remove_node(pos) + minetest.node_dig(pos, node, puncher, pointed_thing) end, on_timer = on_timer, diff --git a/icta_controller/display.lua b/icta_controller/display.lua index 0c37533..04640c5 100644 --- a/icta_controller/display.lua +++ b/icta_controller/display.lua @@ -110,8 +110,8 @@ minetest.register_node("techage:ta4_display", { minetest.get_node_timer(pos):start(1) end, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) end, on_timer = on_timer, @@ -157,8 +157,8 @@ minetest.register_node("techage:ta4_displayXL", { minetest.get_node_timer(pos):start(2) end, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) end, on_timer = on_timer, diff --git a/icta_controller/signaltower.lua b/icta_controller/signaltower.lua index 5d51f05..5aeebc7 100644 --- a/icta_controller/signaltower.lua +++ b/icta_controller/signaltower.lua @@ -56,8 +56,8 @@ minetest.register_node("techage:ta4_signaltower", { end end, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) end, paramtype = "light", diff --git a/liquids/silo.lua b/liquids/silo.lua index 1114565..b6fb63d 100644 --- a/liquids/silo.lua +++ b/liquids/silo.lua @@ -161,7 +161,7 @@ minetest.register_node("techage:ta3_silo", { end, after_dig_node = function(pos, oldnode, oldmetadata, digger) Pipe:after_dig_node(pos) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) end, liquid = tLiquid, networks = tNetworks, @@ -206,7 +206,7 @@ minetest.register_node("techage:ta4_silo", { end, after_dig_node = function(pos, oldnode, oldmetadata, digger) Pipe:after_dig_node(pos) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) end, liquid = tLiquid, networks = tNetworks, diff --git a/liquids/tank.lua b/liquids/tank.lua index d5dace8..9663653 100644 --- a/liquids/tank.lua +++ b/liquids/tank.lua @@ -103,7 +103,7 @@ minetest.register_node("techage:ta3_tank", { on_punch = liquid.on_punch, after_dig_node = function(pos, oldnode, oldmetadata, digger) Pipe:after_dig_node(pos) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) end, liquid = { capa = CAPACITY, @@ -161,7 +161,7 @@ minetest.register_node("techage:oiltank", { on_punch = liquid.on_punch, after_dig_node = function(pos, oldnode, oldmetadata, digger) Pipe:after_dig_node(pos) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) end, liquid = { capa = CAPACITY * 4, @@ -209,7 +209,7 @@ minetest.register_node("techage:ta4_tank", { on_punch = liquid.on_punch, after_dig_node = function(pos, oldnode, oldmetadata, digger) Pipe:after_dig_node(pos) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) end, liquid = { capa = CAPACITY * 2, diff --git a/logic/button.lua b/logic/button.lua index cb77c77..12e1053 100644 --- a/logic/button.lua +++ b/logic/button.lua @@ -140,7 +140,7 @@ local function techage_set_numbers(pos, numbers, player_name) end local function after_dig_node(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) end minetest.register_node("techage:ta3_button_off", { diff --git a/logic/cart_detector.lua b/logic/cart_detector.lua index fbc49ff..e4cc429 100644 --- a/logic/cart_detector.lua +++ b/logic/cart_detector.lua @@ -73,7 +73,7 @@ local function techage_set_numbers(pos, numbers, player_name) end local function after_dig_node(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) end minetest.register_node("techage:ta3_cartdetector_off", { diff --git a/logic/collector.lua b/logic/collector.lua index 4f3ace4..c0fa6ef 100644 --- a/logic/collector.lua +++ b/logic/collector.lua @@ -177,8 +177,8 @@ minetest.register_node("techage:ta4_collector", { on_timer = on_timer, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) end, paramtype = "light", diff --git a/logic/detector.lua b/logic/detector.lua index 8a2bc49..a3fd146 100644 --- a/logic/detector.lua +++ b/logic/detector.lua @@ -76,7 +76,7 @@ local function techage_set_numbers(pos, numbers, player_name) end local function after_dig_node(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end diff --git a/logic/doorblock.lua b/logic/doorblock.lua index 721d819..70108db 100644 --- a/logic/doorblock.lua +++ b/logic/doorblock.lua @@ -78,8 +78,8 @@ for idx,pgn in ipairs(tPgns) do end end, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) end, paramtype = "light", diff --git a/logic/doorcontroller.lua b/logic/doorcontroller.lua index 8e77d04..b670755 100644 --- a/logic/doorcontroller.lua +++ b/logic/doorcontroller.lua @@ -105,9 +105,9 @@ minetest.register_node("techage:ta3_doorcontroller", { return res end, - after_dig_node = function(pos) + after_dig_node = function(pos, oldnode, oldmetadata) swap_door_nodes(pos, false) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end, diff --git a/logic/gateblock.lua b/logic/gateblock.lua index 447f536..f5ceb55 100644 --- a/logic/gateblock.lua +++ b/logic/gateblock.lua @@ -64,8 +64,8 @@ for idx,pgn in ipairs(tPgns) do end end, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) end, paramtype = "light", diff --git a/logic/lua_logic.lua b/logic/lua_logic.lua index 8b68be2..1fc9449 100644 --- a/logic/lua_logic.lua +++ b/logic/lua_logic.lua @@ -207,8 +207,8 @@ minetest.register_node("techage:ta3_logic", { return res end, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end, diff --git a/logic/node_detector.lua b/logic/node_detector.lua index 50b491b..34cea52 100644 --- a/logic/node_detector.lua +++ b/logic/node_detector.lua @@ -135,7 +135,7 @@ minetest.register_node("techage:ta3_nodedetector_off", { end, after_dig_node = function(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end, @@ -165,7 +165,7 @@ minetest.register_node("techage:ta3_nodedetector_on", { end, after_dig_node = function(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end, diff --git a/logic/player_detector.lua b/logic/player_detector.lua index a4cfd94..ef4a120 100644 --- a/logic/player_detector.lua +++ b/logic/player_detector.lua @@ -133,7 +133,7 @@ minetest.register_node("techage:ta3_playerdetector_off", { end, after_dig_node = function(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end, @@ -168,7 +168,7 @@ minetest.register_node("techage:ta3_playerdetector_on", { end, after_dig_node = function(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end, @@ -224,7 +224,7 @@ minetest.register_node("techage:ta4_playerdetector_off", { end, after_dig_node = function(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end, @@ -273,7 +273,7 @@ minetest.register_node("techage:ta4_playerdetector_on", { end, after_dig_node = function(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end, diff --git a/logic/repeater.lua b/logic/repeater.lua index 9d0401a..4b24543 100644 --- a/logic/repeater.lua +++ b/logic/repeater.lua @@ -72,8 +72,8 @@ minetest.register_node("techage:ta3_repeater", { return res end, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end, diff --git a/logic/sequencer.lua b/logic/sequencer.lua index 494cafc..45b8467 100644 --- a/logic/sequencer.lua +++ b/logic/sequencer.lua @@ -228,8 +228,8 @@ minetest.register_node("techage:ta3_sequencer", { end local nvm = techage.get_nvm(pos) if not nvm.running then - minetest.node_dig(pos, node, puncher, pointed_thing) techage.remove_node(pos) + minetest.node_dig(pos, node, puncher, pointed_thing) techage.del_mem(pos) end end, diff --git a/logic/signallamp.lua b/logic/signallamp.lua index fa4b10b..385960a 100644 --- a/logic/signallamp.lua +++ b/logic/signallamp.lua @@ -54,7 +54,7 @@ minetest.register_node("techage:signal_lamp_off", { on_rightclick = switch_on, after_dig_node = function(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) if COLORED then unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger) end @@ -97,7 +97,7 @@ minetest.register_node("techage:signal_lamp_on", { after_place_node = COLORED and unifieddyes.recolor_on_place or nil, after_dig_node = function(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) if COLORED then unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger) end diff --git a/logic/terminal.lua b/logic/terminal.lua index ed553ad..121d5c9 100644 --- a/logic/terminal.lua +++ b/logic/terminal.lua @@ -226,8 +226,8 @@ local function register_terminal(num, tiles, node_box, selection_box) end end, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) end, paramtype = "light", diff --git a/logic/timer.lua b/logic/timer.lua index bbdcfd2..0705c8b 100644 --- a/logic/timer.lua +++ b/logic/timer.lua @@ -175,8 +175,8 @@ minetest.register_node("techage:ta3_timer", { on_timer = check_rules, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) techage.del_mem(pos) end, diff --git a/lua_controller/controller.lua b/lua_controller/controller.lua index a72261c..72f3acf 100644 --- a/lua_controller/controller.lua +++ b/lua_controller/controller.lua @@ -533,8 +533,8 @@ minetest.register_node("techage:ta4_lua_controller", { return end - minetest.node_dig(pos, node, puncher, pointed_thing) techage.remove_node(pos) + minetest.node_dig(pos, node, puncher, pointed_thing) end, on_timer = on_timer, diff --git a/lua_controller/sensorchest.lua b/lua_controller/sensorchest.lua index 7f46470..aa04ddc 100644 --- a/lua_controller/sensorchest.lua +++ b/lua_controller/sensorchest.lua @@ -89,7 +89,7 @@ local function can_dig(pos, player) end local function after_dig_node(pos, oldnode, oldmetadata, digger) - techage.remove_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) end local function formspec1() diff --git a/lua_controller/server.lua b/lua_controller/server.lua index a23e394..f9ea5c3 100644 --- a/lua_controller/server.lua +++ b/lua_controller/server.lua @@ -86,8 +86,8 @@ minetest.register_node("techage:ta4_server", { return end techage.del_mem(pos) - minetest.node_dig(pos, node, puncher, pointed_thing) techage.remove_node(pos) + minetest.node_dig(pos, node, puncher, pointed_thing) end, on_timer = function(pos, elasped) diff --git a/lua_controller/terminal.lua b/lua_controller/terminal.lua index 4332c7d..5dfb0f5 100644 --- a/lua_controller/terminal.lua +++ b/lua_controller/terminal.lua @@ -173,8 +173,8 @@ minetest.register_node("techage:ta4_terminal", { end end, - after_dig_node = function(pos) - techage.remove_node(pos) + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) end, paramtype = "light", diff --git a/manuals/ta4_lua_controller_EN.pdf b/manuals/ta4_lua_controller_EN.pdf index 06a17c09417479a22b35a9faaa8ab0a598aac0af..62ffe0b85986f738c3f7a58195fc5e9359ae4a7c 100644 GIT binary patch delta 16419 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 F{68zF+e`oe delta 16266 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