package Ġpos id on . uran ium . engine . objects Ċ Ċ import Ġpos id on . uran ium . engine . Window Ċ import Ġpos id on . uran ium . engine . math s . Vec 3 i Ċ import Ġjava . util .* Ċ import Ġkotlin . math . cos Ċ import Ġkotlin . math . sin Ċ Ċ class ĠChunk ( val Ġposition : ĠVec 3 i ?) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġc ubes Ġ= ĠarrayOf Null s < Cube >( CHUNK _ SIZE _ C UB ED ) ĊĊĠĠĠ Ġoperator Ġfun Ġget ( pos : ĠVec 3 i ?) Ġ= Ġc ubes [ pos !!. x Ġ* ĠCH UNK _ SIZE Ġ* ĠCH UNK _ SIZE Ġ+ Ġpos . y Ġ* ĠCH UNK _ SIZE Ġ+ Ġpos . z ] ĊĠĠĠ Ġoperator Ġfun Ġget ( x : ĠInt , Ġy : ĠInt , Ġz : ĠInt ) Ġ= Ġc ubes [ x Ġ* ĠCH UNK _ SIZE Ġ* ĠCH UNK _ SIZE Ġ+ Ġy Ġ* ĠCH UNK _ SIZE Ġ+ Ġz ] ĊĠĠĠ Ġoperator Ġfun Ġset ( pos : ĠVec 3 i ?, Ġcube : ĠCube ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġc ubes [ pos !!. x Ġ* ĠCH UNK _ SIZE Ġ* ĠCH UNK _ SIZE Ġ+ Ġpos . y Ġ* ĠCH UNK _ SIZE Ġ+ Ġpos . z ] Ġ= Ġcube ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġc ubes By Side s Ġ= ĠHashMap < Boolean Array , ĠMutable List < Cube >>() ĊĠĠĠ Ġfun Ġclear () Ġ= Ġc ubes By Side s . clear () ĊĊĠĠĠ Ġval ĠisIn FO V : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpos Rel To Cam : ĠVec 3 i Ġ= Ġposition !! Ġ* ĠCH UNK _ SIZE Ġ- ĠCamera . position !!. to Vec 3 i () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrot Y : ĠFloat Ġ= ĠCamera . rotation !!. y Ġ- Ġ 1 8 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcos RY Ġ= Ġcos ( Math . to Radians ( rot Y . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsin RY Ġ= Ġsin ( Math . to Radians ( rot Y . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcos RX Ġ= Ġcos ( Math . to Radians ( Camera . rotation !!. x . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsin RX Ġ= Ġsin ( Math . to Radians ( Camera . rotation !!. x . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġ( pos Rel To Cam . x Ġ* Ġcos RY Ġ- Ġpos Rel To Cam . z Ġ* Ġsin RY ) Ġ* Ġcos RX Ġ+ Ġpos Rel To Cam . y Ġ* Ġsin RX ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġz Ġ= Ġ( pos Rel To Cam . z Ġ* Ġcos RY Ġ+ Ġpos Rel To Cam . x Ġ* Ġsin RY ) Ġ* Ġcos RX Ġ+ Ġpos Rel To Cam . y Ġ* Ġsin RX ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġpos Rel To Cam . y Ġ* Ġcos RX Ġ- Ġz Ġ* Ġsin RX ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax X Offset : ĠDouble Ġ= Ġz Ġ* ĠWindow . width Ġ/ ĠWindow . height Ġ+ ĠCH UNK _ SIZE Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Y Offset Ġ= Ġz Ġ* Ġcos RX Ġ+ Ġpos Rel To Cam . y Ġ* Ġsin RX Ġ+ ĠCH UNK _ SIZE Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġz Ġ> Ġ- CHUNK _ SIZE Ġ* Ġ 2 Ġ&& Ġx Ġ< Ġmax X Offset Ġ&& Ġx Ġ> Ġ- max X Offset Ġ&& Ġy Ġ< Ġmax Y Offset Ġ&& Ġy Ġ> Ġ- max Y Offset ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCH UNK _ SIZE Ġ= Ġ 1 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCH UNK _ SIZE _ C UB ED Ġ= ĠCH UNK _ SIZE Ġ* ĠCH UNK _ SIZE Ġ* ĠCH UNK _ SIZE ĊĠĠĠ Ġ} Ċ }