@nice2dev/game-engine 1.0.2 → 1.0.3
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 +2 -2
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file GameMakerImporter.ts
|
|
3
|
+
* @description GameMaker Studio 2 Room Importer
|
|
4
|
+
* PRO-1.3: Scene Format Interoperability
|
|
5
|
+
*
|
|
6
|
+
* Supports GameMaker Studio 2 .yy format (JSON-based).
|
|
7
|
+
*
|
|
8
|
+
* File Types:
|
|
9
|
+
* - *.yy - Room, object, sprite, script files
|
|
10
|
+
* - *.yyp - Project file
|
|
11
|
+
*/
|
|
12
|
+
import { SceneImporter, ImportOptions, ImportResult, ParsedScene, ImportError } from './SceneImporter';
|
|
13
|
+
/** GameMaker Resource Reference */
|
|
14
|
+
export interface GMResourceRef {
|
|
15
|
+
name: string;
|
|
16
|
+
path: string;
|
|
17
|
+
}
|
|
18
|
+
/** GameMaker Resource ID */
|
|
19
|
+
export interface GMId {
|
|
20
|
+
name: string;
|
|
21
|
+
path: string;
|
|
22
|
+
}
|
|
23
|
+
/** GameMaker Color Format */
|
|
24
|
+
export type GMColor = number;
|
|
25
|
+
/** GameMaker Room */
|
|
26
|
+
export interface GMRoom {
|
|
27
|
+
resourceType: 'GMRoom';
|
|
28
|
+
resourceVersion: string;
|
|
29
|
+
name: string;
|
|
30
|
+
roomSettings: GMRoomSettings;
|
|
31
|
+
viewSettings: GMViewSettings;
|
|
32
|
+
physicsSettings: GMPhysicsSettings;
|
|
33
|
+
parent: GMResourceRef;
|
|
34
|
+
layers: GMLayerInstance[];
|
|
35
|
+
instanceCreationOrder: GMResourceRef[];
|
|
36
|
+
creationCodeFile: string;
|
|
37
|
+
inheritCode: boolean;
|
|
38
|
+
inheritCreationOrder: boolean;
|
|
39
|
+
inheritLayers: boolean;
|
|
40
|
+
isDnd: boolean;
|
|
41
|
+
volume: number;
|
|
42
|
+
inheritRoomSettings?: boolean;
|
|
43
|
+
inheritViewSettings?: boolean;
|
|
44
|
+
inheritPhysicsSettings?: boolean;
|
|
45
|
+
tags?: string[];
|
|
46
|
+
}
|
|
47
|
+
/** GameMaker Room Settings */
|
|
48
|
+
export interface GMRoomSettings {
|
|
49
|
+
Width: number;
|
|
50
|
+
Height: number;
|
|
51
|
+
inheritRoomSettings: boolean;
|
|
52
|
+
persistent: boolean;
|
|
53
|
+
}
|
|
54
|
+
/** GameMaker View Settings */
|
|
55
|
+
export interface GMViewSettings {
|
|
56
|
+
inheritViewSettings: boolean;
|
|
57
|
+
enableViews: boolean;
|
|
58
|
+
clearViewBackground: boolean;
|
|
59
|
+
clearDisplayBuffer: boolean;
|
|
60
|
+
}
|
|
61
|
+
/** GameMaker Physics Settings */
|
|
62
|
+
export interface GMPhysicsSettings {
|
|
63
|
+
inheritPhysicsSettings: boolean;
|
|
64
|
+
PhysicsWorld: boolean;
|
|
65
|
+
PhysicsWorldGravityX: number;
|
|
66
|
+
PhysicsWorldGravityY: number;
|
|
67
|
+
PhysicsWorldPixToMetres: number;
|
|
68
|
+
}
|
|
69
|
+
/** Base GameMaker Layer */
|
|
70
|
+
export interface GMLayerBase {
|
|
71
|
+
resourceType: string;
|
|
72
|
+
resourceVersion: string;
|
|
73
|
+
name: string;
|
|
74
|
+
depth: number;
|
|
75
|
+
visible: boolean;
|
|
76
|
+
hspeed: number;
|
|
77
|
+
vspeed: number;
|
|
78
|
+
x: number;
|
|
79
|
+
y: number;
|
|
80
|
+
effectEnabled: boolean;
|
|
81
|
+
effectType: string | null;
|
|
82
|
+
gridX: number;
|
|
83
|
+
gridY: number;
|
|
84
|
+
layers: GMLayerInstance[];
|
|
85
|
+
hierarchyFrozen: boolean;
|
|
86
|
+
inheritLayerDepth: boolean;
|
|
87
|
+
inheritLayerSettings: boolean;
|
|
88
|
+
inheritSubLayers: boolean;
|
|
89
|
+
inheritVisibility: boolean;
|
|
90
|
+
userdefinedDepth: boolean;
|
|
91
|
+
properties?: GMLayerProperty[];
|
|
92
|
+
}
|
|
93
|
+
export type GMLayerInstance = GMInstanceLayer | GMTileLayer | GMBackgroundLayer | GMAssetLayer | GMPathLayer | GMEffectLayer | GMFolderLayer;
|
|
94
|
+
/** GameMaker Instance Layer */
|
|
95
|
+
export interface GMInstanceLayer extends GMLayerBase {
|
|
96
|
+
resourceType: 'GMRLayer';
|
|
97
|
+
instances: GMRoomInstance[];
|
|
98
|
+
}
|
|
99
|
+
/** GameMaker Tile Layer */
|
|
100
|
+
export interface GMTileLayer extends GMLayerBase {
|
|
101
|
+
resourceType: 'GMRTileLayer';
|
|
102
|
+
tilesetId: GMResourceRef | null;
|
|
103
|
+
tiles: GMTileData;
|
|
104
|
+
x: number;
|
|
105
|
+
y: number;
|
|
106
|
+
}
|
|
107
|
+
/** GameMaker Tile Data */
|
|
108
|
+
export interface GMTileData {
|
|
109
|
+
TileDataFormat: number;
|
|
110
|
+
SerialiseWidth: number;
|
|
111
|
+
SerialiseHeight: number;
|
|
112
|
+
TileCompressedData: number[];
|
|
113
|
+
TileSerialiseData: number[];
|
|
114
|
+
}
|
|
115
|
+
/** GameMaker Background Layer */
|
|
116
|
+
export interface GMBackgroundLayer extends GMLayerBase {
|
|
117
|
+
resourceType: 'GMRBackgroundLayer';
|
|
118
|
+
spriteId: GMResourceRef | null;
|
|
119
|
+
colour: GMColor;
|
|
120
|
+
stretch: boolean;
|
|
121
|
+
htiled: boolean;
|
|
122
|
+
vtiled: boolean;
|
|
123
|
+
userdefinedAnimFPS: boolean;
|
|
124
|
+
animationFPS: number;
|
|
125
|
+
animationSpeedType: number;
|
|
126
|
+
}
|
|
127
|
+
/** GameMaker Asset Layer */
|
|
128
|
+
export interface GMAssetLayer extends GMLayerBase {
|
|
129
|
+
resourceType: 'GMRAssetLayer';
|
|
130
|
+
assets: GMRoomAsset[];
|
|
131
|
+
}
|
|
132
|
+
/** GameMaker Path Layer */
|
|
133
|
+
export interface GMPathLayer extends GMLayerBase {
|
|
134
|
+
resourceType: 'GMRPathLayer';
|
|
135
|
+
pathId: GMResourceRef | null;
|
|
136
|
+
colour: GMColor;
|
|
137
|
+
}
|
|
138
|
+
/** GameMaker Effect Layer */
|
|
139
|
+
export interface GMEffectLayer extends GMLayerBase {
|
|
140
|
+
resourceType: 'GMREffectLayer';
|
|
141
|
+
}
|
|
142
|
+
/** GameMaker Folder Layer */
|
|
143
|
+
export interface GMFolderLayer extends GMLayerBase {
|
|
144
|
+
resourceType: 'GMRLayer';
|
|
145
|
+
instances?: never;
|
|
146
|
+
}
|
|
147
|
+
/** GameMaker Room Instance */
|
|
148
|
+
export interface GMRoomInstance {
|
|
149
|
+
resourceType: 'GMRInstance';
|
|
150
|
+
resourceVersion: string;
|
|
151
|
+
name: string;
|
|
152
|
+
objectId: GMResourceRef;
|
|
153
|
+
x: number;
|
|
154
|
+
y: number;
|
|
155
|
+
scaleX: number;
|
|
156
|
+
scaleY: number;
|
|
157
|
+
rotation: number;
|
|
158
|
+
colour: GMColor;
|
|
159
|
+
imageIndex: number;
|
|
160
|
+
imageSpeed: number;
|
|
161
|
+
inheritCode: boolean;
|
|
162
|
+
inheritedItemId: GMResourceRef | null;
|
|
163
|
+
inheritItemSettings: boolean;
|
|
164
|
+
isDnd: boolean;
|
|
165
|
+
frozen: boolean;
|
|
166
|
+
ignore: boolean;
|
|
167
|
+
creationCode: string;
|
|
168
|
+
properties: GMInstanceProperty[];
|
|
169
|
+
tags?: string[];
|
|
170
|
+
}
|
|
171
|
+
/** GameMaker Room Asset */
|
|
172
|
+
export interface GMRoomAsset {
|
|
173
|
+
resourceType: 'GMRSpriteGraphic' | 'GMRSequenceGraphic' | 'GMRParticleGraphic';
|
|
174
|
+
resourceVersion: string;
|
|
175
|
+
name: string;
|
|
176
|
+
spriteId?: GMResourceRef;
|
|
177
|
+
sequenceId?: GMResourceRef;
|
|
178
|
+
headPosition: number;
|
|
179
|
+
x: number;
|
|
180
|
+
y: number;
|
|
181
|
+
scaleX: number;
|
|
182
|
+
scaleY: number;
|
|
183
|
+
rotation: number;
|
|
184
|
+
colour: GMColor;
|
|
185
|
+
animationSpeed: number;
|
|
186
|
+
animationSpeedType: number;
|
|
187
|
+
ignore: boolean;
|
|
188
|
+
frozen: boolean;
|
|
189
|
+
inheritedItemId: GMResourceRef | null;
|
|
190
|
+
inheritItemSettings: boolean;
|
|
191
|
+
tags?: string[];
|
|
192
|
+
}
|
|
193
|
+
/** GameMaker Instance Property */
|
|
194
|
+
export interface GMInstanceProperty {
|
|
195
|
+
propertyId: GMResourceRef;
|
|
196
|
+
objectId: GMResourceRef;
|
|
197
|
+
value: string;
|
|
198
|
+
}
|
|
199
|
+
/** GameMaker Layer Property */
|
|
200
|
+
export interface GMLayerProperty {
|
|
201
|
+
propertyId: GMResourceRef;
|
|
202
|
+
value: string;
|
|
203
|
+
}
|
|
204
|
+
/** GameMaker Object */
|
|
205
|
+
export interface GMObject {
|
|
206
|
+
resourceType: 'GMObject';
|
|
207
|
+
resourceVersion: string;
|
|
208
|
+
name: string;
|
|
209
|
+
spriteId: GMResourceRef | null;
|
|
210
|
+
solid: boolean;
|
|
211
|
+
visible: boolean;
|
|
212
|
+
managed: boolean;
|
|
213
|
+
spriteMaskId: GMResourceRef | null;
|
|
214
|
+
persistent: boolean;
|
|
215
|
+
parentObjectId: GMResourceRef | null;
|
|
216
|
+
physicsObject: boolean;
|
|
217
|
+
physicsSensor: boolean;
|
|
218
|
+
physicsShape: number;
|
|
219
|
+
physicsGroup: number;
|
|
220
|
+
physicsDensity: number;
|
|
221
|
+
physicsRestitution: number;
|
|
222
|
+
physicsLinearDamping: number;
|
|
223
|
+
physicsAngularDamping: number;
|
|
224
|
+
physicsFriction: number;
|
|
225
|
+
physicsStartAwake: boolean;
|
|
226
|
+
physicsKinematic: boolean;
|
|
227
|
+
physicsShapePoints: GMPhysicsPoint[];
|
|
228
|
+
eventList: GMEvent[];
|
|
229
|
+
properties: GMObjectProperty[];
|
|
230
|
+
overriddenProperties: GMObjectProperty[];
|
|
231
|
+
parent: GMResourceRef;
|
|
232
|
+
}
|
|
233
|
+
/** GameMaker Physics Point */
|
|
234
|
+
export interface GMPhysicsPoint {
|
|
235
|
+
x: number;
|
|
236
|
+
y: number;
|
|
237
|
+
}
|
|
238
|
+
/** GameMaker Event */
|
|
239
|
+
export interface GMEvent {
|
|
240
|
+
resourceType: 'GMEvent';
|
|
241
|
+
resourceVersion: string;
|
|
242
|
+
isDnD: boolean;
|
|
243
|
+
eventNum: number;
|
|
244
|
+
eventType: number;
|
|
245
|
+
collisionObjectId?: GMResourceRef;
|
|
246
|
+
parent: GMResourceRef;
|
|
247
|
+
}
|
|
248
|
+
/** GameMaker Object Property */
|
|
249
|
+
export interface GMObjectProperty {
|
|
250
|
+
resourceType: 'GMObjectProperty';
|
|
251
|
+
resourceVersion: string;
|
|
252
|
+
name: string;
|
|
253
|
+
varType: number;
|
|
254
|
+
value: string;
|
|
255
|
+
rangeEnabled: boolean;
|
|
256
|
+
rangeMin: number;
|
|
257
|
+
rangeMax: number;
|
|
258
|
+
listItems: string[];
|
|
259
|
+
multiselect: boolean;
|
|
260
|
+
filters: string[];
|
|
261
|
+
}
|
|
262
|
+
/** GameMaker Sprite */
|
|
263
|
+
export interface GMSprite {
|
|
264
|
+
resourceType: 'GMSprite';
|
|
265
|
+
resourceVersion: string;
|
|
266
|
+
name: string;
|
|
267
|
+
width: number;
|
|
268
|
+
height: number;
|
|
269
|
+
bbox_left: number;
|
|
270
|
+
bbox_right: number;
|
|
271
|
+
bbox_top: number;
|
|
272
|
+
bbox_bottom: number;
|
|
273
|
+
origin: number;
|
|
274
|
+
xorigin: number;
|
|
275
|
+
yorigin: number;
|
|
276
|
+
frames: GMSpriteFrame[];
|
|
277
|
+
sequence: GMSpriteSequence;
|
|
278
|
+
layers: GMSpriteLayer[];
|
|
279
|
+
nineSlice: GMNineSlice | null;
|
|
280
|
+
parent: GMResourceRef;
|
|
281
|
+
bboxMode: number;
|
|
282
|
+
collisionKind: number;
|
|
283
|
+
collisionTolerance: number;
|
|
284
|
+
edgeFiltering: boolean;
|
|
285
|
+
For3D: boolean;
|
|
286
|
+
gridX: number;
|
|
287
|
+
gridY: number;
|
|
288
|
+
HTile: boolean;
|
|
289
|
+
VTile: boolean;
|
|
290
|
+
premultiplyAlpha: boolean;
|
|
291
|
+
textureGroupId: GMResourceRef;
|
|
292
|
+
}
|
|
293
|
+
/** GameMaker Sprite Frame */
|
|
294
|
+
export interface GMSpriteFrame {
|
|
295
|
+
resourceType: 'GMSpriteFrame';
|
|
296
|
+
resourceVersion: string;
|
|
297
|
+
name: string;
|
|
298
|
+
compositeImage: GMResourceRef;
|
|
299
|
+
images: GMResourceRef[];
|
|
300
|
+
}
|
|
301
|
+
/** GameMaker Sprite Sequence */
|
|
302
|
+
export interface GMSpriteSequence {
|
|
303
|
+
resourceType: 'GMSequence';
|
|
304
|
+
resourceVersion: string;
|
|
305
|
+
name: string;
|
|
306
|
+
playback: number;
|
|
307
|
+
playbackSpeed: number;
|
|
308
|
+
playbackSpeedType: number;
|
|
309
|
+
length: number;
|
|
310
|
+
tracks: unknown[];
|
|
311
|
+
visibleRange: unknown | null;
|
|
312
|
+
lockOrigin: boolean;
|
|
313
|
+
showBackdrop: boolean;
|
|
314
|
+
showBackdropImage: boolean;
|
|
315
|
+
backdropImagePath: string;
|
|
316
|
+
backdropImageOpacity: number;
|
|
317
|
+
backdropWidth: number;
|
|
318
|
+
backdropHeight: number;
|
|
319
|
+
backdropXOffset: number;
|
|
320
|
+
backdropYOffset: number;
|
|
321
|
+
xorigin: number;
|
|
322
|
+
yorigin: number;
|
|
323
|
+
volume: number;
|
|
324
|
+
events: unknown;
|
|
325
|
+
moments: unknown;
|
|
326
|
+
}
|
|
327
|
+
/** GameMaker Sprite Layer */
|
|
328
|
+
export interface GMSpriteLayer {
|
|
329
|
+
resourceType: 'GMImageLayer';
|
|
330
|
+
resourceVersion: string;
|
|
331
|
+
name: string;
|
|
332
|
+
visible: boolean;
|
|
333
|
+
isLocked: boolean;
|
|
334
|
+
blendMode: number;
|
|
335
|
+
opacity: number;
|
|
336
|
+
}
|
|
337
|
+
/** GameMaker Nine Slice */
|
|
338
|
+
export interface GMNineSlice {
|
|
339
|
+
left: number;
|
|
340
|
+
top: number;
|
|
341
|
+
right: number;
|
|
342
|
+
bottom: number;
|
|
343
|
+
guideColour: GMColor[];
|
|
344
|
+
highlightColour: GMColor;
|
|
345
|
+
highlightStyle: number;
|
|
346
|
+
enabled: boolean;
|
|
347
|
+
tileMode: number[];
|
|
348
|
+
}
|
|
349
|
+
export declare class GameMakerImporter extends SceneImporter {
|
|
350
|
+
private objects;
|
|
351
|
+
private sprites;
|
|
352
|
+
constructor();
|
|
353
|
+
canHandle(filePath: string): boolean;
|
|
354
|
+
import(options: ImportOptions): Promise<ImportResult>;
|
|
355
|
+
parseFile(content: string | ArrayBuffer, filePath: string): Promise<ParsedScene | null>;
|
|
356
|
+
validate(sourcePath: string): Promise<ImportError[]>;
|
|
357
|
+
private isRoomFile;
|
|
358
|
+
private isSpriteFile;
|
|
359
|
+
private isObjectFile;
|
|
360
|
+
private convertRoomToScene;
|
|
361
|
+
private convertRoomToParsed;
|
|
362
|
+
private convertLayer;
|
|
363
|
+
private convertLayerToParsed;
|
|
364
|
+
private convertInstance;
|
|
365
|
+
private convertInstanceToParsed;
|
|
366
|
+
private convertTileLayer;
|
|
367
|
+
private decompressTileData;
|
|
368
|
+
private convertBackgroundLayer;
|
|
369
|
+
private convertAsset;
|
|
370
|
+
private convertSpriteToAsset;
|
|
371
|
+
private extractAssetsFromLayers;
|
|
372
|
+
private colorToHex;
|
|
373
|
+
private readFile;
|
|
374
|
+
}
|
|
375
|
+
export declare function createGameMakerImporter(): GameMakerImporter;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file GodotSceneImporter.ts
|
|
3
|
+
* @description Import Godot scenes (.tscn) and resources (.tres)
|
|
4
|
+
* PRO-1.3: Scene Format Interoperability
|
|
5
|
+
*
|
|
6
|
+
* Parses Godot 4.x scene format and converts to Nice2Dev entities.
|
|
7
|
+
* Supports:
|
|
8
|
+
* - Scene files (.tscn)
|
|
9
|
+
* - Resource files (.tres)
|
|
10
|
+
* - Project files (.godot)
|
|
11
|
+
*/
|
|
12
|
+
import { SceneImporter, ImportOptions, ImportResult, ParsedScene, ParsedAsset, ImportError } from './SceneImporter';
|
|
13
|
+
export declare class GodotSceneImporter extends SceneImporter {
|
|
14
|
+
private extResources;
|
|
15
|
+
private subResources;
|
|
16
|
+
private nodes;
|
|
17
|
+
private connections;
|
|
18
|
+
private header;
|
|
19
|
+
constructor();
|
|
20
|
+
import(options: ImportOptions): Promise<ImportResult>;
|
|
21
|
+
parseFile(content: string | ArrayBuffer, filePath: string): Promise<ParsedScene | ParsedAsset | null>;
|
|
22
|
+
validate(sourcePath: string): Promise<ImportError[]>;
|
|
23
|
+
private parseGodotScene;
|
|
24
|
+
private saveCurrentItem;
|
|
25
|
+
private parseInlineParams;
|
|
26
|
+
private parseGodotValue;
|
|
27
|
+
private parseGodotArray;
|
|
28
|
+
private parseGodotDictionary;
|
|
29
|
+
private convertNodeToEntity;
|
|
30
|
+
private convertGodotNodeToComponent;
|
|
31
|
+
private extractVector2;
|
|
32
|
+
private extractAssets;
|
|
33
|
+
private readFile;
|
|
34
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file LDtkImporter.ts
|
|
3
|
+
* @description Import LDtk (Level Designer Toolkit) files
|
|
4
|
+
* PRO-1.3: Scene Format Interoperability
|
|
5
|
+
*
|
|
6
|
+
* Supports:
|
|
7
|
+
* - LDtk project files (.ldtk)
|
|
8
|
+
* - LDtk level files (.ldtkl)
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - World/Level hierarchy
|
|
12
|
+
* - IntGrid layers
|
|
13
|
+
* - Tile layers
|
|
14
|
+
* - Entity layers
|
|
15
|
+
* - Auto-layer rules
|
|
16
|
+
* - Enums
|
|
17
|
+
* - Level backgrounds
|
|
18
|
+
*/
|
|
19
|
+
import { SceneImporter, ImportOptions, ImportResult, ParsedScene, ParsedAsset, ImportError } from './SceneImporter';
|
|
20
|
+
interface LDtkTileRect {
|
|
21
|
+
tilesetUid: number;
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
w: number;
|
|
25
|
+
h: number;
|
|
26
|
+
}
|
|
27
|
+
interface LDtkIntGridValue {
|
|
28
|
+
value: number;
|
|
29
|
+
identifier: string;
|
|
30
|
+
color: string;
|
|
31
|
+
tile?: LDtkTileRect;
|
|
32
|
+
groupUid: number;
|
|
33
|
+
}
|
|
34
|
+
interface LDtkEntityDef {
|
|
35
|
+
identifier: string;
|
|
36
|
+
uid: number;
|
|
37
|
+
tags: string[];
|
|
38
|
+
exportToToc: boolean;
|
|
39
|
+
allowOutOfBounds: boolean;
|
|
40
|
+
doc?: string;
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
resizableX: boolean;
|
|
44
|
+
resizableY: boolean;
|
|
45
|
+
minWidth?: number;
|
|
46
|
+
maxWidth?: number;
|
|
47
|
+
minHeight?: number;
|
|
48
|
+
maxHeight?: number;
|
|
49
|
+
keepAspectRatio: boolean;
|
|
50
|
+
tileOpacity: number;
|
|
51
|
+
fillOpacity: number;
|
|
52
|
+
lineOpacity: number;
|
|
53
|
+
hollow: boolean;
|
|
54
|
+
color: string;
|
|
55
|
+
renderMode: 'Rectangle' | 'Ellipse' | 'Tile' | 'Cross';
|
|
56
|
+
showName: boolean;
|
|
57
|
+
tilesetId?: number;
|
|
58
|
+
tileRenderMode: 'Cover' | 'FitInside' | 'Repeat' | 'Stretch' | 'FullSizeCropped' | 'FullSizeUncropped' | 'NineSlice';
|
|
59
|
+
tileRect?: LDtkTileRect;
|
|
60
|
+
uiTileRect?: LDtkTileRect;
|
|
61
|
+
nineSliceBorders: number[];
|
|
62
|
+
maxCount: number;
|
|
63
|
+
limitScope: 'PerLayer' | 'PerLevel' | 'PerWorld';
|
|
64
|
+
limitBehavior: 'MoveLastOne' | 'PreventAdding' | 'DiscardOldOnes';
|
|
65
|
+
pivotX: number;
|
|
66
|
+
pivotY: number;
|
|
67
|
+
fieldDefs: LDtkFieldDef[];
|
|
68
|
+
}
|
|
69
|
+
interface LDtkFieldDef {
|
|
70
|
+
identifier: string;
|
|
71
|
+
doc?: string;
|
|
72
|
+
uid: number;
|
|
73
|
+
type: string;
|
|
74
|
+
isArray: boolean;
|
|
75
|
+
canBeNull: boolean;
|
|
76
|
+
arrayMinLength?: number;
|
|
77
|
+
arrayMaxLength?: number;
|
|
78
|
+
editorDisplayMode: string;
|
|
79
|
+
editorDisplayScale: number;
|
|
80
|
+
editorDisplayPos: string;
|
|
81
|
+
editorLinkStyle: string;
|
|
82
|
+
editorDisplayColor?: string;
|
|
83
|
+
editorAlwaysShow: boolean;
|
|
84
|
+
editorShowInWorld: boolean;
|
|
85
|
+
editorCutLongValues: boolean;
|
|
86
|
+
editorTextSuffix?: string;
|
|
87
|
+
editorTextPrefix?: string;
|
|
88
|
+
useForSmartColor: boolean;
|
|
89
|
+
exportToToc: boolean;
|
|
90
|
+
searchable: boolean;
|
|
91
|
+
min?: number;
|
|
92
|
+
max?: number;
|
|
93
|
+
regex?: string;
|
|
94
|
+
acceptFileTypes?: string[];
|
|
95
|
+
defaultOverride?: unknown;
|
|
96
|
+
textLanguageMode?: string;
|
|
97
|
+
symmetricalRef: boolean;
|
|
98
|
+
autoChainRef: boolean;
|
|
99
|
+
allowOutOfLevelRef: boolean;
|
|
100
|
+
allowedRefs: string;
|
|
101
|
+
allowedRefsEntityUid?: number;
|
|
102
|
+
allowedRefTags: string[];
|
|
103
|
+
tilesetUid?: number;
|
|
104
|
+
}
|
|
105
|
+
interface LDtkTilesetDef {
|
|
106
|
+
identifier: string;
|
|
107
|
+
uid: number;
|
|
108
|
+
relPath?: string;
|
|
109
|
+
embedAtlas?: 'LdtkIcons';
|
|
110
|
+
pxWid: number;
|
|
111
|
+
pxHei: number;
|
|
112
|
+
tileGridSize: number;
|
|
113
|
+
spacing: number;
|
|
114
|
+
padding: number;
|
|
115
|
+
tags: string[];
|
|
116
|
+
tagsSourceEnumUid?: number;
|
|
117
|
+
enumTags: {
|
|
118
|
+
enumValueId: string;
|
|
119
|
+
tileIds: number[];
|
|
120
|
+
}[];
|
|
121
|
+
customData: {
|
|
122
|
+
tileId: number;
|
|
123
|
+
data: string;
|
|
124
|
+
}[];
|
|
125
|
+
savedSelections: {
|
|
126
|
+
ids: number[];
|
|
127
|
+
mode: string;
|
|
128
|
+
}[];
|
|
129
|
+
cachedPixelData?: Record<string, unknown>;
|
|
130
|
+
}
|
|
131
|
+
interface LDtkEnumDef {
|
|
132
|
+
identifier: string;
|
|
133
|
+
uid: number;
|
|
134
|
+
values: LDtkEnumValue[];
|
|
135
|
+
iconTilesetUid?: number;
|
|
136
|
+
externalRelPath?: string;
|
|
137
|
+
externalFileChecksum?: string;
|
|
138
|
+
tags: string[];
|
|
139
|
+
}
|
|
140
|
+
interface LDtkEnumValue {
|
|
141
|
+
id: string;
|
|
142
|
+
tileRect?: LDtkTileRect;
|
|
143
|
+
color: number;
|
|
144
|
+
}
|
|
145
|
+
export declare class LDtkImporter extends SceneImporter {
|
|
146
|
+
private project;
|
|
147
|
+
private tilesets;
|
|
148
|
+
private entityDefs;
|
|
149
|
+
private layerDefs;
|
|
150
|
+
private enums;
|
|
151
|
+
constructor();
|
|
152
|
+
import(options: ImportOptions): Promise<ImportResult>;
|
|
153
|
+
parseFile(content: string | ArrayBuffer, filePath: string): Promise<ParsedScene | ParsedAsset | null>;
|
|
154
|
+
validate(sourcePath: string): Promise<ImportError[]>;
|
|
155
|
+
private indexDefinitions;
|
|
156
|
+
private getAllLevels;
|
|
157
|
+
private loadExternalLevels;
|
|
158
|
+
private convertLevelToScene;
|
|
159
|
+
private convertLayer;
|
|
160
|
+
private mapLayerType;
|
|
161
|
+
private convertTile;
|
|
162
|
+
private gridTilesToArray;
|
|
163
|
+
private convertEntity;
|
|
164
|
+
private convertFieldToComponent;
|
|
165
|
+
private convertFieldInstances;
|
|
166
|
+
private extractAssets;
|
|
167
|
+
private readFile;
|
|
168
|
+
/** Get IntGrid value definition by value */
|
|
169
|
+
getIntGridValue(layerUid: number, value: number): LDtkIntGridValue | undefined;
|
|
170
|
+
/** Get enum definition and values */
|
|
171
|
+
getEnum(identifier: string): LDtkEnumDef | undefined;
|
|
172
|
+
/** Get entity definition */
|
|
173
|
+
getEntityDef(uid: number): LDtkEntityDef | undefined;
|
|
174
|
+
/** Get tileset definition */
|
|
175
|
+
getTileset(uid: number): LDtkTilesetDef | undefined;
|
|
176
|
+
}
|
|
177
|
+
export {};
|