From cfd80c090c7a7c38fbf4fc4d3f5cfabe56caa571 Mon Sep 17 00:00:00 2001 From: crabman77 Date: Sun, 2 Apr 2017 01:17:51 +0200 Subject: [PATCH] add armors definitions (speed, jump) to set physics --- mods/sprint/esprint.lua | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/mods/sprint/esprint.lua b/mods/sprint/esprint.lua index fc1569cd..7f617511 100755 --- a/mods/sprint/esprint.lua +++ b/mods/sprint/esprint.lua @@ -182,12 +182,35 @@ end) function setSprinting(playerName, sprinting) --Sets the state of a player (0=stopped/moving, 1=sprinting) local player = minetest.get_player_by_name(playerName) + local bonus_speed = 0 + local bonus_jump = 0 + if minetest.get_modpath("3d_armor") then + local player_inv = player:get_inventory() + if player_inv then + for i=1, player_inv:get_size("armor") do + local stack = player_inv:get_stack("armor", i) + if stack:get_count() > 0 then + local def = stack:get_definition() + if def and def.groups then + if def.groups["physics_speed"] then + bonus_speed = bonus_speed + def.groups["physics_speed"] + end + + if def.groups["physics_jump"] then + bonus_jump = bonus_jump + def.groups["physics_jump"] + end + end + end + end + end + end + if sprint.players[playerName] then sprint.players[playerName]["sprinting"] = sprinting if sprinting == true then - player:set_physics_override({speed=SPRINT_SPEED,jump=SPRINT_JUMP}) + player:set_physics_override({speed=SPRINT_SPEED + bonus_speed,jump=SPRINT_JUMP + bonus_jump}) elseif sprinting == false then - player:set_physics_override({speed=1.0,jump=1.0}) + player:set_physics_override({speed=1.0 + bonus_speed,jump=1.0 + bonus_jump}) end return true end