2 Commits

Author SHA1 Message Date
e1534c2139 Corrige emplacement de la barre gauges
- Place à nouveau la barre au dessus de la tête du joueur.
2019-05-01 18:46:26 +02:00
d5f2404ddd Ajoute message de chargement du mod dans le journal action 2019-05-01 18:37:42 +02:00
19 changed files with 71 additions and 101 deletions

View File

@ -1,6 +1,6 @@
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0 rev: v2.1.0
hooks: hooks:
- id: end-of-file-fixer - id: end-of-file-fixer
- id: trailing-whitespace - id: trailing-whitespace

View File

@ -1,16 +1,16 @@
dist: bionic language: generic
language: python
python: addons:
- 3.7.1 apt:
packages:
- luarocks
install: install:
- sudo apt-get update -qq - pyenv global 3.6.3
- sudo apt-get install -qqq luarocks - pip3 install --user pre-commit
- pip3 install pre-commit
- luarocks install --local luacheck - luarocks install --local luacheck
script: script:
# All linters are run with pre-commit hooks # All linters are run with pre-commit hooks
- export PATH="$HOME/.luarocks/bin:$PATH" - export PATH="$HOME/.luarocks/bin:$PATH"
- pre-commit run --all-files - $HOME/.local/bin/pre-commit run --all-files

View File

@ -1,31 +0,0 @@
# 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.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
- 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-2020 4aiman, Hugo Locurcio and contributors Copyright © 2014-2019 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,7 +1,5 @@
# 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.
@ -15,12 +13,14 @@ To install Gauges, clone this Git repository into your Minetest's `mods/`
directory: directory:
```bash ```bash
git clone https://github.com/minetest-mods/gauges.git git clone https://github.com/Calinou/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/Calinou/gauges/archive/master.zip)
of Gauges. of Gauges. If you do so, you will need to extract the archive then rename
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,13 +60,13 @@ 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 is currently primarily tested with Minetest 0.4.17.
with newer or older versions. Issues arising in versions older than 5.0.0 It may or may not work with newer or older versions. Issues arising in older
will generally not be fixed. versions than 0.4.17 will generally not be fixed.
## License ## License
Copyright © 2014-2020 4aiman, Hugo Locurcio and contributors Copyright © 2014-2019 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,63 +1,66 @@
-- gauges: Adds health/breath bars above players -- gauges: Adds health/breath bars above players
-- --
-- Copyright © 2014-2020 4aiman, Hugo Locurcio and contributors - MIT License -- Copyright © 2014-2019 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.
if minetest.settings:get_bool("health_bars") == false or local hp_bar = {
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
local vector_distance = vector.distance
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, physical = false,
collisionbox = {x = 0, y = 0, z = 0},
visual = "sprite",
textures = {"20.png"}, -- The texture is changed later in the code
visual_size = {x = 1.5, y = 0.09375, z = 1.5}, -- Y value is (1 / 16) * 1.5
wielder = nil,
}
on_step = function(self) function vector.sqdist(a, b)
local player = self.wielder local dx = a.x - b.x
local gauge = self.object local dy = a.y - b.y
local dz = a.z - b.z
return dx * dx + dy * dy + dz * dz
end
if not player or function hp_bar:on_step(dtime)
not minetest.is_player(player) or local wielder = self.wielder and minetest.get_player_by_name(self.wielder)
vector_distance(player:get_pos(), gauge:get_pos()) > 3
if
wielder == nil or
vector.sqdist(wielder:get_pos(), self.object:get_pos()) > 3
then then
gauge:remove() self.object:remove()
return return
end end
local hp = player:get_hp() <= 20 and player:get_hp() or 20 local hp = wielder:get_hp()
local breath = player:get_breath() <= 10 and player:get_breath() or 11 local breath = wielder:get_breath()
if self.hp ~= hp or self.breath ~= breath then self.object:set_properties({
gauge:set_properties({
textures = { textures = {
"health_"..tostring(hp)..".png^".. "health_" .. tostring(hp) .. ".png^breath_" .. tostring(breath) .. ".png",
"breath_"..tostring(breath)..".png" },
}
}) })
self.hp = hp
self.breath = breath
end end
end
})
local function add_gauge(player) minetest.register_entity("gauges:hp_bar", hp_bar)
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}) local function add_HP_gauge(name)
entity:get_luaentity().wielder = player 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 = 18, z = 0}, {x = 0, y = 0, z = 0})
ent = ent:get_luaentity()
ent.wielder = player:get_player_name()
end end
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.register_on_joinplayer(function(player)
minetest.after(1, add_gauge, player) minetest.after(1, add_HP_gauge, player:get_player_name())
end) end)
end
minetest.log("action", "[gauges] loaded.")

View File

@ -1,2 +0,0 @@
name = gauges
description = Adds health and breath gauges above players.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 B

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 B

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 B

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 B

After

Width:  |  Height:  |  Size: 151 B

BIN
textures/breath_65535.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 B

After

Width:  |  Height:  |  Size: 107 B