//check if player has detected the drink fridge public void DetectFridge() { if (!hasAuthority) { return; } //check if there are too many drinks on the counter if (!GameManager.Instance.isCooldown && GameManager.Instance.drinksCount < 2 && !networkedPlayerInteraction.playerInventory) { networkedPlayerInteraction.ChangePlayerState(PlayerState.CanSpawnDrink, true); } else { if (networkedPlayerInteraction.playerInventory) { return; } networkedPlayerInteraction.ChangePlayerState(PlayerState.Default); } }
public void RpcFinishWashingPlate(bool timer, int i, PlayerState playerState) { //Debug.Log("RPC Start"); //show clean plate on client //get script from the prefab //assign starttimer as timer so that it will be false startTimer = timer; networkedPlayerInteraction.audioSource.Stop(); playerState = PlayerState.FinishedWashingPlate; //reduce number of plates in sink GameManager.Instance.platesInSinkCount -= 1; //increase clean plates count GameManager.Instance.cleanPlatesCount += 1; GameManager.Instance.platesInSink[i] = null; //if there are still plates in the sink if (GameManager.Instance.platesInSinkCount != 0) { showWashIcon = true; placedPlateInSink = true; //allow player to wash plate networkedPlayerInteraction.ChangePlayerState(PlayerState.CanWashPlate); return; } else { //unable to wash anymore showWashIcon = false; placedPlateInSink = false; } //Debug.Log("RPC End"); return; }
//Check if player has detected a shelf public void DetectShelf() { if (!hasAuthority) { return; } //if player is not holding anything if (!networkedPlayerInteraction.playerInventory) { //Debug.Log("NetworkedIngredientInteraction - Able to spawn ingredient!"); switch (networkedPlayerInteraction.detectedObject.tag) { case "ChickenShelf": //change player state //Debug.Log("NetworkedIngredientInteraction - Able to spawn chicken!"); networkedPlayerInteraction.ChangePlayerState(PlayerState.CanSpawnChicken); break; case "EggShelf": //change player state //Debug.Log("NetworkedIngredientInteraction - Able to spawn egg!"); networkedPlayerInteraction.ChangePlayerState(PlayerState.CanSpawnEgg); break; case "CucumberShelf": //change player state //Debug.Log("NetworkedIngredientInteraction - Able to spawn cucumber!"); networkedPlayerInteraction.ChangePlayerState(PlayerState.CanSpawnCucumber); break; case "RiceTub": //change player state //Debug.Log("NetworkedIngredientInteraction - Able to spawn rice!"); networkedPlayerInteraction.ChangePlayerState(PlayerState.CanSpawnRice); break; } } }
public void DisplayGrayIcon() { //if there is a detected object if (networkedPlayerInteraction.detectedObject) { //if looking at detected object, gray out the icon buttonIcon.color = Color.gray; switch (networkedPlayerInteraction.detectedObject.tag) { //shelves case "EggShelf": buttonIcon.sprite = eggIcon; break; case "ChickenShelf": buttonIcon.sprite = chickenIcon; break; case "CucumberShelf": buttonIcon.sprite = cucumberIcon; break; case "RiceTub": buttonIcon.sprite = riceIcon; break; //ingredients case "Rice": buttonIcon.sprite = riceIcon; break; case "Egg": buttonIcon.sprite = eggIcon; break; case "Chicken": buttonIcon.sprite = chickenIcon; break; case "Cucumber": buttonIcon.sprite = cucumberIcon; break; case "RottenIngredient": buttonIcon.sprite = rottenIcon; break; case "Customer": if (networkedPlayerInteraction.detectedObject.layer == LayerMask.NameToLayer("Queue")) { buttonIcon.sprite = customerIcon; } break; //drinks case "DrinkFridge": if (networkedPlayerInteraction.playerState == PlayerState.CanSpawnDrink) { buttonIcon.color = Color.white; buttonIcon.sprite = fridgeIcon; } if (GameManager.Instance.isDrinkCoroutineRunning) { buttonIcon.color = Color.grey; buttonIcon.sprite = fridgeIcon; } break; case "Drink": buttonIcon.sprite = drinkIcon; break; case "DirtyPlate": buttonIcon.sprite = dirtyPlateIcon; break; } //Looking at a dish if (networkedPlayerInteraction.playerState == PlayerState.CanPickUpDish) { UICheckDish(networkedPlayerInteraction.detectedObject.transform.GetChild(0).GetComponent <OrderScript>().dishLabel); // Debug.Log("Looking at " + networkedPlayerInteraction.detectedObject.transform.GetChild(0).GetComponent<OrderScript>().dishLabel); } if (!networkedPlayerInteraction.playerInventory && networkedPlayerInteraction.detectedObject.layer == LayerMask.NameToLayer("Ordering")) { buttonIcon.sprite = takeOrderIcon; buttonIcon.color = Color.white; } } //If no detected object or default state, show default icon else if (!networkedPlayerInteraction.detectedObject || networkedPlayerInteraction.playerState == PlayerState.Default) { //no detected object buttonIcon.sprite = defaultIcon; buttonIcon.color = Color.white; if (!networkedPlayerInteraction.playerInventory && GameManager.Instance.platesInSinkCount == 0) { networkedPlayerInteraction.ChangePlayerState(PlayerState.Default); } } }
//Check if player has detected a customer public void DetectCustomer() { if (!hasAuthority) { return; } //if player is not holding anything if (!networkedPlayerInteraction.playerInventory) { //Debug.Log("NetworkedIngredientInteraction - Able to pick up plate!"); if (networkedPlayerInteraction.detectedObject.tag == "Customer" && networkedPlayerInteraction.detectedObject.layer == LayerMask.NameToLayer("Queue")) { networkedPlayerInteraction.ChangePlayerState(PlayerState.CanPickUpCustomer); } } }