package Ġcom . he a 3 ven . m alle able . compat . je i Ċ Ċ import Ġcom . he a 3 ven . m alle able . client . gui . Gui Metal F urn ace Ċ import Ġcom . he a 3 ven . m alle able . item . craft ing . Metal F urn ace Recipe Ċ import Ġcom . he a 3 ven . m alle able . item . craft ing . Metal F urn ace Recipes Ċ import Ġme zz . je i . api .* Ċ import Ġme zz . je i . api . gui . I Recipe Layout Ċ import Ġme zz . je i . api . recipe . I Recipe Category Ċ import Ġme zz . je i . api . recipe . I Recipe Handler Ċ import Ġme zz . je i . api . recipe . I Recipe Wrapper Ċ import Ġnet . minecraft . client . Minecraft Ċ import Ġnet . minecraft . client . resources . I 1 8 n Ċ import Ġnet . minecraft . init . Blocks Ċ import Ġnet . minecraft . init . Items Ċ import Ġnet . minecraft . item . ItemStack Ċ Ċ @ JE I Plugin Ċ class ĠM alle able J ei Plugin Ġ: ĠI Mod Plugin Ġ{ Ċ ĉ override Ġfun Ġregister ( registry : ĠI Mod Registry ) Ġ{ Ċĉ ĉ registry . add Recipe Categories ( Metal F urn ace Recipe Category ( registry . je i Helpers . gui Helper )); Ċĉ ĉ registry . add Recipe Handlers ( Metal F urn ace Recipe Handler ()); Ċĉ ĉ registry . add Recipes ( Metal F urn ace Recipes . getAll (). to Mutable List ()); Ċĉ ĉ registry . add Recipe Click Area ( Gui Metal F urn ace :: class . java , Ġ 7 8 , Ġ 3 2 , Ġ 2 8 , Ġ 2 1 , Ċĉĉĉ ĉ Metal F urn ace Recipe Handler . uid ) Ċ ĉ } ĊĊ ĉ override Ġfun Ġon Runtime Available ( je i Runtime : ĠI J ei Runtime ) Ġ{ Ċ ĉ } Ċ } Ċ Ċ class ĠMet al F urn ace Recipe Category ( gui Helper : ĠI Gui Helper ) Ġ: ĠI Recipe Category Ġ{ ĊĊ ĉ private Ġval Ġbackground Ġ= Ġgui Helper . create Drawable ( Gui Metal F urn ace . BG _ RESOURCE , Ġ 3 7 , Ġ 1 6 , Ġ 1 0 0 , Ġ 5 4 ); ĊĊ ĉ override Ġfun Ġget Uid () Ġ= ĠMet al F urn ace Recipe Handler . uid ĊĊ ĉ override Ġfun Ġget Title () Ġ= ĠI 1 8 n . format (" gui . m alle able . je i . metal F urn ace "); ĊĊ ĉ override Ġfun Ġdraw Animations ( minecraft : ĠMinecraft ) Ġ{ Ċ ĉ } ĊĊ ĉ override Ġfun Ġset Recipe ( recipe Layout : ĠI Recipe Layout , Ġrecipe : ĠI Recipe Wrapper ) Ġ{ Ċĉ ĉ if Ġ( recipe Ġ! is ĠMet al F urn ace Recipe Wrapper ) Ċĉĉ ĉ return ĊĊĉ ĉ var Ġslot Ġ= Ġ 0 Ċĉ ĉ for Ġ( input Ġin Ġrecipe . inputs ) Ġ{ Ċĉĉ ĉ recipe Layout . item Stack s . init ( slot , Ġtrue , Ġ 0 Ġ+ Ġ 1 8 Ġ* Ġslot , Ġ 0 ); Ċĉĉ ĉ recipe Layout . item Stack s . set From Recipe ( slot , Ġinput ); Ċĉĉ ĉ slot ++ Ċĉ ĉ } Ċĉ ĉ recipe Layout . item Stack s . init ( 2 , Ġfalse , Ġ 9 , Ġ 3 6 ); Ċĉ ĉ recipe Layout . item Stack s . set From Recipe ( 2 , ĠlistOf ( ItemStack ( Items . CO AL ), ĠItemStack ( Blocks . CO AL _ BLOCK ))); Ċĉ ĉ recipe Layout . item Stack s . init ( 3 , Ġfalse , Ġ 7 8 , Ġ 1 8 ); Ċĉ ĉ recipe Layout . item Stack s . set From Recipe ( 3 , Ġrecipe . outputs [ 0 ]); Ċ ĉ } ĊĊ ĉ override Ġfun Ġget Background () Ġ= Ġbackground ĊĊ ĉ override Ġfun Ġdraw Extras ( minecraft : ĠMinecraft ) Ġ{ Ċ ĉ } Ċ Ċ } Ċ Ċ class ĠMet al F urn ace Recipe Handler Ġ: ĠI Recipe Handler < Metal F urn ace Recipe > Ġ{ Ċ ĉ override Ġfun Ġget Recipe Wrapper ( recipe : ĠMet al F urn ace Recipe ) Ġ= ĠMet al F urn ace Recipe Wrapper ( recipe ) ĊĊ ĉ override Ġfun Ġget Recipe Class () Ġ= ĠMet al F urn ace Recipe :: class . java ĊĊ ĉ override Ġfun Ġis Recipe Valid ( recipe : ĠMet al F urn ace Recipe ) Ġ= Ġrecipe Ġis ĠMet al F urn ace Recipe ĊĊ ĉ override Ġfun Ġget Recipe Category Uid () Ġ= Ġuid ĊĊ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ val Ġuid Ġ= Ġ" m alle able . met alf urn ace " Ċ ĉ } Ċ } Ċ Ċ class ĠMet al F urn ace Recipe Wrapper ( val Ġrecipe : ĠMet al F urn ace Recipe ) Ġ: ĠI Recipe Wrapper Ġ{ Ċ ĉ override Ġfun Ġdraw Animations ( minecraft : ĠMinecraft , Ġrecipe Width : ĠInt , Ġrecipe Height : ĠInt ) Ġ{ Ċ ĉ } ĊĊ ĉ override Ġfun Ġdraw Info ( minecraft : ĠMinecraft , Ġrecipe Width : ĠInt , Ġrecipe Height : ĠInt , Ġmouse X : ĠInt , Ċĉĉ ĉ mouse Y : ĠInt ) Ġ{ Ċ ĉ } ĊĊ ĉ override Ġfun Ġget Tooltip Strings ( mouse X : ĠInt , ĠmouseY : ĠInt ) Ġ= Ġnull ĊĊ ĉ override Ġfun Ġget Fluid Inputs () Ġ= Ġnull ĊĊ ĉ override Ġfun Ġhandle Click ( minecraft : ĠMinecraft , Ġmouse X : ĠInt , ĠmouseY : ĠInt , Ġmouse Button : ĠInt ) Ġ= Ġfalse ĊĊ ĉ override Ġfun Ġget Outputs () Ġ= ĠlistOf < ItemStack >( recipe . output ) ĊĊ ĉ override Ġfun Ġget Fluid Outputs () Ġ= Ġnull ĊĊ ĉ override Ġfun Ġget Inputs () Ġ= ĠlistOf ( recipe . input 1 , Ġrecipe . input 2 ). filter Ġ{ Ġit Ġ!= Ġnull Ġ}. map Ġ{ Ġit !! Ġ} Ċ } ĊĊ