public void Hire() { HookahMaker hookahMaker = hiringManager.CreateHookahMaker(); currentHookahMaker = hiringManager.CurrentHookahMaker; UpdateCurrentWorkerDisplay(); }
void Start() { hiringManager = FindObjectOfType <WorkerHiringManager>(); currentHookahMaker = hiringManager.CurrentHookahMaker; UpdateCurrentWorkerDisplay(); panel.SetActive(false); }
public HookahMaker CreateHookahMaker() { HookahMaker newWorker = Instantiate(availableHookahMakers[currentWorkerIndex], entry.position, Quaternion.identity, player.transform); player.AddWorker(newWorker); newWorker.AddMoveAction(workerMovePos.position); availableHookahMakers.RemoveAt(currentWorkerIndex); currentWorkerIndex = 0; return(newWorker); }
void HandleWorkerSelection() { DeselectWorkers(); Ray inputRay = mainCamera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(inputRay, out RaycastHit hit)) { if (hit.collider != null) { LayerMask colliderMask = 1 << hit.collider.gameObject.layer; if (colliderMask == workerMask) { HookahMaker hookahMaker = hit.collider.gameObject.GetComponent <HookahMaker>(); hookahMaker.Selected = true; } } } }
void RecreateHookahMakerLinks(BinaryFormatter formatter, FileStream stream) { for (int i = 0; i < player.workers.Count; i++) { HookahMaker current = player.workers[i]; if (current.hookahMakerData.hookahIndex != -1) { current.servedHookah = player.hookahs[current.hookahMakerData.hookahIndex]; } if (current.hookahMakerData.tableIndex != -1) { current.servedTable = player.tables[current.hookahMakerData.tableIndex]; } if (current.servedHookah != null && current.CarryingHookah) { current.servedHookah.GetComponent <Collider>().enabled = false; current.servedHookah.transform.SetParent(current.transform); current.servedHookah.transform.position = current.hookahCarryPos.position; } } }
void HandleWorkerActions() { HookahMaker hookahMaker = GetSelectedWorker(); if (hookahMaker == null) { return; } Ray inputRay = mainCamera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(inputRay, out RaycastHit hit)) { LayerMask colliderMask = 1 << hit.collider.gameObject.layer; if (!shiftPressed) { hookahMaker.ClearActions(); } if (colliderMask == hookahMask) { Hookah hookah = hit.collider.gameObject.GetComponent <Hookah>(); hookahMaker.AddChooseTobaccoAction(hookah); } else if (colliderMask == tableMask) { Table table = hit.collider.gameObject.GetComponent <Table>(); hookahMaker.AddBringHookahAction(table); } else { hookahMaker.AddMoveAction(hit.point); } } }
public void Load(BinaryFormatter formatter, FileStream stream) { // NOTE: Loading clients foreach (Client client in player.clients) { Destroy(client.gameObject); } player.clients.Clear(); int clientsCount = (int)formatter.Deserialize(stream); ClientGenerator generator = FindObjectOfType <ClientGenerator>(); for (int i = 0; i < clientsCount; i++) { string prefabName = (string)formatter.Deserialize(stream); Client clientPrefab = PrefabStorage.Instance.GetClientByName(prefabName); Client client = Instantiate(clientPrefab); client.Load(formatter, stream); client.prefabName = prefabName; player.AddClient(client); ClientData clientData = (ClientData)formatter.Deserialize(stream); client.clientData = clientData; } // NOTE: Loading tables foreach (Table table in player.tables) { Destroy(table.gameObject); } int tablesCount = (int)formatter.Deserialize(stream); player.tables.Clear(); for (int i = 0; i < tablesCount; i++) { string prefabName = (string)formatter.Deserialize(stream); Table tablePrefab = PrefabStorage.Instance.GetTableByName(prefabName); Table table = Instantiate(tablePrefab); table.Load(formatter, stream); table.prefabName = prefabName; player.tables.Add(table); TableData tableData = (TableData)formatter.Deserialize(stream); table.tableData = tableData; } // NOTE: Loading hookahs foreach (Hookah hookah in player.hookahs) { Destroy(hookah.gameObject); } int hookahsCount = (int)formatter.Deserialize(stream); player.hookahs.Clear(); for (int i = 0; i < hookahsCount; i++) { string prefabName = (string)formatter.Deserialize(stream); Hookah hookahPrefab = PrefabStorage.Instance.GetHookahByName(prefabName); Hookah hookah = Instantiate(hookahPrefab); hookah.Load(formatter, stream); hookah.prefabName = prefabName; player.hookahs.Add(hookah); } // NOTE: Loading hookah makers foreach (HookahMaker worker in player.workers) { Destroy(worker.gameObject); } int workersCount = (int)formatter.Deserialize(stream); player.workers.Clear(); for (int i = 0; i < workersCount; i++) { string prefabName = (string)formatter.Deserialize(stream); HookahMaker hookahMakerPrefab = PrefabStorage.Instance.GetHookahMakerByName(prefabName); HookahMaker worker = Instantiate(hookahMakerPrefab); worker.Load(formatter, stream); worker.prefabName = prefabName; player.workers.Add(worker); HookahMakerData hookahMakerData = (HookahMakerData)formatter.Deserialize(stream); worker.hookahMakerData = hookahMakerData; } RecreateClientLinks(formatter, stream); RecreateTableLinks(formatter, stream); RecreateHookahMakerLinks(formatter, stream); }
public void RemoveWorker(HookahMaker newWorker) { workers.Remove(newWorker); }
public void AddWorker(HookahMaker newWorker) { workers.Add(newWorker); }
public void Prev() { currentHookahMaker = hiringManager.AdvanseWorkersList(-1); UpdateCurrentWorkerDisplay(); }