/** Ċ Ġ* ĠThe ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠN ich olas ĠF eld man Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġtech . f eld man . better records . craft ing . recipe Ċ Ċ import Ġtech . f eld man . better records . api . sound . I Color able Sound Holder Ċ import Ġtech . f eld man . better records . helper . nbt . setColor Ċ import Ġnet . minecraft . init . Blocks Ċ import Ġnet . minecraft . init . Items Ċ import Ġnet . minecraft . inventory . Inventory Craft ing Ċ import Ġnet . minecraft . item . Enum D ye Color Ċ import Ġnet . minecraft . item . ItemStack Ċ import Ġnet . minecraft . item . craft ing . I Recipe Ċ import Ġnet . minecraft . util . NonNull List Ċ import Ġnet . minecraft . world . World Ċ import Ġnet . minecraftforge . regist ries . I Forge Registry Entry Ċ Ċ class ĠRecipe Colo red Record Ġ: ĠI Forge Registry Entry . Impl < I Recipe >(), ĠI Recipe Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Registry Name (" recipe color able ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcan Fit ( width : ĠInt , Ġheight : ĠInt ) Ġ= Ġwidth Ġ* Ġheight Ġ>= Ġ 2 ĊĊĠĠĠ Ġoverride Ġfun Ġmatches ( inventory Craft ing : ĠInventory Craft ing , Ġworld : ĠWorld ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfound Color able Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġfound D ye Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġinventory Craft ing . size Inventory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġinventory Craft ing . get Stack In Slot ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġ! it . isEmpty Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . item Ġis ĠI Color able Sound Holder Ġ&& Ġ! found Color able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfound Color able Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . item Ġ== ĠItems . DY E Ġ&& Ġ! found D ye ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfound D ye Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfound Color able Ġ&& Ġfound D ye ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Craft ing Result ( inventory Craft ing : ĠInventory Craft ing ): ĠItemStack ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcolor able : ĠItemStack ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġcolor Ġ= Ġ- 1 ĊĊĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġinventory Craft ing . size Inventory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġinventory Craft ing . get Stack In Slot ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġ! it . isEmpty Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . item Ġis ĠI Color able Sound Holder Ġ&& Ġcolor able Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor able Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠEnum D ye Color . by D ye Damage ( it . item Damage ). color Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcolor able ?. copy ()?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Color ( this , Ġcolor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Recipe Output () Ġ= ĠItemStack ( Blocks . AIR ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Remaining Items ( inv : ĠInventory Craft ing ): ĠNon Null List < ItemStack > Ġ{ ĊĠĠĠĠĠĠĠ Ġinv . clear () ĊĠĠĠĠĠĠĠ Ġreturn ĠNon Null List . create () ĊĠĠĠ Ġ} Ċ } Ċ