package Ġrs . d us k . engine . map Ċ Ċ import Ġrs . d us k . engine . map . area . Coordinate 3 D Ċ import Ġrs . d us k . engine . map . chunk . Chunk Ċ import Ġrs . d us k . engine . map . region . Region Ċ import Ġrs . d us k . engine . map . region . Region Plane Ċ Ċ /** Ċ Ġ* Ġ@ author ĠG reg ĠH ib ber d Ġ< greg @ greg hib ber d . com > Ċ Ġ* Ġ@ since ĠMarch Ġ 2 8 , Ġ 2 0 2 0 Ċ Ġ*/ Ċ data Ġclass ĠTile ( override Ġval Ġx : ĠInt , Ġoverride Ġval Ġy : ĠInt , Ġoverride Ġval Ġplane : ĠInt Ġ= Ġ 0 ) Ġ: ĊĠĠĠ ĠCoordinate 3 D Ġ{ ĊĊĠĠĠ Ġconstructor ( id : ĠInt ) Ġ: Ġthis ( id Ġshr Ġ 1 4 Ġand Ġ 0 x 3 fff , Ġid Ġand Ġ 0 x 3 fff , Ġid Ġshr Ġ 2 8 ) ĊĊĠĠĠ Ġval Ġid Ġby Ġlazy Ġ{ ĠgetId ( x , Ġy , Ġplane ) Ġ} ĊĠĠĠ Ġval Ġchunk Ġby Ġlazy Ġ{ ĠChunk ( x Ġ/ Ġ 8 , Ġy Ġ/ Ġ 8 , Ġplane ) Ġ} ĊĠĠĠ Ġval Ġregion Ġby Ġlazy Ġ{ ĠRegion ( x Ġ/ Ġ 6 4 , Ġy Ġ/ Ġ 6 4 ) Ġ} ĊĠĠĠ Ġval Ġregion Plane Ġby Ġlazy Ġ{ ĠRegion Plane ( x Ġ/ Ġ 6 4 , Ġy Ġ/ Ġ 6 4 , Ġplane ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd ( x : ĠInt , Ġy : ĠInt , Ġplane : ĠInt ) Ġ= Ġcopy ( x Ġ= Ġthis . x Ġ+ Ġx , Ġy Ġ= Ġthis . y Ġ+ Ġy , Ġplane Ġ= Ġthis . plane Ġ+ Ġplane ) ĊĠĠĠ Ġfun Ġequals ( x : ĠInt Ġ= Ġ 0 , Ġy : ĠInt Ġ= Ġ 0 , Ġplane : ĠInt Ġ= Ġ 0 ) Ġ= Ġthis . x Ġ== Ġx Ġ&& Ġthis . y Ġ== Ġy Ġ&& Ġthis . plane Ġ== Ġplane ĊĠĠĠ Ġfun Ġminus ( x : ĠInt Ġ= Ġ 0 , Ġy : ĠInt Ġ= Ġ 0 , Ġplane : ĠInt Ġ= Ġ 0 ) Ġ= Ġadd (- x , Ġ- y , Ġplane ) ĊĠĠĠ Ġfun Ġdelta ( x : ĠInt Ġ= Ġ 0 , Ġy : ĠInt Ġ= Ġ 0 , Ġplane : ĠInt Ġ= Ġ 0 ) Ġ= Ġminus ( x , Ġy , Ġplane ) ĊĊĠĠĠ Ġfun Ġadd ( point : ĠTile ) Ġ= Ġadd ( point . x , Ġpoint . y , Ġpoint . plane ) ĊĠĠĠ Ġfun Ġminus ( point : ĠTile ) Ġ= Ġminus ( point . x , Ġpoint . y , Ġpoint . plane ) ĊĠĠĠ Ġfun Ġdelta ( point : ĠTile ) Ġ= Ġdelta ( point . x , Ġpoint . y , Ġpoint . plane ) ĊĊĠĠĠ Ġoverride Ġfun Ġadd ( x : ĠInt , Ġy : ĠInt ) Ġ= Ġadd ( x , Ġy , Ġ 0 ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Safe ( x : ĠInt , Ġy : ĠInt , Ġplane : ĠInt Ġ= Ġ 0 ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTile ( x Ġand Ġ 0 x 3 fff , Ġy Ġand Ġ 0 x 3 fff , Ġplane Ġand Ġ 0 x 3 ) ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetId ( x : ĠInt , Ġy : ĠInt , Ġplane : ĠInt Ġ= Ġ 0 ) Ġ= Ġ( y Ġand Ġ 0 x 3 fff ) Ġ+ Ġ(( x Ġand Ġ 0 x 3 fff ) Ġshl Ġ 1 4 ) Ġ+ Ġ(( plane Ġand Ġ 0 x 3 ) Ġshl Ġ 2 8 ) ĊĊĠĠĠĠĠĠĠ Ġval ĠEMPTY Ġ= ĠTile ( 0 ) ĊĠĠĠ Ġ} Ċ }