Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }