Initial commit.
This commit is contained in:
commit
b5c753ff4d
129 changed files with 4472 additions and 0 deletions
132
mods/firefly_hudbars/init.lua
Normal file
132
mods/firefly_hudbars/init.lua
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
local ns = firefly
|
||||
|
||||
Player:listen('init', function(m)
|
||||
m.hud_bars = {}
|
||||
m.hud_bars_list = {}
|
||||
end)
|
||||
|
||||
|
||||
|
||||
function ns.add_hud_bar(m, name, def)
|
||||
if m.hud_bars[name] then
|
||||
ns.remove_hud_bar(m, name)
|
||||
end
|
||||
if not def.color then def.color = "#48d" end
|
||||
|
||||
local ypos = #m.hud_bars_list *50
|
||||
local pixel_scale = 3
|
||||
local hud = {
|
||||
left = ns.hud_add(m, {
|
||||
type = "image",
|
||||
image = "firefly_hud_bar_left"..(def.value == 0 and "_bg" or "")..".png^[multiply:"..def.color,
|
||||
pos = {x = 0.5, y = 0},
|
||||
offset = {x = -400 -pixel_scale, y = ypos +36},
|
||||
scale = {x = pixel_scale, y = pixel_scale}
|
||||
}),
|
||||
center = ns.hud_add(m, {
|
||||
type = "image",
|
||||
image = "firefly_hud_bar_center_bg.png^[multiply:"..def.color,
|
||||
pos = {x = 0.5, y = 0},
|
||||
offset = {x = 0, y = ypos +36},
|
||||
scale = {x = 800, y = pixel_scale}
|
||||
}),
|
||||
overlay = ns.hud_add(m, {
|
||||
type = "image",
|
||||
image = "firefly_hud_bar_center.png^[multiply:"..def.color,
|
||||
pos = {x = 0.5, y = 0},
|
||||
offset = {x = -400, y = ypos +36},
|
||||
align = {x = 1, y = 0},
|
||||
scale = {x = 800 *(def.value /def.max), y = pixel_scale}
|
||||
}),
|
||||
right = ns.hud_add(m, {
|
||||
type = "image",
|
||||
image = "firefly_hud_bar_right"..(def.value == def.max and "" or "_bg")..".png^[multiply:"..def.color,
|
||||
pos = {x = 0.5, y = 0},
|
||||
offset = {x = 400 +pixel_scale, y = ypos +36},
|
||||
scale = {x = pixel_scale, y = pixel_scale}
|
||||
}),
|
||||
title = ns.hud_add(m, {
|
||||
type = "text",
|
||||
text = def.title or "",
|
||||
pos = {x = 0.5, y = 0},
|
||||
offset = {x = 0, y = ypos +4},
|
||||
align = {x = 0, y = 1},
|
||||
color = minetest.colorspec_to_table(def.color)
|
||||
})
|
||||
}
|
||||
m.hud_bars[name] = {
|
||||
def = def,
|
||||
hud = hud,
|
||||
index = #m.hud_bars_list +1
|
||||
}
|
||||
table.insert(m.hud_bars_list, name)
|
||||
end
|
||||
|
||||
function ns.change_hud_bar(m, name, def)
|
||||
local bar = m.hud_bars[name]
|
||||
if not bar then return end
|
||||
local last_value = bar.def.value
|
||||
local last_title = bar.def.title
|
||||
local last_color = bar.def.color
|
||||
extend(bar.def, def)
|
||||
if def.value or def.max then
|
||||
if last_color ~= bar.def.color then
|
||||
bar.hud.right:update(m, {text = "firefly_hud_bar_right"..(def.value == def.max and "" or "_bg")..".png^[multiply:"..def.color})
|
||||
bar.hud.left:update(m, {text = "firefly_hud_bar_left"..(def.value == 0 and "_bg" or "")..".png^[multiply:"..def.color})
|
||||
bar.hud.center:update(m, {text = "firefly_hud_bar_center_bg.png^[multiply:"..def.color})
|
||||
bar.hud.overlay:update(m, {text = "firefly_hud_bar_center.png^[multiply:"..def.color})
|
||||
bar.hud.title:update(m, {color = minetest.colorspec_to_table(def.color)})
|
||||
end
|
||||
|
||||
if bar.def.value == bar.def.max and last_value ~= bar.def.max then
|
||||
minetest.after(def.ease or 0.3, function()
|
||||
bar.hud.right:update(m, {text = "firefly_hud_bar_right.png^[multiply:"..bar.def.color})
|
||||
end)
|
||||
elseif last_value == bar.def.max then
|
||||
bar.hud.right:update(m, {text = "firefly_hud_bar_right_bg.png^[multiply:"..bar.def.color})
|
||||
end
|
||||
|
||||
if bar.def.value == 0 and last_value ~= 0 then
|
||||
minetest.after(def.ease or 0.3, function()
|
||||
bar.hud.left:update(m, {image = "firefly_hud_bar_left_bg.png^[multiply:"..bar.def.color})
|
||||
end)
|
||||
elseif last_value == 0 then
|
||||
bar.hud.left:update(m, {image = "firefly_hud_bar_left.png^[multiply:"..bar.def.color})
|
||||
end
|
||||
|
||||
if last_title ~= bar.def.title then
|
||||
bar.hud.title:update(m, {text = bar.def.title})
|
||||
end
|
||||
|
||||
bar.hud.overlay:animate {
|
||||
scale = {
|
||||
value = {x = 800 *(bar.def.value /bar.def.max), y = 3},
|
||||
duration = def.ease or 0.3,
|
||||
ease_fn = {0.42, 0, 0.58, 1.06}
|
||||
}
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
function ns.remove_hud_bar(m, name)
|
||||
if not m.hud_bars[name] then return end
|
||||
for _, x in pairs(m.hud_bars[name].hud) do
|
||||
x:remove(m)
|
||||
end
|
||||
m.hud_bars[name] = nil
|
||||
table.remove(m.hud_bars_list, table.indexof(m.hud_bars_list, name))
|
||||
|
||||
-- Reposition all other HUD bars so there are no gaps.
|
||||
for i = 1, #m.hud_bars_list do
|
||||
local bar = m.hud_bars[m.hud_bars_list[i]]
|
||||
if bar.index ~= i then
|
||||
local dist = i *50
|
||||
bar.hud.right:update(m, {offset = {x = bar.hud.right.offset.x, y = dist +36}})
|
||||
bar.hud.left:update(m, {offset = {x = bar.hud.left.offset.x, y = dist +36}})
|
||||
bar.hud.center:update(m, {offset = {x = bar.hud.center.offset.x, y = dist +36}})
|
||||
bar.hud.overlay:update(m, {offset = {x = bar.hud.overlay.offset.x, y = dist +36}})
|
||||
bar.hud.title:update(m, {offset = {x = bar.hud.title.offset.x, y = dist +4}})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
2
mods/firefly_hudbars/mod.conf
Normal file
2
mods/firefly_hudbars/mod.conf
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
name = firefly_hudbars
|
||||
depends = firefly_hud, firefly_base
|
||||
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_center.png
Normal file
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_center.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 101 B |
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_center_bg.png
Normal file
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_center_bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 99 B |
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_left.png
Normal file
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_left.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 114 B |
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_left_bg.png
Normal file
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_left_bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 114 B |
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_right.png
Normal file
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_right.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 114 B |
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_right_bg.png
Normal file
BIN
mods/firefly_hudbars/textures/firefly_hud_bar_right_bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 113 B |
Loading…
Add table
Add a link
Reference in a new issue