package Ġnet . cy dh ra . tech n ocracy . foundation . content . blocks Ċ Ċ import Ġit . zer ono . mods . zero core . api . mult ib lock . IM ult ib lock Part Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . api . tile entities . T CM ulti Block Active TileEntity Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . content . tile entities . mult ib lock . tank . TileEntity Tank Multi Block Part Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . util . property s . DIMENSION S Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . util . property s . FL UID STACK Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . util . property s . POSITION Ċ import Ġnet . cy dh ra . tech n ocracy . foundation . util . property s . T ANK SIZE Ċ import Ġnet . minecraft . block . state . BlockState Container Ċ import Ġnet . minecraft . block . state . I BlockState Ċ import Ġnet . minecraft . entity . player . Entity Player Ċ import Ġnet . minecraft . tile entity . TileEntity Ċ import Ġnet . minecraft . util . Block Render Layer Ċ import Ġnet . minecraft . util . Enum Facing Ċ import Ġnet . minecraft . util . Enum Hand Ċ import Ġnet . minecraft . util . math . Block Pos Ċ import Ġnet . minecraft . world . I Block Access Ċ import Ġnet . minecraft . world . World Ċ import Ġnet . minecraftforge . common . property . I Extended BlockState Ċ import Ġjavax . vec math . Vector 3 f Ċ Ċ /** Ċ Ġ* ĠPart Ġof Ġthe Ġtank Ġmult ib lock Ġstructure . ĠUn like Ġother Ġmult ib lock Ġstructure Ġblocks , Ġthis Ġone Ġhas Ġspecial Ġbehaviour Ġto Ċ Ġ* Ġallow Ġstoring Ġparts Ġof Ġthe Ġmult ib lock Ġstate Ġwithin Ġone Ġof Ġits Ġblocks Ċ Ġ*/ Ċ class ĠT ank Structure Block < T >( un localized Name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtile Entity Constructor : Ġ() Ġ-> ĠT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg lass Side s : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrender Layer : ĠBlock Render Layer Ġ= ĠBlock Render Layer . SOLID ) ĊĠĠĠ Ġ: ĠPlain Multi Block Part Block < T >( un localized Name , Ġtile Entity Constructor , Ġg lass Side s , Ġrender Layer ) ĊĠĠĠĠĠĠĠ Ġwhere ĠT Ġ: ĠTile Entity , ĠT Ġ: ĠT CM ulti Block Active TileEntity , ĠT Ġ: ĠI Mult ib lock Part Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Hard ness ( 3 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Block Activated ( world In : ĠWorld , Ġpos : ĠBlockPos , Ġstate : ĠI BlockState , Ġplayer In : ĠEntity Player , Ġhand : ĠEnum Hand , Ġfacing : ĠEnum Facing , Ġhit X : ĠFloat , Ġhit Y : ĠFloat , Ġhit Z : ĠFloat ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! player In . is S ne aking ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontroller TileEntity Ġ= Ġget Multi Block Part TileEntity ( world In , Ġpos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( controller TileEntity . validate Structure ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller TileEntity . on Activate ( world In , Ġpos , Ġplayer In , Ġhand , Ġfacing ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Block Activated ( world In , Ġpos , Ġstate , Ġplayer In , Ġhand , Ġfacing , Ġhit X , Ġhit Y , Ġhit Z ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Extended State ( state : ĠI BlockState , Ġworld : ĠI Block Access ?, Ġpos : ĠBlockPos ?): ĠI Extended BlockState Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( world Ġ!= Ġnull Ġ&& Ġpos Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtile Ġ= Ġworld . get TileEntity ( pos ) Ġas ? ĠTile Entity Tank Multi Block Part ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġ( state Ġas ĠI Extended BlockState ). with Property ( FL UID STACK , Ġnull ). with Property ( DIMENSION S , Ġnull ). with Property ( T ANK SIZE , Ġnull ). with Property ( POSITION , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tile . fluid Comp . is Attached Ġ&& Ġtile . mult ib lock Controller Ġ!= Ġnull Ġ&& Ġtile . mult ib lock Controller !!. is As semb led Ġ&& Ġtile . mult ib lock Controller !!. controller TileEntity Ġ== Ġtile Ġ&& Ġtile . fluid Comp . inner Component . fluid . current Fluid Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġminimum Coord Ġ= Ġtile . mult ib lock Controller !!. minimum Coord !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmaximum Coord Ġ= Ġtile . mult ib lock Controller !!. maximum Coord !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize X Ġ= Ġmaximum Coord . x Ġ- Ġminimum Coord . x Ġ+ Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize Y Ġ= Ġmaximum Coord . y Ġ- Ġminimum Coord . y Ġ+ Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize Z Ġ= Ġmaximum Coord . z Ġ- Ġminimum Coord . z Ġ+ Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( state Ġas ĠI Extended BlockState ). with Property ( FL UID STACK , Ġtile . fluid Comp . inner Component . fluid . current Fluid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Property ( DIMENSION S , ĠVector 3 f ( size X , Ġsize Y , Ġsize Z )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Property ( T ANK SIZE , Ġtile . fluid Comp . inner Component . fluid . capacity Ġas ĠInteger ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Property ( POSITION , Ġpos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ( state Ġas ĠI Extended BlockState ). with Property ( FL UID STACK , Ġnull ). with Property ( DIMENSION S , Ġnull ). with Property ( T ANK SIZE , Ġnull ). with Property ( POSITION , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Light Value ( state : ĠI BlockState , Ġworld : ĠI Block Access , Ġpos : ĠBlockPos ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtile Ġ= Ġworld . get TileEntity ( pos ) Ġas ? ĠTile Entity Tank Multi Block Part Ġ?: Ġreturn Ġsuper . get Light Value ( state , Ġworld , Ġpos ) ĊĠĠĠĠĠĠĠ Ġval Ġcontroller Ġ= Ġtile . mult ib lock Controller ?. controller TileEntity Ġ?: Ġreturn Ġsuper . get Light Value ( state , Ġworld , Ġpos ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( controller . is Machine As semb led Ġ&& Ġcontroller Ġ== Ġtile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfluid Ġ= Ġtile . fluid Comp . inner Component . fluid . current Fluid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tile . fluid Comp . is Attached Ġ&& Ġfluid Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfluid . fluid . l umin osity ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . get Light Value ( state , Ġworld , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Light Opacity ( state : ĠI BlockState , Ġworld : ĠI Block Access , Ġpos : ĠBlockPos ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate BlockState (): ĠBlock State Container Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBlock State Container . Builder ( this ). add ( FL UID STACK ). add ( DIMENSION S ). add ( T ANK SIZE ). add ( POSITION ). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Render In Layer ( state : ĠI BlockState , Ġlayer : ĠBlock Render Layer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ }