Exemplo n.º 1
0
    public bool CellHasUpperStudConnection(LXFMLCell cell, int brickId)
    {
        bool      hasStud     = true;
        BrickData brickData   = _bricks[brickId];
        int       brickHeight = LXFMLHelper.GetBrickHeight(brickData.design.id);
        Vector2   brickOrigin = GetBrickOrigin(brickId);

        if (brickHeight == 1)
        {
            if (LXFMLHelper.IsSlopeDown(brickData.design.id))
            {
                if (!MathUtils.NearEqual(brickOrigin, cell.Coordinates))
                {
                    hasStud = false;
                }
            }
        }
        else
        {
            float upperY = cell.Coordinates.y + brickHeight - 1;
            if (!MathUtils.NearEqual(upperY, cell.Coordinates.y))
            {
                hasStud = false;
            }
            else
            {
                if (LXFMLHelper.IsSlopeDown(brickData.design.id))
                {
                    if (!MathUtils.NearEqual(cell.Coordinates.x, cell.Coordinates.x))
                    {
                        hasStud = false;
                    }
                }
            }
        }

        return(hasStud);
    }