package Ġio . github . chaos unity . d gd sl . builder Ċ Ċ import Ġnet . minecraft . data . IF in ished Recipe Ċ import Ġnet . minecraft . data . Sh aped Recipe Builder Ċ import Ġnet . minecraft . util . I Item Provider Ċ import Ġnet . minecraft . util . Resource Location Ċ import Ġjava . util . function . Consumer Ċ Ċ class ĠRecipe Builder ( private Ġval Ġbuilder : ĠSh aped Recipe Builder , Ġprivate Ġval Ġresult : ĠI Item Provider ) Ġ: ĠAbstract Builder () Ġ{ ĊĠĠĠ Ġfun Ġpattern ( pattern Lines : Ġ() Ġ-> ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpatterns Ġ= Ġpattern Lines . invoke (). replace ("\\ s ". to Regex (), Ġ""). chunk ed ( 3 ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( pattern Ġin Ġpatterns ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . pattern ( pattern ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġkey ( keys : ĠRecipe Key Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Map Ġ= ĠRecipe Key Builder (). apply ( keys ). build () ĊĊĠĠĠĠĠĠĠ Ġkey Map . forEach ( builder :: define ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgroup ( group : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . group ( group ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcriterion ( c riter ions : ĠC riterion Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcriterion Map Ġ= ĠC riterion Builder (). apply ( c riter ions ). build () ĊĊĠĠĠĠĠĠĠ Ġcriterion Map . forEach ( builder :: unlock edBy ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuild ( ĊĠĠĠĠĠĠĠ Ġconsumer : ĠConsumer < IF in ished Recipe > ĊĠĠĠ Ġ) Ġ= Ġbuilder . save ( consumer ) ĊĊĠĠĠ Ġfun Ġbuild ( ĊĠĠĠĠĠĠĠ Ġconsumer : ĠConsumer < IF in ished Recipe >, ĊĠĠĠĠĠĠĠ Ġid : ĠResource Location ĊĠĠĠ Ġ) Ġ= Ġbuilder . save ( consumer , Ġid ) ĊĊĠĠĠ Ġfun Ġbuild ( ĊĠĠĠĠĠĠĠ Ġconsumer : ĠConsumer < IF in ished Recipe >, ĊĠĠĠĠĠĠĠ Ġsave : ĠString ĊĠĠĠ Ġ) Ġ= Ġbuilder . save ( consumer , Ġsave ) Ċ }