public TerrainState(TerrainState state) { State = new byte[64 * 64]; for (int i = 0; i < 64 * 64; i++) { State[i] = state.State[i]; } }
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); }); } }
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; } } }
public TerrainState(TerrainState state) { State = new byte[64 * 64]; for(int i = 0; i < 64 * 64; i++) State[i] = state.State[i]; }