mirror of
https://repo.or.cz/minetest_playereffects.git
synced 2025-01-08 10:20:15 +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
|
||||
)
|
||||
|
||||
-- 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
|
||||
playereffects.register_effect_type("low_speed", "Low speed", nil, {"speed"},
|
||||
function(player)
|
||||
@ -69,6 +84,14 @@ minetest.register_chatcommand("fast", {
|
||||
playereffects.apply_effect_type("high_speed", 10, minetest.get_player_by_name(name))
|
||||
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", {
|
||||
params = "",
|
||||
description = "Makes you slow for a long time.",
|
||||
|
10
init.lua
10
init.lua
@ -48,7 +48,7 @@ function playereffects.next_effect_id()
|
||||
end
|
||||
|
||||
--[=[ 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.description = description
|
||||
effect_type.apply = apply
|
||||
@ -59,6 +59,11 @@ function playereffects.register_effect_type(name, description, icon, groups, app
|
||||
else
|
||||
effect_type.cancel = function() end
|
||||
end
|
||||
if hidden ~= nil then
|
||||
effect_type.hidden = hidden
|
||||
else
|
||||
effect_type.hidden = false
|
||||
end
|
||||
playereffects.effect_types[name] = effect_type
|
||||
minetest.log("action", "Effect type "..name.." registered!")
|
||||
end
|
||||
@ -306,7 +311,8 @@ end
|
||||
|
||||
function playereffects.hud_effect(effect_type_id, player, pos, time_left)
|
||||
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({
|
||||
hud_elem_type = "text",
|
||||
position = { x = 1, y = 0.3 },
|
||||
|
Loading…
Reference in New Issue
Block a user