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 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); } } }