Beispiel #1
0
 public override void OnInteract()
 {
     PlayerControllerAdapted.Mode mode =
         GameObject.Find("Player").GetComponent <PlayerControllerAdapted>().getMode();
     //perform an action depending on the mode
     if (bedMode != BedFSM.inactive)
     {
         if (mode == PlayerControllerAdapted.Mode.Säen)
         {
             Planting();
             bedMode = BedFSM.planted;
         }
         else if (mode == PlayerControllerAdapted.Mode.Giessen)
         {
             Watering();
         }
         else if (mode == PlayerControllerAdapted.Mode.Jäten)
         {
             Weeding();
         }
         else if (mode == PlayerControllerAdapted.Mode.Ernten)
         {
             Harvesting();
             bedMode = BedFSM.plain;
         }
     }
     if (mode == PlayerControllerAdapted.Mode.Buddeln)
     {
         Dig();
     }
 }
Beispiel #2
0
 public void Harvesting()
 {
     if (_myPlant != null)
     {
         if (_myPlant.readyToHarvest)
         {
             ScoreboardHandler.newScore(_myPlant.getKind(), 1);
         }
         Destroy(_myPlant.gameObject);
     }
     bedMode = BedFSM.plain;
 }
Beispiel #3
0
 public void Dig()
 {
     if (bedMode == BedFSM.inactive)
     {
         gameObject.GetComponent <Renderer>().material.color = activeColor;
         gameObject.transform.position += new Vector3(0f, 0.3f, 0f);
     }
     if (_myPlant != null)
     {
         Destroy(_myPlant.gameObject);
     }
     bedMode = BedFSM.plain;
     Weeding();
 }
Beispiel #4
0
 private void Dry()
 {
     if (_myPlant != null)
     {
         _myPlant.Dry();
     }
     else
     {
         bedMode = BedFSM.plain;
     }
     //Change color to lighter
     this.GetComponent <MeshRenderer>().material.SetFloat("_Metallic", 0f);
     watered = false;
 }
Beispiel #5
0
    IEnumerator SpawnWeeds()
    {
        while (true)
        {
            yield return(new WaitForSeconds(Random.Range(weedSpanRate, weedSpanRate + 15f)));

            if (bedMode != BedFSM.inactive)
            {
                newWeed = Instantiate(_weedPrefab,
                                      transform.position + new Vector3(Random.Range(-0.4f, 0.4f), 0.1f, Random.Range(-0.4f, 0.4f)),
                                      Quaternion.identity, this.transform);
                weedList.Add(newWeed);
                if (_myPlant != null)
                {
                    _myPlant.obstructiveWeeds += 1;
                }
                else
                {
                    bedMode = BedFSM.plain;
                }
            }
        }
    }
Beispiel #6
0
    public void Weeding()
    {
        for (int i = 0; i < weedList.Count; i++)
        {
            Destroy(weedList[i].gameObject);
        }
        weedList.Clear();

        if (_myPlant != null)
        {
            _myPlant.obstructiveWeeds = 0;

            /*//if first watered then weeded, check if now plant can grow
             * if (watered && !_myPlant.growingCondition && (_myPlant.size < _myPlant.maxSize))
             * {
             *  _myPlant.Water();
             * }*/
        }
        else
        {
            bedMode = BedFSM.plain;
        }
    }
Beispiel #7
0
    public void Watering()
    {
        if (watered == false)
        {
            watered = true;

            //Change color to darker (bed is wet)
            this.GetComponent <MeshRenderer>().material.SetFloat("_Metallic", 0.5f);

            //Dry after some time
            Invoke("Dry", 30f);


            //if we have plant water plant
            if (_myPlant != null)
            {
                _myPlant.Water();
            }
            else
            {
                bedMode = BedFSM.plain;
            }
        }
    }