@ file : Jvm Name (" Hex Utils ") Ċ Ċ package Ġat . pe tr ak . hex cast ing . api . utils Ċ Ċ import Ġat . pe tr ak . hex cast ing . api . spell . Spell Datum Ċ import Ġat . pe tr ak . hex cast ing . api . spell . Spell List Ċ import Ġat . pe tr ak . hex cast ing . api . spell . math . Hex Coord Ċ import Ġnet . minecraft . Chat Formatting Ċ import Ġnet . minecraft . nbt . Compound Tag Ċ import Ġnet . minecraft . nbt . List Tag Ċ import Ġnet . minecraft . nbt . Long Array Tag Ċ import Ġnet . minecraft . nbt . Tag Ċ import Ġnet . minecraft . network . chat .* Ċ import Ġnet . minecraft . world . Interaction Hand Ċ import Ġnet . minecraft . world . item . ItemStack Ċ import Ġnet . minecraft . world . phys . Vec 2 Ċ import Ġnet . minecraft . world . phys . Vec 3 Ċ import Ġjava . lang . ref . Weak Reference Ċ import Ġjava . util .* Ċ import Ġkotlin . math . absolute Value Ċ import Ġkotlin . math . max Ċ import Ġkotlin . math . min Ċ import Ġkotlin . math . round ToInt Ċ import Ġkotlin . reflect . K Property Ċ Ċ const Ġval ĠT AU Ġ= ĠMath . PI Ġ* Ġ 2 . 0 Ċ const Ġval ĠS Q RT _ 3 Ġ= Ġ 1 . 7 3 2 0 5 0 8 f Ċ Ċ fun ĠVec 3 . serialize To NBT (): ĠLong Array Tag Ġ= ĊĠĠĠ ĠLong Array Tag ( long ArrayOf ( this . x . to Raw Bits (), Ġthis . y . to Raw Bits (), Ġthis . z . to Raw Bits ())) Ċ Ċ fun Ġvec From NBT ( tag : ĠLong Array ): ĠVec 3 Ġ= Ġif Ġ( tag . size Ġ!= Ġ 3 ) ĠVec 3 . ZERO Ġelse ĊĠĠĠ ĠVec 3 ( ĊĠĠĠĠĠĠĠ ĠDouble . from Bits ( tag [ 0 ]), ĊĠĠĠĠĠĠĠ ĠDouble . from Bits ( tag [ 1 ]), ĊĠĠĠĠĠĠĠ ĠDouble . from Bits ( tag [ 2 ]) ĊĠĠĠ Ġ) Ċ Ċ fun ĠVec 2 . serialize To NBT (): ĠLong Array Tag Ġ= ĊĠĠĠ ĠLong Array Tag ( long ArrayOf ( this . x . toDouble (). to Raw Bits (), Ġthis . y . toDouble (). to Raw Bits ())) Ċ Ċ fun Ġvec 2 From NBT ( tag : ĠLong Array ): ĠVec 2 Ġ= Ġif Ġ( tag . size Ġ!= Ġ 2 ) ĠVec 2 . ZERO Ġelse ĊĠĠĠ ĠVec 2 ( ĊĠĠĠĠĠĠĠ ĠDouble . from Bits ( tag [ 0 ]). toFloat (), ĊĠĠĠĠĠĠĠ ĠDouble . from Bits ( tag [ 1 ]). toFloat (), ĊĠĠĠ Ġ) Ċ Ċ fun Ġother Hand ( hand : ĠInteraction Hand ) Ġ= ĊĠĠĠ Ġif Ġ( hand Ġ== ĠInteraction Hand . MAIN _ HAND ) ĠInteraction Hand . OFF _ HAND Ġelse ĠInteraction Hand . MAIN _ HAND Ċ Ċ fun Ġfix NAN ( x : ĠDouble ): ĠDouble Ġ= Ġif Ġ( x . is Finite ()) Ġx Ġelse Ġ 0 . 0 Ċ Ċ fun Ġfind Center ( points : ĠList < Vec 2 >): ĠVec 2 Ġ{ ĊĠĠĠ Ġvar Ġmin X Ġ= ĠFloat . POSITIVE _ INFINITY ĊĠĠĠ Ġvar Ġmin Y Ġ= ĠFloat . POSITIVE _ INFINITY ĊĠĠĠ Ġvar Ġmax X Ġ= ĠFloat . NEGATIVE _ INFINITY ĊĠĠĠ Ġvar Ġmax Y Ġ= ĠFloat . NEGATIVE _ INFINITY ĊĊĠĠĠ Ġfor Ġ( pos Ġin Ġpoints ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmin X Ġ= Ġmin ( min X , Ġpos . x ) ĊĠĠĠĠĠĠĠ Ġmin Y Ġ= Ġmin ( min Y , Ġpos . y ) ĊĠĠĠĠĠĠĠ Ġmax X Ġ= Ġmax ( max X , Ġpos . x ) ĊĠĠĠĠĠĠĠ Ġmax Y Ġ= Ġmax ( max Y , Ġpos . y ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠVec 2 ( ĊĠĠĠĠĠĠĠ Ġ( min X Ġ+ Ġmax X ) Ġ/ Ġ 2 f , ĊĠĠĠĠĠĠĠ Ġ( min Y Ġ+ Ġmax Y ) Ġ/ Ġ 2 f ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun Ġcoord To Px ( coord : ĠHex Coord , Ġsize : ĠFloat , Ġoffset : ĠVec 2 ): ĠVec 2 Ġ= ĊĠĠĠ ĠVec 2 ( ĊĠĠĠĠĠĠĠ ĠS Q RT _ 3 Ġ* Ġcoord . q . toFloat () Ġ+ ĠS Q RT _ 3 Ġ/ Ġ 2 . 0 f Ġ* Ġcoord . r . toFloat (), ĊĠĠĠĠĠĠĠĠ 1 . 5 f Ġ* Ġcoord . r . toFloat () ĊĠĠĠ Ġ). scale ( size ). add ( offset ) Ċ Ċ fun Ġpx To Coord ( px : ĠVec 2 , Ġsize : ĠFloat , Ġoffset : ĠVec 2 ): ĠHex Coord Ġ{ ĊĠĠĠ Ġval Ġoffset ted Ġ= Ġpx . add ( offset . neg ated ()) ĊĠĠĠ Ġvar Ġqf Ġ= Ġ( SQ RT _ 3 Ġ/ Ġ 3 . 0 f Ġ* Ġoffset ted . x Ġ- Ġ 0 . 3 3 3 3 3 f Ġ* Ġoffset ted . y ) Ġ/ Ġsize ĊĠĠĠ Ġvar Ġrf Ġ= Ġ( 0 . 6 6 6 6 6 f Ġ* Ġoffset ted . y ) Ġ/ Ġsize ĊĊĠĠĠ Ġval Ġq Ġ= Ġqf . round ToInt () ĊĠĠĠ Ġval Ġr Ġ= Ġrf . round ToInt () ĊĠĠĠ Ġqf Ġ-= Ġq ĊĠĠĠ Ġrf Ġ-= Ġr ĊĠĠĠ Ġreturn Ġif Ġ( q . absolute Value Ġ>= Ġr . absolute Value ) ĊĠĠĠĠĠĠĠ ĠHex Coord ( q Ġ+ Ġ( qf Ġ+ Ġ 0 . 5 f Ġ* Ġrf ). round ToInt (), Ġr ) ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ ĠHex Coord ( q , Ġr Ġ+ Ġ( rf Ġ+ Ġ 0 . 5 Ġ* Ġqf ). round ToInt ()) Ċ } Ċ Ċ fun ĠString . with Style ( op : Ġ( Style ) Ġ-> ĠStyle ): ĠMutable Component Ġ= Ġas Text Component . with Style ( op ) Ċ fun ĠString . with Style ( style : ĠStyle ): ĠMutable Component Ġ= Ġas Text Component . with Style ( style ) Ċ fun ĠString . with Style ( formatting : ĠChat Formatting ): ĠMutable Component Ġ= Ġas Text Component . with Style ( formatting ) Ċ fun ĠString . with Style ( var arg Ġformatting : ĠChat Formatting ): ĠMutable Component Ġ= Ġas Text Component . with Style (* formatting ) Ċ Ċ infix Ġfun ĠString . styled With ( op : Ġ( Style ) Ġ-> ĠStyle ) Ġ= Ġwith Style ( op ) Ċ infix Ġfun ĠString . styled With ( style : ĠStyle ) Ġ= Ġwith Style ( style ) Ċ infix Ġfun ĠString . styled With ( formatting : ĠChat Formatting ) Ġ= Ġwith Style ( formatting ) Ċ Ċ infix Ġfun ĠMutable Component . styled With ( op : Ġ( Style ) Ġ-> ĠStyle ): ĠMutable Component Ġ= Ġwith Style ( op ) Ċ infix Ġfun ĠMutable Component . styled With ( style : ĠStyle ): ĠMutable Component Ġ= Ġwith Style ( style ) Ċ infix Ġfun ĠMutable Component . styled With ( formatting : ĠChat Formatting ): ĠMutable Component Ġ= Ġwith Style ( formatting ) Ċ Ċ val ĠString . black Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . BLACK Ċ val ĠMutable Component . black Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . BLACK Ċ Ċ val ĠString . dark Blue Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ BLUE Ċ val ĠMutable Component . dark Blue Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ BLUE Ċ Ċ val ĠString . dark Green Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ GREEN Ċ val ĠMutable Component . dark Green Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ GREEN Ċ Ċ val ĠString . dark A qua Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ A QUA Ċ val ĠMutable Component . dark A qua Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ A QUA Ċ Ċ val ĠString . dark Red Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ RED Ċ val ĠMutable Component . dark Red Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ RED Ċ Ċ val ĠString . dark Pur ple Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ PUR PLE Ċ val ĠMutable Component . dark Pur ple Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ PUR PLE Ċ Ċ val ĠString . gold Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . G OLD Ċ val ĠMutable Component . gold Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . G OLD Ċ Ċ val ĠString . gray Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . GRAY Ċ val ĠMutable Component . gray Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . GRAY Ċ Ċ val ĠString . dark Gray Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ GRAY Ċ val ĠMutable Component . dark Gray Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . DARK _ GRAY Ċ Ċ val ĠString . blue Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . BLUE Ċ val ĠMutable Component . blue Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . BLUE Ċ Ċ val ĠString . green Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . GREEN Ċ val ĠMutable Component . green Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . GREEN Ċ Ċ val ĠString . a qua Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . A QUA Ċ val ĠMutable Component . a qua Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . A QUA Ċ Ċ val ĠString . red Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . RED Ċ val ĠMutable Component . red Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . RED Ċ Ċ val ĠString . light Pur ple Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . LIGHT _ PUR PLE Ċ val ĠMutable Component . light Pur ple Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . LIGHT _ PUR PLE Ċ Ċ val ĠString . yellow Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . YELLOW Ċ val ĠMutable Component . yellow Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . YELLOW Ċ Ċ val ĠString . white Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . WHITE Ċ val ĠMutable Component . white Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . WHITE Ċ Ċ val ĠString . ob fuscated Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . OB F US C ATED Ċ val ĠMutable Component . ob fuscated Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . OB F US C ATED Ċ Ċ val ĠString . bold Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . BOLD Ċ val ĠMutable Component . bold Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . BOLD Ċ Ċ val ĠString . strikethrough Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . STR IK ETH ROUGH Ċ val ĠMutable Component . strikethrough Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . STR IK ETH ROUGH Ċ Ċ val ĠString . underline Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . UNDER LINE Ċ val ĠMutable Component . underline Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . UNDER LINE Ċ Ċ val ĠString . italic Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . ITAL IC Ċ val ĠMutable Component . italic Ġget () Ġ= Ġthis Ġstyled With ĠChat Formatting . ITAL IC Ċ Ċ operator Ġfun ĠMutable Component . plus Assign ( component : ĠComponent ) Ġ{ ĊĠĠĠ Ġappend ( component ) Ċ } Ċ Ċ val ĠString . as Text Component Ġget () Ġ= ĠText Component ( this ) Ċ val ĠString . as Translated Component Ġget () Ġ= ĠTrans latable Component ( this ) Ċ Ċ fun ĠString . as Translated Component ( var arg Ġargs : ĠAny ) Ġ= ĠTrans latable Component ( this , Ġ* args ) Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa Ġvalue Ġthat Ġthe Ġgarbage Ġcollector Ġis Ġstill Ġallowed Ġto Ġcollect . Ċ Ġ* ĠTo Ġcreate Ġan Ġinstance Ġof Ġa Ġ[ Weak Value ], Ġuse Ġ[ weak Reference ] Ġor Ġ[ weak Mapped ]. Ċ Ġ*/ Ċ interface ĠWeak Value < T > Ġ{ ĊĠĠĠ Ġvar Ġvalue : ĠT ? Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġweak ly Ġreferenced Ġvalue Ġthat Ġrelies Ġdirectly Ġon Ġa Ġ[ Weak Reference ]. Ċ Ġ* Ċ Ġ* ĠThis Ġmeans Ġthat Ġif Ġthere Ġare Ġno Ġother Ġplaces Ġwhere Ġthe Ġcontained Ġobject Ġis Ġreferenced , Ċ Ġ* Ġthe Ġreference Ġwill Ġexpire , Ġand Ġvalue Ġcontained Ġwithin Ġthis Ġreference Ġwill Ġbecome Ġnull . Ċ Ġ*/ Ċ private Ġclass ĠWeak Referenced Value < T >( var Ġreference : ĠWeak Reference < T > ?) Ġ: ĠWeak Value < T > Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġvalue : ĠT ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġreference ?. get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreference Ġ= Ġvalue ?. let (:: Weak Reference ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġweak ly Ġreferenced Ġvalue Ġthat Ġrelies Ġon Ġa Ġ[ Weak HashMap ]. Ċ Ġ* Ċ Ġ* ĠUn like Ġ[ Weak Referenced Value ], Ġit Ġrelies Ġon Ġthe Ġcontinued Ġexistence Ġof Ġsomething Ġelse Ġ( obt ained Ġby Ġ[ key Gen ]). Ċ Ġ* ĠFor Ġexample , Ġthis Ġcan Ġbe Ġused Ġto Ġhold Ġan Ġentity , Ġand Ġhave Ġthe Ġreference Ġexpire Ġwhen Ġthe Ġworld Ġit 's Ġin Ġis Ġun loaded . Ċ Ġ*/ Ċ private Ġclass ĠWeak Mapped Value < K , ĠT >( val Ġkey Gen : Ġ( T ) Ġ-> ĠK ) Ġ: ĠWeak Value < T > Ġ{ ĊĠĠĠ Ġval Ġreference Ġ= ĠWeak HashMap < K , ĠT >() ĊĠĠĠ Ġoverride Ġvar Ġvalue : ĠT ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġreference . values . first OrNull () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreference . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġreference [ key Gen ( value )] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġ[ Weak Referenced Value ], Ġthe Ġcontents Ġof Ġwhich Ġwill Ġexpire Ġwhen Ġnothing Ġelse Ġis Ġreferencing Ġthem . Ċ Ġ*/ Ċ fun Ġ< T > Ġweak Reference ( value : ĠT ? Ġ= Ġnull ): ĠWeak Value < T > Ġ= ĠWeak Referenced Value ( value ?. let Ġ{ ĠWeak Reference ( it ) Ġ}) Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġ[ Weak Mapped Value ], Ġthe Ġcontents Ġof Ġwhich Ġwill Ġexpire Ġwhen Ġnothing Ġelse Ġis Ġreferencing Ġthe Ġvalue Ġreturned Ġby Ġ[ key Gen ]. Ċ Ġ*/ Ċ fun Ġ< T , ĠK > Ġweak Mapped ( key Gen : Ġ( T ) Ġ-> ĠK ): ĠWeak Value < T > Ġ= ĠWeak Mapped Value ( key Gen ) Ċ Ċ // Ġkt Ġboilerplate Ġfor Ġmaking ĠWeak Values Ġwork Ġas Ġdeleg ates Ġ( using Ġthe Ġkeyword Ġ` by `) Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġoperator Ġfun Ġ< T > ĠWeak Value < T >. getValue ( this Ref : ĠAny ?, Ġproperty : ĠK Property < *> ): ĠT ? Ġ= Ġvalue Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġoperator Ġfun Ġ< T > ĠWeak Value < T >. setValue ( this Ref : ĠAny ?, Ġproperty : ĠK Property <* >, Ġvalue : ĠT ?) Ġ{ ĊĠĠĠ Ġthis . value Ġ= Ġvalue Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġan Ġempty Ġlist Ġif Ġit 's Ġtoo Ġcomplicated . Ċ Ġ*/ Ċ fun ĠIterable < Spell Datum <* >> . serialize To NBT (): ĠList Tag Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠSpell Datum . make ( Spell List . L List ( 0 , Ġthis . toList ())). serialize To NBT () ĊĠĠĠ Ġreturn Ġif Ġ( out . contains ( Spell Datum . TAG _ WIDGET )) ĊĠĠĠĠĠĠĠ ĠList Tag () ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġout . getList ( Spell Datum . TAG _ LIST , ĠTag . TAG _ COMP O UND ) Ċ } Ċ Ċ // ĠCopy Ġthe Ġimpl Ġfrom Ġfor ge Ċ fun ĠItemStack . serialize To NBT (): ĠCompound Tag Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠCompound Tag () ĊĠĠĠ Ġthis . save ( out ) ĊĠĠĠ Ġreturn Ġout Ċ } Ċ