package Ġme . ste ven . ind rev . items Ċ Ċ import Ġme . ste ven . ind rev . blocks . Cable Block Ċ import Ġme . ste ven . ind rev . blocks . Facing Machine Block Ċ import Ġme . ste ven . ind rev . blocks . Machine Block Ċ import Ġme . ste ven . ind rev . blocks . Vertical Facing Machine Block Ċ import Ġnet . minecraft . item . Item Ċ import Ġnet . minecraft . item . Item Usage Context Ċ import Ġnet . minecraft . util . ActionResult Ċ import Ġnet . minecraft . util . math . Direction Ċ Ċ class ĠIR W rench Item ( settings : ĠSettings ) Ġ: ĠItem ( settings ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġuse On Block ( context : ĠItem Usage Context ?): ĠActionResult Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġworld Ġ= Ġcontext ?. world ĊĠĠĠĠĠĠĠ Ġif Ġ( world ?. is Client Ġ== Ġtrue ) Ġreturn Ġsuper . use On Block ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġstack Ġ= Ġcontext ?. stack ĊĠĠĠĠĠĠĠ Ġval Ġpos Ġ= Ġcontext ?. block Pos ĊĠĠĠĠĠĠĠ Ġvar Ġstate Ġ= Ġworld ?. getBlock State ( pos ) ĊĠĠĠĠĠĠĠ Ġif Ġ( state ?. block Ġis ĠC able Block Ġ&& Ġcontext ?. player ?. is S ne aking Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġside Ġ= Ġcontext . side ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperty Ġ= ĠC able Block . getProperty ( side ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate . with ( property , Ġ! state [ property ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld ?. set BlockState ( pos , Ġstate ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack ?. damage ( 1 , Ġcontext . player ) Ġ{ Ġp Ġ-> Ġp ?. send Tool Break Status ( context . hand ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠActionResult . SUCCESS ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( state ?. block Ġis ĠMachine Block ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. player ?. is S ne aking Ġ== Ġtrue Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworld ?. break Block ( pos , Ġtrue , Ġcontext . player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . contains ( VERTICAL _ F ACING ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfacing Ġ= Ġstate [ VERTICAL _ F ACING ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrotated Ġ= Ġif Ġ( facing . ordinal Ġ+ Ġ 1 Ġ>= ĠALL . size ) Ġ 0 Ġelse Ġfacing . ordinal Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate . with ( VERTICAL _ F ACING , ĠALL [ rot ated ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworld ?. set BlockState ( pos , Ġstate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . contains ( HORIZONTAL _ F ACING ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfacing Ġ= Ġstate [ HORIZONTAL _ F ACING ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrotated Ġ= Ġif Ġ( facing . horizontal Ġ+ Ġ 1 Ġ>= ĠH ORIZONTAL . size ) Ġ 0 Ġelse Ġfacing . horizontal Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate . with ( HORIZONTAL _ F ACING , ĠH ORIZONTAL [ rot ated ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworld ?. set BlockState ( pos , Ġstate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġsuper . use On Block ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstack ?. damage ( 1 , Ġcontext . player ) Ġ{ Ġp Ġ-> Ġp ?. send Tool Break Status ( context . hand ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠActionResult . SUCCESS ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . use On Block ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠALL Ġ= ĠDirection . values () ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠH ORIZONTAL Ġ= ĠALL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġdirection Ġ-> Ġdirection . axis . is Horizontal Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ Ġdir Ġ-> Ġdir . horizontal Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠV ERT ICAL _ F ACING Ġ= ĠVertical Facing Machine Block . F ACING ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠH ORIZONTAL _ F ACING Ġ= ĠF acing Machine Block . HORIZONTAL _ F ACING ĊĠĠĠ Ġ} Ċ }