public static void RemoveSliceFromReRenderQueue(Slice slice) { if (SlicesWaitingForReRender.Contains(slice)) { SlicesWaitingForReRender.Remove(slice); } }
public static void RebuildQueuedSlicesOnY(int y) { // may need render throttle in here for performance. List <Slice> slicesRebuilt = new List <Slice>(); foreach (var slice in SlicesWaitingForReRender) { if (slice.Y == y) { if (slice.updateMeshLiquids) { slice.BuildMesh(SliceMeshData.Type.Liquids); } if (slice.updateMeshTop) { slice.BuildMesh(SliceMeshData.Type.Top); } if (slice.updateMeshSides) { slice.BuildMesh(SliceMeshData.Type.Sides); } slicesRebuilt.Add(slice); } } // Remove the rebuilt slices from the rebuild queue. foreach (var slice in slicesRebuilt) { SlicesWaitingForReRender.Remove(slice); } }
public static void QueueSliceForReRender(Slice slice) { if (SlicesWaitingForReRender.Contains(slice)) { return; } SlicesWaitingForReRender.Add(slice); }