4 Commits

Author SHA1 Message Date
ab7806a4bf Tweak grammar in various files
- Fix release date to match the actual 1.0.3 release.
2020-02-15 16:19:33 +01:00
0f924c177c Bump to version 1.0.3 2020-02-15 16:09:20 +01:00
960ca02e42 Readd Gauges when a player is lost 2020-02-15 16:09:20 +01:00
b075262daf More reliable version checking 2020-02-15 16:09:20 +01:00
3 changed files with 40 additions and 23 deletions

View File

@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased] ## [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 ## [1.0.2] - 2020-01-16
### Fixed ### Fixed
@ -29,3 +39,5 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
[Unreleased]: https://github.com/minetest-mods/gauges/compare/v1.0.1...HEAD [Unreleased]: https://github.com/minetest-mods/gauges/compare/v1.0.1...HEAD
[1.0.1]: https://github.com/minetest-mods/gauges/compare/v1.0.0...v1.0.1 [1.0.1]: https://github.com/minetest-mods/gauges/compare/v1.0.0...v1.0.1
[1.0.2]: https://github.com/minetest-mods/gauges/compare/v1.0.1...v1.0.2
[1.0.3]: https://github.com/minetest-mods/gauges/compare/v1.0.2...v1.0.3

View File

@ -60,9 +60,8 @@ on that line.
## Version compatibility ## Version compatibility
Gauges is currently primarily tested with Minetest 5.1.0 and 0.4.17. It may or may not work Gauges currently supports Minetest 5.0 and later, as well as 0.4.17.
with newer or older versions. Issues arising in versions older than 5.0.0 Issues arising in versions older than 5.0 will generally not be fixed.
will generally not be fixed.
## License ## License

View File

@ -7,14 +7,30 @@ if minetest.settings:get_bool("health_bars") == false or
not minetest.settings:get_bool("enable_damage") not minetest.settings:get_bool("enable_damage")
then return end then return end
-- Localize the vector distance function for better performance, as it's called -- Localize the vector distance function for better performance,
-- on every step -- as it's called on every step
local vector_distance = vector.distance 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", { minetest.register_entity("gauges:hp_bar", {
visual = "sprite", visual = "sprite",
visual_size = {x=1, y=1/16, z=1}, visual_size = {x=1, y=1/16, z=1},
-- The texture is changed later in the code
textures = {"blank.png"}, textures = {"blank.png"},
collisionbox = {0}, collisionbox = {0},
physical = false, physical = false,
@ -23,12 +39,13 @@ minetest.register_entity("gauges:hp_bar", {
local player = self.wielder local player = self.wielder
local gauge = self.object local gauge = self.object
if not player or if not player or not player:is_player() then
not minetest.is_player(player) or
vector_distance(player:get_pos(), gauge:get_pos()) > 3
then
gauge:remove() gauge:remove()
return return
elseif vector_distance(player:get_pos(), gauge:get_pos()) > 3 then
gauge:remove()
add_gauge(player)
return
end end
local hp = player:get_hp() <= 20 and player:get_hp() or 20 local hp = player:get_hp() <= 20 and player:get_hp() or 20
@ -37,8 +54,8 @@ minetest.register_entity("gauges:hp_bar", {
if self.hp ~= hp or self.breath ~= breath then if self.hp ~= hp or self.breath ~= breath then
gauge:set_properties({ gauge:set_properties({
textures = { textures = {
"health_"..tostring(hp)..".png^".. "health_"..hp..".png^"..
"breath_"..tostring(breath)..".png" "breath_"..breath..".png"
} }
}) })
self.hp = hp self.hp = hp
@ -47,17 +64,6 @@ minetest.register_entity("gauges:hp_bar", {
end end
}) })
local function add_gauge(player)
if player and minetest.is_player(player) then
local entity = minetest.add_entity(player:get_pos(), "gauges:hp_bar")
-- check for minetest_game 0.4.*
local height = minetest.get_modpath("player_api") and 19 or 9
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_on_joinplayer(function(player) minetest.register_on_joinplayer(function(player)
minetest.after(1, add_gauge, player) minetest.after(1, add_gauge, player)
end) end)