Random Bricks and Predefined Brick Lists

Technically speaking, Bricklayer’s random brick function and corresponding predefined brick lists are available in all coding levels. However, it is only at level 3 and above where sufficient understanding is developed to be able to use these abstractions effectively.

Random Bricks

Bricklayer provides a function, called generateRandomBrickFn, that can be used to generate bricks randomly selected from a given list of bricks. A detailed discussion of how this is done can be found here.

Predefined Brick Lists

To facilitate the creation of random brick functions, Bricklayer provides the predefined brick lists shown below.

val grayScale       = [ BLACK, TITANIUM, GRAY, LIGHTGRAY, SILVER, 
                        WHITE, WHITEGLOW, STONEGRAY ];
val greenScale      = [ DARKGREEN, GREEN, LIGHTGREEN, ARMYGREEN, 
                        SPRING, BRIGHTGREEN, OLIVE ];
val blueScale       = [ INDIGO, BLUE, LIGHTBLUE, GRAYBLUE, AQUA, 
                        LIGHTROYALBLUE, LIGHTAQUA ];
val purpleScale     = [ VIOLET, LAVENDER, DARKLAVENDER, 
                        REDDISHVIOLET ];
val redScale        = [ DARKRED, RED, PINK, LIGHTPINK ];
val warmScale       = [ ORANGE, YELLOW, COOLYELLOW, NOUGAT, 
                        MEDIUMNOUGAT, LIGHTNOUGAT, WARMGOLD, 
                        BRICKYELLOW ];
val brownScale      = [ DARKBROWN, BROWN, LIGHTBROWN ];
val clearScale      = [ TRANSPARENT, CLEAR, CLEARBLUE, 
                        CLEARLIGHTBLUE, CLEARPINK, CLEARVIOLET, 
                        CLEARGREEN, CLEARYELLOW, CLEARRED, 
                        CLEARORANGE, CLEARBROWN ];

val grayScaleRound  = [ BLACKROUND, GRAYROUND, LIGHTGRAYROUND, 
                        WHITEROUND ];
val greenScaleRound = [ GREENROUND, LIGHTGREENROUND, ARMYGREENROUND ];
val blueScaleRound  = [ INDIGOROUND, BLUEROUND, SKYBLUEROUND, 
                        LIGHTBLUEROUND, GRAYBLUEROUND, AQUAROUND ];
val redScaleRound   = [ DARKREDROUND, REDROUND, PINKROUND ];
val brownScaleRound = [ DARKBROWNROUND, BROWNROUND, LIGHTBROWNROUND ];
val warmScaleRound  = [ ORANGEROUND, YELLOWROUND ];
val clearScaleRound = [ CLEARROUND, CLEARBLUEROUND, CLEARGREENROUND ];

val grayScaleNosecone   = [ BLACKNOSECONE, GRAYNOSECONE, 
                            LIGHTGRAYNOSECONE, WHITENOSECONE ];
val greenScaleNosecone  = [ GREENNOSECONE, LIGHTGREENNOSECONE, 
                            ARMYGREENNOSECONE ];
val blueScaleNosecone   = [ INDIGONOSECONE, BLUENOSECONE, 
                            LIGHTBLUENOSECONE, GRAYBLUENOSECONE ];
val redScaleNosecone    = [ DARKREDNOSECONE, REDNOSECONE, 
                            LIGHTPINKNOSECONE ];
val purpleScaleNosecone = [ VIOLETNOSECONE ];
val brownScaleNosecone  = [ DARKBROWNNOSECONE, LIGHTBROWNNOSECONE ];
val warmScaleNosecone   = [ ORANGENOSECONE, GOLDNOSECONE, 
                            YELLOWNOSECONE ];
val clearScaleNosecone  = [ CLEARNOSECONE, CLEARBLUENOSECONE, 
                            CLEARGREENNOSECONE, CLEARVIOLETNOSECONE ]; 

val allOneBitBricks = grayScale 
                      @
                      greenScale
                      @
                      blueScale
                      @
                      purpleScale
                      @
                      redScale
                      @
                      warmScale
                      @
                      brownScale
                      @
                      clearScale;
                      
val allRounds  = grayScaleRound
                 @
                 greenScaleRound
                 @
                 blueScaleRound
                 @
                 redScaleRound  
                 @
                 brownScaleRound 
                 @
                 warmScaleRound 
                 @
                 clearScaleRound;                     

val allNosecones = grayScaleNosecone
                   @
                   greenScaleNosecone
                   @
                   blueScaleNosecone
                   @
                   redScaleNosecone
                   @
                   purpleScaleNosecone
                   @
                   brownScaleNosecone
                   @
                   warmScaleNosecone
                   @
                   clearScaleNosecone;
                   
val experimentalBricks = [
                            CLEARBLUE_LEFTWEDGE  ,
                            CLEARBLUE_RIGHTWEDGE ,
                            CLEARBLUE_FRONTWEDGE ,
                            CLEARBLUE_BACKWEDGE  ,                          
                            BLACK_LEFTWEDGE      ,
                            BLACK_RIGHTWEDGE     ,
                            BLACK_FRONTWEDGE     ,
                            BLACK_BACKWEDGE
                         ];
                         
val allBricks = allOneBitBricks
                @
                allRounds
                @
                allNosecones
                @
                experimentalBricks;

val allBlocks = a list containing all Minecraft blocks that are 
                supported in Bricklayer (see the Minecraft block 
                list for the entire list of blocks).