diff --git a/.luacheckrc b/.luacheckrc index 72a3d02..076aa9e 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -11,5 +11,6 @@ read_globals = { 'armor', 'playerphysics', 'hb', - 'mesecon' + 'mesecon', + 'player_monoids' } diff --git a/init.lua b/init.lua index 0ab9546..c014443 100644 --- a/init.lua +++ b/init.lua @@ -6,6 +6,8 @@ x_bows = { creative = minetest.settings:get_bool('creative_mode') or false, mesecons = minetest.get_modpath('mesecons'), hbhunger = minetest.get_modpath('hbhunger'), + playerphysics = minetest.get_modpath('playerphysics'), + player_monoids = minetest.get_modpath('player_monoids'), registered_arrows = {}, registered_bows = {}, player_bow_sneak = {}, @@ -339,15 +341,19 @@ minetest.register_globalstep(function(dtime) end if item == 'x_bows:bow_wood_charged' and not x_bows.player_bow_sneak[name].sneak then - if minetest.get_modpath('playerphysics') then + if x_bows.playerphysics then playerphysics.add_physics_factor(player, 'speed', 'x_bows:bow_wood_charged', 0.25) + elseif x_bows.player_monoids then + player_monoids.speed:add_change(player, 0.25, 'x_bows:bow_wood_charged') end x_bows.player_bow_sneak[name].sneak = true player:set_fov(0.9, true, 0.4) elseif item ~= 'x_bows:bow_wood_charged' and x_bows.player_bow_sneak[name].sneak then - if minetest.get_modpath('playerphysics') then + if x_bows.playerphysics then playerphysics.remove_physics_factor(player, 'speed', 'x_bows:bow_wood_charged') + elseif x_bows.player_monoids then + player_monoids.speed:del_change(player, 'x_bows:bow_wood_charged') end x_bows.player_bow_sneak[name].sneak = false diff --git a/mod.conf b/mod.conf index f5c7e0d..58df3cf 100644 --- a/mod.conf +++ b/mod.conf @@ -1,5 +1,5 @@ name = x_bows description = Adds bow and arrows to Minetest. depends = -optional_depends = default, farming, 3d_armor, hbhunger, mesecons, playerphysics +optional_depends = default, farming, 3d_armor, hbhunger, mesecons, playerphysics, player_monoids min_minetest_version = 5.0 \ No newline at end of file diff --git a/nodes.lua b/nodes.lua index 9c8200c..6dfe303 100644 --- a/nodes.lua +++ b/nodes.lua @@ -32,7 +32,7 @@ minetest.register_node('x_bows:target', { groups = {snappy=3, flammable=4, fall_damage_add_percent=-30}, sounds = default.node_sound_leaves_defaults(), mesecons = {receptor = {state = 'off'}}, - on_timer = function (pos, elapsed) + on_timer = function (pos, elapsed) --luacheck:ignore mesecon.receptor_off(pos) return false end,