Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev

This commit is contained in:
Sys Quatre 2020-01-06 22:24:13 +01:00
commit 5e76ccfa78
16 changed files with 74 additions and 57 deletions

21
CHANGELOG.md Normal file
View File

@ -0,0 +1,21 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.0.1] - 2020-01-01
### Changed
- Improve performance by localizing the `vector.distance()` function.
## 1.0.0 - 2020-01-01
- Initial versioned release.
[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

View File

@ -1,6 +1,6 @@
# MIT License # MIT License
Copyright © 2014-2019 4aiman, Hugo Locurcio and contributors Copyright © 2014-2020 4aiman, Hugo Locurcio and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -1,5 +1,7 @@
# Gauges # Gauges
![Preview](https://content.minetest.net/uploads/GBoKauWSou.png)
Gauges for [Minetest](https://www.minetest.net/), a free and open source infinite Gauges for [Minetest](https://www.minetest.net/), a free and open source infinite
world block sandbox game. world block sandbox game.
@ -18,9 +20,7 @@ git clone https://github.com/minetest-mods/gauges.git
You can also You can also
[download a ZIP archive](https://github.com/minetest-mods/gauges/archive/master.zip) [download a ZIP archive](https://github.com/minetest-mods/gauges/archive/master.zip)
of Gauges. If you do so, you will need to extract the archive then rename of Gauges.
the resulting folder from `gauges-master` to `gauges` this is
**absolutely** required, as the mod won't work otherwise.
### Enable the mod ### Enable the mod
@ -60,11 +60,13 @@ on that line.
## Version compatibility ## Version compatibility
Gauges requires Minetest 5.0.0 or newer to work as expected. 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.
## License ## License
Copyright © 2014-2019 4aiman, Hugo Locurcio and contributors Copyright © 2014-2020 4aiman, Hugo Locurcio and contributors
- Code is licensed under the MIT license, see - Code is licensed under the MIT license, see
[`LICENSE.md`](LICENSE.md) for details. [`LICENSE.md`](LICENSE.md) for details.

View File

@ -1,66 +1,60 @@
-- gauges: Adds health/breath bars above players -- gauges: Adds health/breath bars above players
-- --
-- Copyright © 2014-2019 4aiman, Hugo Locurcio and contributors - MIT License -- Copyright © 2014-2020 4aiman, Hugo Locurcio and contributors - MIT License
-- See `LICENSE.md` included in the source distribution for details. -- See `LICENSE.md` included in the source distribution for details.
local hp_bar = { if minetest.settings:get_bool("health_bars") == false or
physical = false, not minetest.settings:get_bool("enable_damage")
collisionbox = {x = 0, y = 0, z = 0}, then return end
-- Localize the vector distance function for better performance, as it's called
-- on every step
local vector_distance = vector.distance
minetest.register_entity("gauges:hp_bar", {
visual = "sprite", visual = "sprite",
textures = {"20.png"}, -- The texture is changed later in the code visual_size = {x=1, y=1/16, z=1},
visual_size = {x = 1.5, y = 0.09375, z = 1.5}, -- Y value is (1 / 16) * 1.5 -- The texture is changed later in the code
wielder = nil, textures = {"blank.png"},
} collisionbox = {0},
physical = false,
function vector.sqdist(a, b) on_step = function(self)
local dx = a.x - b.x local player = self.wielder
local dy = a.y - b.y
local dz = a.z - b.z
return dx * dx + dy * dy + dz * dz
end
function hp_bar:on_step(dtime) if not player or
local wielder = self.wielder and minetest.get_player_by_name(self.wielder) not minetest.is_player(player) or
vector_distance(player:get_pos(), self.object:get_pos()) > 3
then
self.object:remove()
return
end
if local hp = player:get_hp() <= 20 and player:get_hp() or 20
wielder == nil or local breath = player:get_breath() <= 10 and player:get_breath() or 11
vector.sqdist(wielder:get_pos(), self.object:get_pos()) > 3
then if self.hp ~= hp or self.breath ~= breath then
self.object:remove() self.object:set_properties({
return textures = {
"health_"..tostring(hp)..".png^"..
"breath_"..tostring(breath)..".png"
}
})
self.hp = hp
self.breath = breath
end
end end
})
local hp = wielder:get_hp() local function add_gauge(player)
local breath = wielder:get_breath() local entity = minetest.add_entity(player:get_pos(), "gauges:hp_bar")
self.object:set_properties({ entity:set_attach(player, "", {x=0, y=19, z=0}, {x=0, y=0, z=0})
textures = { entity:get_luaentity().wielder = player
"health_" .. tostring(hp) .. ".png^breath_" .. tostring(breath) .. ".png",
},
})
end end
minetest.register_entity("gauges:hp_bar", hp_bar) minetest.register_on_joinplayer(function(player)
minetest.after(1, add_gauge, player)
local function add_HP_gauge(name) end)
local player = minetest.get_player_by_name(name)
local pos = player:get_pos()
local ent = minetest.add_entity(pos, "gauges:hp_bar")
if ent ~= nil then
ent:set_attach(player, "", {x = 0, y = 19, z = 0}, {x = 0, y = 0, z = 0})
ent = ent:get_luaentity()
ent.wielder = player:get_player_name()
end
end
if
minetest.settings:get_bool("enable_damage") and
minetest.settings:get_bool("health_bars") ~= false
then
minetest.register_on_joinplayer(function(player)
minetest.after(1, add_HP_gauge, player:get_player_name())
end)
end
minetest.log("action", "[gauges] loaded.") minetest.log("action", "[gauges] loaded.")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 B

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 B

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 B

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 B

After

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 B

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

After

Width:  |  Height:  |  Size: 106 B