package Ġorg . eln 2 . mc . common . blocks . cell Ċ Ċ import Ġnet . minecraft . core . Block Pos Ċ import Ġnet . minecraft . core . Direction Ċ import Ġnet . minecraft . resources . Resource Location Ċ import Ġnet . minecraft . world . level . Block Getter Ċ import Ġnet . minecraft . world . level . block . state . BlockState Ċ import Ġnet . minecraft . world . phys . shapes . Boolean Op Ċ import Ġnet . minecraft . world . phys . shapes . Collision Context Ċ import Ġnet . minecraft . world . phys . shapes . Shapes Ċ import Ġnet . minecraft . world . phys . shapes . Voxel Shape Ċ import Ġorg . eln 2 . mc . common . blocks . Cell Block Base Ċ import Ġorg . eln 2 . mc . common . cell . Cell Registry Ċ import Ġorg . eln 2 . mc . extensions . Voxel Shape Extensions . align Ċ Ċ class Ġ` 1 2 v Battery Cell Block `: ĠCell Block Base () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Cell Provider (): ĠResource Location Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCell Registry .` 1 2 V _ B ATTER Y _ CELL `. id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Collision Shape ( ĊĠĠĠĠĠĠĠ Ġp State : ĠBlock State , ĊĠĠĠĠĠĠĠ Ġp Level : ĠBlock Getter , ĊĠĠĠĠĠĠĠ Ġp Pos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġp Context : ĠCollision Context ĊĠĠĠ Ġ): ĠV oxel Shape Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget For ( p State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO : ĠThis Ġis Ġdeprecated ĊĠĠĠ Ġoverride Ġfun Ġget Shape ( ĊĠĠĠĠĠĠĠ Ġp State : ĠBlock State , ĊĠĠĠĠĠĠĠ Ġp Level : ĠBlock Getter , ĊĠĠĠĠĠĠĠ Ġp Pos : ĠBlockPos , ĊĠĠĠĠĠĠĠ Ġp Context : ĠCollision Context ĊĠĠĠ Ġ): ĠV oxel Shape Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget For ( p State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbattery Body Ġ= Ġbox ( 3 . 0 , Ġ 0 . 0 , Ġ 2 . 0 , Ġ 1 3 . 0 , Ġ 9 . 0 , Ġ 1 4 . 0 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbattery Red Lead Ġ= Ġbox ( 7 . 0 , Ġ 0 . 0 , Ġ 0 . 0 , Ġ 9 . 0 , Ġ 9 . 0 , Ġ 2 . 0 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbattery Black Lead Ġ= Ġbox ( 7 . 0 , Ġ 0 . 0 , Ġ 1 4 . 0 , Ġ 9 . 0 , Ġ 9 . 0 , Ġ 1 6 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġshape Ġ= ĠShapes . join Un optimized ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShapes . join Un optimized ( battery Red Lead , Ġbattery Black Lead , ĠBoolean Op . OR ), Ġbattery Body , ĠBoolean Op . OR ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcache Ġ= ĠHashMap < BlockState , ĠV oxel Shape >() ĊĊĠĠĠĠĠĠĠ Ġfun Ġget For ( state Ġ: ĠBlock State ) Ġ: ĠV oxel Shape Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcache . compute If Absent ( state ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( val Ġfacing Ġ= Ġstate . getValue ( F ACING )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . NORTH Ġ-> Ġshape ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . SO UTH Ġ-> Ġshape ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . EAST Ġ-> Ġshape . align ( Direction . NORTH , ĠDirection . EAST ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDirection . WEST Ġ-> Ġshape . align ( Direction . NORTH , ĠDirection . WEST ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġerror (" Unhandled Ġdir : Ġ$ facing ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