diff --git a/mods/ITEMS/mcl_effects/init.lua b/mods/ITEMS/mcl_effects/init.lua new file mode 100644 index 000000000..bc0ce9ec4 --- /dev/null +++ b/mods/ITEMS/mcl_effects/init.lua @@ -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", +})