forked from minetest-mods/hbsprint
		
	move some vars out of metadata
This commit is contained in:
		
							
								
								
									
										25
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								init.lua
									
									
									
									
									
								
							@@ -20,6 +20,9 @@ local autohide      = minetest.is_yes(setting_get("hudbards_autohide_stamina", "
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
local sprint_timer_step = 0.5
 | 
					local sprint_timer_step = 0.5
 | 
				
			||||||
local sprint_timer = 0
 | 
					local sprint_timer = 0
 | 
				
			||||||
 | 
					local sprinting = {}
 | 
				
			||||||
 | 
					local stamina_timer = {}
 | 
				
			||||||
 | 
					local breath_timer = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local mod_hudbars = minetest.get_modpath("hudbars") ~= nil
 | 
					local mod_hudbars = minetest.get_modpath("hudbars") ~= nil
 | 
				
			||||||
local mod_player_monoids = minetest.get_modpath("player_monoids") ~= nil
 | 
					local mod_player_monoids = minetest.get_modpath("player_monoids") ~= nil
 | 
				
			||||||
@@ -40,7 +43,7 @@ end
 | 
				
			|||||||
-- Functions
 | 
					-- Functions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local function start_sprint(player)
 | 
					local function start_sprint(player)
 | 
				
			||||||
  if player:get_meta():get("hbsprint:sprinting") == "false" then
 | 
					  if not sprinting[player:get_player_name()] then
 | 
				
			||||||
    if mod_player_monoids then
 | 
					    if mod_player_monoids then
 | 
				
			||||||
      player_monoids.speed:add_change(player, speed, "hbsprint:speed")
 | 
					      player_monoids.speed:add_change(player, speed, "hbsprint:speed")
 | 
				
			||||||
      player_monoids.jump:add_change(player, jump, "hbsprint:jump")
 | 
					      player_monoids.jump:add_change(player, jump, "hbsprint:jump")
 | 
				
			||||||
@@ -54,7 +57,7 @@ local function start_sprint(player)
 | 
				
			|||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local function stop_sprint(player)
 | 
					local function stop_sprint(player)
 | 
				
			||||||
  if player:get_meta():get("hbsprint:sprinting") == "true" then
 | 
					  if sprinting[player:get_player_name()] then
 | 
				
			||||||
    if mod_player_monoids then
 | 
					    if mod_player_monoids then
 | 
				
			||||||
      player_monoids.speed:del_change(player, "hbsprint:speed")
 | 
					      player_monoids.speed:del_change(player, "hbsprint:speed")
 | 
				
			||||||
      player_monoids.jump:del_change(player, "hbsprint:jump")
 | 
					      player_monoids.jump:del_change(player, "hbsprint:jump")
 | 
				
			||||||
@@ -159,8 +162,8 @@ minetest.register_globalstep(function(dtime)
 | 
				
			|||||||
    for _,player in ipairs(minetest.get_connected_players()) do
 | 
					    for _,player in ipairs(minetest.get_connected_players()) do
 | 
				
			||||||
      local ctrl = player:get_player_control()
 | 
					      local ctrl = player:get_player_control()
 | 
				
			||||||
      local key_press = false
 | 
					      local key_press = false
 | 
				
			||||||
      player:get_meta():set_float("hbsprint_stamina_timer", player:get_meta():get_float("hbsprint_stamina_timer") + sprint_timer)
 | 
					      stamina_timer[player:get_player_name()] = (stamina_timer[player:get_player_name()] or 0) + sprint_timer
 | 
				
			||||||
      player:get_meta():set_float("hbsprint_breath_timer", player:get_meta():get_float("hbsprint_breath_timer") + sprint_timer)
 | 
					      breath_timer[player:get_player_name()] = (breath_timer[player:get_player_name()] or 0) + sprint_timer
 | 
				
			||||||
      if dir then
 | 
					      if dir then
 | 
				
			||||||
        key_press = ctrl.aux1 and ctrl.up and not ctrl.left and not ctrl.right
 | 
					        key_press = ctrl.aux1 and ctrl.up and not ctrl.left and not ctrl.right
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
@@ -187,26 +190,26 @@ minetest.register_globalstep(function(dtime)
 | 
				
			|||||||
        end
 | 
					        end
 | 
				
			||||||
        if player_stamina > 0 and hunger > starve_limit and walkable then
 | 
					        if player_stamina > 0 and hunger > starve_limit and walkable then
 | 
				
			||||||
          start_sprint(player)
 | 
					          start_sprint(player)
 | 
				
			||||||
          player:get_meta():set_string("hbsprint:sprinting", "true")
 | 
					          sprinting[name] = true
 | 
				
			||||||
          if stamina then drain_stamina(player) end
 | 
					          if stamina then drain_stamina(player) end
 | 
				
			||||||
          if starve then drain_hunger(player, hunger, name) end
 | 
					          if starve then drain_hunger(player, hunger, name) end
 | 
				
			||||||
          if breath then
 | 
					          if breath then
 | 
				
			||||||
            if player:get_meta():get_float("hbsprint_breath_timer") >= 2 then
 | 
					            if breath_timer[name] >= 2 then
 | 
				
			||||||
              drain_breath(player)
 | 
					              drain_breath(player)
 | 
				
			||||||
              player:get_meta():set_float("hbsprint_breath_timer", 0)
 | 
					              breath_timer[name] = 0
 | 
				
			||||||
            end
 | 
					            end
 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
          if particles then create_particles(player, name, pos, ground) end
 | 
					          if particles then create_particles(player, name, pos, ground) end
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
          stop_sprint(player)
 | 
					          stop_sprint(player)
 | 
				
			||||||
          player:get_meta():set_string("hbsprint:sprinting", "false")
 | 
					          sprinting[name] = false
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        stop_sprint(player)
 | 
					        stop_sprint(player)
 | 
				
			||||||
        player:get_meta():set_string("hbsprint:sprinting", "false")
 | 
					        sprinting[player:get_player_name()] = false
 | 
				
			||||||
        if player:get_meta():get_float("hbsprint_stamina_timer") >= replenish then
 | 
					        if stamina_timer[player:get_player_name()] >= replenish then
 | 
				
			||||||
          if stamina then replenish_stamina(player) end
 | 
					          if stamina then replenish_stamina(player) end
 | 
				
			||||||
          player:get_meta():set_float("hbsprint_stamina_timer", 0)
 | 
					          stamina_timer[player:get_player_name()] = 0
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user