src/main/java/net/azagwen/atbyw/block/shape/StatueVoxelShapes.java
private static VoxelShape combineDoubleArrayShapes(VoxelShape[][] shapes, int directionIndex) {
        ArrayList<VoxelShape> combinedShapes = new ArrayList<>();

        for (VoxelShape[] shapeArray : shapes) {
            combinedShapes.add(shapeArray[directionIndex]);
        }

        Optional<VoxelShape> streamedShape = combinedShapes.stream().reduce(
                (v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, BooleanBiFunction.OR)
        );

        if (streamedShape.isPresent()) {
            return streamedShape.get();
        } else {
            throw new IllegalArgumentException("Invalid value passed to combineDoubleArrayShapes()");
        }
    }
/** Combines Shapes of a given direction index into a single,
     *  united Shape using a modified implementation of VoxelShapes.union
     *
     *  @param shapes           Array containing arrays of directional shapes made using "makeDirectionalShapes()"
     *  @param directionIndex   Index of the direction picked for union (0 = NORTH, 1 = SOUTH, 2 = EAST, 3 = WEST)
     *
     *  @return                 Combination of every shape's selected direction from the double array
     */
Combines Shapes of a given direction index into a single,
united Shape using a modified implementation of VoxelShapes.union

@param shapes           Array containing arrays of directional shapes made using "makeDirectionalShapes()"
@param directionIndex   Index of the direction picked for union (0 = NORTH, 1 = SOUTH, 2 = EAST, 3 = WEST)

@return                 Combination of every shape's selected direction from the double array
Combines Shapes of a given direction index into a single united Shape using a modified implementation of VoxelShapes . union @param shapes Array containing arrays of directional shapes made using " makeDirectionalShapes () " @param directionIndex Index of the direction picked for union ( 0 = NORTH 1 = SOUTH 2 = EAST 3 = WEST ) @return Combination of every shape ' s selected direction from the double array
private static VoxelShape combineDoubleArrayShapes(VoxelShape[][] shapes, int directionIndex) {
        ArrayList<VoxelShape> combinedShapes = new ArrayList<>();
        for (VoxelShape[] shapeArray : shapes) {
            combinedShapes.add(shapeArray[directionIndex]);
        }
        Optional<VoxelShape> streamedShape = combinedShapes.stream().reduce(
                (v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, BooleanBiFunction.OR)
        );
        if (streamedShape.isPresent()) {
            return streamedShape.get();
        } else {
            throw new IllegalArgumentException("Invalid value passed to combineDoubleArrayShapes()");
        }
    }
private static VoxelShape combineDoubleArrayShapes ( VoxelShape [ ] [ ] shapes , int directionIndex ) { ArrayList < VoxelShape > combinedShapes = new ArrayList < > ( ) ; for ( VoxelShape [ ] shapeArray : shapes ) { combinedShapes . add ( shapeArray [ directionIndex ] ) ; } Optional < VoxelShape > streamedShape = combinedShapes . stream ( ) . reduce ( ( v1 , v2 ) -> VoxelShapes . combineAndSimplify ( v1 , v2 , BooleanBiFunction . OR ) ) ; if ( streamedShape . isPresent ( ) ) { return streamedShape . get ( ) ; } else { throw new IllegalArgumentException ( "Invalid value passed to combineDoubleArrayShapes()" ) ; } }
Combines Shapes of a given direction index into a single,
  united Shape using a modified implementation of VoxelShapes.union
Combines Shapes of a given direction index into a single united Shape using a modified implementation of VoxelShapes . union