//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;
            }
        }
    }
예제 #4
0
    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);
            }
        }
    }
예제 #5
0
    //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);
            }
        }
    }