From 2e1fa0ca97eb0cfc930a5a60609f9db5b9fd72ec Mon Sep 17 00:00:00 2001 From: SX <50966843+S-S-X@users.noreply.github.com> Date: Fri, 21 Feb 2025 22:14:30 +0200 Subject: [PATCH] Generic machine on_rotate --- technic/helpers.lua | 8 ++++++++ technic/machines/HV/quarry.lua | 1 + technic/machines/MV/tool_workshop.lua | 3 ++- technic/machines/other/coal_alloy_furnace.lua | 2 ++ technic/machines/register/generator.lua | 2 ++ technic/machines/register/machine_base.lua | 2 ++ 6 files changed, 17 insertions(+), 1 deletion(-) diff --git a/technic/helpers.lua b/technic/helpers.lua index c1815424..98313499 100644 --- a/technic/helpers.lua +++ b/technic/helpers.lua @@ -62,6 +62,14 @@ function technic.swap_node(pos, name) end end +-- MTG compatible screwdriver API nodedef.on_rotate compatibility +function technic.on_rotate(pos, node, user, mode, new_param2) + node.param2 = new_param2 + minetest.swap_node(pos, node) + pipeworks.scan_for_tube_objects(pos) + return true +end + function technic.set_charge(stack, charge) local wear_factor = stack:get_definition().technic_wear_factor if wear_factor then diff --git a/technic/machines/HV/quarry.lua b/technic/machines/HV/quarry.lua index f6bfb7ef..bab48460 100644 --- a/technic/machines/HV/quarry.lua +++ b/technic/machines/HV/quarry.lua @@ -582,6 +582,7 @@ minetest.register_node("technic:quarry", { action = digiline_action, } }, + on_rotate = technic.on_rotate, }) minetest.register_craft({ diff --git a/technic/machines/MV/tool_workshop.lua b/technic/machines/MV/tool_workshop.lua index 04963060..85e65b4e 100644 --- a/technic/machines/MV/tool_workshop.lua +++ b/technic/machines/MV/tool_workshop.lua @@ -145,7 +145,8 @@ minetest.register_node("technic:tool_workshop", { }, technic_run = run, after_place_node = pipeworks.after_place, - after_dig_node = technic.machine_after_dig_node + after_dig_node = technic.machine_after_dig_node, + on_rotate = technic.on_rotate, }) technic.register_machine("MV", "technic:tool_workshop", technic.receiver) diff --git a/technic/machines/other/coal_alloy_furnace.lua b/technic/machines/other/coal_alloy_furnace.lua index 119a1545..68b07810 100644 --- a/technic/machines/other/coal_alloy_furnace.lua +++ b/technic/machines/other/coal_alloy_furnace.lua @@ -75,6 +75,7 @@ minetest.register_node("technic:coal_alloy_furnace", { on_metadata_inventory_move = technic.machine_on_inventory_move, on_metadata_inventory_put = technic.machine_on_inventory_put, on_metadata_inventory_take = technic.machine_on_inventory_take, + on_rotate = technic.on_rotate, }) minetest.register_node("technic:coal_alloy_furnace_active", { @@ -98,6 +99,7 @@ minetest.register_node("technic:coal_alloy_furnace_active", { on_metadata_inventory_move = technic.machine_on_inventory_move, on_metadata_inventory_put = technic.machine_on_inventory_put, on_metadata_inventory_take = technic.machine_on_inventory_take, + on_rotate = technic.on_rotate, }) minetest.register_abm({ diff --git a/technic/machines/register/generator.lua b/technic/machines/register/generator.lua index 7ccc6736..c990e06c 100644 --- a/technic/machines/register/generator.lua +++ b/technic/machines/register/generator.lua @@ -193,6 +193,7 @@ function technic.register_generator(data) local percent = math.floor(burn_time / burn_totaltime * 100) update_generator_formspec(meta, desc, percent, form_buttons) end, + on_rotate = technic.on_rotate, }) minetest.register_node("technic:"..ltier.."_generator_active", { @@ -286,6 +287,7 @@ function technic.register_generator(data) update_generator_formspec(meta, desc, percent, form_buttons) end, + on_rotate = technic.on_rotate, }) technic.register_machine(tier, "technic:"..ltier.."_generator", technic.producer) diff --git a/technic/machines/register/machine_base.lua b/technic/machines/register/machine_base.lua index 9ea99e5d..4be20267 100644 --- a/technic/machines/register/machine_base.lua +++ b/technic/machines/register/machine_base.lua @@ -239,6 +239,7 @@ function technic.register_base_machine(nodename, data) end meta:set_string("formspec", formspec..form_buttons) end, + on_rotate = technic.on_rotate, }) minetest.register_node(colon..nodename.."_active",{ @@ -290,6 +291,7 @@ function technic.register_base_machine(nodename, data) end meta:set_string("formspec", formspec..form_buttons) end, + on_rotate = technic.on_rotate, }) technic.register_machine(tier, nodename, technic.receiver)