package Ġmods . better fol i age . chunk Ċ Ċ import Ġnet . minecraft . util . math . Block Pos Ċ import Ġnet . minecraft . world . Block View Ċ import Ġnet . minecraft . world . Light Type Ċ import Ġnet . minecraft . world . World View Ċ Ċ /** Ċ Ġ* ĠDeleg ating Ġ[ I Block Access ] Ġthat Ġf akes Ġa Ġ_ modified _ Ġlocation Ġto Ġreturn Ġvalues Ġfrom Ġa Ġ_ target _ Ġlocation . Ċ Ġ* ĠAll Ġother Ġlocations Ġare Ġhandled Ġnormally . Ċ Ġ* Ċ Ġ* Ġ@ param [ original ] Ġthe Ġ[ I Block Access ] Ġthat Ġis Ġdeleg ated Ġto Ċ Ġ*/ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ", Ġ" NULL ABILITY _ MIS MATCH _ BASE D _ ON _ JAVA _ AN NOT ATIONS ", Ġ" Has Platform Type ") Ċ open Ġclass ĠOffset Block View ( open Ġval Ġoriginal : ĠBlock View , Ġval Ġmod ded : ĠBlockPos , Ġval Ġtarget : ĠBlockPos ) Ġ: ĠBlock View Ġ{ ĊĠĠĠ Ġinline Ġfun Ġactual Pos ( pos : ĠBlockPos ) Ġ= Ġif Ġ( pos Ġ!= Ġnull Ġ&& Ġpos . x Ġ== Ġmod ded . x Ġ&& Ġpos . y Ġ== Ġmod ded . y Ġ&& Ġpos . z Ġ== Ġmod ded . z ) Ġtarget Ġelse Ġpos ĊĊĠĠĠ Ġoverride Ġfun Ġget BlockState ( pos : ĠBlockPos ) Ġ= Ġoriginal . getBlock State ( actual Pos ( pos )) ĊĠĠĠ Ġoverride Ġfun Ġget Block Entity ( pos : ĠBlockPos ) Ġ= Ġoriginal . getBlock Entity ( actual Pos ( pos )) ĊĠĠĠ Ġoverride Ġfun Ġget Fluid State ( pos : ĠBlockPos ) Ġ= Ġoriginal . get Fluid State ( actual Pos ( pos )) ĊĠĠĠ Ġoverride Ġfun Ġget Height (): ĠInt Ġ= Ġoriginal . height ĊĠĠĠ Ġoverride Ġfun Ġget Bottom Y (): ĠInt Ġ= Ġoriginal . bottom Y Ċ } Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ", Ġ" NULL ABILITY _ MIS MATCH _ BASE D _ ON _ JAVA _ AN NOT ATIONS ", Ġ" Has Platform Type ") Ċ class ĠOffset Ext Block View ( val Ġoriginal : ĠWorld View , Ġval Ġmod ded : ĠBlockPos , Ġval Ġtarget : ĠBlockPos ) Ġ: ĠWorld View Ġby Ġoriginal Ġ{ ĊĠĠĠ Ġinline Ġfun Ġactual Pos ( pos : ĠBlockPos ) Ġ= Ġif Ġ( pos Ġ!= Ġnull Ġ&& Ġpos . x Ġ== Ġmod ded . x Ġ&& Ġpos . y Ġ== Ġmod ded . y Ġ&& Ġpos . z Ġ== Ġmod ded . z ) Ġtarget Ġelse Ġpos ĊĊĠĠĠ Ġoverride Ġfun Ġget BlockState ( pos : ĠBlockPos ) Ġ= Ġoriginal . getBlock State ( actual Pos ( pos )) ĊĠĠĠ Ġoverride Ġfun Ġget Block Entity ( pos : ĠBlockPos ) Ġ= Ġoriginal . getBlock Entity ( actual Pos ( pos )) ĊĠĠĠ Ġoverride Ġfun Ġget Fluid State ( pos : ĠBlockPos ) Ġ= Ġoriginal . get Fluid State ( actual Pos ( pos )) ĊĊĠĠĠ Ġoverride Ġfun Ġget Light Level ( type : ĠLight Type , Ġpos : ĠBlockPos ) Ġ= Ġoriginal . get Light Level ( type , Ġactual Pos ( pos )) ĊĠĠĠ Ġoverride Ġfun Ġget Base Light Level ( pos : ĠBlockPos , Ġlight : ĠInt ) Ġ= Ġoriginal . getBase Light Level ( actual Pos ( pos ), Ġlight ) ĊĠĠĠ Ġoverride Ġfun Ġget Bio me ( pos : ĠBlockPos ) Ġ= Ġoriginal . get Bio me ( actual Pos ( pos )) Ċ } Ċ Ċ /** Ċ Ġ* ĠTemp or arily Ġreplaces Ġthe Ġ[ I Block Reader ] Ġused Ġby Ġthis Ġ[ Block Context ] Ġand Ġthe Ġcorresponding Ġ[ Extended Render Blocks ] Ċ Ġ* Ġto Ġuse Ġan Ġ[ Offset Env Block Reader ] Ġwhile Ġexecuting Ġthis Ġlambda . Ċ Ġ* Ċ Ġ* Ġ@ param [ mod ded ] Ġthe Ġ_ modified _ Ġlocation Ċ Ġ* Ġ@ param [ target ] Ġthe Ġ_ target _ Ġlocation Ċ Ġ* Ġ@ param [ func ] Ġthe Ġlambda Ġto Ġexecute Ċ Ġ*/ Ċ // inline Ġfun Ġ< re ified ĠT > ĠBlock Context . with Offset ( mod ded : ĠInt 3 , Ġtarget : ĠInt 3 , Ġfunc : Ġ() Ġ-> ĠT ): ĠT Ġ{ Ċ // ĠĠĠ Ġval Ġoriginal Ġ= Ġreader !! Ċ // ĠĠĠ Ġreader Ġ= ĠOffset Env Block Reader ( original , Ġpos Ġ+ Ġmod ded , Ġpos Ġ+ Ġtarget ) Ċ // ĠĠĠ Ġval Ġresult Ġ= Ġfunc () Ċ // ĠĠĠ Ġreader Ġ= Ġoriginal Ċ // ĠĠĠ Ġreturn Ġresult Ċ //} Ċ