package Ġnet . cy dh ra . tech n ocracy . foundation . content . blocks . wrapper Ċ Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . api . blocks . util . I BlockState Mapper Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . content . blocks . Abstract TileEntity Block Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . content . blocks . block Wrapper Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . content . blocks . tile Wrapper Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . content . events . Structure Dis band Event Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . content . tile entities . wrapper . Block Wrapper TileEntity Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . util . property s . BLOCK STATE Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . util . property s . POSITION Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . util . structures . Block Info Ċ import Ġnet . minecraft . block . material . Material Ċ import Ġnet . minecraft . block . properties . Property Bool Ċ import Ġnet . minecraft . block . state . Block Face Shape Ċ import Ġnet . minecraft . block . state . BlockState Container Ċ import Ġnet . minecraft . block . state . I BlockState Ċ import Ġnet . minecraft . client . particle . Particle Dig ging Ċ import Ġnet . minecraft . client . particle . Particle Manager Ċ import Ġnet . minecraft . client . renderer . block . model . Model Resource Location Ċ import Ġnet . minecraft . cre ativ et ab . Creative Tabs Ċ import Ġnet . minecraft . entity . Entity Ċ import Ġnet . minecraft . entity . Entity Living Ċ import Ġnet . minecraft . entity . Entity Living Base Ċ import Ġnet . minecraft . entity . player . Entity Player Ċ import Ġnet . minecraft . item . ItemStack Ċ import Ġnet . minecraft . tile entity . TileEntity Ċ import Ġnet . minecraft . util .* Ċ import Ġnet . minecraft . util . math . Axis Aligned BB Ċ import Ġnet . minecraft . util . math . Block Pos Ċ import Ġnet . minecraft . util . math . Ray Trace Result Ċ import Ġnet . minecraft . util . math . Vec 3 d Ċ import Ġnet . minecraft . world . Explo sion Ċ import Ġnet . minecraft . world . I Block Access Ċ import Ġnet . minecraft . world . World Ċ import Ġnet . minecraft . world . World Server Ċ import Ġnet . minecraftforge . common . I Plant able Ċ import Ġnet . minecraftforge . common . Minecraft Forge Ċ import Ġnet . minecraftforge . common . property . I Extended BlockState Ċ import Ġnet . minecraftforge . fml . common . Optional Ċ import Ġnet . minecraftforge . fml . rel a unch er . Side Ċ import Ġnet . minecraftforge . fml . rel a unch er . Side Only Ċ import Ġteam . ch ise l . ct m . api . IF acade Ċ import Ġjava . util . concurrent . Thread Local Random Ċ Ċ @ Optional . Interface ( iface Ġ= Ġ" team . ch ise l . ct m . api . IF acade ", Ġmod id Ġ= Ġ" ct m ") Ċ open Ġclass ĠBlock Wrapper Block ( val Ġname : ĠString Ġ= Ġ" block wrapper ") Ġ: ĊĠĠĠ ĠAbstract TileEntity Block ( name , Ġmaterial Ġ= ĠMaterial . CL OTH ), ĠIF acade , ĠI BlockState Mapper Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Creative Tab To Display On (): ĠCreative Tabs ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// private Ġvar ĠR ENDER _ TYPE : ĠProperty Enum < Render Type > Ġ= ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠ ĠProperty Enum . create (" render type ", ĠRender Type :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠO pa que Cube : ĠProperty Bool Ġ= ĠProperty Bool . create (" opaque cube ") ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠIs In visible : ĠProperty Bool Ġ= ĠProperty Bool . create (" invisible ") ĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠFull Cube : ĠProperty Bool Ġ= ĠProperty Bool . create (" full cube ") ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠTrans luc ent : ĠProperty Bool Ġ= ĠProperty Bool . create (" trans luc ent ") ĊĊĠĠĠĠĠĠĠ Ġfun Ġget ( world : ĠWorld , Ġpos : ĠBlockPos , Ġplayer In : ĠEntity Player , Ġhas Tile : ĠBoolean ): ĠI BlockState Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( has Tile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtile Wrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock Wrapper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. getState For Placement ( world , Ġpos , ĠEnum Facing . NORTH , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 , Ġplayer In , Ġplayer In . active Hand ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// private Ġvar ĠUse Neighbor Brightness : ĠProperty Bool Ġ= ĠProperty Bool . create (" nb brightness ") ĊĠĠĠĠĠĠĠ Ġ// private Ġvar ĠCol lide Check : ĠProperty Bool Ġ= ĠProperty Bool . create (" col lide check ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Render Type ( state : ĠI BlockState ): ĠEnum Block Render Type Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( cache State . getValue ( IsIn visible )) ĠEnum Block Render Type . IN VISIBLE Ġelse ĠEnum Block Render Type . MODEL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcache State Ġ= Ġdefault State ĊĊĠĠĠ Ġ// because Ġm inecraft Ġis Ġusing Ġthe Ġdefault Ġstate Ġfor Ġget Render Type Ġwe Ġneed Ġto Ġcache Ġthe Ġstate Ġin Ġthis Ġmethod ĊĠĠĠ Ġ// as Ġit Ġgets Ġcalled Ġright Ġbefore Ġthe Ġrender Ġtype Ġis Ġqueried ĊĠĠĠ Ġoverride Ġfun Ġcan Render In Layer ( state : ĠI BlockState , Ġlayer : ĠBlock Render Layer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġcache State Ġ= Ġstate ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Har vest Block ( world : ĠI Block Access , Ġpos : ĠBlockPos , Ġplayer : ĠEntity Player ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġ_) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġvar Ġstate Ġ= Ġworld . getBlock State ( pos ) ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate . block . get Actual State ( state , Ġworld , Ġpos ) ĊĠĠĠĠĠĠĠ Ġif Ġ( state . material . is Tool Not Required ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstack Ġ= Ġplayer . held Item Main hand ĊĠĠĠĠĠĠĠ Ġval Ġtool : ĠString ? Ġ= Ġinfo . block . get Har vest Tool ( state ) ĊĠĠĠĠĠĠĠ Ġif Ġ( stack . isEmpty Ġ|| Ġtool Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġplayer . can Har vest Block ( state ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtool Level Ġ= Ġstack . item . get Har vest Level ( stack , Ġtool , Ġplayer , Ġstate ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( tool Level Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . can Har vest Block ( state ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġtool Level Ġ>= Ġinfo . block . get Har vest Level ( state ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġenum Ġclass ĠRender Type ( val Ġtype : ĠString ) Ġ: ĠI String Serializable Ġ{ ĊĠĠĠĠĠĠĠ ĠIN VISIBLE (" invisible "), ĊĠĠĠĠĠĠĠ ĠLI Q UID (" liquid "), ĊĠĠĠĠĠĠĠ ĠENT ITY BLOCK _ ANIM ATED (" entity block animated "), ĊĠĠĠĠĠĠĠ ĠMODEL (" model "); ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtype ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate BlockState (): ĠBlock State Container Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBlock State Container . Builder ( this ). add ( IsIn visible ). add ( Opaque Cube ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( Full Cube ). add ( Trans luc ent ) /*. add ( Col lide Check ) */ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* . add ( Use Neighbor Brightness ) */ . add ( POSITION ). add ( BLOCK STATE ). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Opaque Cube ( state : ĠI BlockState ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstate . getValue ( Opaque Cube ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Full Cube ( state : ĠI BlockState ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstate . getValue ( Full Cube )// Ġsuper . is Full Cube ( state ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/*@ Deprecated ("") ĊĠĠĠ Ġoverride Ġfun Ġis Top Solid ( state : ĠI BlockState ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstate . material . is Opaque Ġ&& Ġstate . is Full Cube ĊĠĠĠ Ġ}*/ ĊĊĠĠĠ Ġ@ Deprecated ("") ĊĠĠĠ Ġoverride Ġfun Ġis Full Block ( state : ĠI BlockState ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ/* state ?. getValue ( Full Block ) Ġ?: */ Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Deprecated ("") ĊĠĠĠ Ġ@ Side Only ( Side . CLIENT ) ĊĠĠĠ Ġoverride Ġfun Ġis Trans luc ent ( state : ĠI BlockState ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstate ?. getValue ( Trans luc ent ) Ġ?: Ġtrans luc ent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Normal Cube ( state : ĠI BlockState , Ġworld : ĠI Block Access , Ġpos : ĠBlockPos ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġsuper . is Normal Cube ( state , Ġworld , Ġpos ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . is Normal Cube ( info . state , Ġworld , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/*@ Deprecated ("") ĊĠĠĠ Ġoverride Ġfun Ġget Light Value ( state : ĠI BlockState ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlight Value ĊĠĠĠ Ġ}*/ ĊĊĠĠĠ Ġ@ Deprecated ("") ĊĠĠĠ Ġoverride Ġfun Ġget Use Neighbor Brightness ( state : ĠI BlockState ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġuse Neighbor Brightness ĊĠĠĠĠĠĠĠ Ġ// if Ġ( state Ġ== Ġnull ) Ġreturn Ġuse Neighbor Brightness ĊĠĠĠĠĠĠĠ Ġ// return Ġ! is Opaque Cube ( state ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Har vest Tool ( state : ĠI BlockState ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Player Relative Block Hard ness ( ĊĠĠĠĠĠĠĠ Ġstate : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġplayer : ĠEntity Player , ĊĠĠĠĠĠĠĠ Ġworld In : ĠWorld , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos ĊĠĠĠ Ġ): ĠFloat Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world In , Ġpos ) Ġ?: Ġreturn Ġ 1 f ĊĊĠĠĠĠĠĠĠ Ġval Ġhard ness Ġ= Ġinfo . state . getBlock Hard ness ( world , Ġpos ) ĊĠĠĠĠĠĠĠ Ġif Ġ( hard ness Ġ< Ġ 0 . 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 . 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! can Har vest Block ( world In , Ġpos , Ġplayer )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . get Dig Speed ( info . state , Ġpos ) Ġ/ Ġhard ness Ġ/ Ġ 1 0 0 f ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . get Dig Speed ( info . state , Ġpos ) Ġ/ Ġhard ness Ġ/ Ġ 3 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Pass able ( world In : ĠI Block Access , Ġpos : ĠBlockPos ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world In , Ġpos ) Ġ?: Ġreturn Ġsuper . is Pass able ( world In , Ġpos ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . is Pass able ( world , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġin fix Ġfun ĠInt . or ( b : ĠBoolean ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġor Ġif Ġ( b ) Ġ 0 x 1 Ġelse Ġ 0 x 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Destroy Effects ( world : ĠWorld , Ġpos : ĠBlockPos , Ġmanager : ĠParticle Manager ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġsuper . add Destroy Effects ( world , Ġpos , Ġmanager ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġstate Ġ= Ġinfo . state ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! state . block . is Air ( state , Ġworld , Ġpos ) Ġ&& Ġ! state . block . add Destroy Effects ( world , Ġpos , Ġmanager )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate . get Actual State ( world , Ġpos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 .. 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( k Ġin Ġ 0 .. 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( l Ġin Ġ 0 .. 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd 0 Ġ= Ġ( j . toDouble () Ġ+ Ġ 0 . 5 ) Ġ/ Ġ 4 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd 1 Ġ= Ġ( k . toDouble () Ġ+ Ġ 0 . 5 ) Ġ/ Ġ 4 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd 2 Ġ= Ġ( l . toDouble () Ġ+ Ġ 0 . 5 ) Ġ/ Ġ 4 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . add Effect ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParticle Dig ging ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworld , Ġpos . x . toDouble () Ġ+ Ġd 0 , Ġpos . y . toDouble () Ġ+ Ġd 1 , Ġpos . z ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toDouble () Ġ+ Ġd 2 , Ġd 0 Ġ- Ġ 0 . 5 , Ġd 1 Ġ- Ġ 0 . 5 , Ġd 2 Ġ- Ġ 0 . 5 , Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). set Block Pos ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Meta From State ( state : ĠI BlockState ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmeta Ġ= Ġif Ġ( state . getValue ( IsIn visible )) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġshl Ġ 0 x 1 ĊĠĠĠĠĠĠĠ Ġ// meta Ġ= Ġmeta Ġor Ġstate . getValue ( Use Neighbor Brightness ) ĊĠĠĠĠĠĠĠ Ġ// meta Ġ= Ġmeta Ġshl Ġ 0 x 1 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġor Ġstate . getValue ( Trans luc ent ) ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġshl Ġ 0 x 1 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġor Ġstate . getValue ( Full Cube ) ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġshl Ġ 0 x 1 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġor Ġstate . getValue ( Opaque Cube ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmeta ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetState From Meta ( meta : ĠInt ): ĠI BlockState Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmeta Ġ= Ġmeta ĊĊĠĠĠĠĠĠĠ Ġval Ġis Opaque Cube Ġ= Ġmeta Ġand Ġ 0 x 1 Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġshr Ġ 0 x 1 ĊĊĠĠĠĠĠĠĠ Ġval Ġis Full Block Ġ= Ġmeta Ġand Ġ 0 x 1 Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġshr Ġ 0 x 1 ĊĊĠĠĠĠĠĠĠ Ġval Ġis Trans luc ent Ġ= Ġmeta Ġand Ġ 0 x 1 Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġshr Ġ 0 x 1 ĊĊĠĠĠĠĠĠĠ Ġ// val Ġget Use Neighbor Brightness Ġ= Ġmeta Ġand Ġ 0 x 1 Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ// meta Ġ= Ġmeta Ġshr Ġ 0 x 1 ĊĊĠĠĠĠĠĠĠ Ġ// val Ġcan Col lide Check Ġ= Ġmeta Ġand Ġ 0 x 1 Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ// meta Ġ= Ġmeta Ġshr Ġ 0 x 1 ĊĊĠĠĠĠĠĠĠ Ġval ĠisIn vis Ġ= Ġmeta Ġand Ġ 0 x 1 Ġ!= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . default State ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Property ( IsIn visible , ĠisIn vis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Property ( Opaque Cube , Ġis Opaque Cube ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Property ( Full Cube , Ġis Full Block ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Property ( Trans luc ent , Ġis Trans luc ent ) ĊĠĠĠĠĠĠĠ Ġ// . with Property ( Use Neighbor Brightness , Ġget Use Neighbor Brightness ) ĊĠĠĠĠĠĠĠ Ġ// . with Property ( Col lide Check , Ġcan Col lide Check ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Neighbor Change ( world : ĠI Block Access , Ġpos : ĠBlockPos , Ġneighbor : ĠBlockPos ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Neighbor Change ( world , Ġpos , Ġneighbor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Block Hard ness ( block State : ĠI BlockState , Ġworld In : ĠWorld , Ġpos : ĠBlockPos ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world In , Ġpos ) Ġ?: Ġreturn Ġ 1 f ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . getBlock Hard ness ( info . state , Ġworld , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// we Ġdont Ġdrop Ġanything Ġwe Ġdelegate Ġit Ġto Ġthe Ġwrapped Ġblock ĊĠĠĠ Ġoverride Ġfun Ġget Drop Item ( state : ĠI BlockState , Ġworld : ĠI Block Access , Ġpos : ĠBlockPos , Ġte : ĠTile Entity ?): ĠItemStack Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠItemStack . EMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" NULL ABILITY _ MIS MATCH _ BASE D _ ON _ JAVA _ AN NOT ATIONS ") ĊĠĠĠ Ġoverride Ġfun Ġhar vest Block ( ĊĠĠĠĠĠĠĠ Ġworld In : ĠWorld , ĊĠĠĠĠĠĠĠ Ġplayer : ĠEntity Player , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġstate : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġte : ĠTile Entity ?, ĊĠĠĠĠĠĠĠ Ġstack : ĠItemStack ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world In , Ġpos ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġblock Ġ= Ġinfo . block ĊĊĠĠĠĠĠĠĠ Ġ( te Ġas ? ĠBlock Wrapper TileEntity )?. block Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġblock . har vest Block ( world , Ġplayer , Ġpos , Ġinfo . state , Ġworld . get TileEntity ( pos ), Ġstack ) ĊĊĊĠĠĠĠĠĠĠ Ġ// Set Ġit Ġto Ġair Ġlike Ġthe Ġf lower Ġpot 's Ġhar vest Block Ġmethod ĊĠĠĠĠĠĠĠ Ġworld In . set Block To Air ( pos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbreak Block ( world In : ĠWorld , Ġpos : ĠBlockPos , Ġstate : ĠI BlockState ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġte Ġ= Ġworld In . get TileEntity ( pos ) ĊĊĠĠĠĠĠĠĠ Ġval Ġstructure Ġ= Ġ( te Ġas ? ĠBlock Wrapper TileEntity )?. structure UUID ĊĊĠĠĠĠĠĠĠ Ġsuper . break Block ( world In , Ġpos , Ġstate ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( structure Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġte . block Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġte . structure UUID Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Ġ= ĠStructure Dis band Event ( structure ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMinecraft Forge . EVENT _ BUS . post ( event ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Entity Col li ded With Block ( world In : ĠWorld , Ġpos : ĠBlockPos , Ġstate : ĠI BlockState , Ġentity In : ĠEntity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world In , Ġpos ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġinfo . block . on Entity Col li ded With Block ( world , Ġpos , Ġinfo . state , Ġentity In ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Enchant Power Bonus ( world : ĠWorld , Ġpos : ĠBlockPos ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġ 0 f ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . get Enchant Power Bonus ( world , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetS lip per iness ( state : ĠI BlockState , Ġworld : ĠI Block Access , Ġpos : ĠBlockPos , Ġentity : ĠEntity ?): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġ 0 f ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . getS lip per iness ( info . state , Ġworld , Ġpos , Ġentity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Explo sion Res istance ( world : ĠWorld , Ġpos : ĠBlockPos , Ġexplo der : ĠEntity ?, Ġexplo sion : ĠExplo sion ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġsuper . get Explo sion Res istance ( world , Ġpos , Ġexplo der , Ġexplo sion ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . get Explo sion Res istance ( world , Ġpos , Ġexplo der , Ġexplo sion ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Light Value ( state : ĠI BlockState , Ġworld : ĠI Block Access , Ġpos : ĠBlockPos ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . get Light Value ( info . state , Ġworld , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Be Connected To ( world : ĠI Block Access , Ġpos : ĠBlockPos , Ġfacing : ĠEnum Facing ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . can Be Connected To ( world , Ġpos , Ġfacing ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Block Face Shape ( ĊĠĠĠĠĠĠĠ Ġworld : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġstate : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġside : ĠEnum Facing ĊĠĠĠ Ġ): ĠBlock Face Shape Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn ĠBlock Face Shape . UNDEFINED ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . getBlock Face Shape ( world , Ġinfo . state , Ġpos , Ġside ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Entity Walk ( world : ĠWorld , Ġpos : ĠBlockPos , Ġentity In : ĠEntity ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġinfo . block . on Entity Walk ( world , Ġpos , Ġentity In ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlast Fall Loc : ĠBlockPos ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon F allen Up on ( world : ĠWorld , Ġpos : ĠBlockPos , Ġentity In : ĠEntity , Ġfall Distance : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Fall Loc Ġ= Ġpos ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġinfo . block . on F allen Up on ( world , Ġpos , Ġentity In , Ġfall Distance ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon L anded ( world : ĠWorld , Ġentity In : ĠEntity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( last Fall Loc Ġ== Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġlast Fall Loc !! ) Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġinfo . block . on L anded ( world , Ġentity In ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Place Block On Side ( world : ĠWorld , Ġpos : ĠBlockPos , Ġside : ĠEnum Facing ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . can Place Block On Side ( world , Ġpos , Ġside ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Place Torch On Top ( state : ĠI BlockState , Ġworld : ĠI Block Access , Ġpos : ĠBlockPos ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . can Place Torch On Top ( state , Ġworld , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetState For Placement ( ĊĠĠĠĠĠĠĠ Ġworld : ĠWorld , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġfacing : ĠEnum Facing , ĊĠĠĠĠĠĠĠ Ġhit X : ĠFloat , ĊĠĠĠĠĠĠĠ Ġhit Y : ĠFloat , ĊĠĠĠĠĠĠĠ Ġhit Z : ĠFloat , ĊĠĠĠĠĠĠĠ Ġmeta : ĠInt , ĊĠĠĠĠĠĠĠ Ġpl acer : ĠEntity Living Base , ĊĠĠĠĠĠĠĠ Ġhand : ĠEnum Hand ĊĠĠĠ Ġ): ĠI BlockState Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġworld . getBlock State ( pos ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġmeta Ġ= Ġif Ġ( state . render Type Ġ!= ĠEnum Block Render Type . MODEL ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġshl Ġ 0 x 1 ĊĠĠĠĠĠĠĠ Ġ// meta Ġ= Ġmeta Ġor Ġstate . use Neighbor Brightness () ĊĠĠĠĠĠĠĠ Ġ// meta Ġ= Ġmeta Ġshl Ġ 0 x 1 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġor Ġstate . is Trans luc ent ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġshl Ġ 0 x 1 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġor Ġstate . is Full Cube ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġshl Ġ 0 x 1 ĊĠĠĠĠĠĠĠ Ġmeta Ġ= Ġmeta Ġor Ġstate . is Opaque Cube ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . getState For Placement ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpos , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfacing , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhit X , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhit Y , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhit Z , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpl acer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhand ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Pick Block ( ĊĠĠĠĠĠĠĠ Ġstate : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġtarget : ĠRay Trace Result , ĊĠĠĠĠĠĠĠ Ġworld : ĠWorld , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġplayer : ĠEntity Player ĊĠĠĠ Ġ): ĠItemStack ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn ĠItemStack . EMPTY ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . get Pick Block ( info . state , Ġtarget , Ġworld , Ġpos , Ġplayer ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Entity Destroy ( state : ĠI BlockState , Ġworld : ĠI Block Access , Ġpos : ĠBlockPos , Ġentity : ĠEntity ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġtrue ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . can Entity Destroy ( info . state , Ġworld , Ġpos , Ġentity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Creature Spawn ( ĊĠĠĠĠĠĠĠ Ġstate : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġworld : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġtype : ĠEntity Living . Spawn Placement Type ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . can Creature Spawn ( info . state , Ġworld , Ġpos , Ġtype ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdoes Side Block Chest Opening ( ĊĠĠĠĠĠĠĠ Ġblock State : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġworld : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġside : ĠEnum Facing ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . does Side Block Chest Opening ( info . state , Ġworld , Ġpos , Ġside ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdoes Side Block Rendering ( ĊĠĠĠĠĠĠĠ Ġstate : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġworld : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġface : ĠEnum Facing ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġtrue ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . does Side Block Rendering ( info . state , Ġworld , Ġpos , Ġface ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Connect Red stone ( ĊĠĠĠĠĠĠĠ Ġstate : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġworld : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġside : ĠEnum Facing ? ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . can Connect Red stone ( info . state , Ġworld , Ġpos , Ġside ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan S ustain Le aves ( state : ĠI BlockState , Ġworld : ĠI Block Access , Ġpos : ĠBlockPos ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . can S ustain Le aves ( info . state , Ġworld , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan S ustain Plant ( ĊĠĠĠĠĠĠĠ Ġstate : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġworld : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġdirection : ĠEnum Facing , ĊĠĠĠĠĠĠĠ Ġplant able : ĠI Plant able ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . can S ustain Plant ( info . state , Ġworld , Ġpos , Ġdirection , Ġplant able ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Light Opacity ( state : ĠI BlockState , Ġworld : ĠI Block Access , Ġpos : ĠBlockPos ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . get Light Opacity ( info . state , Ġworld , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetState At View point ( ĊĠĠĠĠĠĠĠ Ġstate : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġworld : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġview point : ĠVec 3 d ĊĠĠĠ Ġ): ĠI BlockState Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġ_) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġdefault State ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . state ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Extended State ( state : ĠI BlockState , Ġworld : ĠI Block Access ?, Ġpos : ĠBlockPos ?): ĠI BlockState Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġ_) Ġ= ĠgetData ( world !! , Ġpos !! ) Ġ?: Ġreturn Ġstate ĊĠĠĠĠĠĠĠ Ġreturn Ġ( state Ġas ĠI Extended BlockState ). with Property ( POSITION , Ġpos ). with Property ( BLOCK STATE , Ġinfo . state ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Collision BoundingBox ( ĊĠĠĠĠĠĠĠ Ġblock State : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġworld In : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos ĊĠĠĠ Ġ): ĠAxis Aligned BB ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world In , Ġpos ) Ġ?: Ġreturn Ġsuper . get Collision BoundingBox ( block State , Ġworld In , Ġpos ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . get Collision BoundingBox ( info . state , Ġworld , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Selected BoundingBox ( state : ĠI BlockState , Ġworld In : ĠWorld ?, Ġpos : ĠBlockPos ): ĠAxis Aligned BB Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world In , Ġpos ) Ġ?: Ġreturn Ġsuper . getSelected BoundingBox ( state , Ġworld In , Ġpos ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . getSelected BoundingBox ( info . state , Ġworld , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget BoundingBox ( state : ĠI BlockState , Ġsource : ĠI Block Access ?, Ġpos : ĠBlockPos ): ĠAxis Aligned BB Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( source , Ġpos ) Ġ?: Ġreturn Ġsuper . get BoundingBox ( state , Ġsource , Ġpos ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . get BoundingBox ( info . state , Ġworld , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Strong Power ( ĊĠĠĠĠĠĠĠ Ġblock State : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġblock Access : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġside : ĠEnum Facing ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( block Access , Ġpos ) Ġ?: Ġreturn Ġsuper . get Strong Power ( block State , Ġblock Access , Ġpos , Ġside ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . get Strong Power ( info . state , Ġworld , Ġpos , Ġside ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Weak Power ( ĊĠĠĠĠĠĠĠ Ġblock State : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġblock Access : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġside : ĠEnum Facing ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( block Access , Ġpos ) Ġ?: Ġreturn Ġsuper . get Weak Power ( block State , Ġblock Access , Ġpos , Ġside ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . block . get Weak Power ( info . state , Ġworld , Ġpos , Ġside ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Actual State ( state : ĠI BlockState , Ġworld In : ĠI Block Access , Ġpos : ĠBlockPos ): ĠI BlockState Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . get Actual State ( state , Ġworld In , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Landing Effects ( ĊĠĠĠĠĠĠĠ Ġstate : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġworld In : ĠWorld Server , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġi block state : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġentity : ĠEntity Living Base , ĊĠĠĠĠĠĠĠ ĠnumberOf Particles : ĠInt ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġ_) Ġ= ĠgetData ( world In , Ġpos ) Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! info . block . add Landing Effects ( info . state , Ġworld In , Ġpos , Ġinfo . state , Ġentity , ĠnumberOf Particles )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld In . spawn Particle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnum Particle Types . BLOCK _ D UST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . pos X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . pos Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . pos Z , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnumberOf Particles , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 1 5 0 0 0 0 0 0 5 9 6 0 4 6 4 4 8 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetState Id ( info . state ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Running Effects ( state : ĠI BlockState , Ġworld In : ĠWorld , Ġpos : ĠBlockPos , Ġentity : ĠEntity ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( world In , Ġpos ) Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! info . block . add Running Effects ( info . state , Ġworld , Ġpos , Ġentity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( info . state . render Type Ġ!= ĠEnum Block Render Type . IN VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworld In . spawn Particle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnum Particle Types . BLOCK _ CR ACK , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . pos X Ġ+ Ġ( Thread Local Random . current (). next Double () Ġ- Ġ 0 . 5 ) Ġ* Ġentity . width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . entity BoundingBox . min Y Ġ+ Ġ 0 . 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . pos Z Ġ+ Ġ( Thread Local Random . current (). next Double () Ġ- Ġ 0 . 5 ) Ġ* Ġentity . width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- entity . motion X Ġ* Ġ 4 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- entity . motion Z Ġ* Ġ 4 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetState Id ( info . state ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetData ( world : ĠWorld ?, Ġpos : ĠBlockPos ): ĠPair < Block Info , ĠWorld >? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( world Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġtile Ġ= Ġworld . get TileEntity ( pos ) Ġas ? ĠBlock Wrapper TileEntity ĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġtile ?. block Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo Ġto Ġtile . get World ( world ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetData ( world : ĠI Block Access ?, Ġpos : ĠBlockPos ): ĠPair < Block Info , ĠI Block Access >? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( world Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġtile Ġ= Ġworld . get TileEntity ( pos ) Ġas ? ĠBlock Wrapper TileEntity ĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġtile ?. block Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo Ġto Ġtile . get Access ( world ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate New TileEntity ( world In : ĠWorld , Ġmeta : ĠInt ): ĠTile Entity Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBlock Wrapper TileEntity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshould Side Be Rendered ( ĊĠĠĠĠĠĠĠ Ġblock State : ĠI BlockState , ĊĠĠĠĠĠĠĠ Ġblock Access : ĠI Block Access , ĊĠĠĠĠĠĠĠ Ġpos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġside : ĠEnum Facing ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġworld ) Ġ= ĠgetData ( block Access , Ġpos ) Ġ?: Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . state . should Side Be Rendered ( world , Ġpos , Ġside ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Facade ( world : ĠI Block Access , Ġpos : ĠBlockPos , Ġside : ĠEnum Facing ?): ĠI BlockState Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( info , Ġ_) Ġ= ĠgetData ( world , Ġpos ) Ġ?: Ġreturn Ġdefault State ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo . state ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetModel Resource Location ( state : ĠI BlockState ): ĠModel Resource Location Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠModel Resource Location ( Resource Location (" tech n ocracy . foundation ", Ġname ), Ġ" normal ") ĊĠĠĠ Ġ} Ċ }