forked from minetest-mods/gauges
		
	Compare commits
	
		
			8 Commits
		
	
	
		
			5e76ccfa78
			...
			1d6848bc9c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 1d6848bc9c | |||
| 
						 | 
					9b47fc7b4b | ||
| 
						 | 
					0439216cab | ||
| 
						 | 
					ab7806a4bf | ||
| 
						 | 
					0f924c177c | ||
| 
						 | 
					960ca02e42 | ||
| 
						 | 
					b075262daf | ||
| 
						 | 
					9425b8dcf5 | 
							
								
								
									
										24
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
 | 
			
		||||
 | 
			
		||||
## [Unreleased]
 | 
			
		||||
 | 
			
		||||
## [1.0.3] - 2020-02-15
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
 | 
			
		||||
- Fix an issue with gauges occasionally no longer appearing above a player.
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
- Improved the reliability of the Minetest version check (for compatibility with 0.4.17).
 | 
			
		||||
 | 
			
		||||
## [1.0.2] - 2020-01-16
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
 | 
			
		||||
- Fix crash when creating an entity if a player leaves the server quickly.
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
- Restore Minetest 0.4.17 support. The version check works only with `minetest_game` with the `player_api` mod added in Minetest 5.0.
 | 
			
		||||
 | 
			
		||||
## [1.0.1] - 2020-01-01
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
@@ -17,5 +37,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
 | 
			
		||||
 | 
			
		||||
- Initial versioned release.
 | 
			
		||||
 | 
			
		||||
[Unreleased]: https://github.com/minetest-mods/gauges/compare/v1.0.1...HEAD
 | 
			
		||||
[Unreleased]: https://github.com/minetest-mods/gauges/compare/v1.0.3...HEAD
 | 
			
		||||
[1.0.3]: https://github.com/minetest-mods/gauges/compare/v1.0.2...v1.0.3
 | 
			
		||||
[1.0.2]: https://github.com/minetest-mods/gauges/compare/v1.0.1...v1.0.2
 | 
			
		||||
[1.0.1]: https://github.com/minetest-mods/gauges/compare/v1.0.0...v1.0.1
 | 
			
		||||
 
 | 
			
		||||
@@ -60,9 +60,8 @@ on that line.
 | 
			
		||||
 | 
			
		||||
## Version compatibility
 | 
			
		||||
 | 
			
		||||
Gauges is currently primarily tested with Minetest 5.1.0. It may or may not work
 | 
			
		||||
with newer or older versions. Issues arising in versions older than 5.0.0
 | 
			
		||||
will generally not be fixed.
 | 
			
		||||
Gauges currently supports Minetest 5.0 and later, as well as 0.4.17.
 | 
			
		||||
Issues arising in versions older than 5.0 will generally not be fixed.
 | 
			
		||||
 | 
			
		||||
## License
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										47
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								init.lua
									
									
									
									
									
								
							@@ -7,26 +7,44 @@ if minetest.settings:get_bool("health_bars") == false or
 | 
			
		||||
		not minetest.settings:get_bool("enable_damage")
 | 
			
		||||
then return end
 | 
			
		||||
 | 
			
		||||
-- Localize the vector distance function for better performance, as it's called
 | 
			
		||||
-- on every step
 | 
			
		||||
-- Localize the vector distance function for better performance,
 | 
			
		||||
-- as it's called on every step
 | 
			
		||||
local vector_distance = vector.distance
 | 
			
		||||
 | 
			
		||||
local function add_gauge(player)
 | 
			
		||||
	if player and player:is_player() then
 | 
			
		||||
		local entity = minetest.add_entity(player:get_pos(), "gauges:hp_bar")
 | 
			
		||||
		local height = 19
 | 
			
		||||
 | 
			
		||||
		-- Check for Minetest 0.4.17 and adjust the entity height if needed
 | 
			
		||||
		-- (The entity height offset was changed in Minetest 5.0.0.)
 | 
			
		||||
		local version = tonumber(minetest.get_version().string:sub(1, 1))
 | 
			
		||||
		if version and version < 5 then
 | 
			
		||||
			height = 9
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		entity:set_attach(player, "", {x=0, y=height, z=0}, {x=0, y=0, z=0})
 | 
			
		||||
		entity:get_luaentity().wielder = player
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_entity("gauges:hp_bar", {
 | 
			
		||||
	visual = "sprite",
 | 
			
		||||
	visual_size = {x=1, y=1/16, z=1},
 | 
			
		||||
	-- The texture is changed later in the code
 | 
			
		||||
	textures = {"blank.png"},
 | 
			
		||||
	collisionbox = {0},
 | 
			
		||||
	physical = false,
 | 
			
		||||
 | 
			
		||||
	on_step = function(self)
 | 
			
		||||
		local player = self.wielder
 | 
			
		||||
		local gauge = self.object
 | 
			
		||||
 | 
			
		||||
		if not player or
 | 
			
		||||
				not minetest.is_player(player) or
 | 
			
		||||
				vector_distance(player:get_pos(), self.object:get_pos()) > 3
 | 
			
		||||
		then
 | 
			
		||||
			self.object:remove()
 | 
			
		||||
		if not player or not player:is_player() then
 | 
			
		||||
			gauge:remove()
 | 
			
		||||
			return
 | 
			
		||||
		elseif vector_distance(player:get_pos(), gauge:get_pos()) > 3 then
 | 
			
		||||
			gauge:remove()
 | 
			
		||||
			add_gauge(player)
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
@@ -34,10 +52,10 @@ minetest.register_entity("gauges:hp_bar", {
 | 
			
		||||
		local breath = player:get_breath() <= 10 and player:get_breath() or 11
 | 
			
		||||
 | 
			
		||||
		if self.hp ~= hp or self.breath ~= breath then
 | 
			
		||||
			self.object:set_properties({
 | 
			
		||||
			gauge:set_properties({
 | 
			
		||||
				textures = {
 | 
			
		||||
					"health_"..tostring(hp)..".png^"..
 | 
			
		||||
					"breath_"..tostring(breath)..".png"
 | 
			
		||||
					"health_"..hp..".png^"..
 | 
			
		||||
					"breath_"..breath..".png"
 | 
			
		||||
				}
 | 
			
		||||
			})
 | 
			
		||||
			self.hp = hp
 | 
			
		||||
@@ -46,13 +64,6 @@ minetest.register_entity("gauges:hp_bar", {
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
local function add_gauge(player)
 | 
			
		||||
	local entity = minetest.add_entity(player:get_pos(), "gauges:hp_bar")
 | 
			
		||||
 | 
			
		||||
	entity:set_attach(player, "", {x=0, y=19, z=0}, {x=0, y=0, z=0})
 | 
			
		||||
	entity:get_luaentity().wielder = player
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
minetest.register_on_joinplayer(function(player)
 | 
			
		||||
	minetest.after(1, add_gauge, player)
 | 
			
		||||
end)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user