@flighthq/particles-formats 0.1.0

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 (99) hide show
  1. package/dist/detect.d.ts +18 -0
  2. package/dist/detect.d.ts.map +1 -0
  3. package/dist/detect.js +75 -0
  4. package/dist/detect.js.map +1 -0
  5. package/dist/formatRegistry.d.ts +60 -0
  6. package/dist/formatRegistry.d.ts.map +1 -0
  7. package/dist/formatRegistry.js +75 -0
  8. package/dist/formatRegistry.js.map +1 -0
  9. package/dist/index.d.ts +21 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +21 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/libgdxParse.d.ts +27 -0
  14. package/dist/libgdxParse.d.ts.map +1 -0
  15. package/dist/libgdxParse.js +316 -0
  16. package/dist/libgdxParse.js.map +1 -0
  17. package/dist/libgdxSchema.d.ts +68 -0
  18. package/dist/libgdxSchema.d.ts.map +1 -0
  19. package/dist/libgdxSchema.js +12 -0
  20. package/dist/libgdxSchema.js.map +1 -0
  21. package/dist/libgdxSerialize.d.ts +17 -0
  22. package/dist/libgdxSerialize.d.ts.map +1 -0
  23. package/dist/libgdxSerialize.js +295 -0
  24. package/dist/libgdxSerialize.js.map +1 -0
  25. package/dist/parseParticleConfig.d.ts +34 -0
  26. package/dist/parseParticleConfig.d.ts.map +1 -0
  27. package/dist/parseParticleConfig.js +96 -0
  28. package/dist/parseParticleConfig.js.map +1 -0
  29. package/dist/particleDesignerParse.d.ts +23 -0
  30. package/dist/particleDesignerParse.d.ts.map +1 -0
  31. package/dist/particleDesignerParse.js +214 -0
  32. package/dist/particleDesignerParse.js.map +1 -0
  33. package/dist/particleDesignerSchema.d.ts +51 -0
  34. package/dist/particleDesignerSchema.d.ts.map +1 -0
  35. package/dist/particleDesignerSchema.js +5 -0
  36. package/dist/particleDesignerSchema.js.map +1 -0
  37. package/dist/particleDesignerSerialize.d.ts +22 -0
  38. package/dist/particleDesignerSerialize.d.ts.map +1 -0
  39. package/dist/particleDesignerSerialize.js +209 -0
  40. package/dist/particleDesignerSerialize.js.map +1 -0
  41. package/dist/pixiParse.d.ts +18 -0
  42. package/dist/pixiParse.d.ts.map +1 -0
  43. package/dist/pixiParse.js +173 -0
  44. package/dist/pixiParse.js.map +1 -0
  45. package/dist/serializeResult.d.ts +15 -0
  46. package/dist/serializeResult.d.ts.map +1 -0
  47. package/dist/serializeResult.js +2 -0
  48. package/dist/serializeResult.js.map +1 -0
  49. package/dist/spineParse.d.ts +18 -0
  50. package/dist/spineParse.d.ts.map +1 -0
  51. package/dist/spineParse.js +263 -0
  52. package/dist/spineParse.js.map +1 -0
  53. package/dist/spineSchema.d.ts +41 -0
  54. package/dist/spineSchema.d.ts.map +1 -0
  55. package/dist/spineSchema.js +8 -0
  56. package/dist/spineSchema.js.map +1 -0
  57. package/dist/spineSerialize.d.ts +16 -0
  58. package/dist/spineSerialize.d.ts.map +1 -0
  59. package/dist/spineSerialize.js +108 -0
  60. package/dist/spineSerialize.js.map +1 -0
  61. package/dist/starlingPexParse.d.ts +29 -0
  62. package/dist/starlingPexParse.d.ts.map +1 -0
  63. package/dist/starlingPexParse.js +254 -0
  64. package/dist/starlingPexParse.js.map +1 -0
  65. package/dist/starlingPexSchema.d.ts +49 -0
  66. package/dist/starlingPexSchema.d.ts.map +1 -0
  67. package/dist/starlingPexSchema.js +15 -0
  68. package/dist/starlingPexSchema.js.map +1 -0
  69. package/dist/starlingPexSerialize.d.ts +20 -0
  70. package/dist/starlingPexSerialize.d.ts.map +1 -0
  71. package/dist/starlingPexSerialize.js +184 -0
  72. package/dist/starlingPexSerialize.js.map +1 -0
  73. package/dist/unityParse.d.ts +23 -0
  74. package/dist/unityParse.d.ts.map +1 -0
  75. package/dist/unityParse.js +347 -0
  76. package/dist/unityParse.js.map +1 -0
  77. package/dist/unitySchema.d.ts +109 -0
  78. package/dist/unitySchema.d.ts.map +1 -0
  79. package/dist/unitySchema.js +9 -0
  80. package/dist/unitySchema.js.map +1 -0
  81. package/dist/unitySerialize.d.ts +20 -0
  82. package/dist/unitySerialize.d.ts.map +1 -0
  83. package/dist/unitySerialize.js +148 -0
  84. package/dist/unitySerialize.js.map +1 -0
  85. package/package.json +38 -0
  86. package/src/detect.test.ts +99 -0
  87. package/src/formatRegistry.test.ts +118 -0
  88. package/src/libgdxParse.test.ts +309 -0
  89. package/src/libgdxSerialize.test.ts +279 -0
  90. package/src/parseParticleConfig.test.ts +447 -0
  91. package/src/particleDesignerParse.test.ts +279 -0
  92. package/src/particleDesignerSerialize.test.ts +113 -0
  93. package/src/pixiParse.test.ts +131 -0
  94. package/src/spineParse.test.ts +289 -0
  95. package/src/spineSerialize.test.ts +81 -0
  96. package/src/starlingPexParse.test.ts +154 -0
  97. package/src/starlingPexSerialize.test.ts +115 -0
  98. package/src/unityParse.test.ts +328 -0
  99. package/src/unitySerialize.test.ts +77 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libgdxParse.js","sourceRoot":"","sources":["../src/libgdxParse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /** A scalar range value (low..high constant pair). */
