/// <summary> /// Lädt eine <see cref="IChunkColumn"/>. /// </summary> /// <param name="universeGuid">GUID des Universums.</param> /// <param name="planet">Index des Planeten.</param> /// <param name="columnIndex">Zu serialisierende ChunkColumn.</param> /// <returns>Die neu geladene ChunkColumn.</returns> public Awaiter Load(out IChunkColumn column, Guid universeGuid, IPlanet planet, Index2 columnIndex) { var chunkColumContext = new ChunkColumnDbContext(databaseProvider.GetDatabase <Index2Tag>(universeGuid, planet.Id, false), planet); column = chunkColumContext.Get(columnIndex); if (column == null) { return(null); } //var localColumn = column; ApplyChunkDiff(column, universeGuid, planet); var awaiter = awaiterPool.Get(); awaiter.SetResult(column); return(awaiter); }
/// <summary> /// Speichert eine <see cref="IChunkColumn"/>. /// </summary> /// <param name="universeGuid">GUID des Universums.</param> /// <param name="planet">Index des Planeten.</param> /// <param name="column">Zu serialisierende ChunkColumn.</param> public void SaveColumn(Guid universeGuid, IPlanet planet, IChunkColumn column) { var chunkColumContext = new ChunkColumnDbContext(databaseProvider.GetDatabase <Index2Tag>(universeGuid, planet.Id, false), planet); chunkColumContext.AddOrUpdate(column); }