forked from VoxeLibre/VoxeLibre
Start of effects rework
This commit is contained in:
parent
ce1393af0c
commit
6eaea4237b
|
@ -0,0 +1,76 @@
|
|||
local modname = minetest.get_current_modname()
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
local S = minetest.get_translator(modname)
|
||||
|
||||
mcl_effects = {}
|
||||
effects = {}
|
||||
|
||||
mcl_effects.registered_effects = {}
|
||||
|
||||
function mcl_effects.register_effect(name, def)
|
||||
local EFFECT_TYPES = 0
|
||||
for _,_ in pairs(effects) do
|
||||
EFFECT_TYPES = EFFECT_TYPES + 1
|
||||
end
|
||||
|
||||
local icon_ids = {}
|
||||
local function potions_init_icons(player)
|
||||
local name = player:get_player_name()
|
||||
icon_ids[name] = {}
|
||||
for e=1, EFFECT_TYPES do
|
||||
local x = -52 * e - 2
|
||||
local id = player:hud_add({
|
||||
hud_elem_type = "image",
|
||||
text = "blank.png",
|
||||
position = { x = 1, y = 0 },
|
||||
offset = { x = x, y = 3 },
|
||||
scale = { x = 0.375, y = 0.375 },
|
||||
alignment = { x = 1, y = 1 },
|
||||
z_index = 100,
|
||||
})
|
||||
table.insert(icon_ids[name], id)
|
||||
end
|
||||
end
|
||||
|
||||
local function potions_set_icons(player)
|
||||
local name = player:get_player_name()
|
||||
if not icon_ids[name] then
|
||||
return
|
||||
end
|
||||
local active_effects = {}
|
||||
for effect_name, effect in pairs(effects) do
|
||||
if effect[player] then
|
||||
table.insert(active_effects, effect_name)
|
||||
end
|
||||
end
|
||||
|
||||
for i=1, EFFECT_TYPES do
|
||||
local icon = icon_ids[name][i]
|
||||
local effect_name = active_effects[i]
|
||||
--[[if effect_name == "swift" and effects.swift[player].is_slow then
|
||||
effect_name = "slow"
|
||||
end]]
|
||||
if effect_name == nil then
|
||||
player:hud_change(icon, "text", "blank.png")
|
||||
else
|
||||
player:hud_change(icon, "text", def.icon.."^[resize:128x128")
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
local function potions_set_hud(player)
|
||||
|
||||
potions_set_hudbar(player)
|
||||
potions_set_icons(player)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
effects.test_effect = {}
|
||||
|
||||
mcl_effects.register_effect("test_effect", {
|
||||
description = "Test Effect",
|
||||
icon = "default_stone.png",
|
||||
particle_color = "#000000",
|
||||
})
|
Loading…
Reference in New Issue