package Ġcom . k ne el awk . w ired red stone . part Ċ Ċ import Ġa lex i il . mc . lib . multipart . api . Multipart Holder Ċ import Ġa lex i il . mc . lib . multipart . api . Part Definition Ċ import Ġa lex i il . mc . lib . net . IM sg Read Ctx Ċ import Ġa lex i il . mc . lib . net . IM sg Write Ctx Ċ import Ġa lex i il . mc . lib . net . Net Byte Buf Ċ import Ġcom . k ne el awk . w ired red stone . util . Direction Utils Ċ import Ġnet . minecraft . nbt . N bt Compound Ċ import Ġnet . minecraft . util . math . Direction Ċ Ċ abstract Ġclass ĠAbstract Rot ated Part Ġ: ĠAbstract Connect able Part , ĠRot ated Part Ġ{ ĊĠĠĠ Ġvar Ġdirection : ĠDirection ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġdefinition : ĠPart Definition , Ġholder : ĠMultip art Holder , Ġside : ĠDirection , Ġconnections : ĠU Byte , Ġdirection : ĠDirection ĊĠĠĠ Ġ) Ġ: Ġsuper ( definition , Ġholder , Ġside , Ġconnections ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDirection Utils . assert Horizontal ( direction ) ĊĠĠĠĠĠĠĠ Ġthis . direction Ġ= Ġdirection ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( definition : ĠPart Definition , Ġholder : ĠMultip art Holder , Ġtag : ĠNbt Compound ) Ġ: Ġsuper ( ĊĠĠĠĠĠĠĠ Ġdefinition , Ġholder , Ġtag ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdirection Ġ= ĠDirection Utils . HORIZONTAL S [ tag . getByte (" direction "). toInt (). coerce In ( 0 .. 3 )] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( definition : ĠPart Definition , Ġholder : ĠMultip art Holder , Ġbuffer : ĠNet Byte Buf , Ġctx : ĠI Msg Read Ctx ) Ġ: Ġsuper ( ĊĠĠĠĠĠĠĠ Ġdefinition , Ġholder , Ġbuffer , Ġctx ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdirection Ġ= ĠDirection Utils . HORIZONTAL S [ buffer . read Fixed Bits ( 2 ). coerce In ( 0 .. 3 )] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Tag (): ĠNbt Compound Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġsuper . to Tag () ĊĠĠĠĠĠĠĠ Ġtag . put Byte (" direction ", Ġdirection . horizontal . to Byte ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġtag ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite Creation Data ( buffer : ĠNet Byte Buf , Ġctx : ĠI Msg Write Ctx ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . write Creation Data ( buffer , Ġctx ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Fixed Bits ( direction . horizontal , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite Render Data ( buffer : ĠNet Byte Buf , Ġctx : ĠI Msg Write Ctx ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . write Render Data ( buffer , Ġctx ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Fixed Bits ( direction . horizontal , Ġ 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġread Render Data ( buffer : ĠNet Byte Buf , Ġctx : ĠI Msg Read Ctx ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . read Render Data ( buffer , Ġctx ) ĊĠĠĠĠĠĠĠ Ġdirection Ġ= ĠDirection Utils . HORIZONTAL S [ buffer . read Fixed Bits ( 2 ). coerce In ( 0 .. 3 )] ĊĠĠĠ Ġ} Ċ } Ċ