Compare commits

...

7 Commits

3 changed files with 42 additions and 9 deletions

11
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,11 @@
on: [push, pull_request]
name: build
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: lint
uses: Roang-zero1/factorio-mod-luacheck@master
with:
luacheckrc_url: ""

19
.luacheckrc Normal file
View File

@ -0,0 +1,19 @@
allow_defined_top = true
unused_args = false
max_line_length = false
read_globals = {
string = {fields = {"split", "trim"}},
table = {fields = {"copy", "getn"}},
"player_monoids",
"playerphysics",
"hb",
"vector",
"hunger_ng",
}
globals = {
"minetest",
"hbhunger"
}

View File

@ -84,25 +84,28 @@ local function drain_stamina(player)
player:get_meta():set_float("hbsprint:stamina", player_stamina)
end
if mod_hudbars then
if autohide and player_stamina < 20 then hb.unhide_hudbar(player, "stamina") end
if autohide and
player_stamina < hb.get_hudtable("stamina").hudstate[player:get_player_name()].max
then hb.unhide_hudbar(player, "stamina") end
hb.change_hudbar(player, "stamina", player_stamina)
end
end
local function replenish_stamina(player)
local player_stamina = player:get_meta():get_float("hbsprint:stamina")
local player_stamina = player:get_meta():get_float("hbsprint:stamina")
local max_stamina = hb.get_hudtable("stamina").hudstate[player:get_player_name()].max
local ctrl = player:get_player_control()
if player_stamina < 20 and not ctrl.jump then
if player_stamina < max_stamina and not ctrl.jump then
if not ctrl.right and not ctrl.left and not ctrl.down and not ctrl.up and not ctrl.LMB and not ctrl.RMB then
player_stamina = math.min(20, player_stamina + standing)
player_stamina = math.min(max_stamina, player_stamina + standing)
else
player_stamina = math.min(20, player_stamina + stamina_heal)
player_stamina = math.min(max_stamina, player_stamina + stamina_heal)
end
player:get_meta():set_float("hbsprint:stamina", player_stamina)
end
if mod_hudbars then
hb.change_hudbar(player, "stamina", player_stamina)
if autohide and player_stamina >= 20 then hb.hide_hudbar(player, "stamina") end
if autohide and player_stamina >= max_stamina then hb.hide_hudbar(player, "stamina") end
end
end
@ -130,8 +133,8 @@ local function is_walkable(ground)
end
local function create_particles(player, name, ground)
local def = minetest.registered_nodes[ground.name]
local tile = def.tiles[1] or def.inventory_image
local def = minetest.registered_nodes[ground.name] or {}
local tile = def.tiles and def.tiles[1] or def.inventory_image
if type(tile) == "table" then
tile = tile.name
end
@ -237,7 +240,7 @@ local function sprint_step(player, dtime)
if (player_stamina > 0 and hunger > starve_limit and ground) or fast then
start_sprint(player)
if stamina and not fast then drain_stamina(player) end
if starve then drain_hunger(player, name) end
if starve and not fast then drain_hunger(player, name) end
if breath and not fast and breath_timer[name] >= 2 then
drain_breath(player)
breath_timer[name] = 0