@adeficior/data-modifier 1.0.0-rc.14 → 1.0.0-rc.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/common/{predicates.d.ts → filters.d.ts} +3 -3
  2. package/dist/common/{predicates.js → filters.js} +3 -3
  3. package/dist/common/filters.js.map +1 -0
  4. package/dist/common/id.d.ts +3 -0
  5. package/dist/common/id.js +6 -1
  6. package/dist/common/id.js.map +1 -1
  7. package/dist/common/ingredient/filter.d.ts +3 -3
  8. package/dist/common/ingredient/filter.js +20 -59
  9. package/dist/common/ingredient/filter.js.map +1 -1
  10. package/dist/common/ingredient/index.d.ts +35 -27
  11. package/dist/common/ingredient/index.js +57 -37
  12. package/dist/common/ingredient/index.js.map +1 -1
  13. package/dist/common/ingredient/serializer.js +1 -1
  14. package/dist/common/ingredient/serializer.js.map +1 -1
  15. package/dist/common/result/filter.d.ts +3 -3
  16. package/dist/common/result/filter.js +12 -35
  17. package/dist/common/result/filter.js.map +1 -1
  18. package/dist/common/result/index.d.ts +20 -16
  19. package/dist/common/result/index.js +25 -17
  20. package/dist/common/result/index.js.map +1 -1
  21. package/dist/common/result/serializer.js +1 -1
  22. package/dist/common/result/serializer.js.map +1 -1
  23. package/dist/common/serializable.d.ts +5 -2
  24. package/dist/emit/assets/lang.js.map +1 -1
  25. package/dist/emit/blacklist.d.ts +3 -3
  26. package/dist/emit/blacklist.js +2 -2
  27. package/dist/emit/blacklist.js.map +1 -1
  28. package/dist/emit/data/loot.d.ts +9 -9
  29. package/dist/emit/data/loot.js +3 -3
  30. package/dist/emit/data/loot.js.map +1 -1
  31. package/dist/emit/data/recipe.d.ts +13 -13
  32. package/dist/emit/data/recipe.js +5 -5
  33. package/dist/emit/data/recipe.js.map +1 -1
  34. package/dist/emit/data/tags.d.ts +4 -4
  35. package/dist/emit/data/tags.js +1 -1
  36. package/dist/emit/data/tags.js.map +1 -1
  37. package/dist/emit/rule/lootTable.d.ts +1 -1
  38. package/dist/emit/rule/lootTable.js.map +1 -1
  39. package/dist/emit/rule/recipe.d.ts +1 -1
  40. package/dist/emit/rule/recipe.js.map +1 -1
  41. package/dist/loader/index.d.ts +4 -3
  42. package/dist/loader/index.js +7 -3
  43. package/dist/loader/index.js.map +1 -1
  44. package/dist/loader/lang.d.ts +1 -2
  45. package/dist/loader/lang.js +1 -1
  46. package/dist/loader/lang.js.map +1 -1
  47. package/dist/loader/loot.d.ts +1 -2
  48. package/dist/loader/loot.js +2 -2
  49. package/dist/loader/loot.js.map +1 -1
  50. package/dist/loader/pack.d.ts +2 -2
  51. package/dist/loader/pack.js +13 -12
  52. package/dist/loader/pack.js.map +1 -1
  53. package/dist/loader/recipe.d.ts +5 -4
  54. package/dist/loader/recipe.js +17 -28
  55. package/dist/loader/recipe.js.map +1 -1
  56. package/dist/loader/registry/dump.js +3 -3
  57. package/dist/loader/registry/dump.js.map +1 -1
  58. package/dist/loader/tags.d.ts +2 -2
  59. package/dist/loader/tags.js +1 -1
  60. package/dist/loader/tags.js.map +1 -1
  61. package/dist/parser/index.d.ts +1 -1
  62. package/dist/parser/index.js.map +1 -1
  63. package/dist/parser/lootTable.d.ts +1 -1
  64. package/dist/parser/lootTable.js +2 -2
  65. package/dist/parser/lootTable.js.map +1 -1
  66. package/dist/parser/recipe/adAstra/conversion.d.ts +2 -2
  67. package/dist/parser/recipe/adAstra/conversion.js +2 -2
  68. package/dist/parser/recipe/adAstra/conversion.js.map +1 -1
  69. package/dist/parser/recipe/adAstra/inputOutput.d.ts +3 -3
  70. package/dist/parser/recipe/adAstra/inputOutput.js +5 -5
  71. package/dist/parser/recipe/adAstra/inputOutput.js.map +1 -1
  72. package/dist/parser/recipe/adAstra/spaceStation.d.ts +2 -2
  73. package/dist/parser/recipe/adAstra/spaceStation.js +2 -2
  74. package/dist/parser/recipe/adAstra/spaceStation.js.map +1 -1
  75. package/dist/parser/recipe/botania/apothecary.d.ts +2 -2
  76. package/dist/parser/recipe/botania/apothecary.js +2 -2
  77. package/dist/parser/recipe/botania/apothecary.js.map +1 -1
  78. package/dist/parser/recipe/botania/brew.d.ts +2 -2
  79. package/dist/parser/recipe/botania/brew.js +2 -2
  80. package/dist/parser/recipe/botania/brew.js.map +1 -1
  81. package/dist/parser/recipe/botania/gogWrapper.d.ts +4 -6
  82. package/dist/parser/recipe/botania/gogWrapper.js +2 -2
  83. package/dist/parser/recipe/botania/gogWrapper.js.map +1 -1
  84. package/dist/parser/recipe/botania/manaInfusion.d.ts +2 -2
  85. package/dist/parser/recipe/botania/manaInfusion.js +2 -2
  86. package/dist/parser/recipe/botania/manaInfusion.js.map +1 -1
  87. package/dist/parser/recipe/botania/nbtWrapper.d.ts +4 -6
  88. package/dist/parser/recipe/botania/nbtWrapper.js +2 -2
  89. package/dist/parser/recipe/botania/nbtWrapper.js.map +1 -1
  90. package/dist/parser/recipe/create/assembly.d.ts +2 -2
  91. package/dist/parser/recipe/create/assembly.js +3 -3
  92. package/dist/parser/recipe/create/assembly.js.map +1 -1
  93. package/dist/parser/recipe/farmersdelight/cooking.d.ts +2 -2
  94. package/dist/parser/recipe/farmersdelight/cooking.js +2 -2
  95. package/dist/parser/recipe/farmersdelight/cooking.js.map +1 -1
  96. package/dist/parser/recipe/farmersdelight/cutting.d.ts +2 -2
  97. package/dist/parser/recipe/farmersdelight/cutting.js +2 -2
  98. package/dist/parser/recipe/farmersdelight/cutting.js.map +1 -1
  99. package/dist/parser/recipe/forge/conditional.d.ts +4 -6
  100. package/dist/parser/recipe/forge/conditional.js +2 -2
  101. package/dist/parser/recipe/forge/conditional.js.map +1 -1
  102. package/dist/parser/recipe/index.d.ts +7 -3
  103. package/dist/parser/recipe/index.js +10 -4
  104. package/dist/parser/recipe/index.js.map +1 -1
  105. package/dist/parser/recipe/manyToMany.d.ts +2 -2
  106. package/dist/parser/recipe/manyToMany.js +2 -2
  107. package/dist/parser/recipe/manyToMany.js.map +1 -1
  108. package/dist/parser/recipe/manyToOne.d.ts +2 -2
  109. package/dist/parser/recipe/manyToOne.js +2 -2
  110. package/dist/parser/recipe/manyToOne.js.map +1 -1
  111. package/dist/parser/recipe/oneToOne.d.ts +2 -2
  112. package/dist/parser/recipe/oneToOne.js +2 -2
  113. package/dist/parser/recipe/oneToOne.js.map +1 -1
  114. package/dist/parser/recipe/roots/component.d.ts +2 -2
  115. package/dist/parser/recipe/roots/component.js +2 -2
  116. package/dist/parser/recipe/roots/component.js.map +1 -1
  117. package/dist/parser/recipe/roots/ritual.d.ts +2 -2
  118. package/dist/parser/recipe/roots/ritual.js +2 -2
  119. package/dist/parser/recipe/roots/ritual.js.map +1 -1
  120. package/dist/parser/recipe/thermal/catalyst.d.ts +2 -2
  121. package/dist/parser/recipe/thermal/catalyst.js +2 -2
  122. package/dist/parser/recipe/thermal/catalyst.js.map +1 -1
  123. package/dist/parser/recipe/thermal/fuel.d.ts +2 -2
  124. package/dist/parser/recipe/thermal/fuel.js +2 -2
  125. package/dist/parser/recipe/thermal/fuel.js.map +1 -1
  126. package/dist/parser/recipe/thermal/index.d.ts +2 -2
  127. package/dist/parser/recipe/thermal/index.js +2 -2
  128. package/dist/parser/recipe/thermal/index.js.map +1 -1
  129. package/dist/parser/recipe/thermal/treeExtraction.d.ts +2 -2
  130. package/dist/parser/recipe/thermal/treeExtraction.js +2 -2
  131. package/dist/parser/recipe/thermal/treeExtraction.js.map +1 -1
  132. package/dist/parser/recipe/vanilla/shaped.d.ts +3 -4
  133. package/dist/parser/recipe/vanilla/shaped.js +2 -2
  134. package/dist/parser/recipe/vanilla/shaped.js.map +1 -1
  135. package/dist/parser/recipe/vanilla/smelting.d.ts +2 -2
  136. package/dist/parser/recipe/vanilla/smelting.js +2 -2
  137. package/dist/parser/recipe/vanilla/smelting.js.map +1 -1
  138. package/dist/parser/recipe/vanilla/smithing.d.ts +2 -2
  139. package/dist/parser/recipe/vanilla/smithing.js +2 -2
  140. package/dist/parser/recipe/vanilla/smithing.js.map +1 -1
  141. package/dist/parser/recipe/vanilla/stonecutting.d.ts +2 -2
  142. package/dist/parser/recipe/vanilla/stonecutting.js +3 -3
  143. package/dist/parser/recipe/vanilla/stonecutting.js.map +1 -1
  144. package/package.json +9 -6
  145. package/dist/common/predicates.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lootTable.js","sourceRoot":"","sources":["../../src/parser/lootTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,iBAAiB,GAGlB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAOvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAIzD,SAAS,0BAA0B,CAAC,KAAoB;IACtD,IAAI,KAAK,YAAY,cAAc,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QACnE,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;SACzB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;SAC1B,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAgB,EAAE,MAAsB;IACjE,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;QACjC,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;QAC5C,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5B,iBAAiB,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAC/C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAoB,EACpB,MAAsB;IAEtB,MAAM,WAAW,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IACtD,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,kEAAkE;AAElE,SAAS,kBAAkB,CAAC,SAAgC,EAAE,EAAa;IACzE,MAAM,OAAO,GAAG,CAAC,IAAmB,EAAa,EAAE;QACjD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAgC;YAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;QACF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,wBAAwB;gBAC3B,OAAO;oBACL,GAAG,KAAK;oBACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;iBACtC,CAAC;YAEJ,KAAK,gBAAgB;gBACnB,OAAO,SAAS,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9C,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE;oBACtB,CAAC,CAAC,KAAK,CAAC;YAEZ,KAAK,eAAe;gBAClB,OAAO,SAAS,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjD,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE;oBACtB,CAAC,CAAC,KAAK,CAAC;YAEZ;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,SAAgC,EAChC,EAAa;IAEb,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,KAAgB,EAAa,EAAE;QACrC,OAAO;YACL,GAAG,KAAK;YACR,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChC,GAAG,IAAI;gBACP,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;aACxC,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"lootTable.js","sourceRoot":"","sources":["../../src/parser/lootTable.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type Ingredient } from "../../../common/ingredient/index.js";
2
2
  import type { Result } from "../../../common/result/index.js";
3
3
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
4
- import type { RecipeParseContext, Replacer } from "../index.js";
4
+ import type { RecipeModifier, RecipeParseContext } from "../index.js";
5
5
  import RecipeParser, { Recipe } from "../index.js";
6
6
  export type FluidConversionRecipeDefinition = RecipeDefinition & Readonly<{
7
7
  input: unknown;
@@ -13,7 +13,7 @@ export declare class FluidConversionRecipe extends Recipe {
13
13
  constructor(ingredient: Ingredient, result: Result);
14
14
  getIngredients(): Ingredient[];
15
15
  getResults(): Result[];
16
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): FluidConversionRecipe;
16
+ replace(modifier: RecipeModifier): FluidConversionRecipe;
17
17
  serialize(context: RecipeParseContext): Partial<FluidConversionRecipeDefinition>;
18
18
  }
19
19
  export declare class FluidConversionRecipeParser extends RecipeParser<FluidConversionRecipeDefinition, FluidConversionRecipe> {
@@ -17,8 +17,8 @@ export class FluidConversionRecipe extends Recipe {
17
17
  getResults() {
18
18
  return [this.result];
19
19
  }
20
- replace(ingredientReplacer, resultReplacer) {
21
- return new FluidConversionRecipe(ingredientReplacer(this.ingredient), resultReplacer(this.result));
20
+ replace(modifier) {
21
+ return new FluidConversionRecipe(modifier.ingredient(this.ingredient), modifier.result(this.result));
22
22
  }
23
23
  serialize(context) {
24
24
  if (!(this.result instanceof FluidIngredient)) {
@@ -1 +1 @@
1
- {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../../../src/parser/recipe/adAstra/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,eAAe,GAEhB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQnD,MAAM,OAAO,qBAAsB,SAAQ,MAAM;IAE5B;IACA;IAFnB,YACmB,UAAsB,EACtB,MAAc;QAE/B,KAAK,EAAE,CAAC;QAHS,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAQ;IAGjC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEQ,OAAO,CACd,kBAAwC,EACxC,cAAgC;QAEhC,OAAO,IAAI,qBAAqB,CAC9B,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAC5B,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,YAAY,eAAe,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,iBAAiB,CACzB,gDAAgD,EAChD,IAAI,CAAC,MAAM,CACZ,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YACrD,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;SACjC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,YAGhD;IACC,WAAW,CACT,UAA2C,EAC3C,OAA2B;QAE3B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CACtC,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CACvC,CAAC;QACF,OAAO,IAAI,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;CACF"}
1
+ {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../../../src/parser/recipe/adAstra/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,eAAe,GAEhB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQnD,MAAM,OAAO,qBAAsB,SAAQ,MAAM;IAE5B;IACA;IAFnB,YACmB,UAAsB,EACtB,MAAc;QAE/B,KAAK,EAAE,CAAC;QAHS,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAQ;IAGjC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,qBAAqB,CAC9B,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EACpC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAC7B,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,YAAY,eAAe,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,iBAAiB,CACzB,gDAAgD,EAChD,IAAI,CAAC,MAAM,CACZ,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YACrD,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;SACjC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,YAGhD;IACC,WAAW,CACT,UAA2C,EAC3C,OAA2B;QAE3B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CACtC,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CACvC,CAAC;QACF,OAAO,IAAI,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { Ingredient } from "../../../common/ingredient/index.js";
2
- import { ItemResult, type Result } from "../../../common/result/index.js";
2
+ import { ItemResult } from "../../../common/result/index.js";
3
3
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
4
- import RecipeParser, { Recipe, type RecipeParseContext, type Replacer } from "../index.js";
4
+ import RecipeParser, { Recipe, type RecipeModifier, type RecipeParseContext } from "../index.js";
5
5
  import { OneToOneRecipe } from "../oneToOne.js";
6
6
  export type InputOutputRecipeDefinition = RecipeDefinition & Readonly<{
7
7
  input: unknown;
@@ -13,7 +13,7 @@ export declare class InputOutputRecipe extends Recipe {
13
13
  constructor(ingredient: Ingredient, result: ItemResult);
14
14
  getIngredients(): Ingredient[];
15
15
  getResults(): ItemResult[];
16
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): OneToOneRecipe;
16
+ replace(modifier: RecipeModifier): OneToOneRecipe;
17
17
  serialize(context: RecipeParseContext): Partial<InputOutputRecipeDefinition>;
18
18
  }
19
19
  export declare class InputOutputRecipeParser extends RecipeParser<InputOutputRecipeDefinition, InputOutputRecipe> {
@@ -8,9 +8,9 @@ const IdResultSchema = z.object({
8
8
  id: IdSchema,
9
9
  count: z.number().optional(),
10
10
  });
11
- function deserializeIdResult(ingredients, input) {
11
+ function deserializeIdResult(results, input) {
12
12
  const { id, count } = IdResultSchema.parse(input);
13
- return ingredients.validated(new ItemResult(id, count));
13
+ return results.validated(new ItemResult(id, count));
14
14
  }
15
15
  function serializeIdResult(result) {
16
16
  const { id, count } = result;
@@ -30,8 +30,8 @@ export class InputOutputRecipe extends Recipe {
30
30
  getResults() {
31
31
  return [this.result];
32
32
  }
33
- replace(ingredientReplacer, resultReplacer) {
34
- return new OneToOneRecipe(ingredientReplacer(this.ingredient), resultReplacer(this.result));
33
+ replace(modifier) {
34
+ return new OneToOneRecipe(modifier.ingredient(this.ingredient), modifier.result(this.result));
35
35
  }
36
36
  serialize(context) {
37
37
  return {
@@ -43,7 +43,7 @@ export class InputOutputRecipe extends Recipe {
43
43
  export class InputOutputRecipeParser extends RecipeParser {
44
44
  deserialize(definition, context) {
45
45
  const ingredient = context.ingredients.create(definition.input);
46
- const result = deserializeIdResult(context.ingredients, definition.output);
46
+ const result = deserializeIdResult(context.results, definition.output);
47
47
  return new InputOutputRecipe(ingredient, result);
48
48
  }
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inputOutput.js","sourceRoot":"","sources":["../../../../src/parser/recipe/adAstra/inputOutput.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAe,MAAM,iCAAiC,CAAC;AAE1E,OAAO,YAAY,EAAE,EACnB,MAAM,GAGP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,8DAA8D;AAC9D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,SAAS,mBAAmB,CAC1B,WAAiC,EACjC,KAAc;IAEd,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,WAAW,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC7B,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AACrC,CAAC;AAQD,MAAM,OAAO,iBAAkB,SAAQ,MAAM;IAEtB;IACA;IAFrB,YACqB,UAAsB,EACtB,MAAkB;QAErC,KAAK,EAAE,CAAC;QAHW,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAY;IAGvC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEQ,OAAO,CACd,kBAAwC,EACxC,cAAgC;QAEhC,OAAO,IAAI,cAAc,CACvB,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAC5B,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YACrD,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;SACvC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,YAG5C;IACC,WAAW,CACT,UAAuC,EACvC,OAA2B;QAE3B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3E,OAAO,IAAI,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;CACF"}
1
+ {"version":3,"file":"inputOutput.js","sourceRoot":"","sources":["../../../../src/parser/recipe/adAstra/inputOutput.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,YAAY,EAAE,EACnB,MAAM,GAGP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,8DAA8D;AAC9D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,SAAS,mBAAmB,CAC1B,OAAyB,EACzB,KAAc;IAEd,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC7B,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AACrC,CAAC;AAQD,MAAM,OAAO,iBAAkB,SAAQ,MAAM;IAEtB;IACA;IAFrB,YACqB,UAAsB,EACtB,MAAkB;QAErC,KAAK,EAAE,CAAC;QAHW,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAY;IAGvC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,cAAc,CACvB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EACpC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAC7B,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YACrD,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;SACvC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,YAG5C;IACC,WAAW,CACT,UAAuC,EACvC,OAA2B;QAE3B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACvE,OAAO,IAAI,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { type Ingredient } from "../../../common/ingredient/index.js";
2
2
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
3
- import type { RecipeParseContext, Replacer } from "../index.js";
3
+ import type { RecipeModifier, RecipeParseContext } from "../index.js";
4
4
  import RecipeParser, { Recipe } from "../index.js";
5
5
  export type SpaceStationRecipeDefinition = RecipeDefinition & Readonly<{
6
6
  ingredients: unknown[];
@@ -12,7 +12,7 @@ export declare class SpaceStationRecipe extends Recipe {
12
12
  constructor(ingredients: Ingredient[]);
13
13
  getIngredients(): Ingredient[];
14
14
  getResults(): never[];
15
- replace(ingredientReplacer: Replacer<Ingredient>): SpaceStationRecipe;
15
+ replace(modifier: RecipeModifier): SpaceStationRecipe;
16
16
  serialize(context: RecipeParseContext): Partial<SpaceStationRecipeDefinition>;
17
17
  }
18
18
  export declare class SpaceStationRecipeParser extends RecipeParser<SpaceStationRecipeDefinition, SpaceStationRecipe> {
@@ -19,8 +19,8 @@ export class SpaceStationRecipe extends Recipe {
19
19
  getResults() {
20
20
  return [];
21
21
  }
22
- replace(ingredientReplacer) {
23
- return new SpaceStationRecipe(this.ingredients.map(ingredientReplacer));
22
+ replace(modifier) {
23
+ return new SpaceStationRecipe(this.ingredients.map(modifier.ingredient));
24
24
  }
25
25
  serialize(context) {
26
26
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"spaceStation.js","sourceRoot":"","sources":["../../../../src/parser/recipe/adAstra/spaceStation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EACL,cAAc,EACd,iBAAiB,GAElB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AASH,MAAM,OAAO,kBAAmB,SAAQ,MAAM;IACf;IAA7B,YAA6B,WAAyB;QACpD,KAAK,EAAE,CAAC;QADmB,gBAAW,GAAX,WAAW,CAAc;IAEtD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,kBAAwC;QAC9C,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,SAAS,CACP,OAA2B;QAE3B,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW;iBAC7B,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;iBAC/B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACV,IAAI,EAAE,YAAY,cAAc,IAAI,EAAE,YAAY,iBAAiB,EAAE,CAAC;oBACpE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC;gBAC5D,CAAC;gBAED,MAAM,IAAI,iBAAiB,CACzB,qDAAqD,EACrD,EAAE,CACH,CAAC;YACJ,CAAC,CAAC;SACL,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,YAG7C;IACC,WAAW,CACT,UAAwC,EACxC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAChD,UAAU,CAAC,WAAW;aACnB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC9C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CACxD,CAAC;QAEF,OAAO,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"spaceStation.js","sourceRoot":"","sources":["../../../../src/parser/recipe/adAstra/spaceStation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EACL,cAAc,EACd,iBAAiB,GAElB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AASH,MAAM,OAAO,kBAAmB,SAAQ,MAAM;IACf;IAA7B,YAA6B,WAAyB;QACpD,KAAK,EAAE,CAAC;QADmB,gBAAW,GAAX,WAAW,CAAc;IAEtD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,SAAS,CACP,OAA2B;QAE3B,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW;iBAC7B,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;iBAC/B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACV,IAAI,EAAE,YAAY,cAAc,IAAI,EAAE,YAAY,iBAAiB,EAAE,CAAC;oBACpE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC;gBAC5D,CAAC;gBAED,MAAM,IAAI,iBAAiB,CACzB,qDAAqD,EACrD,EAAE,CACH,CAAC;YACJ,CAAC,CAAC;SACL,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,YAG7C;IACC,WAAW,CACT,UAAwC,EACxC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAChD,UAAU,CAAC,WAAW;aACnB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC9C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CACxD,CAAC;QAEF,OAAO,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { Ingredient } from "../../../common/ingredient/index.js";
2
2
  import type { Result } from "../../../common/result/index.js";
3
3
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
4
- import RecipeParser, { Recipe, type RecipeParseContext, type Replacer } from "../index.js";
4
+ import RecipeParser, { Recipe, type RecipeModifier, type RecipeParseContext } from "../index.js";
5
5
  export type ApothecaryRecipeDefinition = RecipeDefinition & Readonly<{
6
6
  ingredients: unknown[];
7
7
  output: unknown;
@@ -14,7 +14,7 @@ export declare class ApothecaryRecipe extends Recipe {
14
14
  constructor(ingredients: Ingredient[], result: Result, reagent: Ingredient);
15
15
  getIngredients(): Ingredient[];
16
16
  getResults(): Result[];
17
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): ApothecaryRecipe;
17
+ replace(modifier: RecipeModifier): ApothecaryRecipe;
18
18
  serialize(context: RecipeParseContext): Partial<ApothecaryRecipeDefinition>;
19
19
  }
20
20
  export declare class ApothecaryRecipeParser extends RecipeParser<ApothecaryRecipeDefinition, ApothecaryRecipe> {
@@ -15,8 +15,8 @@ export class ApothecaryRecipe extends Recipe {
15
15
  getResults() {
16
16
  return [this.result];
17
17
  }
18
- replace(ingredientReplacer, resultReplacer) {
19
- return new ApothecaryRecipe(this.ingredients.map(ingredientReplacer), resultReplacer(this.result), ingredientReplacer(this.reagent));
18
+ replace(modifier) {
19
+ return new ApothecaryRecipe(this.ingredients.map(modifier.ingredient), modifier.result(this.result), modifier.ingredient(this.reagent));
20
20
  }
21
21
  serialize(context) {
22
22
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"apothecary.js","sourceRoot":"","sources":["../../../../src/parser/recipe/botania/apothecary.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,EAAE,EACnB,MAAM,GAGP,MAAM,aAAa,CAAC;AASrB,MAAM,OAAO,gBAAiB,SAAQ,MAAM;IAErB;IACA;IACA;IAHrB,YACqB,WAAyB,EACzB,MAAc,EACd,OAAmB;QAEtC,KAAK,EAAE,CAAC;QAJW,gBAAW,GAAX,WAAW,CAAc;QACzB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAY;IAGxC,CAAC;IAEQ,cAAc;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEQ,UAAU;QACjB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEQ,OAAO,CACd,kBAAwC,EACxC,cAAgC;QAEhC,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,EACxC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3B,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CACjC,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;YAChE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;SACrD,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,YAG3C;IACC,WAAW,CACT,UAAsC,EACtC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACnE,OAAO,IAAI,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;CACF"}
1
+ {"version":3,"file":"apothecary.js","sourceRoot":"","sources":["../../../../src/parser/recipe/botania/apothecary.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,EAAE,EACnB,MAAM,GAGP,MAAM,aAAa,CAAC;AASrB,MAAM,OAAO,gBAAiB,SAAQ,MAAM;IAErB;IACA;IACA;IAHrB,YACqB,WAAyB,EACzB,MAAc,EACd,OAAmB;QAEtC,KAAK,EAAE,CAAC;QAJW,gBAAW,GAAX,WAAW,CAAc;QACzB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAY;IAGxC,CAAC;IAEQ,cAAc;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEQ,UAAU;QACjB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EACzC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5B,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAClC,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;YAChE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;SACrD,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,YAG3C;IACC,WAAW,CACT,UAAsC,EACtC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACnE,OAAO,IAAI,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import type { Ingredient } from "../../../common/ingredient/index.js";
2
2
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
3
- import type { RecipeParseContext, Replacer } from "../index.js";
3
+ import type { RecipeModifier, RecipeParseContext } from "../index.js";
4
4
  import RecipeParser, { Recipe } from "../index.js";
5
5
  export type BrewRecipeDefinition = RecipeDefinition & Readonly<{
6
6
  ingredients: unknown[];
@@ -11,7 +11,7 @@ export declare class BrewRecipe extends Recipe {
11
11
  constructor(ingredients: Ingredient[]);
12
12
  getIngredients(): Ingredient[];
13
13
  getResults(): never[];
14
- replace(ingredientReplacer: Replacer<Ingredient>): BrewRecipe;
14
+ replace(modifier: RecipeModifier): BrewRecipe;
15
15
  serialize(context: RecipeParseContext): Partial<BrewRecipeDefinition>;
16
16
  }
17
17
  export declare class BrewRecipeParser extends RecipeParser<BrewRecipeDefinition, BrewRecipe> {
@@ -11,8 +11,8 @@ export class BrewRecipe extends Recipe {
11
11
  getResults() {
12
12
  return [];
13
13
  }
14
- replace(ingredientReplacer) {
15
- return new BrewRecipe(this.ingredients.map(ingredientReplacer));
14
+ replace(modifier) {
15
+ return new BrewRecipe(this.ingredients.map(modifier.ingredient));
16
16
  }
17
17
  serialize(context) {
18
18
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"brew.js","sourceRoot":"","sources":["../../../../src/parser/recipe/botania/brew.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQnD,MAAM,OAAO,UAAW,SAAQ,MAAM;IACP;IAA7B,YAA6B,WAAyB;QACpD,KAAK,EAAE,CAAC;QADmB,gBAAW,GAAX,WAAW,CAAc;IAEtD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,OAAO,CAAC,kBAAwC;QACvD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClE,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;SACjE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,YAGrC;IACC,WAAW,CACT,UAAgC,EAChC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3E,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"brew.js","sourceRoot":"","sources":["../../../../src/parser/recipe/botania/brew.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQnD,MAAM,OAAO,UAAW,SAAQ,MAAM;IACP;IAA7B,YAA6B,WAAyB;QACpD,KAAK,EAAE,CAAC;QADmB,gBAAW,GAAX,WAAW,CAAc;IAEtD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;SACjE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,YAGrC;IACC,WAAW,CACT,UAAgC,EAChC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3E,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -1,7 +1,5 @@
1
- import type { Ingredient } from "../../../common/ingredient/index.js";
2
- import type { Result } from "../../../common/result/index.js";
3
1
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
4
- import type { RecipeHolder, RecipeParseContext, Replacer } from "../index.js";
2
+ import type { RecipeHolder, RecipeModifier, RecipeParseContext } from "../index.js";
5
3
  import RecipeParser, { Recipe } from "../index.js";
6
4
  export type GogWrapperRecipeDefinition = RecipeDefinition & Readonly<{
7
5
  nbt: string;
@@ -12,9 +10,9 @@ export declare class GogWrapperRecipe extends Recipe {
12
10
  private readonly base;
13
11
  private readonly gog;
14
12
  constructor(base: RecipeHolder, gog: RecipeHolder);
15
- getIngredients(): Ingredient[];
16
- getResults(): Result[];
17
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): GogWrapperRecipe;
13
+ getIngredients(): import("../../../common/ingredient/index.js").Ingredient[];
14
+ getResults(): import("../../../common/result/index.js").Result[];
15
+ replace(modifier: RecipeModifier): GogWrapperRecipe;
18
16
  serialize(context: RecipeParseContext): Partial<GogWrapperRecipeDefinition>;
19
17
  }
20
18
  export declare class GogWrapperRecipeParser extends RecipeParser<GogWrapperRecipeDefinition, GogWrapperRecipe> {
@@ -13,8 +13,8 @@ export class GogWrapperRecipe extends Recipe {
13
13
  getResults() {
14
14
  return [...this.base.getResults(), ...this.gog.getResults()];
15
15
  }
16
- replace(ingredientReplacer, resultReplacer) {
17
- return new GogWrapperRecipe(this.base.replace(ingredientReplacer, resultReplacer), this.gog.replace(ingredientReplacer, resultReplacer));
16
+ replace(modifier) {
17
+ return new GogWrapperRecipe(this.base.replace(modifier), this.gog.replace(modifier));
18
18
  }
19
19
  serialize(context) {
20
20
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"gogWrapper.js","sourceRoot":"","sources":["../../../../src/parser/recipe/botania/gogWrapper.ts"],"names":[],"mappings":"AAIA,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASnD,MAAM,OAAO,gBAAiB,SAAQ,MAAM;IAEvB;IACA;IAFnB,YACmB,IAAkB,EAClB,GAAiB;QAElC,KAAK,EAAE,CAAC;QAHS,SAAI,GAAJ,IAAI,CAAc;QAClB,QAAG,GAAH,GAAG,CAAc;IAGpC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEQ,OAAO,CACd,kBAAwC,EACxC,cAAgC;QAEhC,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC,EACrD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC,CACrD,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;SACzC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,YAG3C;IACC,WAAW,CACT,UAAsC,EACtC,OAA2B;QAE3B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxD,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"gogWrapper.js","sourceRoot":"","sources":["../../../../src/parser/recipe/botania/gogWrapper.ts"],"names":[],"mappings":"AAMA,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASnD,MAAM,OAAO,gBAAiB,SAAQ,MAAM;IAEvB;IACA;IAFnB,YACmB,IAAkB,EAClB,GAAiB;QAElC,KAAK,EAAE,CAAC;QAHS,SAAI,GAAJ,IAAI,CAAc;QAClB,QAAG,GAAH,GAAG,CAAc;IAGpC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC3B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC3B,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;SACzC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,YAG3C;IACC,WAAW,CACT,UAAsC,EACtC,OAA2B;QAE3B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxD,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { Ingredient } from "../../../common/ingredient/index.js";
2
2
  import type { Result } from "../../../common/result/index.js";
3
3
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
4
- import type { RecipeParseContext, Replacer } from "../index.js";
4
+ import type { RecipeModifier, RecipeParseContext } from "../index.js";
5
5
  import RecipeParser, { Recipe } from "../index.js";
6
6
  export type ManaInfusionRecipeDefinition = RecipeDefinition & Readonly<{
7
7
  input: unknown;
@@ -16,7 +16,7 @@ export declare class ManaInfusionRecipe extends Recipe {
16
16
  constructor(ingredient: Ingredient, result: Result, catalyst?: Ingredient | undefined);
17
17
  getIngredients(): Ingredient[];
18
18
  getResults(): Result[];
19
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): ManaInfusionRecipe;
19
+ replace(modifier: RecipeModifier): ManaInfusionRecipe;
20
20
  serialize(context: RecipeParseContext): Partial<ManaInfusionRecipeDefinition>;
21
21
  }
22
22
  export declare class ManaInfusionRecipeParser extends RecipeParser<ManaInfusionRecipeDefinition, ManaInfusionRecipe> {
@@ -17,8 +17,8 @@ export class ManaInfusionRecipe extends Recipe {
17
17
  getResults() {
18
18
  return [this.result];
19
19
  }
20
- replace(ingredientReplacer, resultReplacer) {
21
- return new ManaInfusionRecipe(ingredientReplacer(this.ingredient), resultReplacer(this.result), this.catalyst && ingredientReplacer(this.catalyst));
20
+ replace(modifier) {
21
+ return new ManaInfusionRecipe(modifier.ingredient(this.ingredient), modifier.result(this.result), this.catalyst && modifier.ingredient(this.catalyst));
22
22
  }
23
23
  serialize(context) {
24
24
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"manaInfusion.js","sourceRoot":"","sources":["../../../../src/parser/recipe/botania/manaInfusion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAKlD,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUzE,MAAM,OAAO,kBAAmB,SAAQ,MAAM;IAEzB;IACA;IACA;IAHnB,YACmB,UAAsB,EACtB,MAAc,EACd,QAAqB;QAEtC,KAAK,EAAE,CAAC;QAJS,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAa;IAGxC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEQ,OAAO,CACd,kBAAwC,EACxC,cAAgC;QAEhC,OAAO,IAAI,kBAAkB,CAC3B,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3B,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CACnD,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YACrD,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC9D,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,YAG7C;IACC,WAAW,CACT,UAAwC,EACxC,OAA2B;QAE3B,MAAM,QAAQ,GACZ,UAAU,CAAC,QAAQ,KAAK,SAAS;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;CACF"}
1
+ {"version":3,"file":"manaInfusion.js","sourceRoot":"","sources":["../../../../src/parser/recipe/botania/manaInfusion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAKlD,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUzE,MAAM,OAAO,kBAAmB,SAAQ,MAAM;IAEzB;IACA;IACA;IAHnB,YACmB,UAAsB,EACtB,MAAc,EACd,QAAqB;QAEtC,KAAK,EAAE,CAAC;QAJS,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAa;IAGxC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,kBAAkB,CAC3B,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EACpC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5B,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CACpD,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YACrD,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC9D,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,YAG7C;IACC,WAAW,CACT,UAAwC,EACxC,OAA2B;QAE3B,MAAM,QAAQ,GACZ,UAAU,CAAC,QAAQ,KAAK,SAAS;YAC/B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -1,7 +1,5 @@
1
- import type { Ingredient } from "../../../common/ingredient/index.js";
2
- import type { Result } from "../../../common/result/index.js";
3
1
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
4
- import type { RecipeHolder, RecipeParseContext, Replacer } from "../index.js";
2
+ import type { RecipeHolder, RecipeModifier, RecipeParseContext } from "../index.js";
5
3
  import RecipeParser, { Recipe } from "../index.js";
6
4
  export type NbtWrapperRecipeDefinition = RecipeDefinition & Readonly<{
7
5
  nbt: string;
@@ -10,9 +8,9 @@ export type NbtWrapperRecipeDefinition = RecipeDefinition & Readonly<{
10
8
  export declare class NbtWrapperRecipe extends Recipe {
11
9
  private readonly recipe;
12
10
  constructor(recipe: RecipeHolder);
13
- getIngredients(): Ingredient[];
14
- getResults(): Result[];
15
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): Recipe;
11
+ getIngredients(): import("../../../common/ingredient/index.js").Ingredient[];
12
+ getResults(): import("../../../common/result/index.js").Result[];
13
+ replace(modifier: RecipeModifier): NbtWrapperRecipe;
16
14
  serialize(context: RecipeParseContext): Partial<NbtWrapperRecipeDefinition>;
17
15
  }
18
16
  export declare class NbtWrapperRecipeParser extends RecipeParser<NbtWrapperRecipeDefinition, NbtWrapperRecipe> {
@@ -11,8 +11,8 @@ export class NbtWrapperRecipe extends Recipe {
11
11
  getResults() {
12
12
  return this.recipe.getResults();
13
13
  }
14
- replace(ingredientReplacer, resultReplacer) {
15
- return new NbtWrapperRecipe(this.recipe.replace(ingredientReplacer, resultReplacer));
14
+ replace(modifier) {
15
+ return new NbtWrapperRecipe(this.recipe.replace(modifier));
16
16
  }
17
17
  serialize(context) {
18
18
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"nbtWrapper.js","sourceRoot":"","sources":["../../../../src/parser/recipe/botania/nbtWrapper.ts"],"names":[],"mappings":"AAIA,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQnD,MAAM,OAAO,gBAAiB,SAAQ,MAAM;IACb;IAA7B,YAA6B,MAAoB;QAC/C,KAAK,EAAE,CAAC;QADmB,WAAM,GAAN,MAAM,CAAc;IAEjD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACtC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAEQ,OAAO,CACd,kBAAwC,EACxC,cAAgC;QAEhC,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC,CACxD,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;SAC/C,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,YAG3C;IACC,WAAW,CACT,UAAsC,EACtC,OAA2B;QAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"nbtWrapper.js","sourceRoot":"","sources":["../../../../src/parser/recipe/botania/nbtWrapper.ts"],"names":[],"mappings":"AAMA,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQnD,MAAM,OAAO,gBAAiB,SAAQ,MAAM;IACb;IAA7B,YAA6B,MAAoB;QAC/C,KAAK,EAAE,CAAC;QADmB,WAAM,GAAN,MAAM,CAAc;IAEjD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACtC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;SAC/C,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,YAG3C;IACC,WAAW,CACT,UAAsC,EACtC,OAA2B;QAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { Ingredient } from "../../../common/ingredient/index.js";
2
2
  import type { Result } from "../../../common/result/index.js";
3
3
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
4
- import type { RecipeHolder, RecipeParseContext, Replacer } from "../index.js";
4
+ import type { RecipeHolder, RecipeModifier, RecipeParseContext } from "../index.js";
5
5
  import RecipeParser, { Recipe } from "../index.js";
6
6
  export type AssemblyRecipeDefinition = RecipeDefinition & Readonly<{
7
7
  ingredient: unknown;
@@ -18,7 +18,7 @@ export declare class AssemblyRecipe extends Recipe {
18
18
  constructor(ingredient: Ingredient, transitionalItem: Ingredient, results: Result[], sequence: RecipeHolder[]);
19
19
  getIngredients(): Ingredient[];
20
20
  getResults(): Result[];
21
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): AssemblyRecipe;
21
+ replace(modifier: RecipeModifier): AssemblyRecipe;
22
22
  serialize(context: RecipeParseContext): Partial<AssemblyRecipeDefinition>;
23
23
  }
24
24
  export declare class AssemblyRecipeParser extends RecipeParser<AssemblyRecipeDefinition, AssemblyRecipe> {
@@ -21,14 +21,14 @@ export class AssemblyRecipe extends Recipe {
21
21
  getResults() {
22
22
  return [...this.results, ...this.sequence.flatMap((it) => it.getResults())];
23
23
  }
24
- replace(ingredientReplacer, resultReplacer) {
25
- return new AssemblyRecipe(ingredientReplacer(this.ingredient), ingredientReplacer(this.transitionalItem), this.results.map(resultReplacer), this.sequence.map((it) => it.replace(ingredientReplacer, resultReplacer)));
24
+ replace(modifier) {
25
+ return new AssemblyRecipe(modifier.ingredient(this.ingredient), modifier.ingredient(this.transitionalItem), this.results.map(modifier.result), this.sequence.map((it) => it.replace(modifier)));
26
26
  }
27
27
  serialize(context) {
28
28
  return {
29
29
  ingredient: context.ingredients.serialize(this.ingredient),
30
30
  transitionalItem: context.ingredients.serialize(this.transitionalItem),
31
- results: context.ingredients.serializeList(this.results),
31
+ results: context.results.serializeList(this.results),
32
32
  sequence: this.sequence.map((it) => context.recipes.serialize(it)),
33
33
  };
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"assembly.js","sourceRoot":"","sources":["../../../../src/parser/recipe/create/assembly.ts"],"names":[],"mappings":"AAIA,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAWnD,MAAM,OAAO,cAAe,SAAQ,MAAM;IAErB;IACA;IACA;IACA;IAJnB,YACmB,UAAsB,EACtB,gBAA4B,EAC5B,OAAiB,EACjB,QAAwB;QAEzC,KAAK,EAAE,CAAC;QALS,eAAU,GAAV,UAAU,CAAY;QACtB,qBAAgB,GAAhB,gBAAgB,CAAY;QAC5B,YAAO,GAAP,OAAO,CAAU;QACjB,aAAQ,GAAR,QAAQ,CAAgB;IAG3C,CAAC;IAED,cAAc;QACZ,OAAO;YACL,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,gBAAgB;YACrB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEQ,OAAO,CACd,kBAAwC,EACxC,cAAgC;QAEhC,OAAO,IAAI,cAAc,CACvB,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAC1E,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1D,gBAAgB,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACtE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;YACxD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SACnE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,YAGzC;IACC,WAAW,CACT,UAAoC,EACpC,OAA2B;QAE3B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CACjD,UAAU,CAAC,gBAAgB,CAC5B,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAC9C,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAChC,CAAC;QACF,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;CACF"}
1
+ {"version":3,"file":"assembly.js","sourceRoot":"","sources":["../../../../src/parser/recipe/create/assembly.ts"],"names":[],"mappings":"AAQA,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAWnD,MAAM,OAAO,cAAe,SAAQ,MAAM;IAErB;IACA;IACA;IACA;IAJnB,YACmB,UAAsB,EACtB,gBAA4B,EAC5B,OAAiB,EACjB,QAAwB;QAEzC,KAAK,EAAE,CAAC;QALS,eAAU,GAAV,UAAU,CAAY;QACtB,qBAAgB,GAAhB,gBAAgB,CAAY;QAC5B,YAAO,GAAP,OAAO,CAAU;QACjB,aAAQ,GAAR,QAAQ,CAAgB;IAG3C,CAAC;IAED,cAAc;QACZ,OAAO;YACL,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,gBAAgB;YACrB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,cAAc,CACvB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EACpC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1D,gBAAgB,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACtE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;YACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SACnE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,YAGzC;IACC,WAAW,CACT,UAAoC,EACpC,OAA2B;QAE3B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CACjD,UAAU,CAAC,gBAAgB,CAC5B,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAC9C,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAChC,CAAC;QACF,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { Ingredient } from "../../../common/ingredient/index.js";
2
2
  import type { Result } from "../../../common/result/index.js";
3
3
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
4
- import type { RecipeParseContext, Replacer } from "../index.js";
4
+ import type { RecipeModifier, RecipeParseContext } from "../index.js";
5
5
  import RecipeParser, { Recipe } from "../index.js";
6
6
  export type CookingRecipeDefinition = RecipeDefinition & Readonly<{
7
7
  ingredients: unknown[];
@@ -18,7 +18,7 @@ export declare class CookingRecipe extends Recipe {
18
18
  constructor(ingredients: Ingredient[], result: Result, container?: Ingredient | undefined);
19
19
  getIngredients(): Ingredient[];
20
20
  getResults(): Result[];
21
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): CookingRecipe;
21
+ replace(modifier: RecipeModifier): CookingRecipe;
22
22
  serialize(context: RecipeParseContext): Partial<CookingRecipeDefinition>;
23
23
  }
24
24
  export default class CookingRecipeParser extends RecipeParser<CookingRecipeDefinition, CookingRecipe> {
@@ -16,8 +16,8 @@ export class CookingRecipe extends Recipe {
16
16
  getResults() {
17
17
  return [this.result];
18
18
  }
19
- replace(ingredientReplacer, resultReplacer) {
20
- return new CookingRecipe(this.ingredients.map(ingredientReplacer), resultReplacer(this.result), this.container && ingredientReplacer(this.container));
19
+ replace(modifier) {
20
+ return new CookingRecipe(this.ingredients.map(modifier.ingredient), modifier.result(this.result), this.container && modifier.ingredient(this.container));
21
21
  }
22
22
  serialize(context) {
23
23
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"cooking.js","sourceRoot":"","sources":["../../../../src/parser/recipe/farmersdelight/cooking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAKlD,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAYnD,MAAM,OAAO,aAAc,SAAQ,MAAM;IAEpB;IACA;IACA;IAHnB,YACmB,WAAyB,EACzB,MAAc,EACd,SAAsB;QAEvC,KAAK,EAAE,CAAC;QAJS,gBAAW,GAAX,WAAW,CAAc;QACzB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAa;IAGzC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEQ,OAAO,CACd,kBAAwC,EACxC,cAAgC;QAEhC,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,EACxC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3B,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CACrD,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;YAChE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9C,SAAS,EACP,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;SAClE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAGhD;IACC,WAAW,CACT,UAAmC,EACnC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzD,yCAAyC;QACzC,MAAM,SAAS,GACb,UAAU,CAAC,SAAS,KAAK,SAAS;YAChC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"cooking.js","sourceRoot":"","sources":["../../../../src/parser/recipe/farmersdelight/cooking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAKlD,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAYnD,MAAM,OAAO,aAAc,SAAQ,MAAM;IAEpB;IACA;IACA;IAHnB,YACmB,WAAyB,EACzB,MAAc,EACd,SAAsB;QAEvC,KAAK,EAAE,CAAC;QAJS,gBAAW,GAAX,WAAW,CAAc;QACzB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAa;IAGzC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EACzC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5B,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CACtD,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;YAChE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9C,SAAS,EACP,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;SAClE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAGhD;IACC,WAAW,CACT,UAAmC,EACnC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzD,yCAAyC;QACzC,MAAM,SAAS,GACb,UAAU,CAAC,SAAS,KAAK,SAAS;YAChC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  import type { Ingredient } from "../../../common/ingredient/index.js";
2
2
  import type { Result } from "../../../common/result/index.js";
3
- import RecipeParser, { type RecipeParseContext, type Replacer } from "../index.js";
3
+ import RecipeParser, { type RecipeModifier, type RecipeParseContext } from "../index.js";
4
4
  import { ManyToManyRecipe, type ManyToManyRecipeDefinition } from "../manyToMany.js";
5
5
  export type ToolInput = Readonly<{
6
6
  type: "farmersdelight:tool_action";
@@ -14,7 +14,7 @@ export declare class CuttingRecipe extends ManyToManyRecipe {
14
14
  private readonly tool;
15
15
  constructor(ingredients: Ingredient[], results: Result[], tool: Ingredient);
16
16
  getIngredients(): Ingredient[];
17
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): CuttingRecipe;
17
+ replace(modifier: RecipeModifier): CuttingRecipe;
18
18
  serialize(context: RecipeParseContext): Partial<CuttingRecipeDefinition>;
19
19
  }
20
20
  export default class CuttingRecipeParser extends RecipeParser<CuttingRecipeDefinition, CuttingRecipe> {
@@ -18,8 +18,8 @@ export class CuttingRecipe extends ManyToManyRecipe {
18
18
  getIngredients() {
19
19
  return [...super.getIngredients(), this.tool];
20
20
  }
21
- replace(ingredientReplacer, resultReplacer) {
22
- return new CuttingRecipe(this.ingredients.map(ingredientReplacer), this.results.map(resultReplacer), ingredientReplacer(this.tool));
21
+ replace(modifier) {
22
+ return new CuttingRecipe(this.ingredients.map(modifier.ingredient), this.results.map(modifier.result), modifier.ingredient(this.tool));
23
23
  }
24
24
  serialize(context) {
25
25
  const { results, ...rest } = super.serialize(context);
@@ -1 +1 @@
1
- {"version":3,"file":"cutting.js","sourceRoot":"","sources":["../../../../src/parser/recipe/farmersdelight/cutting.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,EAAE,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAgB1B,2BAA2B;AAC3B,sEAAsE;AACtE,aAAa;AACb,iBAAiB;AACjB,mCAAmC;AACnC,yBAAyB;AACzB,kDAAkD;AAClD,OAAO;AACP,IAAI;AAEJ,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IAI9B;IAHnB,YACE,WAAyB,EACzB,OAAiB,EACA,IAAgB;QAEjC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAFX,SAAI,GAAJ,IAAI,CAAY;IAGnC,CAAC;IAEQ,cAAc;QACrB,OAAO,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEQ,OAAO,CACd,kBAAwC,EACxC,cAAgC;QAEhC,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,EACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAChC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9B,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/C,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAGhD;IACC,WAAW,CACT,UAAmC,EACnC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"cutting.js","sourceRoot":"","sources":["../../../../src/parser/recipe/farmersdelight/cutting.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,EAAE,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAgB1B,2BAA2B;AAC3B,sEAAsE;AACtE,aAAa;AACb,iBAAiB;AACjB,mCAAmC;AACnC,yBAAyB;AACzB,kDAAkD;AAClD,OAAO;AACP,IAAI;AAEJ,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IAI9B;IAHnB,YACE,WAAyB,EACzB,OAAiB,EACA,IAAgB;QAEjC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAFX,SAAI,GAAJ,IAAI,CAAY;IAGnC,CAAC;IAEQ,cAAc;QACrB,OAAO,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EACjC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/C,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAGhD;IACC,WAAW,CACT,UAAmC,EACnC,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -1,7 +1,5 @@
1
- import type { Ingredient } from "../../../common/ingredient/index.js";
2
- import type { Result } from "../../../common/result/index.js";
3
1
  import type { RecipeDefinition } from "../../../schema/data/recipe.js";
4
- import type { RecipeHolder, RecipeParseContext, Replacer } from "../index.js";
2
+ import type { RecipeHolder, RecipeModifier, RecipeParseContext } from "../index.js";
5
3
  import RecipeParser, { Recipe } from "../index.js";
6
4
  type WithConditions<T> = {
7
5
  conditions: unknown[];
@@ -13,9 +11,9 @@ export type ForgeConditionalRecipeDefinition = RecipeDefinition & Readonly<{
13
11
  export declare class ForgeConditionalRecipe extends Recipe {
14
12
  private readonly recipes;
15
13
  constructor(recipes: WithConditions<RecipeHolder>[]);
16
- getIngredients(): Ingredient[];
17
- getResults(): Result[];
18
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): ForgeConditionalRecipe;
14
+ getIngredients(): import("../../../common/ingredient/index.js").Ingredient[];
15
+ getResults(): import("../../../common/result/index.js").Result[];
16
+ replace(modifier: RecipeModifier): ForgeConditionalRecipe;
19
17
  serialize(context: RecipeParseContext): Partial<ForgeConditionalRecipeDefinition>;
20
18
  additionalTypes(): `${string}:${string}`[];
21
19
  }
@@ -11,10 +11,10 @@ export class ForgeConditionalRecipe extends Recipe {
11
11
  getResults() {
12
12
  return this.recipes.flatMap((it) => it.recipe.getResults());
13
13
  }
14
- replace(ingredientReplacer, resultReplacer) {
14
+ replace(modifier) {
15
15
  return new ForgeConditionalRecipe(this.recipes.map((it) => ({
16
16
  ...it,
17
- recipe: it.recipe.replace(ingredientReplacer, resultReplacer),
17
+ recipe: it.recipe.replace(modifier),
18
18
  })));
19
19
  }
20
20
  serialize(context) {
@@ -1 +1 @@
1
- {"version":3,"file":"conditional.js","sourceRoot":"","sources":["../../../../src/parser/recipe/forge/conditional.ts"],"names":[],"mappings":"AAIA,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAYnD,MAAM,OAAO,sBAAuB,SAAQ,MAAM;IACnB;IAA7B,YAA6B,OAAuC;QAClE,KAAK,EAAE,CAAC;QADmB,YAAO,GAAP,OAAO,CAAgC;IAEpE,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEQ,OAAO,CACd,kBAAwC,EACxC,cAAgC;QAEhC,OAAO,IAAI,sBAAsB,CAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,EAAE;YACL,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC;SAC9D,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjC,GAAG,EAAE;gBACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC;aAC7C,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAEQ,eAAe;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,YAGzD;IACU,WAAW,CAClB,UAA4C,EAC5C,OAA2B;QAE3B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CACpC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACP,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC;SAC/C,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"conditional.js","sourceRoot":"","sources":["../../../../src/parser/recipe/forge/conditional.ts"],"names":[],"mappings":"AAMA,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAYnD,MAAM,OAAO,sBAAuB,SAAQ,MAAM;IACnB;IAA7B,YAA6B,OAAuC;QAClE,KAAK,EAAE,CAAC;QADmB,YAAO,GAAP,OAAO,CAAgC;IAEpE,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEQ,OAAO,CAAC,QAAwB;QACvC,OAAO,IAAI,sBAAsB,CAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,EAAE;YACL,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SACpC,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAEQ,SAAS,CAChB,OAA2B;QAE3B,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjC,GAAG,EAAE;gBACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC;aAC7C,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAEQ,eAAe;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,YAGzD;IACU,WAAW,CAClB,UAA4C,EAC5C,OAA2B;QAE3B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CACpC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACP,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC;SAC/C,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -1,11 +1,15 @@
1
+ import type { Predicate } from "../../common/filters.js";
1
2
  import { type NormalizedId } from "../../common/id.js";
2
3
  import type { Ingredient } from "../../common/ingredient/index.js";
3
- import type { Predicate } from "../../common/predicates.js";
4
4
  import type { Result } from "../../common/result/index.js";
5
5
  import type { PackContext } from "../../loader/context.js";
6
6
  import type { RecipeDefinition } from "../../schema/data/recipe.js";
7
7
  export type Replacer<T> = (value: T) => T;
8
8
  export declare function createReplacer<T>(from: Predicate<T>, to: T): Replacer<T>;
9
+ export type RecipeModifier = {
10
+ result: Replacer<Result>;
11
+ ingredient: Replacer<Ingredient>;
12
+ };
9
13
  export declare class RecipeHolder {
10
14
  private readonly definition;
11
15
  private readonly recipe;
@@ -18,7 +22,7 @@ export declare class RecipeHolder {
18
22
  };
19
23
  getIngredients(): Ingredient[];
20
24
  getResults(): Result[];
21
- replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): RecipeHolder;
25
+ replace(modifier: RecipeModifier): RecipeHolder;
22
26
  replaceIngredient(replace: Replacer<Ingredient>): RecipeHolder;
23
27
  replaceResult(replace: Replacer<Result>): RecipeHolder;
24
28
  getTypes(): NormalizedId[];
@@ -26,7 +30,7 @@ export declare class RecipeHolder {
26
30
  export declare abstract class Recipe {
27
31
  abstract getIngredients(): Ingredient[];
28
32
  abstract getResults(): Result[];
29
- abstract replace(ingredientReplacer: Replacer<Ingredient>, resultReplacer: Replacer<Result>): Recipe;
33
+ abstract replace(modifier: RecipeModifier): Recipe;
30
34
  additionalTypes(): NormalizedId[];
31
35
  abstract serialize(context: RecipeParseContext): Partial<RecipeDefinition>;
32
36
  }