protected TerrainSlot GetTerrainSlot(long x, long y, bool createIfMissing) { uint key = PackIndex(x, y); TerrainSlot i = null; if (_terrainSlots.TryGetValue(key, out i)) { return i; } else if (createIfMissing) { i = new TerrainSlot(x, y); _terrainSlots.Add(key, i); return i; } return null; } /// <summary>