Esempio n. 1
0
 public TerrainState(TerrainState state)
 {
     State = new byte[64 * 64];
     for (int i = 0; i < 64 * 64; i++)
     {
         State[i] = state.State[i];
     }
 }
Esempio n. 2
0
 private void ChangeState(TerrainState state)
 {
     meshRenderer.material = state.material;
     if (healthStates[_currentState].transitionOutEffect != null)
     {
         MainThreadManager.Run(() =>
         {
             var effect = Instantiate(healthStates[_currentState].transitionOutEffect, transform.position + new Vector3(2.5f, 2.5f, 2.5f), transform.rotation, null);
             Destroy(effect, 5f);
         });
     }
 }
Esempio n. 3
0
        private void BeliefRevision(List <string> parameters)
        {
            _beliefs["position"] = Convert.ToInt32(parameters[0]);

            int visualFieldSize = 3;

            TerrainState[] visualField = new TerrainState[visualFieldSize];
            for (int i = 0; i < visualFieldSize; i++)
            {
                visualField[i] = (TerrainState)(Convert.ToInt32(parameters[i + 1]));
            }

            // "see" and update beliefs

            if (_intention == "extinguish-fire")
            {
                if (_plan.Count > 0) // plan in progress
                {
                    return;
                }
                else // plan finished
                {
                    bool fireOut = true;
                    for (int i = 0; i < visualFieldSize; i++)
                    {
                        if (visualField[i] == TerrainState.Fire)
                        {
                            fireOut = false;
                        }
                    }
                    if (fireOut)
                    {
                        _beliefs["fire"] = -1;
                    }
                }
            }

            for (int i = 0; i < visualFieldSize; i++)
            {
                if (visualField[i] == TerrainState.Water)
                {
                    _beliefs["water"] = _beliefs["position"] + i - 1;
                }

                if (visualField[i] == TerrainState.Fire)
                {
                    _beliefs["fire"] = _beliefs["position"] + i - 1;
                }
            }
        }
Esempio n. 4
0
 public TerrainState(TerrainState state)
 {
     State = new byte[64 * 64];
     for(int i = 0; i < 64 * 64; i++)
         State[i] = state.State[i];
 }