retrace/Level/WorkerSpawner.gd

34 lines
814 B
GDScript

extends Spatial
export(NodePath) var _nodepath
export(float) var _offset
const SPAWN_TIME_MIN = 1000 # min spawntime in ms
const SPAWN_TIME_MAX = 3000 # max spawntime in ms
var _worker = preload("res://Characters/Worker/Worker.tscn")
var _lastSpawn = 0 # timestamp of last spawned worker
var _path: Path
var diff = 0
func _ready():
assert(null != _worker)
_path = get_node(_nodepath)
assert(null != _path)
func _process(delta):
# spawns new workers after defined time
var cur_time = OS.get_ticks_msec()
if cur_time - _lastSpawn > diff:
#Logger.info(name + " spawning new worker")
var pathFollow = PathFollow.new()
pathFollow.offset = _offset
pathFollow.add_child(_worker.instance())
_path.add_child(pathFollow)
_lastSpawn = cur_time
diff = rand_range(SPAWN_TIME_MIN, SPAWN_TIME_MAX)