public void EvaluateEnvironmentTiles()
 {
     foreach (GameObject tile in environmentTiles)
     {
         EnvironmentTileControl_3d tileControl = tile.GetComponent <EnvironmentTileControl_3d>();
         // evaluate current tile and neighbors
         EvaluateTileAndNeighbors(
             tileControl,
             tileControl.GetTileNeighborsAsList()
             );
     }
     foreach (GameObject tile in environmentTiles)
     {
         EnvironmentTileControl_3d tileControl = tile.GetComponent <EnvironmentTileControl_3d>();
         tileControl.ApplyUpdateFromTempValues();
         tileControl.SetAppearanceFromState();
     }
 }