package Ġme . ste ven . ind rev . components . mult ib lock Ċ Ċ import Ġme . ste ven . ind rev . blocks . machine . Horizontal Facing Machine Block Ċ import Ġnet . minecraft . block . entity . Block Entity Ċ import Ġnet . minecraft . client . Minecraft Client Ċ import Ġnet . minecraft . client . render . Vertex Consumer Provider Ċ import Ġnet . minecraft . client . render . block . entity . Block Entity Renderer Ċ import Ġnet . minecraft . client . util . math . Matrix Stack Ċ import Ġnet . minecraft . util . Block Rotation Ċ Ċ class ĠMult ib lock Block Entity Renderer < T Ġ: ĠBlock Entity >( val Ġprovider : Ġ( T ) Ġ-> ĠMulti Block Component ) Ġ: ĠBlock Entity Renderer < T > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrender ( ĊĠĠĠĠĠĠĠ Ġentity : ĠT , ĊĠĠĠĠĠĠĠ Ġtick Delta : ĠFloat , ĊĠĠĠĠĠĠĠ Ġmatrices : ĠMatrix Stack , ĊĠĠĠĠĠĠĠ Ġvertex Consum ers : ĠVertex Consumer Provider , ĊĠĠĠĠĠĠĠ Ġlight : ĠInt , ĊĠĠĠĠĠĠĠ Ġoverlay : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmult ib lock Ġ= Ġprovider ( entity ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! mult ib lock . should Render Ho log ram ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġrotation Ġ= ĠMult ib lock Matcher . rotate Block ( entity . cached State [ Horizontal Facing Machine Block . HORIZONTAL _ F ACING ]. op pos ite ) ĊĠĠĠĠĠĠĠ Ġval Ġdef Ġ= Ġmult ib lock . getSelected Matcher ( entity . world !! , Ġentity . pos , Ġentity . cached State ). definition ĊĠĠĠĠĠĠĠ Ġdef . holder . variants . values . toList ()[ mult ib lock . variant Ġ% Ġdef . holder . variants . size ]. forEach Ġ{ Ġ( offset , Ġstate ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrices . push () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrotated Ġ= Ġoffset . rotate ( rotation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblock Pos Ġ= Ġentity . pos . subtract ( rot ated ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblock State Ġ= Ġentity . world !!. getBlock State ( block Pos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( block State . material . is Replace able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatrices . translate (- rot ated . x . toDouble () Ġ+ Ġ 0 . 2 5 , Ġ- rot ated . y . toDouble () Ġ+ Ġ 0 . 2 5 , Ġ- rot ated . z . toDouble () Ġ+ Ġ 0 . 2 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatrices . scale ( 0 . 5 f , Ġ 0 . 5 f , Ġ 0 . 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMinecraft Client . getInstance (). block Render Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. render Block As Entity ( state . display . rotate ( rotation . rotate ( Block Rotation . CLOCK WISE _ 1 8 0 )), Ġmatrices , Ġvertex Consum ers , Ġ 1 5 7 2 8 8 8 0 , Ġoverlay ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrices . pop () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrenders Outside BoundingBox ( block Entity : ĠT ): ĠBoolean Ġ= Ġtrue Ċ }