package Ġorg . eln 2 . mc . extensions Ċ Ċ import Ġnet . minecraft . core . Direction Ċ import Ġnet . minecraft . world . phys . shapes . Shapes Ċ import Ġnet . minecraft . world . phys . shapes . Voxel Shape ĊĊĊĊ Ċ object ĠV oxel Shape Extensions Ġ{ ĊĠĠĠ Ġprivate Ġfun ĠindexOf Direction ( dir Ġ: ĠDirection ) Ġ: ĠInt { ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( dir ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . SO UTH Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . WEST Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . NORTH Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . EAST Ġ-> Ġ 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġerror (" Out Ġof Ġbounds !") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠV oxel Shape . align ( from : ĠDirection , Ġto : ĠDirection ): ĠV oxel Shape Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠarrayOf ( this , ĠShapes . empty ()) ĊĠĠĠĠĠĠĠ Ġval Ġtimes : ĠInt Ġ= Ġ( indexOf Direction ( to ) Ġ- ĠindexOf Direction ( from ) Ġ+ Ġ 4 ) Ġ% Ġ 4 ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġtimes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer [ 0 ]. for All Boxes Ġ{ Ġmin X , Ġmin Y , Ġmin Z , Ġmax X , Ġmax Y , Ġmax Z Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer [ 1 ] Ġ= ĠShapes . or ( buffer [ 1 ], ĠShapes . box ( 1 Ġ- Ġmax Z , Ġmin Y , Ġmin X , Ġ 1 Ġ- Ġmin Z , Ġmax Y , Ġmax X )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer [ 0 ] Ġ= Ġbuffer [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer [ 1 ] Ġ= ĠShapes . empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbuffer [ 0 ] ĊĠĠĠ Ġ} Ċ } Ċ