Rewrote entity system
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user