public void Render(GraphicsDevice device) { PrimitiveMutex.WaitOne(); if (Primitive != null) { Primitive.Render(device); } PrimitiveMutex.ReleaseMutex(); }
public void RecieveNewPrimitive(DwarfTime t) { PrimitiveMutex.WaitOne(); if (NewPrimitiveReceived) { Primitive = NewPrimitive; NewPrimitive = null; NewPrimitiveReceived = false; } PrimitiveMutex.ReleaseMutex(); }
public void DiscardPrimitive() { PrimitiveMutex.WaitOne(); if (Primitive != null) { Primitive.Dispose(); } Primitive = null; for (var y = 0; y < VoxelConstants.ChunkSizeY; ++y) { Data.SliceCache[y] = null; MoteRecords[y] = null; } PrimitiveMutex.ReleaseMutex(); }
public void Rebuild(GraphicsDevice g) { if (g == null || g.IsDisposed) { return; } var primitive = new VoxelListPrimitive(); primitive.InitializeFromChunk(this, Manager.World.PersistentData.Designations, Manager.World); PrimitiveMutex.WaitOne(); if (Primitive != null) { Primitive.Dispose(); } Primitive = primitive; PrimitiveMutex.ReleaseMutex(); }