public void SetWorker(TaskWorkerAI worker) { if (currentWorker != null && worker != currentWorker) { return; } currentWorker = worker; currentWorker.worker.Desk = this; TaskSystem.Task StartWorking = new TaskSystem.Task { moveToPosition = new TaskSystem.Task.MoveTo(chair.position, 0, () => { currentWorker = worker; worker.currentThought = DialogueSys.GetWorkPhrase(); }), executeActionRecurring = () => { Clicked(); if (Time.frameCount % 300 == 1) { worker.currentThought = DialogueSys.GetRandomPhrase(); } } }; worker.taskManager.tasks.Enqueue(StartWorking); }
public static GameObject GetWorker(SaveManager.SavableObject.Worker WorkerToSpawn) { Vector3 spawnPoint = FindObjectOfType <MapLayoutManager>().PlayAreaSize - Vector2.one; GameObject obj = new GameObject(WorkerToSpawn.name); TaskWorkerAI workerAI = obj.AddComponent <TaskWorkerAI>(); Worker worker = obj.AddComponent <Worker>(); worker.InitializeWorker(WorkerToSpawn); workerAI.Setup(worker); if (WorkerToSpawn.position != Vector2.zero) { //Old worker obj.transform.position = WorkerToSpawn.position; obj.transform.rotation = WorkerToSpawn.rotation; } else { //New worker obj.transform.position = spawnPoint; obj.transform.rotation = Quaternion.identity; } return(obj); }
public static void DeselectWorker() { if (SelectedWorker != null) { SelectedWorker = null; UIManager.instance.HideMenus(); } }
public void SelectWorker(TaskWorkerAI worker) { DeselectWorker(); SelectedWorker = worker; UpdateInformation(); onSelectEvent?.Invoke(); }
private void Update() { if (currentWorker != null) { float distanceToWorker = Vector2.Distance(currentWorker.transform.position, transform.position); if (distanceToWorker < 1) { currentWorker.worker.Face(transform.position); } if (currentWorker.worker.Desk != this) { currentWorker = null; } } }