From 578709c93e494c928921aab4aa225e2017dff6ac Mon Sep 17 00:00:00 2001 From: Code-Sploit Date: Sat, 27 Feb 2021 15:35:59 +0000 Subject: [PATCH 1/5] Add Depth Strider enchantment --- mods/ITEMS/mcl_enchanting/enchantments.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mods/ITEMS/mcl_enchanting/enchantments.lua b/mods/ITEMS/mcl_enchanting/enchantments.lua index 7056ba13..893ce58d 100644 --- a/mods/ITEMS/mcl_enchanting/enchantments.lua +++ b/mods/ITEMS/mcl_enchanting/enchantments.lua @@ -124,8 +124,8 @@ mcl_enchanting.enchantments.curse_of_vanishing = { inv_tool_tab = true, } --- unimplemented ---[[mcl_enchanting.enchantments.depth_strider = { +-- implemented in mcl_playerplus +mcl_enchanting.enchantments.depth_strider = { name = S("Depth Strider"), max_level = 3, primary = {}, @@ -141,7 +141,7 @@ mcl_enchanting.enchantments.curse_of_vanishing = { power_range_table = {{10, 25}, {20, 35}, {30, 45}}, inv_combat_tab = true, inv_tool_tab = false, -}]]-- +} -- implemented via on_enchant mcl_enchanting.enchantments.efficiency = { From 828c1110b11548719465c49e591dae46dedd4413 Mon Sep 17 00:00:00 2001 From: Code-Sploit Date: Sat, 27 Feb 2021 15:37:25 +0000 Subject: [PATCH 2/5] Implement Depth Strider enchantment --- mods/PLAYER/mcl_playerplus/init.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index e12f73fc..94dda9cf 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -197,6 +197,18 @@ minetest.register_globalstep(function(dtime) playerphysics.remove_physics_factor(player, "speed", "mcl_playerplus:surface") end + -- Swimming? Check if boots are enchanted with depth strider + if node_feet == "mcl_core:water_source" or node_feet == "mclx_core:river_water_source" then + local boots = player:get_inventory():get_stack("armor", 5) + local depth_strider = mcl_enchanting.get_enchantment(boots, "depth_strider") + + if depth_strider > 0 then + playerphysics.add_physics_factor(player, "speed", "mcl_playerplus:surface", depth_strider / 2) + end + else + playerphysics.remove_physics_factor(player, "speed", "mcl_playerplus:surface") + end + -- Is player suffocating inside node? (Only for solid full opaque cube type nodes -- without group disable_suffocation=1) local ndef = minetest.registered_nodes[node_head] From de9d838642a73c2d221f9f491e25e89bf52f36d6 Mon Sep 17 00:00:00 2001 From: Code-Sploit Date: Sat, 27 Feb 2021 16:10:11 +0000 Subject: [PATCH 3/5] Fix a bug and improve some things Bugs: 1) When player is in liquid and takes off his/her boots, he/her still has increased speed. Improve: 1) Check for liquid group instead of node names --- mods/PLAYER/mcl_playerplus/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index 94dda9cf..faa7e70d 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -198,7 +198,7 @@ minetest.register_globalstep(function(dtime) end -- Swimming? Check if boots are enchanted with depth strider - if node_feet == "mcl_core:water_source" or node_feet == "mclx_core:river_water_source" then + if minetest.get_item_group(node_feet, "liquid") and mcl_enchanting.get_enchantment(player:get_inventory():get_stack("armor", 5), "depth_strider") then local boots = player:get_inventory():get_stack("armor", 5) local depth_strider = mcl_enchanting.get_enchantment(boots, "depth_strider") From 99b5dff84957626d15774a9927d2cadcba44d078 Mon Sep 17 00:00:00 2001 From: Code-Sploit Date: Sat, 27 Feb 2021 16:13:05 +0000 Subject: [PATCH 4/5] Fix another bug --- mods/PLAYER/mcl_playerplus/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index faa7e70d..b2a61fb1 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -198,7 +198,7 @@ minetest.register_globalstep(function(dtime) end -- Swimming? Check if boots are enchanted with depth strider - if minetest.get_item_group(node_feet, "liquid") and mcl_enchanting.get_enchantment(player:get_inventory():get_stack("armor", 5), "depth_strider") then + if minetest.get_item_group(node_feet, "liquid") ~= 0 and mcl_enchanting.get_enchantment(player:get_inventory():get_stack("armor", 5), "depth_strider") then local boots = player:get_inventory():get_stack("armor", 5) local depth_strider = mcl_enchanting.get_enchantment(boots, "depth_strider") From 6ab0e0fa86845a823ff797b8de342741db038c54 Mon Sep 17 00:00:00 2001 From: Code-Sploit Date: Sun, 28 Feb 2021 14:02:48 +0000 Subject: [PATCH 5/5] Do some calculating --- mods/PLAYER/mcl_playerplus/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index b2a61fb1..73e799a3 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -198,12 +198,12 @@ minetest.register_globalstep(function(dtime) end -- Swimming? Check if boots are enchanted with depth strider - if minetest.get_item_group(node_feet, "liquid") ~= 0 and mcl_enchanting.get_enchantment(player:get_inventory():get_stack("armor", 5), "depth_strider") then + if minetest.get_item_group(node_feet, "liquid") ~= 0 and mcl_enchanting.get_enchantment(player:get_inventory():get_stack("armor", 5), "depth_strider") then local boots = player:get_inventory():get_stack("armor", 5) local depth_strider = mcl_enchanting.get_enchantment(boots, "depth_strider") if depth_strider > 0 then - playerphysics.add_physics_factor(player, "speed", "mcl_playerplus:surface", depth_strider / 2) + playerphysics.add_physics_factor(player, "speed", "mcl_playerplus:surface", (depth_strider / 3) + 0.75) end else playerphysics.remove_physics_factor(player, "speed", "mcl_playerplus:surface")