public static void OnShouldKeepChunkLoaded(ChunkUpdating.KeepChunkLoadedData data) { lock (_queuedPositions) foreach (var iterator in _queuedPositions) { if (iterator.GetVector().IsWithinBounds(data.CheckedChunk.Position, data.CheckedChunk.Bounds)) { data.Result = true; } } }
public static void OnShouldKeepChunkLoaded(ChunkUpdating.KeepChunkLoadedData data) { foreach (var iterator in _needsChunkLoaded) { if (iterator != null && iterator.CurrentPosition != null && iterator.CurrentPosition.IsWithinBounds(data.CheckedChunk.Position, data.CheckedChunk.Bounds)) { data.Result = true; } } }
public static void OnShouldKeepChunkLoaded(ChunkUpdating.KeepChunkLoadedData data) { try { currentlyUsedChunksLock.EnterReadLock(); if (currentlyUsedChunks.Contains(data.CheckedChunk.Position)) { data.Result = true; } } finally { if (currentlyUsedChunksLock.IsReadLockHeld) { currentlyUsedChunksLock.ExitReadLock(); } } }
public static void OnShouldKeepChunkLoaded(ChunkUpdating.KeepChunkLoadedData data) { foreach (var list in TrainTransports.Values) { foreach (var iterator in list) { var bounds = new Pipliz.BoundsInt(iterator.TrackPosition.Add(-30, -30, -30), iterator.TrackPosition.Add(30, 30, 30)); if (Pipliz.BoundsInt.Intersects(bounds, data.CheckedChunk.Bounds)) { data.Result = true; } } } }
public static void OnShouldKeepChunkLoaded(ChunkUpdating.KeepChunkLoadedData data) { try { KingdomsLock.EnterReadLock(); foreach (NpcKingdom kingdom in Kingdoms) { if (kingdom.IsInRange(data.CheckedChunk.Position, KingdomsModEntries.CHUNK_SIZE)) { data.Result = true; return; } } } finally { if (KingdomsLock.IsReadLockHeld) { KingdomsLock.ExitReadLock(); } } }