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); }