Rewrote entity system

This commit is contained in:
2025-05-09 22:33:51 -05:00
parent a69ec56a2d
commit f465880044
29 changed files with 372 additions and 284 deletions

View File

@@ -1,34 +1 @@
class_name BasicNPCEntity extends "res://scripts/Entity/OverworldEntity.gd"
const Event = preload("res://scripts/Event/Event.gd");
enum BasicNPCMoveType {
STILL,
RANDOM_LOOK
};
@export var interactEvent:Event;
@export var moveType:BasicNPCMoveType = BasicNPCMoveType.STILL;
@export var randomLookMinTime:float = 1.5;
@export var randomLookMaxTime:float = 4.0;
var randomLookTimer:float = 0.0;
func interact(interactor:OverworldEntity) -> void:
if interactEvent == null:
push_error("BasicNPCEntity: interactType EVENT but no event set");
return
interactEvent.onEntityInteract(interactor, self);
func updateMovement(delta:float) -> void:
if moveType == BasicNPCMoveType.STILL:
return
if moveType == BasicNPCMoveType.RANDOM_LOOK:
randomLookTimer -= delta;
if randomLookTimer <= 0:
randomLookTimer = randf_range(randomLookMinTime, randomLookMaxTime);
self.direction = randi_range(0, 3);
return
pass
class_name BasicNPCEntity extends CharacterBody3D