mirror of
				git://repo.or.cz/minetest_mana.git
				synced 2025-11-04 09:45:30 +01:00 
			
		
		
		
	Add Mana regeneration
This commit is contained in:
		
							
								
								
									
										32
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								init.lua
									
									
									
									
									
								
							@@ -14,12 +14,24 @@ mana.playerlist = {}
 | 
			
		||||
 | 
			
		||||
mana.settings = {}
 | 
			
		||||
mana.settings.default_max = 200
 | 
			
		||||
mana.settings.default_regen = 1
 | 
			
		||||
mana.settings.regen_timer = 0.1
 | 
			
		||||
 | 
			
		||||
do
 | 
			
		||||
	local default_max = tonumber(minetest.setting_get("mana_default_max"))
 | 
			
		||||
	if default_max ~= nil then
 | 
			
		||||
		mana.settings.default_max = default_max
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local default_regen = tonumber(minetest.setting_get("mana_default_regen"))
 | 
			
		||||
	if default_regen ~= nil then
 | 
			
		||||
		mana.settings.default_regen = default_regen
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local regen_timer = tonumber(minetest.setting_get("mana_regen_timer"))
 | 
			
		||||
	if regen_timer ~= nil then
 | 
			
		||||
		mana.settings.regen_timer = regen_timer
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -189,6 +201,7 @@ minetest.register_on_joinplayer(function(player)
 | 
			
		||||
		mana.playerlist[playername] = {}
 | 
			
		||||
		mana.playerlist[playername].mana = 0
 | 
			
		||||
		mana.playerlist[playername].maxmana = mana.settings.default_max
 | 
			
		||||
		mana.playerlist[playername].regen = mana.settings.default_regen
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	if minetest.get_modpath("hudbars") ~= nil then
 | 
			
		||||
@@ -199,6 +212,21 @@ minetest.register_on_joinplayer(function(player)
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
--[===[
 | 
			
		||||
	Mana regeneration
 | 
			
		||||
]===]
 | 
			
		||||
 | 
			
		||||
mana.regen_timer = 0
 | 
			
		||||
 | 
			
		||||
minetest.register_globalstep(function(dtime)
 | 
			
		||||
	mana.regen_timer = mana.regen_timer + dtime
 | 
			
		||||
	if mana.regen_timer >= mana.settings.regen_timer then
 | 
			
		||||
		for name, infotable in pairs(mana.playerlist) do
 | 
			
		||||
			mana.add_up_to(name, infotable.regen)
 | 
			
		||||
		end
 | 
			
		||||
		mana.regen_timer = 0
 | 
			
		||||
	end
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
--[===[
 | 
			
		||||
	HUD functions
 | 
			
		||||
@@ -209,7 +237,9 @@ if minetest.get_modpath("hudbars") ~= nil then
 | 
			
		||||
 | 
			
		||||
	function mana.hud_update(playername)
 | 
			
		||||
		local player = minetest.get_player_by_name(playername)
 | 
			
		||||
		hb.change_hudbar(player, "mana", mana.get(playername), mana.getmax(playername))
 | 
			
		||||
		if player ~= nil then
 | 
			
		||||
			hb.change_hudbar(player, "mana", mana.get(playername), mana.getmax(playername))
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
else
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user