src/main/java/de/dosmike/sponge/megamenus/api/elements/PositionProvider.java
static PositionProvider Rows(int firstColumn, int lastColumn) {
        assert firstColumn <= lastColumn : "firstColumn can not exceed lastColumn";
        return previous -> {
            if (previous == null) return new SlotPos(0,0);
            int x = previous.getX()+1;
            int y = previous.getY();
            if (x >= lastColumn) {
                x = firstColumn;
                if (++y == 6)
                    y = 0;
            }
            return new SlotPos(x,y);
        };
    }
/**
     * This Position Provider returns the {@link SlotPos} at the next inventory column or,
     * if lastColumn was reached a SlotPos at the next rows firstColumn.
     * The fill order is Left-to-Right; Top-to-Bottom.
     * After the 6th row was filled it will wrap back to the first row.
     * @param firstColumn the inclusive first column to reset to, if the row is full
     * @param lastColumn the exclusive last column, that determines when the row is full
     * @return a {@link PositionProvider} that fills rows
     */
This Position Provider returns the  SlotPos at the next inventory column or,
if lastColumn was reached a SlotPos at the next rows firstColumn.
The fill order is Left-to-Right; Top-to-Bottom.
After the 6th row was filled it will wrap back to the first row.
@param firstColumn the inclusive first column to reset to, if the row is full
@param lastColumn the exclusive last column, that determines when the row is full
@return a  PositionProvider that fills rows
This Position Provider returns the SlotPos at the next inventory column or if lastColumn was reached a SlotPos at the next rows firstColumn . The fill order is Left - to - Right ; Top - to - Bottom . After the 6th row was filled it will wrap back to the first row . @param firstColumn the inclusive first column to reset to if the row is full @param lastColumn the exclusive last column that determines when the row is full @return a PositionProvider that fills rows
static PositionProvider Rows(int firstColumn, int lastColumn) {
        assert firstColumn <= lastColumn : "firstColumn can not exceed lastColumn";
        return previous -> {
            if (previous == null) return new SlotPos(0,0);
            int x = previous.getX()+1;
            int y = previous.getY();
            if (x >= lastColumn) {
                x = firstColumn;
                if (++y == 6)
                    y = 0;
            }
            return new SlotPos(x,y);
        };
    }
static PositionProvider Rows ( int firstColumn , int lastColumn ) { assert firstColumn <= lastColumn : "firstColumn can not exceed lastColumn" ; return previous -> { if ( previous == null ) return new SlotPos ( 0 , 0 ) ; int x = previous . getX ( ) + 1 ; int y = previous . getY ( ) ; if ( x >= lastColumn ) { x = firstColumn ; if ( ++ y == 6 ) y = 0 ; } return new SlotPos ( x , y ) ; } ; }
This Position Provider returns the {@link SlotPos} at the next inventory column or,
 if lastColumn was reached a SlotPos at the next rows firstColumn.
This Position Provider returns the { @link SlotPos } at the next inventory column or if lastColumn was reached a SlotPos at the next rows firstColumn .