From 06699c2cc4b62a0bde7c4d8c1bd09e48c6c85323 Mon Sep 17 00:00:00 2001 From: NO11 Date: Sat, 17 Apr 2021 11:55:50 +0000 Subject: [PATCH 1/2] Fix that an ax wears out if you right-click another block --- mods/ITEMS/mcl_tools/init.lua | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/mods/ITEMS/mcl_tools/init.lua b/mods/ITEMS/mcl_tools/init.lua index fa5352c2c..3aebafb7b 100644 --- a/mods/ITEMS/mcl_tools/init.lua +++ b/mods/ITEMS/mcl_tools/init.lua @@ -352,7 +352,14 @@ minetest.register_tool("mcl_tools:shovel_diamond", { }) -- Axes - +local make_stripped_trunk_add_wear = function(itemstack, placer) + if not minetest.is_creative_enabled(placer:get_player_name()) then + -- Add wear (as if digging a axey node) + local toolname = itemstack:get_name() + local wear = mcl_autogroup.get_wear(toolname, "axey") + itemstack:add_wear(wear) + end +end local make_stripped_trunk = function(itemstack, placer, pointed_thing) if pointed_thing.type == "node" then local pos = minetest.get_pointed_thing_position(pointed_thing) @@ -367,36 +374,42 @@ local make_stripped_trunk = function(itemstack, placer, pointed_thing) minetest.record_protection_violation(pointed_thing.under, placer:get_player_name()) return itemstack end - if not minetest.is_creative_enabled(placer:get_player_name()) then - -- Add wear (as if digging a axey node) - local toolname = itemstack:get_name() - local wear = mcl_autogroup.get_wear(toolname, "axey") - itemstack:add_wear(wear) - end if node_name == "mcl_core:tree" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_oak"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:darktree" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_dark_oak"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:acaciatree" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_acacia"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:birchtree" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_birch"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:sprucetree" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_spruce"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:jungletree" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_jungle"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:tree_bark" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_oak_bark"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:darktree_bark" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_dark_oak_bark"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:acaciatree_bark" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_acacia_bark"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:birchtree_bark" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_birch_bark"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:sprucetree_bark" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_spruce_bark"}) + make_stripped_trunk_add_wear(itemstack, placer) elseif node_name == "mcl_core:jungletree_bark" then minetest.swap_node(pointed_thing.under, {name="mcl_core:stripped_jungle_bark"}) + make_stripped_trunk_add_wear(itemstack, placer) end end return itemstack From f8b54db3929206b4c826533aad035f1c71cc7b89 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Sat, 17 Apr 2021 18:55:56 +0200 Subject: [PATCH 2/2] Fix controls.register_on_press being called for every player in a globalstep --- mods/PLAYER/mcl_playerplus/init.lua | 51 +++++++++++++---------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index b14d34824..65c585f52 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -199,22 +199,7 @@ minetest.register_globalstep(function(dtime) end end - - controls.register_on_press(function(player, key) - if key~="jump" and key~="RMB" then return end - if key=="jump" then - if player:get_inventory():get_stack("armor", 3):get_name() == "mcl_armor:elytra" and player_velocity.y < -6 and elytra[player] ~= true then - elytra[player] = true - elseif key=="RMB" then - if wielded:get_name() == "mcl_tools:rocket" then - wielded:take_item() - player:set_wielded_item(wielded) - end - end - end - end) - - if elytra[player] == true and node_stand_return ~= "air" or elytra[player] == true and player:get_inventory():get_stack("armor", 3):get_name() ~= "mcl_armor:elytra" or player:get_attach() ~= nil then + if elytra[player] == true and ~= nil then elytra[player] = false end --[[ @@ -224,21 +209,29 @@ minetest.register_globalstep(function(dtime) elytra[player] = false end]] - if elytra[player] == true then - mcl_player.player_set_animation(player, "fly") - playerphysics.add_physics_factor(player, "gravity", "mcl_playerplus:elytra", 0.1) - if player_velocity.y < -1.5 then - player:add_velocity({x=0, y=0.17, z=0}) - end - if math.abs(player_velocity.x) + math.abs(player_velocity.z) < 20 then - local dir = minetest.yaw_to_dir(player:get_look_horizontal()) - if degrees(player:get_look_vertical()) * -.01 < .1 then - look_pitch = degrees(player:get_look_vertical()) * -.01 - else - look_pitch = .1 + local wearing_elytra = player:get_inventory():get_stack("armor", 3):get_name() == "mcl_armor:elytra" + + if elytra[player] then + if node_stand_return ~= "air" or not wearing_elytra or player:get_attach() then + elytra[player] = false + else + mcl_player.player_set_animation(player, "fly") + playerphysics.add_physics_factor(player, "gravity", "mcl_playerplus:elytra", 0.1) + if player_velocity.y < -1.5 then + player:add_velocity({x=0, y=0.17, z=0}) + end + if math.abs(player_velocity.x) + math.abs(player_velocity.z) < 20 then + local dir = minetest.yaw_to_dir(player:get_look_horizontal()) + if degrees(player:get_look_vertical()) * -.01 < .1 then + look_pitch = degrees(player:get_look_vertical()) * -.01 + else + look_pitch = .1 + end + player:add_velocity({x=dir.x, y=look_pitch, z=dir.z}) end - player:add_velocity({x=dir.x, y=look_pitch, z=dir.z}) end + elseif wearing_elytra and player_velocity.y < -6 and controls.jump then + elytra[player] = true else playerphysics.remove_physics_factor(player, "gravity", "mcl_playerplus:elytra") end