package Ġme . ste ven . ind rev . items . energy Ċ Ċ import Ġme . ste ven . ind rev . utils . Tier Ċ import Ġme . ste ven . ind rev . utils . build Energy Tooltip Ċ import Ġnet . minecraft . client . item . Tooltip Context Ċ import Ġnet . minecraft . entity . Entity Ċ import Ġnet . minecraft . entity . player . Player Entity Ċ import Ġnet . minecraft . item . Item Ċ import Ġnet . minecraft . item . ItemStack Ċ import Ġnet . minecraft . text . Text Ċ import Ġnet . minecraft . util . collection . Default edList Ċ import Ġnet . minecraft . world . World Ċ import Ġteam . re born . energy .* Ċ Ċ class ĠIR Portable Ch arger Item ( ĊĠĠĠ Ġsettings : ĠSettings , ĊĠĠĠ Ġprivate Ġval Ġtier : ĠT ier , ĊĠĠĠ Ġprivate Ġval Ġmax Stored : ĠDouble Ċ ) Ġ: ĠItem ( settings ), ĠEnergy Holder , ĠI RE ner gy Item Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġappend Tooltip ( ĊĠĠĠĠĠĠĠ Ġstack : ĠItemStack ?, ĊĠĠĠĠĠĠĠ Ġworld : ĠWorld ?, ĊĠĠĠĠĠĠĠ Ġtooltip : ĠMutable List < Text > ?, ĊĠĠĠĠĠĠĠ Ġcontext : ĠTooltip Context ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild Energy Tooltip ( stack , Ġtooltip ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetMax Stored Power (): ĠDouble Ġ= Ġmax Stored ĊĊĠĠĠ Ġoverride Ġfun ĠgetMax Input ( side : ĠEnergy Side ?): ĠDouble Ġ= Ġtier . io ĊĊĠĠĠ Ġoverride Ġfun ĠgetMax Output ( side : ĠEnergy Side ?): ĠDouble Ġ= Ġtier . io ĊĊĠĠĠ Ġoverride Ġfun Ġget Tier (): ĠEnergy Tier Ġ= ĠEnergy Tier . HIGH ĊĊĠĠĠ Ġoverride Ġfun Ġinventory Tick ( stack : ĠItemStack , Ġworld : ĠWorld ?, Ġentity : ĠEntity ?, Ġslot : ĠInt , Ġselected : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= ĠEnergy . of ( stack ) ĊĠĠĠĠĠĠĠ Ġstack . damage Ġ= Ġ( stack . max Damage Ġ- Ġhandler . energy . toInt ()). coerce At Least ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġentity Ġas ? ĠPlayer Entity Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( player . inventory . off Hand [ 0 ] Ġ!= Ġstack ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġ( 0 Ġuntil Ġplayer . inventory . size ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġs Ġ-> Ġplayer . inventory . get Stack ( s ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġs Ġ-> Ġs . item Ġ! is ĠIR Portable Ch arger Item Ġ&& ĠEnergy . valid ( s ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġs Ġ-> ĠEnergy . of ( s ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsum Ġ= Ġitems . sum By Double Ġ{ Ġit . max Input . coerce At Least ( it . energy ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġamount Ġ= Ġsum Ġ/ Ġitems . size . toDouble () ĊĠĠĠĠĠĠĠ Ġitems . forEach Ġ{ Ġh Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . into ( h ). move ( amount ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcharge Items In Inv ( handler : ĠEnergy Handler , Ġinventory : ĠDefault edList < ItemStack >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġ( 0 Ġuntil Ġinventory . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġs Ġ-> Ġinventory [ s ] Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġs Ġ-> Ġs . item Ġ! is ĠIR Portable Ch arger Item Ġ&& ĠEnergy . valid ( s ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġs Ġ-> ĠEnergy . of ( s ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsum Ġ= Ġitems . sum By Double Ġ{ Ġit . max Input . coerce At Least ( it . energy ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= Ġsum Ġ/ Ġitems . size . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems . forEach Ġ{ Ġh Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . into ( h ). move ( amount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }