53 lines
951 B
GDScript
53 lines
951 B
GDScript
class_name Event extends Node
|
|
|
|
const OverworldEntity = preload("res://scripts/Entity/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()
|