Grey.Vox.Region.SetVoxel C# (CSharp) Method

SetVoxel() public method

public SetVoxel ( int x, int y, int z, ushort id ) : void
x int
y int
z int
id ushort
return void
        public void SetVoxel(int x, int y, int z, ushort id)
        {
            voxels[ToIndex(x, y, z)].ID = id;
        }

Usage Example

コード例 #1
0
        public void DoWork()
        {
            // Can't Load A Null Region
            if (region == null)
            {
                return;
            }

            // TODO: Load A Region

            // TODO: Generate A Region Correctly
            Random r = new Random();

            // Surface Blocks
            Vector3I v = Vector3I.Zero;

            for (v.Z = 0; v.Z < Region.DEPTH; v.Z++)
            {
                for (v.X = 0; v.X < Region.WIDTH; v.X++)
                {
                    for (v.Y = 0; v.Y < Region.HEIGHT / 2; v.Y++)
                    {
                        region.SetVoxel(v.X, v.Y, v.Z, 1);
                    }
                }
            }

            // Place It In The World Now
            region.LoadComplete();
            if (!region.World.PlaceRegion(region))
            {
                return;
            }

            // Faces Need To Be Calculated
            region.NotifyFacesChanged();

            // Check For Neighboring Regions
            int rx = region.loc.X;
            int rz = region.loc.Y;

            if (region.rNX != null)
            {
                region.rNX.NotifyFacesChanged();
            }
            //else region.World.state.AddEvent(new VEWorldMod(rx - 1, rz, VEWMType.RegionAdd));
            if (region.rPX != null)
            {
                region.rPX.NotifyFacesChanged();
            }
            //else region.World.state.AddEvent(new VEWorldMod(rx + 1, rz, VEWMType.RegionAdd));
            if (region.rNZ != null)
            {
                region.rNZ.NotifyFacesChanged();
            }
            //else region.World.state.AddEvent(new VEWorldMod(rx, rz - 1, VEWMType.RegionAdd));
            if (region.rPZ != null)
            {
                region.rPZ.NotifyFacesChanged();
            }
            //else region.World.state.AddEvent(new VEWorldMod(rx, rz + 1, VEWMType.RegionAdd));
        }