package Ġme . anno . minecraft . world . decorator Ċ Ċ import Ġme . anno . minecraft . block . BlockType Ċ import Ġme . anno . minecraft . block . BlockType . Companion . Air Ċ import Ġme . anno . minecraft . world . Chunk Ċ Ċ abstract Ġclass ĠSurface Decorator ( val Ġsurface Block : ĠBlock Type , Ġdensity : ĠFloat , Ġseed : ĠLong ) Ġ: ĠN 1 N Decorator ( density , Ġseed ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdecor ate ( chunk : ĠChunk , Ġlx : ĠInt , Ġl z : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġfind Ġthe Ġsurface Ġy ĊĠĠĠĠĠĠĠ Ġ// Ġit Ġmight Ġbe Ġ+ 1 /- 1 Ġfrom Ġus ... ĊĠĠĠĠĠĠĠ Ġval Ġdim Ġ= Ġchunk . dim ĊĠĠĠĠĠĠĠ Ġval Ġy 0 Ġ= Ġchunk . y 0 ĊĠĠĠĠĠĠĠ Ġval Ġgx Ġ= Ġchunk . x 0 Ġ+ Ġlx ĊĠĠĠĠĠĠĠ Ġval Ġgz Ġ= Ġchunk . z 0 Ġ+ Ġl z ĊĠĠĠĠĠĠĠ Ġif Ġ( dim . getBlock At ( gx , Ġy 0 Ġ+ Ġ 2 Ġ* Ġdim . size Y , Ġgz , Ġchunk ) Ġ== ĠAir ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthere Ġis Ġsky Ġ-> Ġwe Ġcan Ġgenerate Ġsomething ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( y Ġin Ġy 0 Ġ+ Ġ 2 Ġ* Ġdim . size Y Ġ- Ġ 1 Ġdown To Ġy 0 Ġ- Ġdim . size Y ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblock Ġ= Ġdim . getBlock At ( gx , Ġy , Ġgz , Ġchunk ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( block Ġ!= ĠAir ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( block Ġ== Ġsurface Block ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwe Ġfound Ġthe Ġstart ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor ate ( chunk , Ġlx , Ġy Ġ- Ġy 0 Ġ+ Ġ 1 , Ġl z ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġdecor ate Ġthing Ġon Ġsurface ĊĠĠĠĠ Ġ* Ġ@ param Ġlx Ġlocal Ġx Ġcoordinate ĊĠĠĠĠ Ġ* Ġ@ param Ġly Ġlocal Ġy Ġcoordinate Ġof Ġfirst Ġair Ġblock ĊĠĠĠĠ Ġ* Ġ@ param Ġl z Ġlocal Ġz Ġcoordinate ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġdecor ate ( chunk : ĠChunk , Ġlx : ĠInt , Ġly : ĠInt , Ġl z : ĠInt ) Ċ Ċ }