package Ġme . ste ven . ind rev . block entities . storage Ċ Ċ import Ġa lex i il . mc . lib . attributes . fluid . Fluid Volume Util Ċ import Ġa lex i il . mc . lib . attributes . fluid . amount . Fluid Amount Ċ import Ġme . ste ven . ind rev . block entities . IR Sync able Block Entity Ċ import Ġme . ste ven . ind rev . blocks . misc . Tank Block Ċ import Ġme . ste ven . ind rev . components . fluid . Fluid Component Ċ import Ġme . ste ven . ind rev . registry . IR Block Registry Ċ import Ġnet . minecraft . block . BlockState Ċ import Ġnet . minecraft . nbt . N bt Compound Ċ import Ġnet . minecraft . util . math . Block Pos Ċ import Ġnet . minecraft . world . World Ċ Ċ class ĠT ank Block Entity ( pos : ĠBlockPos , Ġstate : ĠBlock State ) Ġ: ĠIR Sync able Block Entity ( IR Block Registry . T ANK _ BLOCK _ ENTITY , Ġpos , Ġstate ) Ġ{ ĊĠĠĠ Ġval Ġfluid Component Ġ= ĠFluid Component ({ Ġthis Ġ}, ĠFluid Amount . of Whole ( 8 )) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġtick ( world : ĠWorld , Ġpos : ĠBlockPos , Ġstate : ĠBlock State , Ġblock Entity : ĠT ank Block Entity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( world . is Client ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( block Entity . is Marked For Update ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock Entity . mark Dirty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock Entity . sync () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock Entity . is Marked For Update Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! state [ Tank Block . DOWN ]) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdown Ġ= Ġworld . getBlock Entity ( pos . down ()) Ġas ? ĠT ank Block Entity Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvolume Ġ= ĠFluid Volume Util . move ( block Entity . fluid Component , Ġdown . fluid Component ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! volume . amount (). is Zero ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdown . is Marked For Update Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock Entity . is Marked For Update Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite N bt ( tag : ĠNbt Compound ): ĠNbt Compound Ġ{ ĊĠĠĠĠĠĠĠ Ġfluid Component . to Tag ( tag ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . write N bt ( tag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġread N bt ( tag : ĠNbt Compound ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . read N bt ( tag ) ĊĠĠĠĠĠĠĠ Ġfluid Component . from Tag ( tag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfrom Client Tag ( tag : ĠNbt Compound ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġfluid Component . from Tag ( tag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Client Tag ( tag : ĠNbt Compound ): ĠNbt Compound Ġ{ ĊĠĠĠĠĠĠĠ Ġfluid Component . to Tag ( tag ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtag ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmark Dirty () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( world Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld !!. mark Dirty ( pos ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }