21 lines
550 B
GDScript
21 lines
550 B
GDScript
extends Node
|
|
|
|
signal effect_added(effect : StringName)
|
|
signal effect_removed(effect : StringName)
|
|
|
|
## Add effect to
|
|
func add_effect(effectScene : PackedScene):
|
|
var effect = effectScene.instantiate()
|
|
effect.owner = owner
|
|
if get_node(effect.name) != null:
|
|
remove_effect(effect.name)
|
|
add_child(effect)
|
|
effect_added.emit(effect.name)
|
|
|
|
func remove_effect(effect : StringName):
|
|
var path = NodePath(effect)
|
|
if get_node(path) == null:
|
|
printerr("Effect does not exist: ", effect)
|
|
return
|
|
effect_removed.emit(effect)
|
|
get_node(path).queue_free()
|