@nice2dev/game-engine 1.0.2 → 1.0.4
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/cjs/ai/BehaviorTree.js +1215 -0
- package/dist/cjs/ai/BehaviorTree.js.map +1 -0
- package/dist/cjs/ai/StateMachine.js +783 -0
- package/dist/cjs/ai/StateMachine.js.map +1 -0
- package/dist/cjs/editor/ShaderGraph.js +1616 -0
- package/dist/cjs/editor/ShaderGraph.js.map +1 -0
- package/dist/cjs/editor/TimelineEditor.js +819 -0
- package/dist/cjs/editor/TimelineEditor.js.map +1 -0
- package/dist/cjs/export/GodotExporter.js +1102 -0
- package/dist/cjs/export/GodotExporter.js.map +1 -0
- package/dist/cjs/export/PlatformExporter.js +236 -0
- package/dist/cjs/export/PlatformExporter.js.map +1 -0
- package/dist/cjs/export/ThreeJSExporter.js +1116 -0
- package/dist/cjs/export/ThreeJSExporter.js.map +1 -0
- package/dist/cjs/export/UnityExporter.js +1193 -0
- package/dist/cjs/export/UnityExporter.js.map +1 -0
- package/dist/cjs/export/WebExporter.js +1036 -0
- package/dist/cjs/export/WebExporter.js.map +1 -0
- package/dist/cjs/export/index.js +58 -0
- package/dist/cjs/export/index.js.map +1 -0
- package/dist/cjs/import/AsepriteImporter.js +761 -0
- package/dist/cjs/import/AsepriteImporter.js.map +1 -0
- package/dist/cjs/import/DragonBonesImporter.js +499 -0
- package/dist/cjs/import/DragonBonesImporter.js.map +1 -0
- package/dist/cjs/import/GameMakerImporter.js +559 -0
- package/dist/cjs/import/GameMakerImporter.js.map +1 -0
- package/dist/cjs/import/GodotSceneImporter.js +824 -0
- package/dist/cjs/import/GodotSceneImporter.js.map +1 -0
- package/dist/cjs/import/LDtkImporter.js +481 -0
- package/dist/cjs/import/LDtkImporter.js.map +1 -0
- package/dist/cjs/import/Live2DImporter.js +553 -0
- package/dist/cjs/import/Live2DImporter.js.map +1 -0
- package/dist/cjs/import/NdgFormat.js +499 -0
- package/dist/cjs/import/NdgFormat.js.map +1 -0
- package/dist/cjs/import/OgmoImporter.js +529 -0
- package/dist/cjs/import/OgmoImporter.js.map +1 -0
- package/dist/cjs/import/RPGMakerImporter.js +520 -0
- package/dist/cjs/import/RPGMakerImporter.js.map +1 -0
- package/dist/cjs/import/SceneImporter.js +449 -0
- package/dist/cjs/import/SceneImporter.js.map +1 -0
- package/dist/cjs/import/SpineImporter.js +583 -0
- package/dist/cjs/import/SpineImporter.js.map +1 -0
- package/dist/cjs/import/SpriterImporter.js +652 -0
- package/dist/cjs/import/SpriterImporter.js.map +1 -0
- package/dist/cjs/import/TiledMapImporter.js +859 -0
- package/dist/cjs/import/TiledMapImporter.js.map +1 -0
- package/dist/cjs/import/UnitySceneImporter.js +732 -0
- package/dist/cjs/import/UnitySceneImporter.js.map +1 -0
- package/dist/cjs/import/index.js +305 -0
- package/dist/cjs/import/index.js.map +1 -0
- package/dist/cjs/index.js +201 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/scripting/GraphToAST.js +567 -0
- package/dist/cjs/scripting/GraphToAST.js.map +1 -0
- package/dist/cjs/scripting/LanguageExporter.js +321 -0
- package/dist/cjs/scripting/LanguageExporter.js.map +1 -0
- package/dist/cjs/scripting/ScriptAST.js +67 -0
- package/dist/cjs/scripting/ScriptAST.js.map +1 -0
- package/dist/cjs/scripting/VisualScripting2.js +1140 -0
- package/dist/cjs/scripting/VisualScripting2.js.map +1 -0
- package/dist/cjs/scripting/exporters/CSharpExporter.js +503 -0
- package/dist/cjs/scripting/exporters/CSharpExporter.js.map +1 -0
- package/dist/cjs/scripting/exporters/GDScriptExporter.js +452 -0
- package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +1 -0
- package/dist/cjs/scripting/exporters/LuaExporter.js +457 -0
- package/dist/cjs/scripting/exporters/LuaExporter.js.map +1 -0
- package/dist/cjs/scripting/exporters/PythonExporter.js +565 -0
- package/dist/cjs/scripting/exporters/PythonExporter.js.map +1 -0
- package/dist/cjs/scripting/exporters/RustExporter.js +525 -0
- package/dist/cjs/scripting/exporters/RustExporter.js.map +1 -0
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js +570 -0
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +1 -0
- package/dist/cjs/systems/ParticleSystem2.js +1478 -0
- package/dist/cjs/systems/ParticleSystem2.js.map +1 -0
- package/dist/esm/ai/BehaviorTree.js +1186 -0
- package/dist/esm/ai/BehaviorTree.js.map +1 -0
- package/dist/esm/ai/StateMachine.js +767 -0
- package/dist/esm/ai/StateMachine.js.map +1 -0
- package/dist/esm/editor/ShaderGraph.js +1606 -0
- package/dist/esm/editor/ShaderGraph.js.map +1 -0
- package/dist/esm/editor/TimelineEditor.js +800 -0
- package/dist/esm/editor/TimelineEditor.js.map +1 -0
- package/dist/esm/export/GodotExporter.js +1100 -0
- package/dist/esm/export/GodotExporter.js.map +1 -0
- package/dist/esm/export/PlatformExporter.js +230 -0
- package/dist/esm/export/PlatformExporter.js.map +1 -0
- package/dist/esm/export/ThreeJSExporter.js +1114 -0
- package/dist/esm/export/ThreeJSExporter.js.map +1 -0
- package/dist/esm/export/UnityExporter.js +1191 -0
- package/dist/esm/export/UnityExporter.js.map +1 -0
- package/dist/esm/export/WebExporter.js +1033 -0
- package/dist/esm/export/WebExporter.js.map +1 -0
- package/dist/esm/export/index.js +44 -0
- package/dist/esm/export/index.js.map +1 -0
- package/dist/esm/import/AsepriteImporter.js +759 -0
- package/dist/esm/import/AsepriteImporter.js.map +1 -0
- package/dist/esm/import/DragonBonesImporter.js +496 -0
- package/dist/esm/import/DragonBonesImporter.js.map +1 -0
- package/dist/esm/import/GameMakerImporter.js +556 -0
- package/dist/esm/import/GameMakerImporter.js.map +1 -0
- package/dist/esm/import/GodotSceneImporter.js +822 -0
- package/dist/esm/import/GodotSceneImporter.js.map +1 -0
- package/dist/esm/import/LDtkImporter.js +479 -0
- package/dist/esm/import/LDtkImporter.js.map +1 -0
- package/dist/esm/import/Live2DImporter.js +550 -0
- package/dist/esm/import/Live2DImporter.js.map +1 -0
- package/dist/esm/import/NdgFormat.js +490 -0
- package/dist/esm/import/NdgFormat.js.map +1 -0
- package/dist/esm/import/OgmoImporter.js +526 -0
- package/dist/esm/import/OgmoImporter.js.map +1 -0
- package/dist/esm/import/RPGMakerImporter.js +517 -0
- package/dist/esm/import/RPGMakerImporter.js.map +1 -0
- package/dist/esm/import/SceneImporter.js +441 -0
- package/dist/esm/import/SceneImporter.js.map +1 -0
- package/dist/esm/import/SpineImporter.js +580 -0
- package/dist/esm/import/SpineImporter.js.map +1 -0
- package/dist/esm/import/SpriterImporter.js +649 -0
- package/dist/esm/import/SpriterImporter.js.map +1 -0
- package/dist/esm/import/TiledMapImporter.js +857 -0
- package/dist/esm/import/TiledMapImporter.js.map +1 -0
- package/dist/esm/import/UnitySceneImporter.js +730 -0
- package/dist/esm/import/UnitySceneImporter.js.map +1 -0
- package/dist/esm/import/index.js +279 -0
- package/dist/esm/import/index.js.map +1 -0
- package/dist/esm/index.js +36 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/scripting/GraphToAST.js +564 -0
- package/dist/esm/scripting/GraphToAST.js.map +1 -0
- package/dist/esm/scripting/LanguageExporter.js +311 -0
- package/dist/esm/scripting/LanguageExporter.js.map +1 -0
- package/dist/esm/scripting/ScriptAST.js +52 -0
- package/dist/esm/scripting/ScriptAST.js.map +1 -0
- package/dist/esm/scripting/VisualScripting2.js +1130 -0
- package/dist/esm/scripting/VisualScripting2.js.map +1 -0
- package/dist/esm/scripting/exporters/CSharpExporter.js +501 -0
- package/dist/esm/scripting/exporters/CSharpExporter.js.map +1 -0
- package/dist/esm/scripting/exporters/GDScriptExporter.js +450 -0
- package/dist/esm/scripting/exporters/GDScriptExporter.js.map +1 -0
- package/dist/esm/scripting/exporters/LuaExporter.js +455 -0
- package/dist/esm/scripting/exporters/LuaExporter.js.map +1 -0
- package/dist/esm/scripting/exporters/PythonExporter.js +563 -0
- package/dist/esm/scripting/exporters/PythonExporter.js.map +1 -0
- package/dist/esm/scripting/exporters/RustExporter.js +523 -0
- package/dist/esm/scripting/exporters/RustExporter.js.map +1 -0
- package/dist/esm/scripting/exporters/TypeScriptExporter.js +568 -0
- package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +1 -0
- package/dist/esm/systems/ParticleSystem2.js +1471 -0
- package/dist/esm/systems/ParticleSystem2.js.map +1 -0
- package/dist/types/ai/BehaviorTree.d.ts +375 -0
- package/dist/types/ai/StateMachine.d.ts +296 -0
- package/dist/types/editor/ShaderGraph.d.ts +207 -0
- package/dist/types/editor/TimelineEditor.d.ts +393 -0
- package/dist/types/export/GodotExporter.d.ts +56 -0
- package/dist/types/export/PlatformExporter.d.ts +201 -0
- package/dist/types/export/ThreeJSExporter.d.ts +40 -0
- package/dist/types/export/UnityExporter.d.ts +69 -0
- package/dist/types/export/WebExporter.d.ts +58 -0
- package/dist/types/export/index.d.ts +19 -0
- package/dist/types/import/AsepriteImporter.d.ts +46 -0
- package/dist/types/import/DragonBonesImporter.d.ts +331 -0
- package/dist/types/import/GameMakerImporter.d.ts +375 -0
- package/dist/types/import/GodotSceneImporter.d.ts +34 -0
- package/dist/types/import/LDtkImporter.d.ts +177 -0
- package/dist/types/import/Live2DImporter.d.ts +237 -0
- package/dist/types/import/NdgFormat.d.ts +387 -0
- package/dist/types/import/OgmoImporter.d.ts +237 -0
- package/dist/types/import/RPGMakerImporter.d.ts +186 -0
- package/dist/types/import/SceneImporter.d.ts +276 -0
- package/dist/types/import/SpineImporter.d.ts +372 -0
- package/dist/types/import/SpriterImporter.d.ts +230 -0
- package/dist/types/import/TiledMapImporter.d.ts +57 -0
- package/dist/types/import/UnitySceneImporter.d.ts +87 -0
- package/dist/types/import/index.d.ts +59 -0
- package/dist/types/index.d.ts +29 -17
- package/dist/types/scripting/GraphToAST.d.ts +55 -0
- package/dist/types/scripting/LanguageExporter.d.ts +136 -0
- package/dist/types/scripting/ScriptAST.d.ts +312 -0
- package/dist/types/scripting/VisualScripting2.d.ts +353 -0
- package/dist/types/scripting/exporters/CSharpExporter.d.ts +44 -0
- package/dist/types/scripting/exporters/GDScriptExporter.d.ts +46 -0
- package/dist/types/scripting/exporters/LuaExporter.d.ts +46 -0
- package/dist/types/scripting/exporters/PythonExporter.d.ts +49 -0
- package/dist/types/scripting/exporters/RustExporter.d.ts +46 -0
- package/dist/types/scripting/exporters/TypeScriptExporter.d.ts +48 -0
- package/dist/types/scripting/exporters/index.d.ts +8 -0
- package/dist/types/scripting/index.d.ts +11 -0
- package/dist/types/systems/ParticleSystem2.d.ts +646 -0
- package/package.json +3 -3
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { PlatformExporter, type PlatformInfo, type NiceProject, type ExportOptions } from './PlatformExporter';
|
|
2
|
+
export interface UnityExportOptions {
|
|
3
|
+
/** Namespace for generated C# scripts */
|
|
4
|
+
namespace?: string;
|
|
5
|
+
/** Generate assembly definition */
|
|
6
|
+
generateAsmdef?: boolean;
|
|
7
|
+
/** Unity version target */
|
|
8
|
+
unityVersion?: string;
|
|
9
|
+
/** Use Universal Render Pipeline */
|
|
10
|
+
useURP?: boolean;
|
|
11
|
+
/** Generate editor scripts */
|
|
12
|
+
generateEditor?: boolean;
|
|
13
|
+
/** Include Nice2Dev runtime */
|
|
14
|
+
includeRuntime?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare class UnityExporter extends PlatformExporter {
|
|
17
|
+
readonly platformId: "unity";
|
|
18
|
+
readonly platformInfo: PlatformInfo;
|
|
19
|
+
private csharpExporter;
|
|
20
|
+
private graphToAST;
|
|
21
|
+
private guidMap;
|
|
22
|
+
private fileIdCounter;
|
|
23
|
+
protected doExport(project: NiceProject, options: ExportOptions): Promise<void>;
|
|
24
|
+
private exportProjectSettings;
|
|
25
|
+
private exportScripts;
|
|
26
|
+
private exportPrefabs;
|
|
27
|
+
private createPrefabYAML;
|
|
28
|
+
private exportScenes;
|
|
29
|
+
private createSceneYAML;
|
|
30
|
+
private addSceneSettings;
|
|
31
|
+
private createGameObjectHierarchy;
|
|
32
|
+
private addEntityComponents;
|
|
33
|
+
private addSpriteRenderer;
|
|
34
|
+
private addRigidbody2D;
|
|
35
|
+
private addBoxCollider2D;
|
|
36
|
+
private addCircleCollider2D;
|
|
37
|
+
private addAudioSource;
|
|
38
|
+
private addAnimator;
|
|
39
|
+
private addUIText;
|
|
40
|
+
private addUIImage;
|
|
41
|
+
private addUIButton;
|
|
42
|
+
private addParticleSystem;
|
|
43
|
+
private addScriptComponent;
|
|
44
|
+
private createTilemapGameObject;
|
|
45
|
+
private createTilemapLayer;
|
|
46
|
+
private exportMaterials;
|
|
47
|
+
private createMaterialYAML;
|
|
48
|
+
private exportAssets;
|
|
49
|
+
private exportSpriteAsset;
|
|
50
|
+
private exportAudioAsset;
|
|
51
|
+
private exportFontAsset;
|
|
52
|
+
private exportTilesetAsset;
|
|
53
|
+
private exportAnimationAsset;
|
|
54
|
+
private exportAssemblyDefinition;
|
|
55
|
+
private exportRuntimeBridge;
|
|
56
|
+
private exportPackageManifest;
|
|
57
|
+
private serializeUnityYAML;
|
|
58
|
+
private serializeYAMLObject;
|
|
59
|
+
private generateGuids;
|
|
60
|
+
private generateGUID;
|
|
61
|
+
private nextFileId;
|
|
62
|
+
private createMetaFile;
|
|
63
|
+
private createScriptMetaFile;
|
|
64
|
+
private parseColor;
|
|
65
|
+
private sanitizeFileName;
|
|
66
|
+
private toValidNamespace;
|
|
67
|
+
private getTextAlignment;
|
|
68
|
+
}
|
|
69
|
+
export default UnityExporter;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { PlatformExporter, type PlatformInfo, type NiceProject, type ExportOptions } from './PlatformExporter';
|
|
2
|
+
export interface WebExportOptions {
|
|
3
|
+
/** Target framework */
|
|
4
|
+
framework: 'pixijs' | 'phaser' | 'threejs' | 'vanilla';
|
|
5
|
+
/** Use TypeScript instead of JavaScript */
|
|
6
|
+
typescript?: boolean;
|
|
7
|
+
/** Bundler to use */
|
|
8
|
+
bundler?: 'vite' | 'webpack' | 'parcel' | 'none';
|
|
9
|
+
/** Include PWA support */
|
|
10
|
+
pwa?: boolean;
|
|
11
|
+
/** Generate responsive design */
|
|
12
|
+
responsive?: boolean;
|
|
13
|
+
/** Enable hot reload for development */
|
|
14
|
+
hotReload?: boolean;
|
|
15
|
+
/** Framework version */
|
|
16
|
+
frameworkVersion?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare class PixiJSExporter extends PlatformExporter {
|
|
19
|
+
readonly platformId: "pixijs";
|
|
20
|
+
readonly platformInfo: PlatformInfo;
|
|
21
|
+
private tsExporter;
|
|
22
|
+
private graphToAST;
|
|
23
|
+
protected doExport(project: NiceProject, options: ExportOptions): Promise<void>;
|
|
24
|
+
private exportPackageJson;
|
|
25
|
+
private exportIndexHtml;
|
|
26
|
+
private exportMainGame;
|
|
27
|
+
private exportScenes;
|
|
28
|
+
private exportScene;
|
|
29
|
+
private generateEntityCode;
|
|
30
|
+
private exportScripts;
|
|
31
|
+
private exportAssetManifest;
|
|
32
|
+
private exportBundlerConfig;
|
|
33
|
+
private exportPWAFiles;
|
|
34
|
+
private exportUtilities;
|
|
35
|
+
private exportTSConfig;
|
|
36
|
+
private hexToNumber;
|
|
37
|
+
private sanitizeName;
|
|
38
|
+
}
|
|
39
|
+
export declare class PhaserExporter extends PlatformExporter {
|
|
40
|
+
readonly platformId: "phaser";
|
|
41
|
+
readonly platformInfo: PlatformInfo;
|
|
42
|
+
private tsExporter;
|
|
43
|
+
private graphToAST;
|
|
44
|
+
protected doExport(project: NiceProject, options: ExportOptions): Promise<void>;
|
|
45
|
+
private exportPackageJson;
|
|
46
|
+
private exportIndexHtml;
|
|
47
|
+
private exportMainGame;
|
|
48
|
+
private exportScenes;
|
|
49
|
+
private exportScene;
|
|
50
|
+
private generateEntityCode;
|
|
51
|
+
private generateTilemapCode;
|
|
52
|
+
private getUsedAssets;
|
|
53
|
+
private exportScripts;
|
|
54
|
+
private exportBundlerConfig;
|
|
55
|
+
private exportTSConfig;
|
|
56
|
+
private sanitizeName;
|
|
57
|
+
private varName;
|
|
58
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { PlatformExporter, type PlatformId, type PlatformInfo, type PlatformFeature, type AssetType, type NiceProject, type ProjectSettings, type NiceScene, type NiceEntity, type NiceComponent, type NiceAsset, type NicePrefab, type NiceTilemap, type TilemapLayer, type ExportOptions, type ExportResult, type ExportedFile, type ExportError, type ExportWarning, type ExportStats, type DetectionResult, detectBestPlatform, registerPlatform, getPlatformInfo, getAllPlatforms, } from './PlatformExporter';
|
|
2
|
+
export { UnityExporter, type UnityExportOptions } from './UnityExporter';
|
|
3
|
+
export { GodotExporter, type GodotExportOptions } from './GodotExporter';
|
|
4
|
+
export { PixiJSExporter, PhaserExporter, type WebExportOptions } from './WebExporter';
|
|
5
|
+
export { ThreeJSExporter, type ThreeJSExportOptions } from './ThreeJSExporter';
|
|
6
|
+
import type { PlatformId } from './PlatformExporter';
|
|
7
|
+
import { PlatformExporter } from './PlatformExporter';
|
|
8
|
+
/**
|
|
9
|
+
* Create an exporter instance for a given platform.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createExporter(platform: PlatformId): PlatformExporter | null;
|
|
12
|
+
/**
|
|
13
|
+
* Get list of all available exporters.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getAvailableExporters(): PlatformId[];
|
|
16
|
+
/**
|
|
17
|
+
* Check if an exporter is available for a platform.
|
|
18
|
+
*/
|
|
19
|
+
export declare function hasExporter(platform: PlatformId): boolean;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file AsepriteImporter.ts
|
|
3
|
+
* @description Import Aseprite sprite editor files (.aseprite, .ase)
|
|
4
|
+
* PRO-1.3: Scene Format Interoperability
|
|
5
|
+
*
|
|
6
|
+
* Supports:
|
|
7
|
+
* - Aseprite binary format (.aseprite, .ase)
|
|
8
|
+
* - Aseprite JSON export format
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Layers (normal, group, reference)
|
|
12
|
+
* - Frames and animation
|
|
13
|
+
* - Tags (animation clips)
|
|
14
|
+
* - Slices (9-slice, pivot)
|
|
15
|
+
* - Palette
|
|
16
|
+
* - Cel data
|
|
17
|
+
* - Blend modes
|
|
18
|
+
*/
|
|
19
|
+
import { SceneImporter, ImportOptions, ImportResult, ParsedScene, ParsedAsset, ImportError } from './SceneImporter';
|
|
20
|
+
export declare class AsepriteImporter extends SceneImporter {
|
|
21
|
+
private aseFile;
|
|
22
|
+
constructor();
|
|
23
|
+
import(options: ImportOptions): Promise<ImportResult>;
|
|
24
|
+
parseFile(content: string | ArrayBuffer, filePath: string): Promise<ParsedScene | ParsedAsset | null>;
|
|
25
|
+
validate(sourcePath: string): Promise<ImportError[]>;
|
|
26
|
+
private parseJsonExport;
|
|
27
|
+
private parseBinaryFile;
|
|
28
|
+
private readHeader;
|
|
29
|
+
private readFrame;
|
|
30
|
+
private getFrameSize;
|
|
31
|
+
private processChunk;
|
|
32
|
+
private readLayerChunk;
|
|
33
|
+
private readCelChunk;
|
|
34
|
+
private readTagsChunk;
|
|
35
|
+
private readPaletteChunk;
|
|
36
|
+
private readSliceChunk;
|
|
37
|
+
private readExternalFilesChunk;
|
|
38
|
+
private readString;
|
|
39
|
+
private buildLayerHierarchy;
|
|
40
|
+
private createSpriteSheetFromBinary;
|
|
41
|
+
private createSpriteSheetAsset;
|
|
42
|
+
private createPaletteAsset;
|
|
43
|
+
private createSpriteScene;
|
|
44
|
+
private paletteColorToHex;
|
|
45
|
+
private readFile;
|
|
46
|
+
}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file DragonBonesImporter.ts
|
|
3
|
+
* @description DragonBones Skeletal Animation Importer
|
|
4
|
+
* PRO-1.3: Scene Format Interoperability
|
|
5
|
+
*
|
|
6
|
+
* DragonBones is a free, open-source 2D skeletal animation tool.
|
|
7
|
+
*
|
|
8
|
+
* File Types:
|
|
9
|
+
* - *_ske.json - Skeleton data
|
|
10
|
+
* - *_tex.json - Texture atlas data
|
|
11
|
+
* - *_tex.png - Texture image
|
|
12
|
+
*/
|
|
13
|
+
import { SceneImporter, ImportOptions, ImportResult, ParsedScene, ImportError } from './SceneImporter';
|
|
14
|
+
/** DragonBones Skeleton Data */
|
|
15
|
+
export interface DBSkeletonData {
|
|
16
|
+
frameRate: number;
|
|
17
|
+
name: string;
|
|
18
|
+
version: string;
|
|
19
|
+
compatibleVersion?: string;
|
|
20
|
+
armature: DBArmature[];
|
|
21
|
+
}
|
|
22
|
+
/** DragonBones Armature */
|
|
23
|
+
export interface DBArmature {
|
|
24
|
+
name: string;
|
|
25
|
+
type?: 'Armature' | 'Stage' | 'MovieClip';
|
|
26
|
+
frameRate?: number;
|
|
27
|
+
aabb: DBAABB;
|
|
28
|
+
bone: DBBone[];
|
|
29
|
+
slot: DBSlot[];
|
|
30
|
+
skin: DBSkin[];
|
|
31
|
+
ik?: DBIKConstraint[];
|
|
32
|
+
path?: DBPathConstraint[];
|
|
33
|
+
animation: DBAnimation[];
|
|
34
|
+
defaultActions?: DBAction[];
|
|
35
|
+
canvas?: DBCanvas;
|
|
36
|
+
}
|
|
37
|
+
/** DragonBones AABB */
|
|
38
|
+
export interface DBAABB {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
}
|
|
44
|
+
/** DragonBones Bone */
|
|
45
|
+
export interface DBBone {
|
|
46
|
+
name: string;
|
|
47
|
+
parent?: string;
|
|
48
|
+
length?: number;
|
|
49
|
+
transform?: DBTransform;
|
|
50
|
+
inheritTranslation?: boolean;
|
|
51
|
+
inheritRotation?: boolean;
|
|
52
|
+
inheritScale?: boolean;
|
|
53
|
+
inheritReflection?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/** DragonBones Transform */
|
|
56
|
+
export interface DBTransform {
|
|
57
|
+
x?: number;
|
|
58
|
+
y?: number;
|
|
59
|
+
skX?: number;
|
|
60
|
+
skY?: number;
|
|
61
|
+
scX?: number;
|
|
62
|
+
scY?: number;
|
|
63
|
+
}
|
|
64
|
+
/** DragonBones Slot */
|
|
65
|
+
export interface DBSlot {
|
|
66
|
+
name: string;
|
|
67
|
+
parent: string;
|
|
68
|
+
displayIndex?: number;
|
|
69
|
+
color?: DBColor;
|
|
70
|
+
blendMode?: 'normal' | 'add' | 'alpha' | 'darken' | 'difference' | 'erase' | 'hardlight' | 'invert' | 'layer' | 'lighten' | 'multiply' | 'overlay' | 'screen' | 'subtract';
|
|
71
|
+
}
|
|
72
|
+
/** DragonBones Color */
|
|
73
|
+
export interface DBColor {
|
|
74
|
+
aM?: number;
|
|
75
|
+
rM?: number;
|
|
76
|
+
gM?: number;
|
|
77
|
+
bM?: number;
|
|
78
|
+
aO?: number;
|
|
79
|
+
rO?: number;
|
|
80
|
+
gO?: number;
|
|
81
|
+
bO?: number;
|
|
82
|
+
}
|
|
83
|
+
/** DragonBones Skin */
|
|
84
|
+
export interface DBSkin {
|
|
85
|
+
name: string;
|
|
86
|
+
slot: DBSkinSlot[];
|
|
87
|
+
}
|
|
88
|
+
/** DragonBones Skin Slot */
|
|
89
|
+
export interface DBSkinSlot {
|
|
90
|
+
name: string;
|
|
91
|
+
display: DBDisplay[];
|
|
92
|
+
}
|
|
93
|
+
/** DragonBones Display */
|
|
94
|
+
export type DBDisplay = DBImageDisplay | DBMeshDisplay | DBArmatureDisplay | DBBoundingBoxDisplay | DBPathDisplay;
|
|
95
|
+
export interface DBDisplayBase {
|
|
96
|
+
name: string;
|
|
97
|
+
type?: 'image' | 'mesh' | 'armature' | 'boundingBox' | 'path';
|
|
98
|
+
transform?: DBTransform;
|
|
99
|
+
}
|
|
100
|
+
export interface DBImageDisplay extends DBDisplayBase {
|
|
101
|
+
type?: 'image';
|
|
102
|
+
path?: string;
|
|
103
|
+
pivot?: {
|
|
104
|
+
x: number;
|
|
105
|
+
y: number;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export interface DBMeshDisplay extends DBDisplayBase {
|
|
109
|
+
type: 'mesh';
|
|
110
|
+
path?: string;
|
|
111
|
+
width: number;
|
|
112
|
+
height: number;
|
|
113
|
+
vertices: number[];
|
|
114
|
+
uvs: number[];
|
|
115
|
+
triangles: number[];
|
|
116
|
+
weights?: number[];
|
|
117
|
+
slotPose?: number[];
|
|
118
|
+
bonePose?: number[];
|
|
119
|
+
edges?: number[];
|
|
120
|
+
userEdges?: number[];
|
|
121
|
+
}
|
|
122
|
+
export interface DBArmatureDisplay extends DBDisplayBase {
|
|
123
|
+
type: 'armature';
|
|
124
|
+
path?: string;
|
|
125
|
+
inheritAnimation?: boolean;
|
|
126
|
+
actions?: DBAction[];
|
|
127
|
+
}
|
|
128
|
+
export interface DBBoundingBoxDisplay extends DBDisplayBase {
|
|
129
|
+
type: 'boundingBox';
|
|
130
|
+
subType?: 'rectangle' | 'ellipse' | 'polygon';
|
|
131
|
+
width?: number;
|
|
132
|
+
height?: number;
|
|
133
|
+
vertices?: number[];
|
|
134
|
+
color?: number;
|
|
135
|
+
}
|
|
136
|
+
export interface DBPathDisplay extends DBDisplayBase {
|
|
137
|
+
type: 'path';
|
|
138
|
+
closed?: boolean;
|
|
139
|
+
constantSpeed?: boolean;
|
|
140
|
+
vertices: number[];
|
|
141
|
+
lengths?: number[];
|
|
142
|
+
}
|
|
143
|
+
/** DragonBones IK Constraint */
|
|
144
|
+
export interface DBIKConstraint {
|
|
145
|
+
name: string;
|
|
146
|
+
bone: string;
|
|
147
|
+
target: string;
|
|
148
|
+
chain?: number;
|
|
149
|
+
bendPositive?: boolean;
|
|
150
|
+
weight?: number;
|
|
151
|
+
}
|
|
152
|
+
/** DragonBones Path Constraint */
|
|
153
|
+
export interface DBPathConstraint {
|
|
154
|
+
name: string;
|
|
155
|
+
bones: string[];
|
|
156
|
+
target: string;
|
|
157
|
+
positionMode?: 'fixed' | 'percent';
|
|
158
|
+
spacingMode?: 'fixed' | 'percent' | 'length';
|
|
159
|
+
rotateMode?: 'tangent' | 'chain' | 'chainScale';
|
|
160
|
+
position?: number;
|
|
161
|
+
spacing?: number;
|
|
162
|
+
rotateMix?: number;
|
|
163
|
+
translateMix?: number;
|
|
164
|
+
}
|
|
165
|
+
/** DragonBones Animation */
|
|
166
|
+
export interface DBAnimation {
|
|
167
|
+
name: string;
|
|
168
|
+
duration: number;
|
|
169
|
+
playTimes?: number;
|
|
170
|
+
fadeInTime?: number;
|
|
171
|
+
frame?: DBMainFrame[];
|
|
172
|
+
bone?: DBBoneTimeline[];
|
|
173
|
+
slot?: DBSlotTimeline[];
|
|
174
|
+
ffd?: DBFFDTimeline[];
|
|
175
|
+
ik?: DBIKTimeline[];
|
|
176
|
+
zOrder?: DBZOrderFrame[];
|
|
177
|
+
}
|
|
178
|
+
/** DragonBones Main Frame (events) */
|
|
179
|
+
export interface DBMainFrame {
|
|
180
|
+
duration: number;
|
|
181
|
+
event?: string;
|
|
182
|
+
events?: DBEvent[];
|
|
183
|
+
actions?: DBAction[];
|
|
184
|
+
sound?: string;
|
|
185
|
+
}
|
|
186
|
+
export interface DBEvent {
|
|
187
|
+
name: string;
|
|
188
|
+
bone?: string;
|
|
189
|
+
ints?: number[];
|
|
190
|
+
floats?: number[];
|
|
191
|
+
strings?: string[];
|
|
192
|
+
}
|
|
193
|
+
export interface DBAction {
|
|
194
|
+
type: 'play' | 'frame' | 'sound';
|
|
195
|
+
name?: string;
|
|
196
|
+
}
|
|
197
|
+
/** DragonBones Bone Timeline */
|
|
198
|
+
export interface DBBoneTimeline {
|
|
199
|
+
name: string;
|
|
200
|
+
translateFrame?: DBTranslateFrame[];
|
|
201
|
+
rotateFrame?: DBRotateFrame[];
|
|
202
|
+
scaleFrame?: DBScaleFrame[];
|
|
203
|
+
frame?: DBBoneFrame[];
|
|
204
|
+
}
|
|
205
|
+
export interface DBTranslateFrame {
|
|
206
|
+
duration?: number;
|
|
207
|
+
tweenEasing?: number | null;
|
|
208
|
+
curve?: number[];
|
|
209
|
+
x?: number;
|
|
210
|
+
y?: number;
|
|
211
|
+
}
|
|
212
|
+
export interface DBRotateFrame {
|
|
213
|
+
duration?: number;
|
|
214
|
+
tweenEasing?: number | null;
|
|
215
|
+
curve?: number[];
|
|
216
|
+
rotate?: number;
|
|
217
|
+
skew?: number;
|
|
218
|
+
}
|
|
219
|
+
export interface DBScaleFrame {
|
|
220
|
+
duration?: number;
|
|
221
|
+
tweenEasing?: number | null;
|
|
222
|
+
curve?: number[];
|
|
223
|
+
x?: number;
|
|
224
|
+
y?: number;
|
|
225
|
+
}
|
|
226
|
+
export interface DBBoneFrame {
|
|
227
|
+
duration?: number;
|
|
228
|
+
tweenEasing?: number | null;
|
|
229
|
+
curve?: number[];
|
|
230
|
+
transform?: DBTransform;
|
|
231
|
+
}
|
|
232
|
+
/** DragonBones Slot Timeline */
|
|
233
|
+
export interface DBSlotTimeline {
|
|
234
|
+
name: string;
|
|
235
|
+
displayFrame?: DBDisplayFrame[];
|
|
236
|
+
colorFrame?: DBColorFrame[];
|
|
237
|
+
frame?: DBSlotFrame[];
|
|
238
|
+
}
|
|
239
|
+
export interface DBDisplayFrame {
|
|
240
|
+
duration?: number;
|
|
241
|
+
value?: number;
|
|
242
|
+
actions?: DBAction[];
|
|
243
|
+
}
|
|
244
|
+
export interface DBColorFrame {
|
|
245
|
+
duration?: number;
|
|
246
|
+
tweenEasing?: number | null;
|
|
247
|
+
curve?: number[];
|
|
248
|
+
value?: DBColor;
|
|
249
|
+
}
|
|
250
|
+
export interface DBSlotFrame {
|
|
251
|
+
duration?: number;
|
|
252
|
+
tweenEasing?: number | null;
|
|
253
|
+
displayIndex?: number;
|
|
254
|
+
color?: DBColor;
|
|
255
|
+
actions?: DBAction[];
|
|
256
|
+
}
|
|
257
|
+
/** DragonBones FFD Timeline (mesh deformation) */
|
|
258
|
+
export interface DBFFDTimeline {
|
|
259
|
+
name: string;
|
|
260
|
+
skin: string;
|
|
261
|
+
slot: string;
|
|
262
|
+
frame: DBFFDFrame[];
|
|
263
|
+
}
|
|
264
|
+
export interface DBFFDFrame {
|
|
265
|
+
duration?: number;
|
|
266
|
+
tweenEasing?: number | null;
|
|
267
|
+
curve?: number[];
|
|
268
|
+
offset?: number;
|
|
269
|
+
vertices?: number[];
|
|
270
|
+
}
|
|
271
|
+
/** DragonBones IK Timeline */
|
|
272
|
+
export interface DBIKTimeline {
|
|
273
|
+
name: string;
|
|
274
|
+
frame: DBIKFrame[];
|
|
275
|
+
}
|
|
276
|
+
export interface DBIKFrame {
|
|
277
|
+
duration?: number;
|
|
278
|
+
tweenEasing?: number | null;
|
|
279
|
+
curve?: number[];
|
|
280
|
+
bendPositive?: boolean;
|
|
281
|
+
weight?: number;
|
|
282
|
+
}
|
|
283
|
+
/** DragonBones Z-Order Frame */
|
|
284
|
+
export interface DBZOrderFrame {
|
|
285
|
+
duration?: number;
|
|
286
|
+
zOrder?: number[];
|
|
287
|
+
}
|
|
288
|
+
/** DragonBones Canvas */
|
|
289
|
+
export interface DBCanvas {
|
|
290
|
+
x?: number;
|
|
291
|
+
y?: number;
|
|
292
|
+
width: number;
|
|
293
|
+
height: number;
|
|
294
|
+
color?: number;
|
|
295
|
+
}
|
|
296
|
+
/** DragonBones Texture Atlas Data */
|
|
297
|
+
export interface DBTextureAtlas {
|
|
298
|
+
name: string;
|
|
299
|
+
imagePath: string;
|
|
300
|
+
width: number;
|
|
301
|
+
height: number;
|
|
302
|
+
SubTexture: DBSubTexture[];
|
|
303
|
+
}
|
|
304
|
+
export interface DBSubTexture {
|
|
305
|
+
name: string;
|
|
306
|
+
x: number;
|
|
307
|
+
y: number;
|
|
308
|
+
width: number;
|
|
309
|
+
height: number;
|
|
310
|
+
frameX?: number;
|
|
311
|
+
frameY?: number;
|
|
312
|
+
frameWidth?: number;
|
|
313
|
+
frameHeight?: number;
|
|
314
|
+
}
|
|
315
|
+
export declare class DragonBonesImporter extends SceneImporter {
|
|
316
|
+
private textureAtlas;
|
|
317
|
+
constructor();
|
|
318
|
+
canHandle(filePath: string): boolean;
|
|
319
|
+
import(options: ImportOptions): Promise<ImportResult>;
|
|
320
|
+
parseFile(content: string | ArrayBuffer, filePath: string): Promise<ParsedScene | null>;
|
|
321
|
+
validate(sourcePath: string): Promise<ImportError[]>;
|
|
322
|
+
private convertArmatureToScene;
|
|
323
|
+
private convertArmatureToParsed;
|
|
324
|
+
private createBoneHierarchy;
|
|
325
|
+
private addSlotToEntity;
|
|
326
|
+
private findBoneEntity;
|
|
327
|
+
private convertAnimation;
|
|
328
|
+
private convertColor;
|
|
329
|
+
private readFile;
|
|
330
|
+
}
|
|
331
|
+
export declare function createDragonBonesImporter(): DragonBonesImporter;
|