package Ġcom . k ne el awk . w ired red stone . util Ċ Ċ import Ġa lex i il . mc . lib . multipart . api . Multipart Util Ċ import Ġcom . k ne el awk . graph lib . util . Side d Pos Ċ import Ġcom . k ne el awk . w ired red stone . compat . cc . CC Integration Handler Ċ import Ġcom . k ne el awk . w ired red stone . part . Bund led Power able Part Ċ import Ġnet . minecraft . server . world . Server World Ċ import Ġnet . minecraft . util . D ye Color Ċ import Ġnet . minecraft . util . math . Block Pos Ċ import Ġnet . minecraft . util . math . Direction Ċ import Ġnet . minecraft . world . World Ċ Ċ object ĠBund led Cable Utils Ġ{ ĊĠĠĠ Ġfun Ġget Bund led Cable Input ( world : ĠServer World , Ġpos : ĠS ided Pos , Ġconnections : ĠU Byte , Ġblock age : ĠU Byte ): ĠU Long Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġreceiving Side s ( pos , Ġconnections , Ġblock age ). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Single Bund led Cable Input ( world , ĠS ided Pos ( pos . pos , Ġit )) ĊĠĠĠĠĠĠĠ Ġ}. max Power () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Bund led Cable Input ( ĊĠĠĠĠĠĠĠ Ġworld : ĠServer World , Ġpos : ĠS ided Pos , Ġinner : ĠD ye Color , Ġconnections : ĠU Byte , Ġblock age : ĠU Byte ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġreceiving Side s ( pos , Ġconnections , Ġblock age ). constrained Max Of ( 0 , Ġ 1 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Single Bund led Cable Input ( world , ĠS ided Pos ( pos . pos , Ġit ), Ġinner ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreceiving Side s ( pos : ĠS ided Pos , Ġconnections : ĠU Byte , Ġblock age : ĠU Byte ): ĠSequence < Direction > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDirection . values (). as Sequence (). filter Ġ{ Ġa Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcard inal Ġ= ĠRotation Utils . un rot ated Direction ( pos . side , Ġa ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ== Ġpos . side Ġ|| Ġ( Direction Utils . is Horizontal ( card inal ) Ġ&& ĠConnection Utils . is External ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnections , Ġcard inal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ&& Ġ! Block age Utils . is Blocked ( block age , Ġcard inal )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Single Bund led Cable Input ( world : ĠServer World , Ġpos : ĠS ided Pos ): ĠU Long Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshort 2 Long ( CC Integration Handler . getB und led Cable Input ( world , Ġpos )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Single Bund led Cable Input ( world : ĠServer World , Ġpos : ĠS ided Pos , Ġinner : ĠD ye Color ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget ( get Single Bund led Cable Input ( world , Ġpos ), Ġinner ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Bund led Cable Output ( world : ĠWorld , Ġpos : ĠS ided Pos ): ĠU Long ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmultipart Ġ= ĠMultip art Util . get ( world , Ġpos . pos ) Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġparts Ġ= Ġmultipart . getAll Parts Ġ{ Ġit Ġis ĠBund led Power able Part Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( parts . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġparts . as Sequence (). map Ġ{ Ġ( it Ġas ĠBund led Power able Part ). get Power ( pos . side ) Ġ}. max Power () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Bund led Cable Output ( world : ĠWorld , Ġpos : ĠBlockPos ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCC Integration Handler . has Bund led Cable Output ( world , Ġpos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget ( power : ĠU Long , Ġinner : ĠD ye Color ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ(( power Ġshr Ġ( inner . id Ġshl Ġ 2 )) Ġand Ġ 0 xF u L ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ( power : ĠU Long , Ġinner : ĠD ye Color , Ġinner Power : ĠInt ): ĠU Long Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( power Ġand Ġmask ( inner . id ). inv ()) Ġor Ġ(( inner Power Ġand Ġ 0 xF ). to UL ong () Ġshl Ġ( inner . id Ġshl Ġ 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlong 2 Short ( power : ĠU Long ): ĠU Short Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġres : ĠU Short Ġ= Ġ 0 u ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ 1 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmask Ġ= Ġmask ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( power Ġand Ġmask Ġ!= Ġ 0 u L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= Ġres Ġor Ġ( 1 u Ġshl Ġi ). to U Short () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġres ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshort 2 Long ( signals : ĠU Short ): ĠU Long Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġres : ĠU Long Ġ= Ġ 0 u L ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ 1 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( signals Ġand Ġ( 1 u Ġshl Ġi ). to U Short () Ġ!= Ġ 0 u . to U Short ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= Ġres Ġor Ġmask ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġres ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠSequence < UL ong >. max Power (): ĠU Long Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfold ( 0 u L ) Ġ{ Ġacc , Ġinput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġres Ġ= Ġacc ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ 1 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmask Ġ= Ġmask ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( acc Ġand Ġmask Ġ< Ġinput Ġand Ġmask ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= Ġ( acc Ġand Ġmask . inv ()) Ġor Ġ( input Ġand Ġmask ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġres ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmask ( index : ĠInt ): ĠU Long Ġ= Ġ 0 xF u L Ġshl Ġ( index Ġshl Ġ 2 ) Ċ } Ċ