package Ġg q . gen prog . aut ocr at . modules . claims Ċ Ċ import Ġnet . minecraft . util . math . Block Pos Ċ import Ġnet . minecraft . util . math . Chunk Pos Ċ Ċ /** Ċ Ġ* ĠWritten Ġby Ġ@ off beat witch . Ċ Ġ* ĠLicensed Ġunder ĠMIT . Ċ Ġ*/ Ċ class ĠPlayer Selection Ġ{ ĊĠĠĠ Ġvar Ġfirst : ĠBlockPos ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġsecond : ĠBlockPos ? Ġ= Ġnull ĊĊĠĠĠ Ġval Ġfirst Chunk : ĠChunk Pos ? Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( first Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn ĠChunk Pos ( first !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsecond Chunk : ĠChunk Pos ? Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( second Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn ĠChunk Pos ( second !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Complete (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfirst Ġ!= Ġnull Ġ&& Ġsecond Ġ!= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcurrent Area (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Complete ()) Ġreturn Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġval Ġ( x 1 , Ġy 1 , Ġz 1 ) Ġ= Ġfirst !!. run Ġ{ ĠarrayOf ( x , Ġy , Ġz ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġ( x 2 , Ġy 2 , Ġz 2 ) Ġ= Ġsecond !!. run Ġ{ ĠarrayOf ( x , Ġy , Ġz ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= ĠMath . abs ( x 1 Ġ- Ġx 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġh Ġ= ĠMath . abs ( y 1 Ġ- Ġy 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠMath . abs ( z 1 Ġ- Ġz 2 ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġw Ġ* Ġh Ġ* Ġd ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Immutable (): ĠCompleted Selection ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Complete ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn ĠCompleted Selection ( first Chunk !! , Ġsecond Chunk !! ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠCompleted Selection ( val Ġfirst : ĠChunk Pos , Ġval Ġsecond : ĠChunk Pos ) Ġ{ ĊĠĠĠ Ġfun Ġcount Chunks (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġw Ġ= ĠMath . abs ( first . x Ġ- Ġsecond . x ) Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġh Ġ= ĠMath . abs ( first . z Ġ- Ġsecond . z ) Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġreturn Ġw Ġ* Ġh ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetAll Chunks (): ĠList < Chunk Pos > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx Min Ġ= ĠMath . min ( first . x , Ġsecond . x ) ĊĠĠĠĠĠĠĠ Ġval Ġx Max Ġ= ĠMath . max ( first . x , Ġsecond . x ) ĊĠĠĠĠĠĠĠ Ġval Ġz Min Ġ= ĠMath . min ( first . z , Ġsecond . z ) ĊĠĠĠĠĠĠĠ Ġval Ġz Max Ġ= ĠMath . max ( first . z , Ġsecond . z ) ĊĊĠĠĠĠĠĠĠ Ġval Ġchunks Ġ= ĠArrayList < Chunk Pos >( this . count Chunks ()) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġx Min .. x Max ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( z Ġin Ġz Min .. z Max ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchunks . add ( Chunk Pos ( x , Ġz )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġchunks ĊĠĠĠ Ġ} Ċ } Ċ