Exemple #1
0
 public void Render(GraphicsDevice device)
 {
     PrimitiveMutex.WaitOne();
     if (Primitive != null)
     {
         Primitive.Render(device);
     }
     PrimitiveMutex.ReleaseMutex();
 }
Exemple #2
0
 public void RecieveNewPrimitive(DwarfTime t)
 {
     PrimitiveMutex.WaitOne();
     if (NewPrimitiveReceived)
     {
         Primitive            = NewPrimitive;
         NewPrimitive         = null;
         NewPrimitiveReceived = false;
     }
     PrimitiveMutex.ReleaseMutex();
 }
Exemple #3
0
        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();
        }
Exemple #4
0
        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();
        }