1
0
mirror of https://repo.or.cz/minetest_playereffects.git synced 2025-06-30 23:30:41 +02:00

Add effect metadata

Effect metadata is a means to store additional user-defined data for the effect,
which can be reused when the cancel function of the effect is called.
This commit also adds a new example (blind) to demonstrate usage of that.
This commit is contained in:
Wuzzy
2014-07-14 17:28:51 +02:00
parent a91e4c79ce
commit 21f053270f
3 changed files with 30 additions and 4 deletions

View File

@ -1,4 +1,20 @@
----- EXAMPLE EFFECT TYPES -----
-- Makes the player screen black for 5 seconds (very experimental!)
playereffects.register_effect_type("blind", "Blind", nil, {},
function(player)
local hudid = player:hud_add({
hud_elem_type = "image",
position = { x=0.5, y=0.5 },
scale = { x=-100, y=-100 },
text = "playereffects_example_black.png",
})
return { hudid = hudid }
end,
function(effect)
local player = minetest.get_player_by_name(effect.playername)
player:hud_remove(effect.metadata.hudid)
end
)
-- Makes the user faster
playereffects.register_effect_type("high_speed", "High speed", nil, {"speed"},
@ -75,7 +91,14 @@ playereffects.register_effect_type("stress", "Stress Test Effect", nil, {},
------ Chat commands for the example effects ------
minetest.register_chatcommand("blind", {
params = "",
description = "Makes your screen black for a short time.",
privs = {},
func = function(name, param)
playereffects.apply_effect_type("blind", 5, minetest.get_player_by_name(name))
end,
})
minetest.register_chatcommand("fast", {
params = "",
description = "Makes you fast for a short time.",