-
Notifications
You must be signed in to change notification settings - Fork 794
/
Bindings.idl
3858 lines (3238 loc) · 156 KB
/
Bindings.idl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
* GDevelop.js
* Copyright 2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
* This project is released under the MIT License.
*/
/**
* IDL file for GDevelop classes bindings.
*
* Notes:
*
* WRAPPED_* and STATIC_* functions are declared as such
* to allow the Wrapper.cpp file to use a macro to do special work on it.
* These functions are renamed in the final .js file (so that
* `WRAPPED_set` become `set` for example).
*/
//Interfaces for some types from
//the C++ Standard Library:
interface VectorString {
void VectorString();
void push_back([Const] DOMString str);
void resize(unsigned long size);
unsigned long size();
[Const, Ref] DOMString at(unsigned long index);
void WRAPPED_set(unsigned long index, [Const] DOMString str);
void clear();
};
interface VectorPlatformExtension {
unsigned long size();
[Const] PlatformExtension WRAPPED_at(unsigned long index);
};
interface VectorDependencyMetadata {
unsigned long size();
[Const, Ref] DependencyMetadata at(unsigned long index);
};
interface VectorInt {
unsigned long size();
long at(unsigned long index);
};
interface VectorVariable {
unsigned long size();
[Const] Variable WRAPPED_at(unsigned long index);
};
interface VectorObjectFolderOrObject {
unsigned long size();
[Const] ObjectFolderOrObject at(unsigned long index);
};
interface MapStringString {
void MapStringString();
[Const, Ref] DOMString MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const] DOMString str);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringBoolean {
void MapStringBoolean();
boolean MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, boolean value);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringDouble {
void MapStringDouble();
double MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, double value);
double MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringVariable {
[Ref] Variable MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const, Ref] Variable prop);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringExpressionMetadata {
[Ref] ExpressionMetadata MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const, Ref] ExpressionMetadata prop);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringInstructionMetadata {
[Ref] InstructionMetadata MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const, Ref] InstructionMetadata prop);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapStringEventMetadata {
[Ref] EventMetadata MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const, Ref] EventMetadata prop);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface MapExtensionProperties {
[Ref] MapStringPropertyDescriptor MAP_get([Const] DOMString name);
void MAP_set([Const] DOMString name, [Const, Ref] MapStringPropertyDescriptor prop);
boolean MAP_has([Const] DOMString name);
[Value] VectorString MAP_keys();
};
interface SetString {
void SetString();
[Value] VectorString FREE_toNewVectorString();
};
interface ProjectHelper {
[Ref] Project STATIC_CreateNewGDJSProject();
void STATIC_InitializePlatforms();
[Const, Value] DOMString STATIC_SanityCheckBehaviorProperty(Behavior behavior, [Const] DOMString propertyName, [Const] DOMString newValue);
[Const, Value] DOMString STATIC_SanityCheckBehaviorsSharedDataProperty(BehaviorsSharedData behavior, [Const] DOMString propertyName, [Const] DOMString newValue);
[Const, Value] DOMString STATIC_SanityCheckObjectProperty(ObjectConfiguration configuration, [Const] DOMString propertyName, [Const] DOMString newValue);
[Const, Value] DOMString STATIC_SanityCheckObjectInitialInstanceProperty(ObjectConfiguration configuration, [Const] DOMString propertyName, [Const] DOMString newValue);
};
interface EventsVariablesFinder {
void EventsVariablesFinder();
[Const, Value] SetString STATIC_FindAllGlobalVariables([Const, Ref] Platform platform, [Const, Ref] Project project);
[Const, Value] SetString STATIC_FindAllLayoutVariables([Const, Ref] Platform platform, [Const, Ref] Project project, [Const, Ref] Layout layout);
[Const, Value] SetString STATIC_FindAllObjectVariables([Const, Ref] Platform platform, [Const, Ref] Project project, [Const, Ref] Layout layout, [Const] DOMString objectName);
//Inherited from ExpressionParser2NodeWorker:
};
interface EventsIdentifiersFinder {
void EventsIdentifiersFinder();
[Const, Value] SetString STATIC_FindAllIdentifierExpressions([Const, Ref] Platform platform, [Const, Ref] Project project, [Const, Ref] Layout layout, [Const] DOMString identifierType, [Const] DOMString contextObjectName);
//Inherited from ExpressionParser2NodeWorker:
};
interface EventsFunctionSelfCallChecker {
boolean STATIC_IsFreeFunctionOnlyCallingItself(
[Const, Ref] Project project,
[Const, Ref] EventsFunctionsExtension extension,
[Const, Ref] EventsFunction eventsFunction);
boolean STATIC_IsBehaviorFunctionOnlyCallingItself(
[Const, Ref] Project project,
[Const, Ref] EventsFunctionsExtension extension,
[Const, Ref] EventsBasedBehavior eventsBasedBehavior,
[Const, Ref] EventsFunction eventsFunction);
boolean STATIC_IsObjectFunctionOnlyCallingItself(
[Const, Ref] Project project,
[Const, Ref] EventsFunctionsExtension extension,
[Const, Ref] EventsBasedObject eventsBasedObject,
[Const, Ref] EventsFunction eventsFunction);
};
interface InstructionOrExpressionGroupMetadata {
void InstructionOrExpressionGroupMetadata();
[Ref] InstructionOrExpressionGroupMetadata SetIcon([Const] DOMString icon);
[Const, Ref] DOMString GetIcon();
};
interface VersionWrapper {
long STATIC_Major();
long STATIC_Minor();
long STATIC_Build();
long STATIC_Revision();
[Const, Value] DOMString STATIC_FullString();
[Const, Value] DOMString STATIC_Status();
};
interface Platform {
[Const, Value] DOMString GetName();
[Const, Value] DOMString GetFullName();
[Const, Value] DOMString GetSubtitle();
[Const, Value] DOMString GetDescription();
[Const, Ref] InstructionOrExpressionGroupMetadata GetInstructionOrExpressionGroupMetadata([Const] DOMString name);
boolean IsExtensionLoaded([Const] DOMString name);
void RemoveExtension([Const] DOMString name);
void ReloadBuiltinExtensions();
[Const, Ref] VectorPlatformExtension GetAllPlatformExtensions();
};
interface JsPlatform {
[Ref] JsPlatform STATIC_Get();
void AddNewExtension([Const, Ref] PlatformExtension extension);
// Inherited from Platform:
[Const, Value] DOMString GetName();
[Const, Value] DOMString GetFullName();
[Const, Value] DOMString GetSubtitle();
[Const, Value] DOMString GetDescription();
[Const, Ref] InstructionOrExpressionGroupMetadata GetInstructionOrExpressionGroupMetadata([Const] DOMString name);
boolean IsExtensionLoaded([Const] DOMString name);
void RemoveExtension([Const] DOMString name);
void ReloadBuiltinExtensions();
[Const, Ref] VectorPlatformExtension GetAllPlatformExtensions();
};
interface PairStringVariable {
void PairStringVariable();
[Const, Ref] DOMString WRAPPED_GetName();
[Ref] Variable WRAPPED_GetVariable();
};
enum Variable_Type {
"Variable::Unknown",
"Variable::MixedTypes",
"Variable::String",
"Variable::Number",
"Variable::Boolean",
"Variable::Structure",
"Variable::Array"
};
interface VariableInstructionSwitcher {
boolean STATIC_IsSwitchableVariableInstruction([Const] DOMString instructionType);
boolean STATIC_IsSwitchableObjectVariableInstruction([Const] DOMString instructionType);
[Const, Ref] DOMString STATIC_GetSwitchableVariableInstructionIdentifier([Const] DOMString instructionType);
[Const] Variable_Type STATIC_GetSwitchableInstructionVariableType([Const] DOMString instructionType);
void STATIC_SwitchVariableInstructionType(
[Ref] Instruction instruction, [Const] Variable_Type variableType);
[Const] Variable_Type STATIC_GetVariableTypeFromParameters(
[Const, Ref] Platform platform,
[Const, Ref] ProjectScopedContainers projectScopedContainers,
[Const, Ref] Instruction instruction);
void STATIC_SwitchBetweenUnifiedInstructionIfNeeded(
[Const, Ref] Platform platform,
[Const, Ref] ProjectScopedContainers projectScopedContainers,
[Ref] Instruction instruction);
};
interface Variable {
void Variable();
boolean STATIC_IsPrimitive([Const] Variable_Type type);
Variable_Type GetType();
void CastTo([Const] DOMString type);
void SetString([Const] DOMString str);
[Const, Ref] DOMString GetString();
void SetValue([Const] double val);
double GetValue();
void SetBool([Const] boolean val);
boolean GetBool();
boolean HasMixedValues();
void SetFolded(boolean val);
boolean IsFolded();
unsigned long GetChildrenCount();
boolean Contains([Const, Ref] Variable variableToSearch, boolean recursive);
boolean HasChild([Const] DOMString str);
[Ref] Variable GetChild([Const] DOMString str);
void RemoveChild([Const] DOMString name);
boolean RenameChild([Const] DOMString oldName, [Const] DOMString newName);
[Value] VectorString GetAllChildrenNames();
void RemoveRecursively([Const, Ref] Variable variableToRemove);
[Ref] Variable GetAtIndex([Const] unsigned long index);
[Ref] Variable PushNew();
void RemoveAtIndex([Const] unsigned long index);
[Const, Ref] VectorVariable GetAllChildrenArray();
void MoveChildInArray([Const] unsigned long oldIndex, [Const] unsigned long newIndex);
boolean InsertAtIndex([Const, Ref] Variable variable, [Const] unsigned long index);
boolean InsertChild([Const] DOMString name, [Const, Ref] Variable variable);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
[Ref] Variable ResetPersistentUuid();
[Ref] Variable ClearPersistentUuid();
};
enum VariablesContainer_SourceType {
"VariablesContainer::Unknown",
"VariablesContainer::Global",
"VariablesContainer::Scene",
"VariablesContainer::Object",
"VariablesContainer::Local",
"VariablesContainer::ExtensionGlobal",
"VariablesContainer::ExtensionScene"
};
interface VariablesContainer {
void VariablesContainer();
void VariablesContainer(VariablesContainer_SourceType sourceType);
VariablesContainer_SourceType GetSourceType();
boolean Has([Const] DOMString name);
[Ref] Variable Get([Const] DOMString name);
[Ref] Variable GetAt(unsigned long index);
[Const, Ref] DOMString GetNameAt(unsigned long index);
[Ref] Variable Insert([Const] DOMString name, [Const, Ref] Variable variable, unsigned long index);
[Ref] Variable InsertNew([Const] DOMString name, unsigned long index);
void Remove([Const] DOMString name);
boolean Rename([Const] DOMString oldName, [Const] DOMString newName);
void Swap(unsigned long firstIndex, unsigned long secondIndex);
void Move(unsigned long oldIndex, unsigned long newIndex);
unsigned long GetPosition([Const] DOMString name);
unsigned long Count();
void Clear();
void RemoveRecursively([Const, Ref] Variable variableToRemove);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
[Ref] VariablesContainer ResetPersistentUuid();
[Ref] VariablesContainer ClearPersistentUuid();
};
interface VariablesContainersList {
boolean Has([Const] DOMString name);
[Const, Ref] Variable Get([Const] DOMString name);
[Const, Ref] VariablesContainer GetVariablesContainerFromVariableName([Const] DOMString variableName);
[Const, Ref] VariablesContainer GetVariablesContainer(unsigned long index);
unsigned long GetVariablesContainersCount();
};
interface ObjectGroup {
void ObjectGroup();
[Const, Ref] DOMString GetName();
void SetName([Const] DOMString name);
void AddObject([Const] DOMString objectName);
void RemoveObject([Const] DOMString objectName);
boolean Find([Const] DOMString objectName);
[Const, Ref] VectorString GetAllObjectsNames();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface GroupVariableHelper {
[Value] VariablesContainer STATIC_MergeVariableContainers(
[Const, Ref] ObjectsContainersList objectsContainersList,
[Const, Ref] ObjectGroup objectGroup);
void STATIC_FillAnyVariableBetweenObjects(
[Ref] ObjectsContainer globalObjectsContainer,
[Ref] ObjectsContainer objectsContainer,
[Const, Ref] ObjectGroup objectGroup);
};
interface ObjectGroupsContainer {
void ObjectGroupsContainer();
boolean Has([Const] DOMString name);
[Ref] ObjectGroup Insert([Const, Ref] ObjectGroup objectGroup, unsigned long position);
[Ref] ObjectGroup InsertNew([Const] DOMString name, unsigned long position);
unsigned long Count();
[Ref] ObjectGroup Get([Const] DOMString name);
[Ref] ObjectGroup GetAt(unsigned long index);
void Clear();
void Remove([Const] DOMString name);
unsigned long GetPosition([Const] DOMString name);
boolean Rename([Const] DOMString oldName, [Const] DOMString newName);
void Move(unsigned long oldIndex, unsigned long newIndex);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface PlatformSpecificAssets {
void PlatformSpecificAssets();
boolean Has([Const] DOMString platform, [Const] DOMString name);
[Const, Ref] DOMString Get([Const] DOMString platform, [Const] DOMString name);
void Remove([Const] DOMString platform, [Const] DOMString name);
void Set([Const] DOMString platform, [Const] DOMString name, [Const] DOMString resourceName);
void ExposeResources([Ref] ArbitraryResourceWorker worker);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface LoadingScreen {
void LoadingScreen();
boolean IsGDevelopLogoShownDuringLoadingScreen();
[Ref] LoadingScreen ShowGDevelopLogoDuringLoadingScreen(boolean show);
[Const, Ref] DOMString GetGDevelopLogoStyle();
[Ref] LoadingScreen SetGDevelopLogoStyle([Const] DOMString value);
[Const, Ref] DOMString GetBackgroundImageResourceName();
[Ref] LoadingScreen SetBackgroundImageResourceName([Const] DOMString value);
long GetBackgroundColor();
[Ref] LoadingScreen SetBackgroundColor(long value);
double GetBackgroundFadeInDuration();
[Ref] LoadingScreen SetBackgroundFadeInDuration(double value);
double GetMinDuration();
[Ref] LoadingScreen SetMinDuration(double value);
double GetLogoAndProgressFadeInDuration();
[Ref] LoadingScreen SetLogoAndProgressFadeInDuration(double value);
double GetLogoAndProgressLogoFadeInDelay();
[Ref] LoadingScreen SetLogoAndProgressLogoFadeInDelay(double value);
boolean GetShowProgressBar();
[Ref] LoadingScreen SetShowProgressBar(boolean value);
double GetProgressBarMaxWidth();
[Ref] LoadingScreen SetProgressBarMaxWidth(double value);
double GetProgressBarMinWidth();
[Ref] LoadingScreen SetProgressBarMinWidth(double value);
double GetProgressBarWidthPercent();
[Ref] LoadingScreen SetProgressBarWidthPercent(double value);
double GetProgressBarHeight();
[Ref] LoadingScreen SetProgressBarHeight(double value);
long GetProgressBarColor();
[Ref] LoadingScreen SetProgressBarColor(long value);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface Watermark {
void Watermark();
boolean IsGDevelopWatermarkShown();
[Ref] Watermark ShowGDevelopWatermark(boolean show);
[Const, Ref] DOMString GetPlacement();
[Ref] Watermark SetPlacement([Const] DOMString value);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface ObjectFolderOrObject {
void ObjectFolderOrObject();
boolean IsFolder();
boolean IsRootFolder();
[Ref] gdObject GetObject();
[Const, Ref] DOMString GetFolderName();
void SetFolderName([Const] DOMString name);
boolean HasObjectNamed([Const] DOMString name);
[Ref] ObjectFolderOrObject GetObjectNamed([Const] DOMString name);
unsigned long GetChildrenCount();
[Ref] ObjectFolderOrObject GetChildAt(unsigned long pos);
[Ref] ObjectFolderOrObject GetObjectChild([Const] DOMString name);
unsigned long GetChildPosition([Const, Ref] ObjectFolderOrObject child);
[Ref] ObjectFolderOrObject GetParent();
[Ref] ObjectFolderOrObject InsertNewFolder([Const] DOMString name, unsigned long newPosition);
void MoveObjectFolderOrObjectToAnotherFolder([Ref] ObjectFolderOrObject objectFolderOrObject, [Ref] ObjectFolderOrObject newParentFolder, unsigned long newPosition);
void MoveChild(unsigned long oldIndex, unsigned long newIndex);
void RemoveFolderChild([Const, Ref] ObjectFolderOrObject childToRemove);
boolean IsADescendantOf([Const, Ref] ObjectFolderOrObject otherObjectFolderOrObject);
QuickCustomization_Visibility GetQuickCustomizationVisibility();
void SetQuickCustomizationVisibility(QuickCustomization_Visibility visibility);
};
interface ObjectsContainer {
void ObjectsContainer();
[Ref] gdObject InsertNewObject([Ref] Project project, [Const] DOMString type, [Const] DOMString name, unsigned long pos);
[Ref] gdObject InsertNewObjectInFolder([Ref] Project project, [Const] DOMString type, [Const] DOMString name, [Ref] ObjectFolderOrObject folder, unsigned long pos);
[Ref] gdObject InsertObject([Const, Ref] gdObject obj, unsigned long pos);
boolean HasObjectNamed([Const] DOMString name);
[Ref] gdObject GetObject([Const] DOMString name);
[Ref] gdObject GetObjectAt(unsigned long pos);
unsigned long GetObjectPosition([Const] DOMString name);
void RemoveObject([Const] DOMString name);
void MoveObject(unsigned long oldIndex, unsigned long newIndex);
void MoveObjectFolderOrObjectToAnotherContainerInFolder([Ref] ObjectFolderOrObject objectFolderOrObject, [Ref] ObjectsContainer newObjectsContainer, [Ref] ObjectFolderOrObject parentObjectFolderOrObject, unsigned long newPosition);
unsigned long GetObjectsCount();
[Ref] ObjectFolderOrObject GetRootFolder();
[Value] VectorObjectFolderOrObject GetAllObjectFolderOrObjects();
[Ref] ObjectGroupsContainer GetObjectGroups();
[Const, Value] DOMString FREE_GetTypeOfBehavior(
[Const, Ref] ObjectsContainer layout,
[Const] DOMString name,
boolean searchInGroups);
[Const, Value] DOMString FREE_GetTypeOfObject(
[Const, Ref] ObjectsContainer layout,
[Const] DOMString name,
boolean searchInGroups);
[Value] VectorString FREE_GetBehaviorsOfObject(
[Const, Ref] ObjectsContainer layout,
[Const] DOMString name,
boolean searchInGroups);
boolean FREE_IsDefaultBehavior(
[Const, Ref] ObjectsContainer layout,
[Const] DOMString objectOrGroupName,
[Const] DOMString behaviorName,
boolean searchInGroups);
[Const, Value] DOMString FREE_GetTypeOfBehaviorInObjectOrGroup(
[Const, Ref] ObjectsContainer layout,
[Const] DOMString objectOrGroupName,
[Const] DOMString behaviorName,
boolean searchInGroups);
[Value] VectorString FREE_GetBehaviorNamesInObjectOrGroup(
[Const, Ref] ObjectsContainer layout,
[Const] DOMString objectOrGroupName,
[Const] DOMString behaviorType,
boolean searchInGroups);
};
interface Project {
void Project();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
[Ref] VectorString GetCategories();
void SetDescription([Const] DOMString description);
[Const, Ref] DOMString GetDescription();
void SetVersion([Const] DOMString authorName);
[Const, Ref] DOMString GetVersion();
void SetAuthor([Const] DOMString authorName);
[Const, Ref] DOMString GetAuthor();
[Ref] VectorString GetAuthorIds();
[Ref] VectorString GetAuthorUsernames();
boolean IsPlayableWithKeyboard();
void SetPlayableWithKeyboard(boolean playable);
boolean IsPlayableWithGamepad();
void SetPlayableWithGamepad(boolean playable);
boolean IsPlayableWithMobile();
void SetPlayableWithMobile(boolean playable);
void SetPackageName([Const] DOMString packageName);
[Const, Ref] DOMString GetPackageName();
void SetTemplateSlug([Const] DOMString templateSlug);
[Const, Ref] DOMString GetTemplateSlug();
void SetOrientation([Const] DOMString orientation);
[Const, Ref] DOMString GetOrientation();
void SetProjectUuid([Const] DOMString projectUuid);
[Const, Ref] DOMString GetProjectUuid();
void ResetProjectUuid();
void SetProjectFile([Const] DOMString file);
[Const, Ref] DOMString GetProjectFile();
void SetGameResolutionSize(long width, long height);
long GetGameResolutionWidth();
long GetGameResolutionHeight();
boolean GetAdaptGameResolutionAtRuntime();
void SetAdaptGameResolutionAtRuntime(boolean adaptGameResolutionAtRuntime);
void SetScaleMode([Const] DOMString scaleMode);
[Const, Ref] DOMString GetScaleMode();
void SetPixelsRounding(boolean pixelsRounding);
boolean GetPixelsRounding();
void SetSizeOnStartupMode([Const] DOMString orientation);
[Const, Ref] DOMString GetSizeOnStartupMode();
void SetAntialiasingMode([Const] DOMString antialiasingMode);
[Const, Ref] DOMString GetAntialiasingMode();
void SetAntialisingEnabledOnMobile(boolean pixelsRounding);
boolean IsAntialisingEnabledOnMobile();
long GetMaximumFPS();
void SetMaximumFPS(long fps);
long GetMinimumFPS();
void SetMinimumFPS(long fps);
void SetFolderProject(boolean enable);
boolean IsFolderProject();
void SetUseDeprecatedZeroAsDefaultZOrder(boolean enable);
boolean GetUseDeprecatedZeroAsDefaultZOrder();
void SetLastCompilationDirectory([Const] DOMString path);
[Const, Ref] DOMString GetLastCompilationDirectory();
[Ref] ExtensionProperties GetExtensionProperties();
void AddPlatform([Ref] Platform platform);
[Ref] Platform GetCurrentPlatform();
[Ref] PlatformSpecificAssets GetPlatformSpecificAssets();
[Ref] LoadingScreen GetLoadingScreen();
[Ref] Watermark GetWatermark();
boolean HasLayoutNamed([Const] DOMString name);
[Ref] Layout GetLayout([Const] DOMString name);
[Ref] Layout GetLayoutAt(unsigned long index);
void MoveLayout(unsigned long oldIndex, unsigned long newIndex);
void SwapLayouts(unsigned long first, unsigned long second);
unsigned long GetLayoutsCount();
[Ref] Layout InsertNewLayout([Const] DOMString name, unsigned long position);
void RemoveLayout([Const] DOMString name);
void SetFirstLayout([Const] DOMString name);
[Const, Ref] DOMString GetFirstLayout();
unsigned long GetLayoutPosition([Const] DOMString name);
boolean HasExternalEventsNamed([Const] DOMString name);
[Ref] ExternalEvents GetExternalEvents([Const] DOMString name);
[Ref] ExternalEvents GetExternalEventsAt(unsigned long index);
void MoveExternalEvents(unsigned long oldIndex, unsigned long newIndex);
void SwapExternalEvents(unsigned long first, unsigned long second);
unsigned long GetExternalEventsCount();
[Ref] ExternalEvents InsertNewExternalEvents([Const] DOMString name, unsigned long position);
void RemoveExternalEvents([Const] DOMString name);
unsigned long GetExternalEventsPosition([Const] DOMString name);
boolean HasExternalLayoutNamed([Const] DOMString name);
[Ref] ExternalLayout GetExternalLayout([Const] DOMString name);
[Ref] ExternalLayout GetExternalLayoutAt(unsigned long index);
void MoveExternalLayout(unsigned long oldIndex, unsigned long newIndex);
void SwapExternalLayouts(unsigned long first, unsigned long second);
unsigned long GetExternalLayoutsCount();
[Ref] ExternalLayout InsertNewExternalLayout([Const] DOMString name, unsigned long position);
void RemoveExternalLayout([Const] DOMString name);
unsigned long GetExternalLayoutPosition([Const] DOMString name);
boolean HasEventsFunctionsExtensionNamed([Const] DOMString name);
[Ref] EventsFunctionsExtension GetEventsFunctionsExtension([Const] DOMString name);
[Ref] EventsFunctionsExtension GetEventsFunctionsExtensionAt(unsigned long index);
void MoveEventsFunctionsExtension(unsigned long oldIndex, unsigned long newIndex);
void SwapEventsFunctionsExtensions(unsigned long first, unsigned long second);
unsigned long GetEventsFunctionsExtensionsCount();
[Ref] EventsFunctionsExtension InsertNewEventsFunctionsExtension([Const] DOMString name, unsigned long position);
[Ref] EventsFunctionsExtension InsertEventsFunctionsExtension([Const, Ref] EventsFunctionsExtension eventsFunctionsExtension, unsigned long position);
void RemoveEventsFunctionsExtension([Const] DOMString name);
unsigned long GetEventsFunctionsExtensionPosition([Const] DOMString name);
boolean HasEventsBasedBehavior([Const] DOMString type);
[Ref] EventsBasedBehavior GetEventsBasedBehavior([Const] DOMString type);
boolean HasEventsBasedObject([Const] DOMString type);
[Ref] EventsBasedObject GetEventsBasedObject([Const] DOMString type);
[Ref] VariablesContainer GetVariables();
[Ref] ObjectsContainer GetObjects();
[Ref] ResourcesManager GetResourcesManager();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
[Ref] WholeProjectDiagnosticReport GetWholeProjectDiagnosticReport();
boolean STATIC_IsNameSafe([Const] DOMString name);
[Const, Value] DOMString STATIC_GetSafeName([Const] DOMString name);
};
enum ObjectsContainersList_VariableExistence {
"ObjectsContainersList::DoesNotExist",
"ObjectsContainersList::Exists",
"ObjectsContainersList::GroupIsEmpty",
"ObjectsContainersList::ExistsOnlyOnSomeObjectsOfTheGroup"
};
interface ObjectsContainersList {
[Value] ObjectsContainersList STATIC_MakeNewObjectsContainersListForProjectAndLayout(
[Const, Ref] Project project,
[Const, Ref] Layout layout);
[Value] ObjectsContainersList STATIC_MakeNewObjectsContainersListForContainers(
[Const, Ref] ObjectsContainer globalObjectsContainer,
[Const, Ref] ObjectsContainer objectsContainer);
[Const, Value] DOMString GetTypeOfObject([Const] DOMString objectName);
[Const, Value] DOMString GetTypeOfBehavior([Const] DOMString name, boolean searchInGroups);
[Value] VectorString GetBehaviorsOfObject([Const] DOMString name, boolean searchInGroups);
[Value] VectorString GetAnimationNamesOfObject([Const] DOMString name);
[Const, Value] DOMString GetTypeOfBehaviorInObjectOrGroup([Const] DOMString objectOrGroupName, [Const] DOMString behaviorName, boolean searchInGroups);
boolean HasObjectOrGroupNamed([Const] DOMString name);
ObjectsContainersList_VariableExistence HasObjectOrGroupWithVariableNamed([Const] DOMString objectName, [Const] DOMString variableName);
[Const, Ref] ObjectsContainer GetObjectsContainer(unsigned long index);
unsigned long GetObjectsContainersCount();
};
interface ProjectScopedContainers {
[Value] ProjectScopedContainers STATIC_MakeNewProjectScopedContainersForProjectAndLayout(
[Const, Ref] Project project,
[Const, Ref] Layout layout);
[Value] ProjectScopedContainers STATIC_MakeNewProjectScopedContainersForProject(
[Const, Ref] Project project);
[Value] ProjectScopedContainers STATIC_MakeNewProjectScopedContainersForEventsFunctionsExtension(
[Const, Ref] Project project,
[Const, Ref] EventsFunctionsExtension eventsFunctionsExtension);
[Value] ProjectScopedContainers STATIC_MakeNewProjectScopedContainersForFreeEventsFunction(
[Const, Ref] Project project,
[Const, Ref] EventsFunctionsExtension eventsFunctionsExtension,
[Const, Ref] EventsFunction eventsFunction,
[Ref] ObjectsContainer parameterObjectsContainer);
[Value] ProjectScopedContainers STATIC_MakeNewProjectScopedContainersForBehaviorEventsFunction(
[Const, Ref] Project project,
[Const, Ref] EventsFunctionsExtension eventsFunctionsExtension,
[Const, Ref] EventsBasedBehavior eventsBasedBehavior,
[Const, Ref] EventsFunction eventsFunction,
[Ref] ObjectsContainer parameterObjectsContainer);
[Value] ProjectScopedContainers STATIC_MakeNewProjectScopedContainersForObjectEventsFunction(
[Const, Ref] Project project,
[Const, Ref] EventsFunctionsExtension eventsFunctionsExtension,
[Const, Ref] EventsBasedObject eventsBasedObject,
[Const, Ref] EventsFunction eventsFunction,
[Ref] ObjectsContainer parameterObjectsContainer);
[Value] ProjectScopedContainers STATIC_MakeNewProjectScopedContainersForEventsBasedObject(
[Const, Ref] Project project,
[Const, Ref] EventsFunctionsExtension eventsFunctionsExtension,
[Const, Ref] EventsBasedObject eventsBasedObject,
[Ref] ObjectsContainer outputObjectsContainer);
[Value] ProjectScopedContainers STATIC_MakeNewProjectScopedContainersWithLocalVariables(
[Const, Ref] ProjectScopedContainers projectScopedContainers,
[Const, Ref] BaseEvent event);
[Ref] ProjectScopedContainers AddPropertiesContainer(
[Const, Ref] PropertiesContainer propertiesContainer);
[Ref] ProjectScopedContainers AddParameters(
[Const, Ref] ParameterMetadataContainer parameters);
[Const, Ref] ObjectsContainersList GetObjectsContainersList();
[Const, Ref] VariablesContainersList GetVariablesContainersList();
};
interface ExtensionProperties {
[Const, Ref] DOMString GetValue([Const] DOMString extension, [Const] DOMString property);
void SetValue([Const] DOMString extension, [Const] DOMString property, [Const] DOMString newValue);
boolean HasProperty([Const] DOMString extension, [Const] DOMString property);
[Value] MapStringPropertyDescriptor GetAllExtensionProperties([Const] DOMString extension, [Ref] Project project);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface Behavior {
void Behavior();
Behavior Clone();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
[Const, Ref] DOMString GetTypeName();
[Value] MapStringPropertyDescriptor GetProperties();
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value);
void InitializeContent();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
boolean IsFolded();
void SetFolded(boolean folded);
boolean IsDefaultBehavior();
};
[JSImplementation=Behavior]
interface BehaviorJsImplementation {
void BehaviorJsImplementation();
[Value] MapStringPropertyDescriptor GetProperties([Const, Ref] SerializerElement behaviorContent);
boolean UpdateProperty([Ref] SerializerElement behaviorContent, [Const] DOMString name, [Const] DOMString value);
void InitializeContent([Ref] SerializerElement behaviorContent);
};
interface BehaviorsSharedData {
void BehaviorsSharedData();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
[Const, Ref] DOMString GetTypeName();
[Value] MapStringPropertyDescriptor GetProperties();
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value);
void InitializeContent();
};
[JSImplementation=BehaviorsSharedData]
interface BehaviorSharedDataJsImplementation {
void BehaviorSharedDataJsImplementation();
[Value] MapStringPropertyDescriptor GetProperties([Const, Ref] SerializerElement behaviorSharedDataContent);
boolean UpdateProperty([Ref] SerializerElement behaviorSharedDataContent, [Const] DOMString name, [Const] DOMString value);
void InitializeContent([Ref] SerializerElement behaviorSharedDataContent);
};
interface ObjectConfiguration {
void ObjectConfiguration();
[Value] UniquePtrObjectConfiguration Clone();
[Const, Ref] DOMString GetType();
// SetType must only be used by tests.
void SetType([Const] DOMString typeName);
[Value] MapStringPropertyDescriptor GetProperties();
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value);
[Value] MapStringPropertyDescriptor GetInitialInstanceProperties(
[Const, Ref] InitialInstance instance);
boolean UpdateInitialInstanceProperty(
[Ref] InitialInstance instance,
[Const] DOMString name,
[Const] DOMString value);
void ExposeResources([Ref] ArbitraryResourceWorker worker);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
unsigned long GetAnimationsCount();
};
interface UniquePtrObjectConfiguration {
ObjectConfiguration get();
ObjectConfiguration release();
};
interface gdObject {
// /!\ We need to call it gdObject to avoid messing up with javascript Object
// global in glue.js!
void gdObject([Const] DOMString name, [Const] DOMString type, ObjectConfiguration configuration);
[Value] UniquePtrObject Clone();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetAssetStoreId([Const] DOMString assetStoreId);
[Const, Ref] DOMString GetAssetStoreId();
void SetType([Const] DOMString type);
[Const, Ref] DOMString GetType();
[Ref] ObjectConfiguration GetConfiguration();
[Ref] VariablesContainer GetVariables();
[Ref] EffectsContainer GetEffects();
[Value] VectorString GetAllBehaviorNames();
boolean HasBehaviorNamed([Const] DOMString name);
Behavior AddNewBehavior([Ref] Project project, [Const] DOMString type, [Const] DOMString name);
[Ref] Behavior GetBehavior([Const] DOMString name);
void RemoveBehavior([Const] DOMString name);
boolean RenameBehavior([Const] DOMString oldName, [Const] DOMString name);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
[Ref] gdObject ResetPersistentUuid();
[Ref] gdObject ClearPersistentUuid();
};
interface UniquePtrObject {
gdObject get();
gdObject release();
};
[JSImplementation=ObjectConfiguration]
interface ObjectJsImplementation {
void ObjectJsImplementation();
[Value] UniquePtrObjectConfiguration Clone();
[Value] MapStringPropertyDescriptor GetProperties();
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value);
[Value] MapStringPropertyDescriptor GetInitialInstanceProperties(
[Const, Ref] InitialInstance instance);
boolean UpdateInitialInstanceProperty(
[Ref] InitialInstance instance,
[Const] DOMString name,
[Const] DOMString value);
[Const, Ref] DOMString GetRawJSONContent();
[Ref] ObjectJsImplementation SetRawJSONContent([Const] DOMString newContent);
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
// Not exposed as protected:
// void DoSerializeTo([Ref] SerializerElement element);
// void DoUnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
};
interface CustomObjectConfiguration {
[Value] UniquePtrObjectConfiguration Clone();
boolean IsForcedToOverrideEventsBasedObjectChildrenConfiguration();
boolean IsMarkedAsOverridingEventsBasedObjectChildrenConfiguration();
void SetMarkedAsOverridingEventsBasedObjectChildrenConfiguration(
boolean isOverridingEventsBasedObjectChildrenConfiguration);
void ClearChildrenConfiguration();
[Ref] ObjectConfiguration GetChildObjectConfiguration([Const] DOMString objectName);
[Value] MapStringPropertyDescriptor GetProperties();
boolean UpdateProperty([Const] DOMString name, [Const] DOMString value);
[Value] MapStringPropertyDescriptor GetInitialInstanceProperties(
[Const, Ref] InitialInstance instance);
boolean UpdateInitialInstanceProperty(
[Ref] InitialInstance instance,
[Const] DOMString name, [Const]
DOMString value);
[Ref] SpriteAnimationList GetAnimations();
};
CustomObjectConfiguration implements ObjectConfiguration;
interface Layout {
void Layout();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetBackgroundColor(unsigned long r, unsigned long g, unsigned long b);
unsigned long GetBackgroundColorRed();
unsigned long GetBackgroundColorGreen();
unsigned long GetBackgroundColorBlue();
void SetWindowDefaultTitle([Const] DOMString name);
[Const, Ref] DOMString GetWindowDefaultTitle();
[Ref] InitialInstancesContainer GetInitialInstances();
[Ref] VariablesContainer GetVariables();
[Ref] ObjectsContainer GetObjects();
[Ref] EventsList GetEvents();
[Ref] LayersContainer GetLayers();
void UpdateBehaviorsSharedData([Ref] Project project);
[Value] VectorString GetAllBehaviorSharedDataNames();
boolean HasBehaviorSharedData([Const] DOMString behaviorName);
[Ref] BehaviorsSharedData GetBehaviorSharedData([Const] DOMString behaviorName);
// Deprecated (use GetLayers instead):
void InsertNewLayer([Const] DOMString name, unsigned long position);
void InsertLayer([Const, Ref] Layer layer, unsigned long position);
[Ref] Layer GetLayer([Const] DOMString name);
[Ref] Layer GetLayerAt(unsigned long pos);
boolean HasLayerNamed([Const] DOMString name);
void RemoveLayer([Const] DOMString name);
unsigned long GetLayersCount();
void SwapLayers(unsigned long firstLayerIndex, unsigned long secondLayerIndex);
void MoveLayer(unsigned long oldIndex, unsigned long newIndex);
[Ref] EditorSettings GetAssociatedEditorSettings();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
void SetStopSoundsOnStartup(boolean enable);
boolean StopSoundsOnStartup();
};
interface ExternalEvents {
void ExternalEvents();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
[Const, Ref] DOMString GetAssociatedLayout();
void SetAssociatedLayout([Const] DOMString name);
[Ref] EventsList GetEvents();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
};
interface ExternalLayout {
void ExternalLayout();
void SetName([Const] DOMString name);
[Const, Ref] DOMString GetName();
void SetAssociatedLayout([Const] DOMString name);
[Const, Ref] DOMString GetAssociatedLayout();
[Ref] InitialInstancesContainer GetInitialInstances();
[Ref] EditorSettings GetAssociatedEditorSettings();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};
interface Effect {
void Effect();
void SetName([Const] DOMString name_);
[Const, Ref] DOMString GetName();
void SetEffectType([Const] DOMString effectType_);
[Const, Ref] DOMString GetEffectType();
void SetFolded(boolean val);
boolean IsFolded();
void SetDoubleParameter([Const] DOMString name, double value);
double GetDoubleParameter([Const] DOMString name);
void SetStringParameter([Const] DOMString name, [Const] DOMString value);
[Const, Ref] DOMString GetStringParameter([Const] DOMString name);
void SetBooleanParameter([Const] DOMString name, boolean value);
boolean GetBooleanParameter([Const] DOMString name);
[Const, Ref] MapStringDouble GetAllDoubleParameters();
[Const, Ref] MapStringString GetAllStringParameters();
[Const, Ref] MapStringBoolean GetAllBooleanParameters();
void ClearParameters();
void SerializeTo([Ref] SerializerElement element);
void UnserializeFrom([Const, Ref] SerializerElement element);
};