31 lines
805 B
GDScript
31 lines
805 B
GDScript
extends Spatial
|
|
|
|
export(NodePath) var _nodepath
|
|
export(float) var _offset
|
|
|
|
const SPAWN_TIME_MIN = 5000 # min spawntime in ms
|
|
const SPAWN_TIME_MAX = 8000 # max spawntime in ms
|
|
|
|
var _worker
|
|
var _lastSpawn = 0 # timestamp of last spawned worker
|
|
var _path: Path
|
|
|
|
func _ready():
|
|
_worker = load("res://Characters/Worker/Worker.tscn")
|
|
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()
|
|
var diff = rand_range(SPAWN_TIME_MIN, SPAWN_TIME_MAX)
|
|
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
|