@remvst/asset-catalog 1.2.0 → 1.3.1
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.
|
@@ -52,31 +52,38 @@ async function generatedCreateCatalogFunction(assetDir, tree, spritesheet) {
|
|
|
52
52
|
const stats = await fs_1.promises.stat(item);
|
|
53
53
|
const withoutExt = (0, path_1.basename)(subname, (0, path_1.extname)(subname));
|
|
54
54
|
const spriteData = spritesheet?.get((0, path_1.resolve)(item)) || null;
|
|
55
|
-
let
|
|
55
|
+
let spriteDataArr = null;
|
|
56
56
|
if (spriteData) {
|
|
57
|
-
|
|
58
|
-
sheet: SpriteSheetPng,
|
|
59
|
-
frame: ${JSON.stringify(spriteData)},
|
|
60
|
-
}`;
|
|
57
|
+
spriteDataArr = `expandSpriteData(SpriteSheetPng, ${spriteData.x}, ${spriteData.y}, ${spriteData.width}, ${spriteData.height})`;
|
|
61
58
|
}
|
|
62
|
-
generated += indent + ` ${(0, utils_1.lowerCamelize)(withoutExt)}: createItem(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
spriteData:
|
|
68
|
-
|
|
59
|
+
generated += indent + ` ${(0, utils_1.lowerCamelize)(withoutExt)}: createItem(expand(
|
|
60
|
+
${importName(assetDir, item)},
|
|
61
|
+
${dimensions.width},
|
|
62
|
+
${dimensions.height},
|
|
63
|
+
${stats.size},
|
|
64
|
+
${spriteData ? spriteDataArr : ''}
|
|
65
|
+
)),\n`;
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
68
|
generated += indent + '}';
|
|
72
69
|
return generated;
|
|
73
70
|
}
|
|
74
71
|
let generated = '\n';
|
|
75
|
-
generated += 'export function createTextureCatalog<T>(createItem: (opts:
|
|
72
|
+
generated += 'export function createTextureCatalog<T>(createItem: (opts: CreateItemOptions) => T): TextureCatalog<T> {\n';
|
|
76
73
|
generated += ` return ${await rec(tree, ' ')};\n`;
|
|
77
74
|
generated += '}\n';
|
|
78
75
|
return generated;
|
|
79
76
|
}
|
|
77
|
+
function generateExpandFunction() {
|
|
78
|
+
let generated = '\n';
|
|
79
|
+
generated += 'function expandSpriteData(sheet: string, x: number, y: number, width: number, height: number): SpriteData {\n';
|
|
80
|
+
generated += ` return { sheet, frame: { x, y, width, height } };\n`;
|
|
81
|
+
generated += '}\n\n';
|
|
82
|
+
generated += 'function expand(path: string, width: number, height: number, size: number, spriteData: SpriteData | null = null): CreateItemOptions {\n';
|
|
83
|
+
generated += ` return { path, width, height, size, spriteData };\n`;
|
|
84
|
+
generated += '}\n';
|
|
85
|
+
return generated;
|
|
86
|
+
}
|
|
80
87
|
async function createSpritesheet(tree, outFile, excludes) {
|
|
81
88
|
const bins = [];
|
|
82
89
|
const padding = 1;
|
|
@@ -179,14 +186,21 @@ async function main() {
|
|
|
179
186
|
y: number;
|
|
180
187
|
width: number;
|
|
181
188
|
height: number;
|
|
182
|
-
}\n`;
|
|
189
|
+
}\n\n`;
|
|
183
190
|
generatedFileContent += `export interface SpriteData {
|
|
184
191
|
sheet: string;
|
|
185
192
|
frame: Rectangle;
|
|
186
|
-
}\n`;
|
|
187
|
-
generatedFileContent +=
|
|
193
|
+
}\n\n`;
|
|
194
|
+
generatedFileContent += `export interface CreateItemOptions {
|
|
195
|
+
path: string;
|
|
196
|
+
width: number;
|
|
197
|
+
height: number;
|
|
198
|
+
size: number;
|
|
199
|
+
spriteData: SpriteData | null;
|
|
200
|
+
}\n\n`;
|
|
188
201
|
generatedFileContent += 'export type TextureCatalog<T> = ' + generatedTemplateInterface(tree, 'TextureCatalog');
|
|
189
202
|
generatedFileContent += '\n\n';
|
|
203
|
+
generatedFileContent += generateExpandFunction();
|
|
190
204
|
generatedFileContent += await generatedCreateCatalogFunction(argv.assetDir, tree, spritesheet);
|
|
191
205
|
await fs_1.promises.writeFile(generatedTs, generatedFileContent);
|
|
192
206
|
}
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -54,21 +54,18 @@ async function generatedCreateCatalogFunction(assetDir: string, tree: Tree, spri
|
|
|
54
54
|
const stats = await fs.stat(item);
|
|
55
55
|
const withoutExt = basename(subname, extname(subname));
|
|
56
56
|
const spriteData = spritesheet?.get(resolve(item)) || null;
|
|
57
|
-
let
|
|
57
|
+
let spriteDataArr: string | null = null;
|
|
58
58
|
if (spriteData) {
|
|
59
|
-
|
|
60
|
-
sheet: SpriteSheetPng,
|
|
61
|
-
frame: ${JSON.stringify(spriteData)},
|
|
62
|
-
}`;
|
|
59
|
+
spriteDataArr = `expandSpriteData(SpriteSheetPng, ${spriteData.x}, ${spriteData.y}, ${spriteData.width}, ${spriteData.height})`;
|
|
63
60
|
}
|
|
64
61
|
|
|
65
|
-
generated += indent + ` ${lowerCamelize(withoutExt)}: createItem(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
spriteData:
|
|
71
|
-
|
|
62
|
+
generated += indent + ` ${lowerCamelize(withoutExt)}: createItem(expand(
|
|
63
|
+
${importName(assetDir, item)},
|
|
64
|
+
${dimensions.width},
|
|
65
|
+
${dimensions.height},
|
|
66
|
+
${stats.size},
|
|
67
|
+
${spriteData ? spriteDataArr : ''}
|
|
68
|
+
)),\n`;
|
|
72
69
|
}
|
|
73
70
|
}
|
|
74
71
|
generated += indent + '}';
|
|
@@ -76,12 +73,23 @@ async function generatedCreateCatalogFunction(assetDir: string, tree: Tree, spri
|
|
|
76
73
|
}
|
|
77
74
|
|
|
78
75
|
let generated = '\n';
|
|
79
|
-
generated += 'export function createTextureCatalog<T>(createItem: (opts:
|
|
76
|
+
generated += 'export function createTextureCatalog<T>(createItem: (opts: CreateItemOptions) => T): TextureCatalog<T> {\n';
|
|
80
77
|
generated += ` return ${await rec(tree, ' ')};\n`;
|
|
81
78
|
generated += '}\n';
|
|
82
79
|
return generated;
|
|
83
80
|
}
|
|
84
81
|
|
|
82
|
+
function generateExpandFunction() {
|
|
83
|
+
let generated = '\n';
|
|
84
|
+
generated += 'function expandSpriteData(sheet: string, x: number, y: number, width: number, height: number): SpriteData {\n';
|
|
85
|
+
generated += ` return { sheet, frame: { x, y, width, height } };\n`;
|
|
86
|
+
generated += '}\n\n';
|
|
87
|
+
generated += 'function expand(path: string, width: number, height: number, size: number, spriteData: SpriteData | null = null): CreateItemOptions {\n';
|
|
88
|
+
generated += ` return { path, width, height, size, spriteData };\n`;
|
|
89
|
+
generated += '}\n';
|
|
90
|
+
return generated;
|
|
91
|
+
}
|
|
92
|
+
|
|
85
93
|
async function createSpritesheet(tree: Tree, outFile: string, excludes: string[]): Promise<SpritesheetResult> {
|
|
86
94
|
const bins: (pack.Bin & {path: string})[] = [];
|
|
87
95
|
|
|
@@ -199,14 +207,21 @@ async function main() {
|
|
|
199
207
|
y: number;
|
|
200
208
|
width: number;
|
|
201
209
|
height: number;
|
|
202
|
-
}\n`;
|
|
210
|
+
}\n\n`;
|
|
203
211
|
generatedFileContent += `export interface SpriteData {
|
|
204
212
|
sheet: string;
|
|
205
213
|
frame: Rectangle;
|
|
206
|
-
}\n`;
|
|
207
|
-
generatedFileContent +=
|
|
214
|
+
}\n\n`;
|
|
215
|
+
generatedFileContent += `export interface CreateItemOptions {
|
|
216
|
+
path: string;
|
|
217
|
+
width: number;
|
|
218
|
+
height: number;
|
|
219
|
+
size: number;
|
|
220
|
+
spriteData: SpriteData | null;
|
|
221
|
+
}\n\n`;
|
|
208
222
|
generatedFileContent += 'export type TextureCatalog<T> = ' + generatedTemplateInterface(tree, 'TextureCatalog');
|
|
209
223
|
generatedFileContent += '\n\n';
|
|
224
|
+
generatedFileContent += generateExpandFunction();
|
|
210
225
|
generatedFileContent += await generatedCreateCatalogFunction(argv.assetDir, tree, spritesheet);
|
|
211
226
|
|
|
212
227
|
await fs.writeFile(generatedTs, generatedFileContent);
|