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.
@@ -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];
@@ -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 renderer = new ItemsRenderer('latest', blockstatesModels, itemsAtlasParser, blocksAtlasParser);
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)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mc-assets",
3
- "version": "0.2.33",
3
+ "version": "0.2.34",
4
4
  "author": "Vitaly Turovsky <vital2580@icloud.com>",
5
5
  "license": "MIT",
6
6
  "files": [