Files
Dawn-Godot/scripts/Event/Event.gd
2025-05-20 07:28:02 -05:00

55 lines
985 B
GDScript

class_name Event extends Node
const Entity = preload("res://scripts/Entity/Entity.gd");
var started:bool = false;
var ended:bool = false;
var interactor:EntityInteractor = null
var interactee:EntityInteractable = null
# Godot Methods
func _init() -> void:
pass
func _process(delta: float) -> void:
if !started || ended:
return
self.update(delta)
if self.isDone():
self.end()
# Event methods (cleaned up)
func start() -> void:
assert(started == false)
started = true
func update(_delta:float) -> void:
assert(started == true)
assert(ended == false)
func isDone() -> bool:
return true
func end() -> void:
assert(ended == false)
ended = true
func isEndingEvent() -> bool:
return false
func reset() -> void:
started = false
ended = false
interactor = null
interactee = null
func onEntityInteract(
interactor:EntityInteractor,
interactee:EntityInteractable
) -> void:
self.reset()
self.interactor = interactor
self.interactee = interactee
self.start()