public void Foreach(ChunkVisibility filter, Action <Vector3i, ChunkData, object> callback)
 {
     foreach (var kp in chunks)
     {
         if (filter == ChunkVisibility.None || kp.Value.visibility == filter)
         {
             callback(kp.Key, kp.Value.terrainData, kp.Value.userData);
         }
     }
 }
 public Chunk(ChunkData terrain, object user, ChunkVisibility visi)
 {
     terrainData = terrain;
     userData    = user;
     visibility  = visi;
 }