mirror of
https://repo.or.cz/minetest_playereffects.git
synced 2024-11-16 13:20:16 +01:00
Add support for hidden effects
Hidden effects are effects which are not exposed to the player’s HUD.
This commit is contained in:
parent
bf50528228
commit
85fbd146b1
23
examples.lua
23
examples.lua
|
@ -12,6 +12,21 @@ playereffects.register_effect_type("high_speed", "High speed", nil, {"speed"},
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
-- Makes the user faster (hidden effect)
|
||||||
|
playereffects.register_effect_type("high_speed_hidden", "High speed", nil, {"speed"},
|
||||||
|
function(player)
|
||||||
|
player:set_physics_override(4,nil,nil)
|
||||||
|
end,
|
||||||
|
|
||||||
|
function(effect)
|
||||||
|
local player = minetest.get_player_by_name(effect.playername)
|
||||||
|
player:set_physics_override(1,nil,nil)
|
||||||
|
end,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Slows the user down
|
-- Slows the user down
|
||||||
playereffects.register_effect_type("low_speed", "Low speed", nil, {"speed"},
|
playereffects.register_effect_type("low_speed", "Low speed", nil, {"speed"},
|
||||||
function(player)
|
function(player)
|
||||||
|
@ -69,6 +84,14 @@ minetest.register_chatcommand("fast", {
|
||||||
playereffects.apply_effect_type("high_speed", 10, minetest.get_player_by_name(name))
|
playereffects.apply_effect_type("high_speed", 10, minetest.get_player_by_name(name))
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
minetest.register_chatcommand("hfast", {
|
||||||
|
params = "",
|
||||||
|
description = "Makes you fast for a short time (hidden effect).",
|
||||||
|
privs = {},
|
||||||
|
func = function(name, param)
|
||||||
|
playereffects.apply_effect_type("high_speed_hidden", 10, minetest.get_player_by_name(name))
|
||||||
|
end,
|
||||||
|
})
|
||||||
minetest.register_chatcommand("slow", {
|
minetest.register_chatcommand("slow", {
|
||||||
params = "",
|
params = "",
|
||||||
description = "Makes you slow for a long time.",
|
description = "Makes you slow for a long time.",
|
||||||
|
|
10
init.lua
10
init.lua
|
@ -48,7 +48,7 @@ function playereffects.next_effect_id()
|
||||||
end
|
end
|
||||||
|
|
||||||
--[=[ API functions ]=]
|
--[=[ API functions ]=]
|
||||||
function playereffects.register_effect_type(name, description, icon, groups, apply, cancel)
|
function playereffects.register_effect_type(name, description, icon, groups, apply, cancel, hidden)
|
||||||
effect_type = {}
|
effect_type = {}
|
||||||
effect_type.description = description
|
effect_type.description = description
|
||||||
effect_type.apply = apply
|
effect_type.apply = apply
|
||||||
|
@ -59,6 +59,11 @@ function playereffects.register_effect_type(name, description, icon, groups, app
|
||||||
else
|
else
|
||||||
effect_type.cancel = function() end
|
effect_type.cancel = function() end
|
||||||
end
|
end
|
||||||
|
if hidden ~= nil then
|
||||||
|
effect_type.hidden = hidden
|
||||||
|
else
|
||||||
|
effect_type.hidden = false
|
||||||
|
end
|
||||||
playereffects.effect_types[name] = effect_type
|
playereffects.effect_types[name] = effect_type
|
||||||
minetest.log("action", "Effect type "..name.." registered!")
|
minetest.log("action", "Effect type "..name.." registered!")
|
||||||
end
|
end
|
||||||
|
@ -306,7 +311,8 @@ end
|
||||||
|
|
||||||
function playereffects.hud_effect(effect_type_id, player, pos, time_left)
|
function playereffects.hud_effect(effect_type_id, player, pos, time_left)
|
||||||
local text_id, icon_id
|
local text_id, icon_id
|
||||||
if(playereffects.use_hud == true) then
|
local effect_type = playereffects.effect_types[effect_type_id]
|
||||||
|
if(playereffects.use_hud == true and effect_type.hidden == false) then
|
||||||
text_id = player:hud_add({
|
text_id = player:hud_add({
|
||||||
hud_elem_type = "text",
|
hud_elem_type = "text",
|
||||||
position = { x = 1, y = 0.3 },
|
position = { x = 1, y = 0.3 },
|
||||||
|
|
Loading…
Reference in New Issue
Block a user