Basic events system started.
This commit is contained in:
52
scripts/Events/Event.gd
Normal file
52
scripts/Events/Event.gd
Normal 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()
|
Reference in New Issue
Block a user