public void Store(long blockId, ChangingEntity entity, TimeSpan expiresAfter) { /* If there is already someting valid in the cache we want to keep it. Instead of overwriting it with stuff like Nobody. */ if (entity != null && entity.Owner == 0L && entity.Controller == 0L && !entity.IsPlanet) { var existingEntity = Get(blockId); if (existingEntity != null && (existingEntity.Owner != 0L || existingEntity.Controller != 0L || existingEntity.IsPlanet)) { return; } } _cache[blockId] = new CacheItem(entity, expiresAfter); }
public CacheItem(ChangingEntity entity, TimeSpan expiresAfter) { Value = entity; ExpiresAfter = expiresAfter; }