package Ġworld . greg s . void ps . engine . map . area Ċ Ċ import Ġworld . greg s . void ps . engine . entity . Direction Ċ import Ġworld . greg s . void ps . engine . map . Tile Ċ import Ġworld . greg s . void ps . engine . map . chunk . Chunk Ċ import Ġworld . greg s . void ps . engine . map . region . Region Ċ import Ġworld . greg s . void ps . engine . path . traverse . Tile Traversal Strategy Ċ Ċ interface ĠArea Ġ{ ĊĠĠĠ Ġval Ġarea : ĠDouble ĊĊĠĠĠ Ġoperator Ġfun Ġcontains ( tile : ĠTile ): ĠBoolean Ġ= Ġcontains ( tile . x , Ġtile . y , Ġtile . plane ) ĊĊĠĠĠ Ġfun Ġcontains ( x : ĠInt , Ġy : ĠInt , Ġplane : ĠInt Ġ= Ġ 0 ): ĠBoolean ĊĊĠĠĠ Ġfun Ġrandom (): ĠTile ĊĊĠĠĠ Ġfun Ġrandom ( traversal : ĠTile Traversal Strategy ): ĠTile ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtile Ġ= Ġrandom () ĊĠĠĠĠĠĠĠ Ġvar Ġexit Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( traversal . blocked ( tile , ĠDirection . NONE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(-- exit Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtile Ġ= Ġrandom () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtile ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Regions (): ĠList < Region > ĊĊĠĠĠ Ġfun Ġto Chunks (): ĠList < Chunk > Ċ }