2
+ export interface LibgdxRangeValue {
3
+ lowMin: number;
4
+ lowMax: number;
5
+ highMin: number;
6
+ highMax: number;
7
+ relative: boolean;
8
+ /** Scaling curve values (parallel to timeline). */
9
+ scaling: number[];
10
+ /** Timeline positions (0–1 normalized). */
11
+ timeline: number[];
12
+ }
13
+ /** Full libGDX particle emitter document. */
14
+ export interface LibgdxParticleDocument {
15
+ /** Emitter name (the string after "- Emitter -"). */
16
+ name: string;
17
+ minParticleCount: number;
18
+ maxParticleCount: number;
19
+ /** Blend mode: true = additive, false = normal (alpha). */
20
+ additive: boolean;
21
+ premultipliedAlpha: boolean;
22
+ delay: LibgdxRangeValue & {
23
+ active: boolean;
24
+ };
25
+ duration: LibgdxRangeValue;
26
+ emission: LibgdxRangeValue;
27
+ life: LibgdxRangeValue;
28
+ lifeOffset: LibgdxRangeValue & {
29
+ active: boolean;
30
+ };
31
+ xOffset: LibgdxRangeValue & {
32
+ active: boolean;
33
+ };
34
+ yOffset: LibgdxRangeValue & {
35
+ active: boolean;
36
+ };
37
+ spawnShape: {
38
+ shape: 'point' | 'line' | 'square' | 'ellipse';
39
+ edges: boolean;
40
+ side: 'both' | 'top' | 'bottom';
41
+ };
42
+ spawnWidth: LibgdxRangeValue;
43
+ spawnHeight: LibgdxRangeValue;
44
+ scale: LibgdxRangeValue;
45
+ velocity: LibgdxRangeValue & {
46
+ active: boolean;
47
+ };
48
+ angle: LibgdxRangeValue & {
49
+ active: boolean;
50
+ };
51
+ rotation: LibgdxRangeValue & {
52
+ active: boolean;
53
+ };
54
+ wind: LibgdxRangeValue & {
55
+ active: boolean;
56
+ };
57
+ gravity: LibgdxRangeValue & {
58
+ active: boolean;
59
+ };
60
+ tint: {
61
+ colors: string[];
62
+ timeline: number[];
63
+ };
64
+ transparency: LibgdxRangeValue;
65
+ imageCount: number;
66
+ imagePath: string;
67
+ }
68
+ //# sourceMappingURL=libgdxSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libgdxSchema.d.ts","sourceRoot":"","sources":["../src/libgdxSchema.ts"],"names":[],"mappings":"AAWA,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,KAAK,EAAE,gBAAgB,GAAG;QACxB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,gBAAgB,GAAG;QAC7B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,OAAO,EAAE,gBAAgB,GAAG;QAC1B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,OAAO,EAAE,gBAAgB,GAAG;QAC1B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,UAAU,EAAE;QACV,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC/C,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;KACjC,CAAC;IACF,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,gBAAgB,GAAG;QAC3B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,KAAK,EAAE,gBAAgB,GAAG;QACxB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE,gBAAgB,GAAG;QAC3B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,IAAI,EAAE,gBAAgB,GAAG;QACvB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,OAAO,EAAE,gBAAgB,GAAG;QAC1B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,12 @@
1
+ // libGDX 2D Particle Editor (.p) format schema.
2
+ // Targets the libGDX particle effect format as produced by the libGDX 2D Particle Editor
3
+ // (Badlogic Games). The format is a hierarchical key-value text file where property groups
4
+ // are introduced by a bare name line and contain `key: value` pairs.
5
+ //
6
+ // The "Particle Effect" header introduces the whole file; "- Emitter -" marks each emitter.
7
+ // Value groups (Emission, Life, etc.) use lowMin/lowMax for the constant-range lower bound
8
+ // and highMin/highMax for the high end of the range.
9
+ // Curve values use scalingCount + scaling0..N and timelineCount + timeline0..N.
10
+ // Units: time in milliseconds, sizes in pixels, angles in degrees.
11
+ export {};
12
+ //# sourceMappingURL=libgdxSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libgdxSchema.js","sourceRoot":"","sources":["../src/libgdxSchema.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,yFAAyF;AACzF,2FAA2F;AAC3F,qEAAqE;AACrE,EAAE;AACF,4FAA4F;AAC5F,2FAA2F;AAC3F,qDAAqD;AACrD,gFAAgF;AAChF,mEAAmE"}
@@ -0,0 +1,17 @@
1
+ import type { ParticleEmitterConfig } from '@flighthq/types';
2
+ import type { LibgdxParticleDocument } from './libgdxSchema';
3
+ import type { ParticleSerializeResult } from './serializeResult';
4
+ export interface LibgdxSerializeOptions {
5
+ /** Side length of the particle texture in pixels — reverses the normalisation
6
+ * applied during parsing. Defaults to 1. */
7
+ textureSize?: number;
8
+ }
9
+ /** Serialise a ParticleEmitterConfig to a libGDX 2D Particle Editor `.p` file string.
10
+ *
11
+ * Pass the `document` returned by `parseLibgdxParticleDocument` to preserve any fields
12
+ * that don't round-trip through the config (texture path, emitter name, etc.). */
13
+ export declare function serializeLibgdxParticle(config: Readonly<ParticleEmitterConfig>, existing?: Partial<LibgdxParticleDocument>, options?: LibgdxSerializeOptions): string;
14
+ /** Serialise a ParticleEmitterConfig to a libGDX 2D Particle Editor `.p` file string,
15
+ * returning both the serialized text and any warnings for features the format cannot represent. */
16
+ export declare function serializeLibgdxParticleDocument(config: Readonly<ParticleEmitterConfig>, existing?: Partial<LibgdxParticleDocument>, options?: LibgdxSerializeOptions): ParticleSerializeResult;
17
+ //# sourceMappingURL=libgdxSerialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libgdxSerialize.d.ts","sourceRoot":"","sources":["../src/libgdxSerialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,KAAK,EAAE,sBAAsB,EAAoB,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,WAAW,sBAAsB;IACrC;iDAC6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;mFAGmF;AACnF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACvC,QAAQ,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAC1C,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM,CAIR;AAED;oGACoG;AACpG,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACvC,QAAQ,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAC1C,OAAO,CAAC,EAAE,sBAAsB,GAC/B,uBAAuB,CAIzB"}
@@ -0,0 +1,295 @@
1
+ /** Serialise a ParticleEmitterConfig to a libGDX 2D Particle Editor `.p` file string.
2
+ *
3
+ * Pass the `document` returned by `parseLibgdxParticleDocument` to preserve any fields
4
+ * that don't round-trip through the config (texture path, emitter name, etc.). */
5
+ export function serializeLibgdxParticle(config, existing, options) {
6
+ const textureSize = options?.textureSize ?? 1;
7
+ const doc = configToDocument(config, existing ?? {}, textureSize);
8
+ return documentToText(doc);
9
+ }
10
+ /** Serialise a ParticleEmitterConfig to a libGDX 2D Particle Editor `.p` file string,
11
+ * returning both the serialized text and any warnings for features the format cannot represent. */
12
+ export function serializeLibgdxParticleDocument(config, existing, options) {
13
+ const text = serializeLibgdxParticle(config, existing, options);
14
+ const warnings = collectLibgdxSerializeWarnings(config);
15
+ return { text, warnings };
16
+ }
17
+ const RAD2DEG = 180 / Math.PI;
18
+ function collectLibgdxSerializeWarnings(config) {
19
+ const warnings = [];
20
+ if (config.blendMode !== null && config.blendMode !== 'add' && config.blendMode !== 'normal') {
21
+ warnings.push(`Blend mode '${config.blendMode}' has no libGDX equivalent and was approximated as 'normal'`);
22
+ }
23
+ if (config.colorCurve !== null) {
24
+ warnings.push('Color curve has more than two stops; libGDX stores only start and end color');
25
+ }
26
+ if (config.alphaCurve !== null) {
27
+ warnings.push('Alpha curve has more than two stops; libGDX stores only start and end alpha via transparency scaling');
28
+ }
29
+ if (config.burstCount > 0) {
30
+ warnings.push('Emission bursts are not supported by the libGDX format and were ignored');
31
+ }
32
+ if (config.colorStartVarianceR !== 0 || config.colorStartVarianceG !== 0 || config.colorStartVarianceB !== 0) {
33
+ warnings.push('colorStartVariance is not supported by the libGDX format and was ignored');
34
+ }
35
+ if (config.colorEndVarianceR !== 0 || config.colorEndVarianceG !== 0 || config.colorEndVarianceB !== 0) {
36
+ warnings.push('colorEndVariance is not supported by the libGDX format and was ignored');
37
+ }
38
+ if (config.velocityInheritance !== 0) {
39
+ warnings.push('velocityInheritance is not supported by the libGDX format and was ignored');
40
+ }
41
+ return warnings;
42
+ }
43
+ function configToDocument(config, existing, textureSize) {
44
+ const angleMid = Math.atan2(-config.directionY, config.directionX) * RAD2DEG;
45
+ const spreadDeg = config.spread * RAD2DEG;
46
+ const angleMin = angleMid - spreadDeg;
47
+ const angleMax = angleMid + spreadDeg;
48
+ const scaleMinPx = config.scaleMin * textureSize;
49
+ const scaleMaxPx = config.scaleMax * textureSize;
50
+ // Emitter shape -> spawn shape
51
+ let spawnShape = { shape: 'point', edges: false, side: 'both' };
52
+ let spawnWidth = makeConstRange(0);
53
+ let spawnHeight = makeConstRange(0);
54
+ if (config.emitterShape === 'circle') {
55
+ spawnShape = { shape: 'ellipse', edges: false, side: 'both' };
56
+ const diam = config.emitterRadius * 2;
57
+ spawnWidth = makeConstRange(diam);
58
+ spawnHeight = makeConstRange(diam);
59
+ }
60
+ else if (config.emitterShape === 'rect') {
61
+ spawnShape = { shape: 'square', edges: false, side: 'both' };
62
+ spawnWidth = makeConstRange(config.emitterWidth);
63
+ spawnHeight = makeConstRange(config.emitterHeight);
64
+ }
65
+ const lifetimeMid = (config.lifetimeMin + config.lifetimeMax) * 0.5 || 1;
66
+ const rotDegMin = config.rotationSpeedMin * RAD2DEG * lifetimeMid;
67
+ const rotDegMax = config.rotationSpeedMax * RAD2DEG * lifetimeMid;
68
+ // Duration: infinite if looping, otherwise use duration in ms
69
+ const durMs = config.loop ? -1 : config.duration > 0 ? config.duration * 1000 : 3000;
70
+ const durVal = durMs > 0 ? durMs : 3000;
71
+ return {
72
+ name: existing.name ?? '',
73
+ minParticleCount: existing.minParticleCount ?? 0,
74
+ maxParticleCount: config.maxParticles,
75
+ additive: config.blendMode === 'add',
76
+ premultipliedAlpha: existing.premultipliedAlpha ?? false,
77
+ delay: existing.delay ?? {
78
+ active: false,
79
+ lowMin: 0,
80
+ lowMax: 0,
81
+ highMin: 0,
82
+ highMax: 0,
83
+ relative: false,
84
+ scaling: [1],
85
+ timeline: [0],
86
+ },
87
+ duration: makeConstRange(durVal),
88
+ emission: makeConstRange(config.spawnRate),
89
+ life: {
90
+ lowMin: config.lifetimeMin * 1000,
91
+ lowMax: config.lifetimeMin * 1000,
92
+ highMin: config.lifetimeMax * 1000,
93
+ highMax: config.lifetimeMax * 1000,
94
+ relative: false,
95
+ scaling: [1],
96
+ timeline: [0],
97
+ },
98
+ lifeOffset: existing.lifeOffset ?? {
99
+ active: false,
100
+ lowMin: 0,
101
+ lowMax: 0,
102
+ highMin: 0,
103
+ highMax: 0,
104
+ relative: false,
105
+ scaling: [1],
106
+ timeline: [0],
107
+ },
108
+ xOffset: existing.xOffset ?? {
109
+ active: false,
110
+ lowMin: 0,
111
+ lowMax: 0,
112
+ highMin: 0,
113
+ highMax: 0,
114
+ relative: false,
115
+ scaling: [1],
116
+ timeline: [0],
117
+ },
118
+ yOffset: existing.yOffset ?? {
119
+ active: false,
120
+ lowMin: 0,
121
+ lowMax: 0,
122
+ highMin: 0,
123
+ highMax: 0,
124
+ relative: false,
125
+ scaling: [1],
126
+ timeline: [0],
127
+ },
128
+ spawnShape,
129
+ spawnWidth,
130
+ spawnHeight,
131
+ scale: {
132
+ lowMin: scaleMinPx,
133
+ lowMax: scaleMinPx,
134
+ highMin: scaleMaxPx,
135
+ highMax: scaleMaxPx,
136
+ relative: false,
137
+ scaling: [1, config.scaleEnd],
138
+ timeline: [0, 1],
139
+ },
140
+ velocity: {
141
+ active: true,
142
+ lowMin: config.speedMin,
143
+ lowMax: config.speedMin,
144
+ highMin: config.speedMax,
145
+ highMax: config.speedMax,
146
+ relative: false,
147
+ scaling: [1],
148
+ timeline: [0],
149
+ },
150
+ angle: {
151
+ active: true,
152
+ lowMin: angleMin,
153
+ lowMax: angleMin,
154
+ highMin: angleMax,
155
+ highMax: angleMax,
156
+ relative: false,
157
+ scaling: [1],
158
+ timeline: [0],
159
+ },
160
+ rotation: {
161
+ active: rotDegMin !== 0 || rotDegMax !== 0,
162
+ lowMin: rotDegMin,
163
+ lowMax: rotDegMin,
164
+ highMin: rotDegMax,
165
+ highMax: rotDegMax,
166
+ relative: false,
167
+ scaling: [1],
168
+ timeline: [0],
169
+ },
170
+ wind: {
171
+ active: config.gravityX !== 0,
172
+ lowMin: config.gravityX,
173
+ lowMax: config.gravityX,
174
+ highMin: config.gravityX,
175
+ highMax: config.gravityX,
176
+ relative: false,
177
+ scaling: [1],
178
+ timeline: [0],
179
+ },
180
+ gravity: {
181
+ active: config.gravityY !== 0,
182
+ lowMin: config.gravityY,
183
+ lowMax: config.gravityY,
184
+ highMin: config.gravityY,
185
+ highMax: config.gravityY,
186
+ relative: false,
187
+ scaling: [1],
188
+ timeline: [0],
189
+ },
190
+ tint: {
191
+ colors: [
192
+ rgbToHex(config.colorStartR, config.colorStartG, config.colorStartB),
193
+ rgbToHex(config.colorEndR, config.colorEndG, config.colorEndB),
194
+ ],
195
+ timeline: [0, 1],
196
+ },
197
+ transparency: {
198
+ lowMin: 0,
199
+ lowMax: 0,
200
+ highMin: 1,
201
+ highMax: 1,
202
+ relative: false,
203
+ scaling: [config.alphaStart, config.alphaEnd],
204
+ timeline: [0, 1],
205
+ },
206
+ imageCount: existing.imageCount ?? 1,
207
+ imagePath: existing.imagePath ?? '',
208
+ };
209
+ }
210
+ function documentToText(doc) {
211
+ const lines = [];
212
+ lines.push('Particle Effect');
213
+ if (doc.name)
214
+ lines.push(`- ${doc.name} -`);
215
+ lines.push(`minParticleCount: ${doc.minParticleCount}`);
216
+ lines.push(`maxParticleCount: ${doc.maxParticleCount}`);
217
+ lines.push(`additive: ${doc.additive}`);
218
+ if (doc.premultipliedAlpha)
219
+ lines.push(`premultipliedAlpha: ${doc.premultipliedAlpha}`);
220
+ if (doc.imagePath)
221
+ lines.push(`imagePath: ${doc.imagePath}`);
222
+ if (doc.imageCount !== 1)
223
+ lines.push(`imageCount: ${doc.imageCount}`);
224
+ lines.push('');
225
+ lines.push(...rangeToLines('Delay', doc.delay, doc.delay.active));
226
+ lines.push('');
227
+ lines.push(...rangeToLines('Duration', doc.duration));
228
+ lines.push('');
229
+ lines.push(...rangeToLines('Emission', doc.emission));
230
+ lines.push('');
231
+ lines.push(...rangeToLines('Life', doc.life));
232
+ lines.push('');
233
+ lines.push(...rangeToLines('Life Offset', doc.lifeOffset, doc.lifeOffset.active));
234
+ lines.push('');
235
+ lines.push(...rangeToLines('X Offset', doc.xOffset, doc.xOffset.active));
236
+ lines.push('');
237
+ lines.push(...rangeToLines('Y Offset', doc.yOffset, doc.yOffset.active));
238
+ lines.push('');
239
+ lines.push('Spawn Shape');
240
+ lines.push(`shape: ${doc.spawnShape.shape}`);
241
+ if (doc.spawnShape.shape === 'ellipse') {
242
+ lines.push(`edges: ${doc.spawnShape.edges}`);
243
+ lines.push(`side: ${doc.spawnShape.side}`);
244
+ }
245
+ lines.push('');
246
+ lines.push(...rangeToLines('Spawn Width', doc.spawnWidth));
247
+ lines.push('');
248
+ lines.push(...rangeToLines('Spawn Height', doc.spawnHeight));
249
+ lines.push('');
250
+ lines.push(...rangeToLines('Scale', doc.scale));
251
+ lines.push('');
252
+ lines.push(...rangeToLines('Velocity', doc.velocity, doc.velocity.active));
253
+ lines.push('');
254
+ lines.push(...rangeToLines('Angle', doc.angle, doc.angle.active));
255
+ lines.push('');
256
+ lines.push(...rangeToLines('Rotation', doc.rotation, doc.rotation.active));
257
+ lines.push('');
258
+ lines.push(...rangeToLines('Wind', doc.wind, doc.wind.active));
259
+ lines.push('');
260
+ lines.push(...rangeToLines('Gravity', doc.gravity, doc.gravity.active));
261
+ lines.push('');
262
+ lines.push('Tint');
263
+ lines.push(`colors: ${doc.tint.colors.join(',')}`);
264
+ lines.push(`timelineCount: ${doc.tint.timeline.length}`);
265
+ doc.tint.timeline.forEach((v, i) => lines.push(`timeline${i}: ${v}`));
266
+ lines.push('');
267
+ lines.push(...rangeToLines('Transparency', doc.transparency));
268
+ lines.push('');
269
+ return lines.join('\n');
270
+ }
271
+ function makeConstRange(v) {
272
+ return { lowMin: v, lowMax: v, highMin: v, highMax: v, relative: false, scaling: [1], timeline: [0] };
273
+ }
274
+ function rangeToLines(section, r, active) {
275
+ const lines = [section];
276
+ if (active !== undefined)
277
+ lines.push(`active: ${active}`);
278
+ lines.push(`lowMin: ${r.lowMin}`);
279
+ lines.push(`lowMax: ${r.lowMax}`);
280
+ lines.push(`highMin: ${r.highMin}`);
281
+ lines.push(`highMax: ${r.highMax}`);
282
+ lines.push(`relative: ${r.relative}`);
283
+ lines.push(`scalingCount: ${r.scaling.length}`);
284
+ r.scaling.forEach((v, i) => lines.push(`scaling${i}: ${v}`));
285
+ lines.push(`timelineCount: ${r.timeline.length}`);
286
+ r.timeline.forEach((v, i) => lines.push(`timeline${i}: ${v}`));
287
+ return lines;
288
+ }
289
+ function rgbToHex(r, g, b) {
290
+ const c = (v) => Math.round(Math.max(0, Math.min(1, v)) * 255)
291
+ .toString(16)
292
+ .padStart(2, '0');
293
+ return `${c(r)}${c(g)}${c(b)}`;
294
+ }
295
+ //# sourceMappingURL=libgdxSerialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libgdxSerialize.js","sourceRoot":"","sources":["../src/libgdxSerialize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { ParticleEmitterConfig } from '@flighthq/types';
2
+ import type { LibgdxParseOptions } from './libgdxParse';
3
+ import type { ParticleDesignerParseOptions } from './particleDesignerParse';
4
+ import type { StarlingPexParseOptions } from './starlingPexParse';
5
+ import type { UnityParseOptions } from './unityParse';
6
+ export interface ParseParticleConfigOptions extends ParticleDesignerParseOptions, UnityParseOptions, LibgdxParseOptions, StarlingPexParseOptions {
7
+ }
8
+ export interface ParticleConfigParseResult {
9
+ config: ParticleEmitterConfig;
10
+ /** The detected format kind, or `null` when no format matched. */
11
+ format: string | null;
12
+ /** Features dropped or approximated during the parse, including an
13
+ * `'unknown-format'` entry when no format matched and the result is a
14
+ * default config. */
15
+ warnings: string[];
16
+ }
17
+ /** Parse any supported particle format string to a ParticleEmitterConfig.
18
+ *
19
+ * Calls `detectParticleFormat` internally and routes to the format-specific
20
+ * parser. When the format cannot be detected the result carries a default
21
+ * config and a `warnings` entry of `'unknown-format: <reason>'` rather than
22
+ * throwing — follow-up parsing errors from the per-format parsers are also
23
+ * caught and returned as warnings.
24
+ *
25
+ * Use `parseParticleConfigDocument` instead when you need the full document
26
+ * for round-trip serialisation. */
27
+ export declare function parseParticleConfig(text: string, options?: ParseParticleConfigOptions): ParticleEmitterConfig;
28
+ /** Parse any supported particle format string and return the config, detected
29
+ * format, and any import warnings.
30
+ *
31
+ * Unknown or unparseable input returns a default config with a warning entry
32
+ * of `'unknown-format'` rather than throwing. */
33
+ export declare function parseParticleConfigDocument(text: string, options?: ParseParticleConfigOptions): ParticleConfigParseResult;
34
+ //# sourceMappingURL=parseParticleConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseParticleConfig.d.ts","sourceRoot":"","sources":["../src/parseParticleConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAW7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAI5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,MAAM,WAAW,0BACf,SAAQ,4BAA4B,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,uBAAuB;CAAG;AAEzG,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,kEAAkE;IAClE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;0BAEsB;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;oCASoC;AACpC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,qBAAqB,CAc7G;AAED;;;;kDAIkD;AAClD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,0BAA0B,GACnC,yBAAyB,CA8C3B"}
@@ -0,0 +1,96 @@
1
+ import { createParticleEmitterConfig } from '@flighthq/particles';
2
+ import { LibgdxParticleFormatKind, ParticleDesignerFormatKind, PixiParticleFormatKind, SpineParticleFormatKind, StarlingPexFormatKind, UnityParticleFormatKind, } from '@flighthq/types';
3
+ import { detectParticleFormat } from './detect';
4
+ import { parseLibgdxParticle, parseLibgdxParticleDocument } from './libgdxParse';
5
+ import { parseParticleDesignerPlist, parseParticleDesignerPlistDocument } from './particleDesignerParse';
6
+ import { parsePixiParticle, parsePixiParticleDocument } from './pixiParse';
7
+ import { parseSpineParticle, parseSpineParticleDocument } from './spineParse';
8
+ import { parseStarlingPex, parseStarlingPexDocument } from './starlingPexParse';
9
+ import { parseUnityParticle, parseUnityParticleDocument } from './unityParse';
10
+ /** Parse any supported particle format string to a ParticleEmitterConfig.
11
+ *
12
+ * Calls `detectParticleFormat` internally and routes to the format-specific
13
+ * parser. When the format cannot be detected the result carries a default
14
+ * config and a `warnings` entry of `'unknown-format: <reason>'` rather than
15
+ * throwing — follow-up parsing errors from the per-format parsers are also
16
+ * caught and returned as warnings.
17
+ *
18
+ * Use `parseParticleConfigDocument` instead when you need the full document
19
+ * for round-trip serialisation. */
20
+ export function parseParticleConfig(text, options) {
21
+ const format = detectParticleFormat(text);
22
+ if (format === null)
23
+ return createParticleEmitterConfig();
24
+ try {
25
+ if (format === LibgdxParticleFormatKind)
26
+ return parseLibgdxParticle(text, options);
27
+ if (format === ParticleDesignerFormatKind)
28
+ return parseParticleDesignerPlist(text, options);
29
+ if (format === PixiParticleFormatKind)
30
+ return parsePixiParticle(text);
31
+ if (format === SpineParticleFormatKind)
32
+ return parseSpineParticle(text);
33
+ if (format === StarlingPexFormatKind)
34
+ return parseStarlingPex(text, options);
35
+ if (format === UnityParticleFormatKind)
36
+ return parseUnityParticle(text, options);
37
+ }
38
+ catch {
39
+ return createParticleEmitterConfig();
40
+ }
41
+ return createParticleEmitterConfig();
42
+ }
43
+ /** Parse any supported particle format string and return the config, detected
44
+ * format, and any import warnings.
45
+ *
46
+ * Unknown or unparseable input returns a default config with a warning entry
47
+ * of `'unknown-format'` rather than throwing. */
48
+ export function parseParticleConfigDocument(text, options) {
49
+ const format = detectParticleFormat(text);
50
+ if (format === null) {
51
+ return {
52
+ config: createParticleEmitterConfig(),
53
+ format: null,
54
+ warnings: ['unknown-format: input did not match any supported particle format'],
55
+ };
56
+ }
57
+ try {
58
+ if (format === LibgdxParticleFormatKind) {
59
+ const result = parseLibgdxParticleDocument(text, options);
60
+ return { config: result.config, format, warnings: result.warnings };
61
+ }
62
+ if (format === ParticleDesignerFormatKind) {
63
+ const result = parseParticleDesignerPlistDocument(text, options);
64
+ return { config: result.config, format, warnings: result.warnings };
65
+ }
66
+ if (format === PixiParticleFormatKind) {
67
+ const result = parsePixiParticleDocument(text);
68
+ return { config: result.config, format, warnings: result.warnings };
69
+ }
70
+ if (format === SpineParticleFormatKind) {
71
+ const result = parseSpineParticleDocument(text);
72
+ return { config: result.config, format, warnings: result.warnings };
73
+ }
74
+ if (format === StarlingPexFormatKind) {
75
+ const result = parseStarlingPexDocument(text, options);
76
+ return { config: result.config, format, warnings: result.warnings };
77
+ }
78
+ if (format === UnityParticleFormatKind) {
79
+ const result = parseUnityParticleDocument(text, options);
80
+ return { config: result.config, format, warnings: result.warnings };
81
+ }
82
+ }
83
+ catch (err) {
84
+ return {
85
+ config: createParticleEmitterConfig(),
86
+ format,
87
+ warnings: [`parse-error: ${err.message}`],
88
+ };
89
+ }
90
+ return {
91
+ config: createParticleEmitterConfig(),
92
+ format,
93
+ warnings: [`unknown-format: format '${format}' has no registered parser`],
94
+ };
95
+ }
96
+ //# sourceMappingURL=parseParticleConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseParticleConfig.js","sourceRoot":"","sources":["../src/parseParticleConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { ParticleEmitterConfig } from '@flighthq/types';
2
+ import type { ParticleDesignerDocument } from './particleDesignerSchema';
3
+ export interface ParticleDesignerParseOptions {
4
+ /** Side length of the particle texture in pixels, used to normalise pixel sizes
5
+ * to dimensionless scale multipliers. Defaults to 1 (no normalisation). */
6
+ textureSize?: number;
7
+ }
8
+ export interface ParticleDesignerParsed {
9
+ config: ParticleEmitterConfig;
10
+ document: ParticleDesignerDocument;
11
+ /** Features present in the source that the common-subset importer cannot
12
+ * represent and silently dropped — surface these in your asset pipeline. */
13
+ warnings: string[];
14
+ }
15
+ /** Parse a Particle Designer plist XML string directly to a ParticleEmitterConfig.
16
+ *
17
+ * Single-pass: no intermediate document object is allocated.
18
+ * Use `parseParticleDesignerPlistDocument` instead when you need round-trip serialisation. */
19
+ export declare function parseParticleDesignerPlist(plistXml: string, options?: ParticleDesignerParseOptions): ParticleEmitterConfig;
20
+ /** Parse a Particle Designer plist XML string and preserve the full document for
21
+ * round-trip serialisation via `serializeParticleDesignerPlist`. */
22
+ export declare function parseParticleDesignerPlistDocument(plistXml: string, options?: ParticleDesignerParseOptions): ParticleDesignerParsed;
23
+ //# sourceMappingURL=particleDesignerParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particleDesignerParse.d.ts","sourceRoot":"","sources":["../src/particleDesignerParse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,KAAK,EAAE,wBAAwB,EAA2B,MAAM,0BAA0B,CAAC;AAElG,MAAM,WAAW,4BAA4B;IAC3C;iFAC6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,wBAAwB,CAAC;IACnC;iFAC6E;IAC7E,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA2ID;;;+FAG+F;AAC/F,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,4BAA4B,GACrC,qBAAqB,CAEvB;AAkBD;qEACqE;AACrE,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,4BAA4B,GACrC,sBAAsB,CAoDxB"}