mc-assets 0.2.33 → 0.2.34
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/itemsRenderer.d.ts +24 -1
- package/dist/itemsRenderer.js +21 -2
- package/dist/itemsRenderer.test.js +2 -1
- package/package.json +1 -1
package/dist/itemsRenderer.d.ts
CHANGED
|
@@ -16,6 +16,18 @@ export declare class ItemsRenderer {
|
|
|
16
16
|
/** @deprecated */
|
|
17
17
|
path: string;
|
|
18
18
|
} | undefined;
|
|
19
|
+
resolveBlockModel(model: any, blockName: string): {
|
|
20
|
+
resolvedModel: Pick<BlockModel, "textures" | "ao" | "elements"> & {
|
|
21
|
+
x?: number;
|
|
22
|
+
y?: number;
|
|
23
|
+
z?: number;
|
|
24
|
+
uvlock?: boolean;
|
|
25
|
+
weight?: number;
|
|
26
|
+
};
|
|
27
|
+
readonly top: string;
|
|
28
|
+
readonly left: string;
|
|
29
|
+
readonly right: string;
|
|
30
|
+
} | undefined;
|
|
19
31
|
tryGetFullBlock(model: any, blockName: string): {
|
|
20
32
|
top: {
|
|
21
33
|
slice: [number, number, number, number];
|
|
@@ -37,11 +49,22 @@ export declare class ItemsRenderer {
|
|
|
37
49
|
};
|
|
38
50
|
resolvedModel: BlockModel;
|
|
39
51
|
} | undefined;
|
|
40
|
-
getItemTexture(itemNameOrModel: string, _properties?: Record<string, string | boolean>, exactItemResolve?: boolean): {
|
|
52
|
+
getItemTexture(itemNameOrModel: string, _properties?: Record<string, string | boolean>, exactItemResolve?: boolean, onlyResolveBlockModel?: boolean): {
|
|
41
53
|
slice: [number, number, number, number];
|
|
42
54
|
type: string;
|
|
43
55
|
/** @deprecated */
|
|
44
56
|
path: string;
|
|
57
|
+
} | {
|
|
58
|
+
resolvedModel: Pick<BlockModel, "textures" | "ao" | "elements"> & {
|
|
59
|
+
x?: number;
|
|
60
|
+
y?: number;
|
|
61
|
+
z?: number;
|
|
62
|
+
uvlock?: boolean;
|
|
63
|
+
weight?: number;
|
|
64
|
+
};
|
|
65
|
+
readonly top: string;
|
|
66
|
+
readonly left: string;
|
|
67
|
+
readonly right: string;
|
|
45
68
|
} | {
|
|
46
69
|
top: {
|
|
47
70
|
slice: [number, number, number, number];
|
package/dist/itemsRenderer.js
CHANGED
|
@@ -34,6 +34,25 @@ export class ItemsRenderer {
|
|
|
34
34
|
path: type
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
+
resolveBlockModel(model, blockName) {
|
|
38
|
+
if (!this.blocksAtlasParser)
|
|
39
|
+
return;
|
|
40
|
+
const { resolvedModel } = this.assetsParser.getResolvedModelsByModelData(model);
|
|
41
|
+
if (!resolvedModel?.elements?.length)
|
|
42
|
+
return;
|
|
43
|
+
return {
|
|
44
|
+
resolvedModel,
|
|
45
|
+
get top() {
|
|
46
|
+
throw new Error('Was called with onlyResolveBlockModel = true');
|
|
47
|
+
},
|
|
48
|
+
get left() {
|
|
49
|
+
throw new Error('Was called with onlyResolveBlockModel = true');
|
|
50
|
+
},
|
|
51
|
+
get right() {
|
|
52
|
+
throw new Error('Was called with onlyResolveBlockModel = true');
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
37
56
|
tryGetFullBlock(model, blockName) {
|
|
38
57
|
if (!this.blocksAtlasParser)
|
|
39
58
|
return;
|
|
@@ -65,7 +84,7 @@ export class ItemsRenderer {
|
|
|
65
84
|
resolvedModel: resolvedModel
|
|
66
85
|
};
|
|
67
86
|
}
|
|
68
|
-
getItemTexture(itemNameOrModel, _properties = {}, exactItemResolve = false) {
|
|
87
|
+
getItemTexture(itemNameOrModel, _properties = {}, exactItemResolve = false, onlyResolveBlockModel = false) {
|
|
69
88
|
let [_namespace, _name] = itemNameOrModel.includes(':') ? itemNameOrModel.split(':') : ['minecraft', itemNameOrModel];
|
|
70
89
|
const namespace = _namespace === 'minecraft' ? '' : _namespace;
|
|
71
90
|
const name = _name;
|
|
@@ -89,7 +108,7 @@ export class ItemsRenderer {
|
|
|
89
108
|
blockModel = true;
|
|
90
109
|
}
|
|
91
110
|
if (blockModel || model?.elements) {
|
|
92
|
-
return this.tryGetFullBlock(model, cleanFullModelPath);
|
|
111
|
+
return onlyResolveBlockModel ? this.resolveBlockModel(model, cleanFullModelPath) : this.tryGetFullBlock(model, cleanFullModelPath);
|
|
93
112
|
}
|
|
94
113
|
}
|
|
95
114
|
if (!model)
|
|
@@ -10,7 +10,8 @@ blockstatesModels.models.latest['test:block/test'] = blockstatesModels.models.la
|
|
|
10
10
|
describe('ItemsRenderer', () => {
|
|
11
11
|
const itemsAtlasParser = new AtlasParser(itemsAtlases, '');
|
|
12
12
|
const blocksAtlasParser = new AtlasParser(blocksAtlases, '');
|
|
13
|
-
const
|
|
13
|
+
const version = '1.21.4';
|
|
14
|
+
const renderer = new ItemsRenderer(version, blockstatesModels, itemsAtlasParser, blocksAtlasParser);
|
|
14
15
|
const getItemTexture = (item) => {
|
|
15
16
|
const result = renderer.getItemTexture(item);
|
|
16
17
|
if (!result)
|