@adeficior/data-modifier 1.0.0-rc.44 → 1.0.0-rc.45
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.
- package/dist/common/registry.d.ts +1 -0
- package/dist/common/registry.js +3 -0
- package/dist/common/registry.js.map +1 -1
- package/dist/emit/recipeGraph.d.ts +23 -0
- package/dist/emit/recipeGraph.js +83 -0
- package/dist/emit/recipeGraph.js.map +1 -0
- package/dist/loader/index.d.ts +3 -3
- package/dist/loader/index.js +3 -0
- package/dist/loader/index.js.map +1 -1
- package/dist/loader/lang.js +1 -1
- package/dist/loader/lang.js.map +1 -1
- package/dist/loader/pack.d.ts +4 -2
- package/dist/loader/pack.js +9 -6
- package/dist/loader/pack.js.map +1 -1
- package/package.json +1 -1
package/dist/common/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/common/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,QAAQ;IACV,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEhE,GAAG,CAAC,GAAiB,EAAE,KAAa;QAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,GAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,GAAiB,EAAE,YAA0B;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,QAA0C;QAChD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAmD;QAEnD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,GAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/common/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,QAAQ;IACV,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEhE,GAAG,CAAC,GAAiB,EAAE,KAAa;QAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,GAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,GAAiB,EAAE,YAA0B;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,QAA0C;QAChD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAmD;QAEnD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,GAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type BaseContext } from "@adeficior/pack-resolver";
|
|
2
|
+
import type { ClearableEmitter } from ".";
|
|
3
|
+
import { type IdInput } from "../common/id";
|
|
4
|
+
import type { JsonLoader } from "../loader";
|
|
5
|
+
import type { RecipeHolder } from "../parser";
|
|
6
|
+
import type { ItemId, RecipeSerializerId } from "../stubTypes";
|
|
7
|
+
export interface RecipeGraphAccessor {
|
|
8
|
+
represent(type: RecipeSerializerId, icon: IdInput<ItemId>): void;
|
|
9
|
+
show(id: IdInput): void;
|
|
10
|
+
}
|
|
11
|
+
export declare class RecipeGraphEmitter implements ClearableEmitter, RecipeGraphAccessor {
|
|
12
|
+
private readonly recipes;
|
|
13
|
+
private readonly nodes;
|
|
14
|
+
private readonly icons;
|
|
15
|
+
private edges;
|
|
16
|
+
constructor(recipes: JsonLoader<RecipeHolder>);
|
|
17
|
+
represent(type: RecipeSerializerId, icon: IdInput<ItemId>): void;
|
|
18
|
+
show(id: IdInput): void;
|
|
19
|
+
private addIONode;
|
|
20
|
+
private addRecipeNode;
|
|
21
|
+
clear(): void;
|
|
22
|
+
resolver(context: BaseContext): import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable, BaseContext>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { simpleResolver } from "@adeficior/pack-resolver";
|
|
2
|
+
import { createId, encodeId, prefix, } from "../common/id";
|
|
3
|
+
import Registry from "../common/registry";
|
|
4
|
+
import { toJson } from "../textHelper";
|
|
5
|
+
export class RecipeGraphEmitter {
|
|
6
|
+
recipes;
|
|
7
|
+
nodes = new Registry();
|
|
8
|
+
icons = new Registry();
|
|
9
|
+
edges = [];
|
|
10
|
+
constructor(recipes) {
|
|
11
|
+
this.recipes = recipes;
|
|
12
|
+
}
|
|
13
|
+
represent(type, icon) {
|
|
14
|
+
this.icons.set(type, encodeId(icon));
|
|
15
|
+
}
|
|
16
|
+
show(id) {
|
|
17
|
+
const recipe = this.recipes.get(id);
|
|
18
|
+
if (!recipe)
|
|
19
|
+
throw new Error(`cannot generate graph for unknown recipe '${id}'`);
|
|
20
|
+
const recipeNodeId = prefix(id, "recipe/");
|
|
21
|
+
this.addRecipeNode(recipeNodeId, recipe);
|
|
22
|
+
recipe
|
|
23
|
+
.getIngredients()
|
|
24
|
+
.forEach((it) => this.addIONode(recipeNodeId, it, true));
|
|
25
|
+
recipe
|
|
26
|
+
.getResults()
|
|
27
|
+
.forEach((it) => this.addIONode(recipeNodeId, it, false));
|
|
28
|
+
}
|
|
29
|
+
addIONode(recipeId, from, input) {
|
|
30
|
+
// TODO just use first ID of whatever
|
|
31
|
+
const [id] = [
|
|
32
|
+
...from.idsFor("minecraft:item"),
|
|
33
|
+
...from.idsFor("minecraft:fluid"),
|
|
34
|
+
...from.idsFor("minecraft:block"),
|
|
35
|
+
];
|
|
36
|
+
if (!id)
|
|
37
|
+
return;
|
|
38
|
+
const { namespace, path } = createId(id);
|
|
39
|
+
this.nodes.set(id, {
|
|
40
|
+
id,
|
|
41
|
+
shape: "image",
|
|
42
|
+
image: `https://icons.macarena.ceo/icons/${namespace}/${path}.png`,
|
|
43
|
+
});
|
|
44
|
+
if (input) {
|
|
45
|
+
this.edges.push({ from: recipeId, to: id, arrows: "to" });
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.edges.push({ from: id, to: recipeId, arrows: "to" });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
addRecipeNode(id, recipe) {
|
|
52
|
+
const icon = this.icons.get(recipe.serializerType);
|
|
53
|
+
if (icon) {
|
|
54
|
+
this.nodes.set(id, {
|
|
55
|
+
id,
|
|
56
|
+
shape: "image",
|
|
57
|
+
image: icon,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
this.nodes.set(id, {
|
|
62
|
+
id,
|
|
63
|
+
label: id,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
clear() {
|
|
68
|
+
this.nodes.clear();
|
|
69
|
+
this.icons.clear();
|
|
70
|
+
this.edges = [];
|
|
71
|
+
}
|
|
72
|
+
resolver(context) {
|
|
73
|
+
return simpleResolver(async (acceptor) => {
|
|
74
|
+
if (this.edges.length === 0)
|
|
75
|
+
return;
|
|
76
|
+
await Promise.all([
|
|
77
|
+
acceptor("graph/nodes.json", toJson(this.nodes.values())),
|
|
78
|
+
acceptor("graph/edges.json", toJson(this.edges)),
|
|
79
|
+
]);
|
|
80
|
+
}, context);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=recipeGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipeGraph.js","sourceRoot":"","sources":["../../src/emit/recipeGraph.ts"],"names":[],"mappings":"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"}
|
package/dist/loader/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { Acceptable, Acceptor, BaseContext, Logger, Resolver } from "@adeficior/pack-resolver";
|
|
2
|
-
import type { Id } from "../common/id.js";
|
|
3
|
-
import Registry from "../common/registry.js";
|
|
2
|
+
import type { Id, IdInput } from "../common/id.js";
|
|
4
3
|
import type { RegistryProvider } from "../emit/index.js";
|
|
5
4
|
export default interface Loader {
|
|
6
5
|
loadFrom(resolver: Resolver): Promise<void>;
|
|
7
6
|
}
|
|
8
7
|
export declare function tryParseJson(logger: Logger, content: Acceptable): any;
|
|
9
8
|
export declare abstract class JsonLoader<T> implements RegistryProvider<T>, Acceptor {
|
|
10
|
-
|
|
9
|
+
private readonly registry;
|
|
11
10
|
protected abstract parse(json: unknown, id: Id): T | null;
|
|
11
|
+
get(id: IdInput): T | undefined;
|
|
12
12
|
forEach(consumer: (recipe: T, id: Id) => void): void;
|
|
13
13
|
forEachAsync(consumer: (recipe: T, id: Id) => Promise<void>): Promise<void>;
|
|
14
14
|
accept(path: string, content: PromiseLike<Acceptable>, context: BaseContext): Promise<false | undefined>;
|
package/dist/loader/index.js
CHANGED
package/dist/loader/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":"AAQA,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,OAAmB;IAC9D,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAgB,UAAU;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":"AAQA,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,OAAmB;IAC9D,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAgB,UAAU;IACb,QAAQ,GAAG,IAAI,QAAQ,EAAK,CAAC;IAI9C,GAAG,CAAC,EAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,QAAqC;QAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAA8C;QAE9C,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,OAAgC,EAChC,OAAoB;QAEpB,MAAM,KAAK,GACT,iEAAiE,CAAC,IAAI,CACpE,IAAI,CACL,CAAC;QACJ,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO,KAAK,CAAC;QAEjC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACzC,MAAM,EAAE,GAAO,EAAE,SAAS,EAAE,SAAU,EAAE,IAAI,EAAE,IAAK,EAAE,CAAC;QAEtD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF"}
|
package/dist/loader/lang.js
CHANGED
|
@@ -3,7 +3,7 @@ import { JsonLoader } from "./index.js";
|
|
|
3
3
|
export default class LangLoader extends JsonLoader {
|
|
4
4
|
parse(json, id) {
|
|
5
5
|
const parsed = LangSchema.parse(json);
|
|
6
|
-
const existing = this.
|
|
6
|
+
const existing = this.get(id);
|
|
7
7
|
if (!existing)
|
|
8
8
|
return parsed;
|
|
9
9
|
return { ...existing, ...parsed };
|
package/dist/loader/lang.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../src/loader/lang.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAA0B;IACtD,KAAK,CAAC,IAAa,EAAE,EAAM;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../src/loader/lang.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAA0B;IACtD,KAAK,CAAC,IAAa,EAAE,EAAM;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC7B,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,CAAC;CACF"}
|
package/dist/loader/pack.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ import type { RecipeRules } from "../emit/data/recipe.js";
|
|
|
12
12
|
import type { TagEmitterOptions, TagRules } from "../emit/data/tags.js";
|
|
13
13
|
import type { ClearableEmitter } from "../emit/index.js";
|
|
14
14
|
import type { PolytoneTabs } from "../emit/polytoneTabs.js";
|
|
15
|
+
import { type RecipeGraphAccessor } from "../emit/recipeGraph.js";
|
|
15
16
|
import { type SemVerInput } from "../packFormat.js";
|
|
16
17
|
import type Loader from "./index.js";
|
|
17
18
|
import type { RecipeLoaderAccessor } from "./recipe.js";
|
|
@@ -23,7 +24,7 @@ export type LoaderEmitOptions = {
|
|
|
23
24
|
description?: string;
|
|
24
25
|
};
|
|
25
26
|
export default class PackLoader implements Loader {
|
|
26
|
-
readonly logger
|
|
27
|
+
private readonly logger;
|
|
27
28
|
private readonly lookup;
|
|
28
29
|
private readonly emitters;
|
|
29
30
|
readonly tags: TagRules;
|
|
@@ -35,7 +36,7 @@ export default class PackLoader implements Loader {
|
|
|
35
36
|
private readonly itemDefinition;
|
|
36
37
|
private readonly blockDefinition;
|
|
37
38
|
private readonly tagLoader;
|
|
38
|
-
private readonly
|
|
39
|
+
private readonly _recipeLoader;
|
|
39
40
|
private readonly lootLoader;
|
|
40
41
|
private readonly langLoader;
|
|
41
42
|
readonly blockstates: BlockstateRules;
|
|
@@ -45,6 +46,7 @@ export default class PackLoader implements Loader {
|
|
|
45
46
|
private readonly acceptor;
|
|
46
47
|
private readonly context;
|
|
47
48
|
private readonly packFormat;
|
|
49
|
+
readonly recipeGraph: RecipeGraphAccessor;
|
|
48
50
|
constructor(logger: Logger, options: PackLoaderOptions);
|
|
49
51
|
registerEmitter<T extends ClearableEmitter>(emitter: T): T;
|
|
50
52
|
registerRegistry(key: string): void;
|
package/dist/loader/pack.js
CHANGED
|
@@ -12,6 +12,7 @@ import RecipeEmitter from "../emit/data/recipe.js";
|
|
|
12
12
|
import TagEmitter from "../emit/data/tags.js";
|
|
13
13
|
import { overwritePackMetadata } from "../emit/packMetadata.js";
|
|
14
14
|
import PolytoneTabsEmitter from "../emit/polytoneTabs.js";
|
|
15
|
+
import { RecipeGraphEmitter, } from "../emit/recipeGraph.js";
|
|
15
16
|
import { lootTableFolder, recipeFolder, } from "../packFormat.js";
|
|
16
17
|
import { createIngredientSerializer, } from "../serializer/ingredients";
|
|
17
18
|
import { createResultSerializer, } from "../serializer/results";
|
|
@@ -34,7 +35,7 @@ export default class PackLoader {
|
|
|
34
35
|
itemDefinition;
|
|
35
36
|
blockDefinition;
|
|
36
37
|
tagLoader;
|
|
37
|
-
|
|
38
|
+
_recipeLoader;
|
|
38
39
|
lootLoader;
|
|
39
40
|
langLoader;
|
|
40
41
|
blockstates = this.registerEmitter(new BlockstateEmitter());
|
|
@@ -47,6 +48,7 @@ export default class PackLoader {
|
|
|
47
48
|
acceptor;
|
|
48
49
|
context;
|
|
49
50
|
packFormat;
|
|
51
|
+
recipeGraph;
|
|
50
52
|
constructor(logger, options) {
|
|
51
53
|
this.logger = logger;
|
|
52
54
|
this.packFormat = options.packFormat;
|
|
@@ -63,8 +65,8 @@ export default class PackLoader {
|
|
|
63
65
|
lookup: this.lookup,
|
|
64
66
|
packFormat: options.packFormat,
|
|
65
67
|
};
|
|
66
|
-
this.
|
|
67
|
-
this.recipes = this.registerEmitter(new RecipeEmitter(logger, this.
|
|
68
|
+
this._recipeLoader = new RecipeLoader(this.context);
|
|
69
|
+
this.recipes = this.registerEmitter(new RecipeEmitter(logger, this._recipeLoader, this.context, this._recipeLoader));
|
|
68
70
|
this.loot = this.registerEmitter(new LootTableEmitter(this.lootLoader, this.context));
|
|
69
71
|
this.lang = this.registerEmitter(new LangEmitter(this.langLoader));
|
|
70
72
|
this.tabs = this.registerEmitter(new PolytoneTabsEmitter(this.lookup));
|
|
@@ -73,12 +75,13 @@ export default class PackLoader {
|
|
|
73
75
|
this.blockDefinition = this.registerEmitter(new BlockDefinitionEmitter(this.models.blocks, this.blockstates, this.loot));
|
|
74
76
|
this.acceptor = filterAcceptor(createMergingAcceptor(distributedAcceptor({
|
|
75
77
|
"data/*/tags/**/*.json": this.tagLoader,
|
|
76
|
-
[`data/*/${recipeFolder(options.packFormat)}/**/*.json`]: this.
|
|
78
|
+
[`data/*/${recipeFolder(options.packFormat)}/**/*.json`]: this._recipeLoader,
|
|
77
79
|
[`data/*/${lootTableFolder(options.packFormat)}/**/*.json`]: this.lootLoader,
|
|
78
80
|
"assets/*/lang/*.json": this.langLoader,
|
|
79
81
|
})), {
|
|
80
82
|
include: ["assets/**/*.json", "data/**/*.json"],
|
|
81
83
|
});
|
|
84
|
+
this.recipeGraph = this.registerEmitter(new RecipeGraphEmitter(this._recipeLoader));
|
|
82
85
|
}
|
|
83
86
|
registerEmitter(emitter) {
|
|
84
87
|
this.emitters.push(emitter);
|
|
@@ -97,7 +100,7 @@ export default class PackLoader {
|
|
|
97
100
|
};
|
|
98
101
|
}
|
|
99
102
|
get recipeLoader() {
|
|
100
|
-
return this.
|
|
103
|
+
return this._recipeLoader;
|
|
101
104
|
}
|
|
102
105
|
get registries() {
|
|
103
106
|
return this.lookup;
|
|
@@ -118,7 +121,7 @@ export default class PackLoader {
|
|
|
118
121
|
this.lookup.set(registryDumpLoader);
|
|
119
122
|
}
|
|
120
123
|
clear() {
|
|
121
|
-
this.
|
|
124
|
+
this._recipeLoader.clear();
|
|
122
125
|
this.lookup.reset();
|
|
123
126
|
this.emitters.forEach((it) => it.clear());
|
|
124
127
|
}
|
package/dist/loader/pack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/loader/pack.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,cAAc,GAMf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,yBAAyB,EAAE,EAEjC,MAAM,gCAAgC,CAAC;AAExC,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAE9D,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AAEpD,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AAExE,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AAEtE,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AAEpD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAEnD,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,mBAAmB,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,YAAY,GAEb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,GAE3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,GAEvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,UAAU,MAAM,WAAW,CAAC;AACnC,OAAO,eAAe,MAAM,WAAW,CAAC;AAExC,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,kBAAkB,MAAM,oBAAoB,CAAC;AAEpD,OAAO,qBAAqB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,UAAU,MAAM,WAAW,CAAC;AAWnC,MAAM,CAAC,OAAO,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/loader/pack.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,cAAc,GAMf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,yBAAyB,EAAE,EAEjC,MAAM,gCAAgC,CAAC;AAExC,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAE9D,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AAEpD,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AAExE,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AAEtE,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AAEpD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAEnD,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,mBAAmB,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,kBAAkB,GAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,YAAY,GAEb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,GAE3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,GAEvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,UAAU,MAAM,WAAW,CAAC;AACnC,OAAO,eAAe,MAAM,WAAW,CAAC;AAExC,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,kBAAkB,MAAM,oBAAoB,CAAC;AAEpD,OAAO,qBAAqB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,UAAU,MAAM,WAAW,CAAC;AAWnC,MAAM,CAAC,OAAO,OAAO,UAAU;IAsCV;IArCF,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAErC,QAAQ,GAAuB,EAAE,CAAC;IAE1C,IAAI,CAAW;IACf,OAAO,CAAc;IACrB,IAAI,CAAY;IAChB,IAAI,CAAY;IAChB,IAAI,CAAe;IACnB,SAAS,CAAiB;IAClB,cAAc,CAAsB;IACpC,eAAe,CAAuB;IAEtC,SAAS,CAAa;IACtB,aAAa,CAAe;IAC5B,UAAU,CAAkB;IAC5B,UAAU,CAAa;IAC/B,WAAW,GAAoB,IAAI,CAAC,eAAe,CAC1D,IAAI,iBAAiB,EAAE,CACxB,CAAC;IAEO,MAAM,GAAoB;QACjC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACvD,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;KACtD,CAAC;IAEe,OAAO,CAAmB;IAC1B,WAAW,CAAuB;IAElC,QAAQ,CAAW;IACnB,OAAO,CAAc;IAErB,UAAU,CAAc;IAEhC,WAAW,CAAsB;IAE1C,YACmB,MAAc,EAC/B,OAA0B;QADT,WAAM,GAAN,MAAM,CAAQ;QAG/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAEnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAC3C,OAAO,CAAC,UAAU,EAClB,IAAI,CAAC,MAAM,CACZ,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CACjC,IAAI,aAAa,CACf,MAAM,EACN,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CACF,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAC9B,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CACpD,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAEnE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CACnC,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAC5C,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CACxC,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CACpE,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CACzC,IAAI,sBAAsB,CACxB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,CACV,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,cAAc,CAC5B,qBAAqB,CACnB,mBAAmB,CAAC;YAClB,uBAAuB,EAAE,IAAI,CAAC,SAAS;YACvC,CAAC,UAAU,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EACtD,IAAI,CAAC,aAAa;YACpB,CAAC,UAAU,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EACzD,IAAI,CAAC,UAAU;YACjB,sBAAsB,EAAE,IAAI,CAAC,UAAU;SACxC,CAAC,CACH,EACD;YACE,OAAO,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;SACxB,CAC1B,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CACrC,IAAI,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED,eAAe,CAA6B,OAAU;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,GAAW;QAC1B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,WAAW,CAAuB,GAAM;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,OAAO;QAIT,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,eAAe;YAC5B,KAAK,EAAE,IAAI,CAAC,cAAc;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,qBAAqB,CAAC,IAAsB;QAC1C,OAAO,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,gBAAgB,CAAC,SAAqB;QACpC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAkB;QAC/B,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAkB;QACvC,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACpD,MAAM,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEO,QAAQ,CAAC,OAAwC;QACvD,MAAM,gBAAgB,GAAG,gBAAgB,CACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACvB,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CACtE,EACD,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CAAC;QAEF,OAAO,qBAAqB,CAAC,gBAAgB,EAAE;YAC7C,GAAG,OAAO;YACV,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAY,EAAE,UAA6B,EAAE;QACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAc,EAAE,EAAY;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;CACF"}
|