Basic events system started.

This commit is contained in:
2025-05-06 11:07:16 -05:00
parent 4ad63b8c41
commit b9f0295722
22 changed files with 325 additions and 103 deletions

52
scripts/Events/Event.gd Normal file
View File

@@ -0,0 +1,52 @@
class_name Event extends Node
const OverworldEntity = preload("res://scripts/Entities/OverworldEntity.gd");
var started:bool = false;
var ended:bool = false;
var interactor:OverworldEntity = null
var interactee:OverworldEntity = 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 reset() -> void:
started = false
ended = false
interactor = null
interactee = null
func onEntityInteract(
interactor:OverworldEntity,
interactee:OverworldEntity
) -> void:
self.reset()
self.interactor = interactor
self.interactee = interactee
self.start()