示例#1
0
        public override bool SetWalkableAt(int iX, int iY, int iZ, bool iWalkable)
        {
            if (!IsInside(iX, iY, iZ))
            {
                return(false);
            }
            GridPos pos = new GridPos(iX, iY, iZ);

            m_nodePool.SetNode(pos, iWalkable);
            return(true);
        }
        public override bool SetWalkableAt(int iX, int iY, int iZ, bool iWalkable)
        {
            GridPos pos = new GridPos(iX, iY, iZ);

            m_nodePool.SetNode(pos, iWalkable);
            if (iWalkable)
            {
                if (iX < m_gridRect.minX || m_notSet)
                {
                    m_gridRect.minX = iX;
                }
                if (iX > m_gridRect.maxX || m_notSet)
                {
                    m_gridRect.maxX = iX;
                }
                if (iY < m_gridRect.minY || m_notSet)
                {
                    m_gridRect.minY = iY;
                }
                if (iY > m_gridRect.maxY || m_notSet)
                {
                    m_gridRect.maxY = iY;
                }
                if (iZ < m_gridRect.minZ || m_notSet)
                {
                    m_gridRect.minZ = iZ;
                }
                if (iZ > m_gridRect.maxZ || m_notSet)
                {
                    m_gridRect.maxZ = iZ;
                }
                //m_notSet = false;
            }
            else
            {
                if (iX == m_gridRect.minX || iX == m_gridRect.maxX || iY == m_gridRect.minY || iY == m_gridRect.maxY || iZ == m_gridRect.minZ || iZ == m_gridRect.maxZ)
                {
                    m_notSet = true;
                }
            }
            return(true);
        }