public WallVolumeFace(int x, int y, int z, WallVolumeOrientaion orientation)
 {
     posX             = x;
     posY             = y;
     posZ             = z;
     this.orientation = orientation;
 }
Esempio n. 2
0
        private bool IsOpen(int x, int y, int z, WallVolumeOrientaion orientation)
        {
            bool flag = false;

            switch (orientation)
            {
            case WallVolumeOrientaion.Up:
            {
                for (int l = 0; l < faces.Count; l++)
                {
                    WallVolumeFace wallVolumeFace16 = faces[l];
                    if (wallVolumeFace16.posX != x)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace17 = faces[l];
                    if (wallVolumeFace17.posZ != z)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace18 = faces[l];
                    if (wallVolumeFace18.posY <= y)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace19 = faces[l];
                    if (wallVolumeFace19.orientation != 0)
                    {
                        WallVolumeFace wallVolumeFace20 = faces[l];
                        if (wallVolumeFace20.orientation != WallVolumeOrientaion.Down)
                        {
                            continue;
                        }
                    }
                    flag = !flag;
                }
                break;
            }

            case WallVolumeOrientaion.Down:
            {
                for (int n = 0; n < faces.Count; n++)
                {
                    WallVolumeFace wallVolumeFace26 = faces[n];
                    if (wallVolumeFace26.posX != x)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace27 = faces[n];
                    if (wallVolumeFace27.posZ != z)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace28 = faces[n];
                    if (wallVolumeFace28.posY >= y)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace29 = faces[n];
                    if (wallVolumeFace29.orientation != 0)
                    {
                        WallVolumeFace wallVolumeFace30 = faces[n];
                        if (wallVolumeFace30.orientation != WallVolumeOrientaion.Down)
                        {
                            continue;
                        }
                    }
                    flag = !flag;
                }
                break;
            }

            case WallVolumeOrientaion.Left:
            {
                for (int j = 0; j < faces.Count; j++)
                {
                    WallVolumeFace wallVolumeFace6 = faces[j];
                    if (wallVolumeFace6.posY != y)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace7 = faces[j];
                    if (wallVolumeFace7.posZ != z)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace8 = faces[j];
                    if (wallVolumeFace8.posX >= x)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace9 = faces[j];
                    if (wallVolumeFace9.orientation != WallVolumeOrientaion.Left)
                    {
                        WallVolumeFace wallVolumeFace10 = faces[j];
                        if (wallVolumeFace10.orientation != WallVolumeOrientaion.Right)
                        {
                            continue;
                        }
                    }
                    flag = !flag;
                }
                break;
            }

            case WallVolumeOrientaion.Right:
            {
                for (int m = 0; m < faces.Count; m++)
                {
                    WallVolumeFace wallVolumeFace21 = faces[m];
                    if (wallVolumeFace21.posY != y)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace22 = faces[m];
                    if (wallVolumeFace22.posZ != z)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace23 = faces[m];
                    if (wallVolumeFace23.posX <= x)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace24 = faces[m];
                    if (wallVolumeFace24.orientation != WallVolumeOrientaion.Left)
                    {
                        WallVolumeFace wallVolumeFace25 = faces[m];
                        if (wallVolumeFace25.orientation != WallVolumeOrientaion.Right)
                        {
                            continue;
                        }
                    }
                    flag = !flag;
                }
                break;
            }

            case WallVolumeOrientaion.Forward:
            {
                for (int k = 0; k < faces.Count; k++)
                {
                    WallVolumeFace wallVolumeFace11 = faces[k];
                    if (wallVolumeFace11.posX != x)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace12 = faces[k];
                    if (wallVolumeFace12.posY != y)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace13 = faces[k];
                    if (wallVolumeFace13.posZ <= z)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace14 = faces[k];
                    if (wallVolumeFace14.orientation != WallVolumeOrientaion.Forward)
                    {
                        WallVolumeFace wallVolumeFace15 = faces[k];
                        if (wallVolumeFace15.orientation != WallVolumeOrientaion.Back)
                        {
                            continue;
                        }
                    }
                    flag = !flag;
                }
                break;
            }

            case WallVolumeOrientaion.Back:
            {
                for (int i = 0; i < faces.Count; i++)
                {
                    WallVolumeFace wallVolumeFace = faces[i];
                    if (wallVolumeFace.posX != x)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace2 = faces[i];
                    if (wallVolumeFace2.posY != y)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace3 = faces[i];
                    if (wallVolumeFace3.posZ >= z)
                    {
                        continue;
                    }
                    WallVolumeFace wallVolumeFace4 = faces[i];
                    if (wallVolumeFace4.orientation != WallVolumeOrientaion.Forward)
                    {
                        WallVolumeFace wallVolumeFace5 = faces[i];
                        if (wallVolumeFace5.orientation != WallVolumeOrientaion.Back)
                        {
                            continue;
                        }
                    }
                    flag = !flag;
                }
                break;
            }

            default:
                throw new InvalidOperationException();
            }
            return(flag);
        }