public static BlockMeshBuilder GenerateBlock(BlockFaceVisibility visibility) { return(BlockMeshBuilder.GenerateBlockMesh( visibility.Top, visibility.Front, visibility.Left, visibility.Bottom, visibility.Right, visibility.Back)); }
public static BlockFaceVisibility GetVisibleFaces(Block block) { BlockFaceVisibility visibility = new BlockFaceVisibility(); Chunk chunk = block.Location.Chunk; BlockLocation location = block.Location; Block left = chunk.GetBlockAt(location.X - 1, location.Y, location.Z); Block righ = chunk.GetBlockAt(location.X + 1, location.Y, location.Z); Block topp = chunk.GetBlockAt(location.X, location.Y + 1, location.Z); Block botm = chunk.GetBlockAt(location.X, location.Y - 1, location.Z); Block back = chunk.GetBlockAt(location.X, location.Y, location.Z - 1); Block frnt = chunk.GetBlockAt(location.X, location.Y, location.Z + 1); visibility.Left = (left == null || left.IsEmpty() || left.IsTransparent); visibility.Right = (righ == null || righ.IsEmpty() || righ.IsTransparent); visibility.Top = (topp == null || topp.IsEmpty() || topp.IsTransparent); visibility.Bottom = (botm == null || botm.IsEmpty() || botm.IsTransparent); visibility.Back = (back == null || back.IsEmpty() || back.IsTransparent); visibility.Front = (frnt == null || frnt.IsEmpty() || frnt.IsTransparent); return(visibility); }