@wonderlandengine/editor-api 1.2.0-dev.3 → 1.2.3-dev.2

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/data.d.ts CHANGED
@@ -20,12 +20,20 @@ export type SkinReference = string | null;
20
20
  export type ImageReference = string | null;
21
21
  /** Animation reference */
22
22
  export type AnimationReference = string | null;
23
+ /** Project type */
24
+ export declare enum ProjectType {
25
+ Website = "website",
26
+ Game = "game"
27
+ }
23
28
  /** Project settings */
24
29
  export declare class ProjectSettings {
25
30
  name: string;
31
+ description: string;
32
+ type: ProjectType;
26
33
  customIndexHtml: boolean;
27
34
  extraFilesFolder: string;
28
35
  packageForStreaming: boolean;
36
+ version: number[];
29
37
  }
30
38
  /** Sky settings */
31
39
  export declare class SkySettings {
@@ -48,6 +56,8 @@ export declare enum TonemappingMode {
48
56
  ACES = "aces",
49
57
  /** Tonemapping with a simpler fit of the ACES transform */
50
58
  ACESApproximated = "aces approximated",
59
+ /** Tonemapping with the Khronos PBR Neutral Tone Mapper */
60
+ KhronosPBRNeutral = "khronos pbr neutral",
51
61
  /** Tonemapping with the global Reinhard operator */
52
62
  Reinhard = "reinhard",
53
63
  /** Tonemapping with an exponential curve */
@@ -63,8 +73,25 @@ export declare class TextureStreamingSettings {
63
73
  maxCacheSize: number;
64
74
  maxUploadPerFrame: number;
65
75
  }
76
+ export declare enum EnvironmentMode {
77
+ Disabled = "disabled",
78
+ SphericalHarmonic0 = "spherical-harmonic-0",
79
+ SphericalHarmonic1 = "spherical-harmonic-1",
80
+ SphericalHarmonic2 = "spherical-harmonic-2"
81
+ }
82
+ /** Environment settings */
83
+ export declare class EnvironmentSettings {
84
+ enabled: boolean;
85
+ image: ImageReference;
86
+ mode: EnvironmentMode;
87
+ intensity: number;
88
+ bakeExposure: number;
89
+ tint: number[];
90
+ maxSpecularEnvironmentSize: number;
91
+ }
66
92
  /** Rendering settings */
67
93
  export declare class RenderingSettings {
94
+ api: 'webgl2' | 'webgpu-or-webgl2';
68
95
  textureAtlasSize: number[];
69
96
  compressedTextureAtlasSize: number[];
70
97
  clearColor: number[];
@@ -76,6 +103,8 @@ export declare class RenderingSettings {
76
103
  bloom: BloomSettings;
77
104
  hdr: HdrSettings;
78
105
  textureStreaming: TextureStreamingSettings;
106
+ environment: EnvironmentSettings;
107
+ maxTextures: number;
79
108
  }
80
109
  /** Camera settings */
81
110
  export declare class CameraSettings {
@@ -88,6 +117,10 @@ export declare class EditorSettings {
88
117
  serverCOEP: string;
89
118
  camera: CameraSettings;
90
119
  ids: string;
120
+ package: {
121
+ packageUnusedMeshes: boolean;
122
+ supercompressionLevel: number;
123
+ };
91
124
  }
92
125
  /** Plugins settings */
93
126
  export declare class PluginsSettings {
@@ -147,6 +180,7 @@ export declare class ScriptingSettings {
147
180
  bundlingType: BundlingType;
148
181
  npmScript: string;
149
182
  esbuildFlags: string;
183
+ esbuildFlagsEditor: string;
150
184
  entryPoint: string;
151
185
  }
152
186
  /** VR settings */
@@ -214,6 +248,7 @@ export declare class ImageResource {
214
248
  stream: boolean;
215
249
  isProbe: boolean;
216
250
  isSpecularProbe: boolean;
251
+ hdr: boolean;
217
252
  }
218
253
  /** Texture resource */
219
254
  export declare class TextureResource {
@@ -249,6 +284,7 @@ export declare class MeshResource {
249
284
  simplifyTarget: number;
250
285
  simplifyTargetError: number;
251
286
  importScaling: number;
287
+ hasMorphTargets: boolean;
252
288
  }
253
289
  /** Material properties for the default Phong pipeline */
254
290
  export declare class PhongMaterial {
@@ -347,6 +383,17 @@ export declare class MaterialResource {
347
383
  Sky?: SkyMaterial;
348
384
  Background?: BackgroundMaterial;
349
385
  }
386
+ /** Animation blending type */
387
+ export declare enum AnimationBlendType {
388
+ None = "none",
389
+ Blend1D = "blend1D"
390
+ }
391
+ /** Root motion handling mode */
392
+ export declare enum RootMotionMode {
393
+ None = "none",
394
+ ApplyToOwner = "applyToOwner",
395
+ ScriptEvent = "scriptEvent"
396
+ }
350
397
  /** 'animation' component configuration */
351
398
  export declare class AnimationComponent {
352
399
  preview: boolean;
@@ -356,6 +403,13 @@ export declare class AnimationComponent {
356
403
  speed: number;
357
404
  skin: SkinReference;
358
405
  animation: AnimationReference;
406
+ rootMotionMode: RootMotionMode;
407
+ blendFactor: number;
408
+ blendType: AnimationBlendType;
409
+ blendAnimations: {
410
+ animations: AnimationReference[];
411
+ playbackSpeeds: number[];
412
+ };
359
413
  }
360
414
  /** Light type enum */
361
415
  export declare enum LightType {
@@ -462,12 +516,20 @@ export declare class MeshComponent {
462
516
  mesh: MeshReference;
463
517
  skin: SkinReference;
464
518
  morphTargets: MorphTargetsReference;
519
+ morphTargetWeights: number[];
465
520
  }
466
521
  /** Text effect type enum */
467
522
  export declare enum TextEffectType {
468
523
  None = "none",
469
524
  Outline = "outline"
470
525
  }
526
+ /** Text wrap mode */
527
+ export declare enum TextWrapMode {
528
+ None = "none",
529
+ Soft = "soft",
530
+ Hard = "hard",
531
+ Clip = "clip"
532
+ }
471
533
  /** 'text' component configuration */
472
534
  export declare class TextComponent {
473
535
  alignment: string;
@@ -477,6 +539,8 @@ export declare class TextComponent {
477
539
  effect: TextEffectType;
478
540
  text: string;
479
541
  material: MaterialReference;
542
+ wrapMode: TextWrapMode;
543
+ wrapWidth: number;
480
544
  }
481
545
  /** Settings for a sphere collider */
482
546
  export declare class SphereConfig {
@@ -516,6 +580,11 @@ export declare class AnimationEvent {
516
580
  time: number;
517
581
  name: string;
518
582
  }
583
+ export declare class RootMotion {
584
+ target: ObjectReference;
585
+ translationAxis: number;
586
+ rotationAxis: number;
587
+ }
519
588
  /** Animation resource */
520
589
  export declare class AnimationResource {
521
590
  /** Name of the animation */
@@ -526,6 +595,7 @@ export declare class AnimationResource {
526
595
  targets: ObjectReference[];
527
596
  /** Animation events track */
528
597
  events: AnimationEvent[];
598
+ rootMotion?: RootMotion;
529
599
  }
530
600
  /** Component configuration */
531
601
  export declare class ComponentConfig {
@@ -607,6 +677,13 @@ export declare enum DepthFunction {
607
677
  GreaterOrEqual = "greater or equal",
608
678
  Greater = "greater"
609
679
  }
680
+ /** Mesh sorting mode */
681
+ export declare enum MeshSorting {
682
+ None = "none",
683
+ Z = "z",
684
+ InverseZ = "inverse-z",
685
+ MeshIndex = "mesh-index"
686
+ }
610
687
  /** Pipeline resource */
611
688
  export declare class PipelineResource {
612
689
  name: string;
@@ -621,6 +698,7 @@ export declare class PipelineResource {
621
698
  features: {
622
699
  [key: string]: boolean;
623
700
  };
701
+ meshSorting: MeshSorting;
624
702
  blendSrcRgb: BlendFunction;
625
703
  blendSrcAlpha: BlendFunction;
626
704
  blendDestRgb: BlendFunction;
@@ -644,10 +722,14 @@ export declare class FontResource {
644
722
  export declare class LanguageResource {
645
723
  /** Name of the language */
646
724
  name: string;
647
- /** Custom terms */
648
- strings: {
649
- [key: string]: string;
650
- };
725
+ /** Whether this is the default language */
726
+ isDefault: boolean;
727
+ }
728
+ /** File resource */
729
+ export declare class FileResource {
730
+ fileName: string;
731
+ importerName: string;
732
+ importPhysicalAsPhongMaterials: boolean;
651
733
  }
652
734
  /**
653
735
  * Access to Wonderland Editor's data.
@@ -670,7 +752,7 @@ export declare class EditorData {
670
752
  /** Project settings */
671
753
  settings: Settings;
672
754
  /** List of scene file paths */
673
- files: string[];
755
+ files: FileResource[];
674
756
  /** Animation resources */
675
757
  animations: AnimationResource[];
676
758
  /** Object resources */
package/dist/data.js CHANGED
@@ -1,9 +1,18 @@
1
+ /** Project type */
2
+ export var ProjectType;
3
+ (function (ProjectType) {
4
+ ProjectType["Website"] = "website";
5
+ ProjectType["Game"] = "game";
6
+ })(ProjectType || (ProjectType = {}));
1
7
  /** Project settings */
2
8
  export class ProjectSettings {
3
9
  name = '';
10
+ description = '';
11
+ type = ProjectType.Website;
4
12
  customIndexHtml = false;
5
13
  extraFilesFolder = 'static';
6
14
  packageForStreaming = false;
15
+ version = [1, 2, 0];
7
16
  }
8
17
  /** Sky settings */
9
18
  export class SkySettings {
@@ -27,6 +36,8 @@ export var TonemappingMode;
27
36
  TonemappingMode["ACES"] = "aces";
28
37
  /** Tonemapping with a simpler fit of the ACES transform */
29
38
  TonemappingMode["ACESApproximated"] = "aces approximated";
39
+ /** Tonemapping with the Khronos PBR Neutral Tone Mapper */
40
+ TonemappingMode["KhronosPBRNeutral"] = "khronos pbr neutral";
30
41
  /** Tonemapping with the global Reinhard operator */
31
42
  TonemappingMode["Reinhard"] = "reinhard";
32
43
  /** Tonemapping with an exponential curve */
@@ -42,8 +53,26 @@ export class TextureStreamingSettings {
42
53
  maxCacheSize = 1024;
43
54
  maxUploadPerFrame = 10;
44
55
  }
56
+ export var EnvironmentMode;
57
+ (function (EnvironmentMode) {
58
+ EnvironmentMode["Disabled"] = "disabled";
59
+ EnvironmentMode["SphericalHarmonic0"] = "spherical-harmonic-0";
60
+ EnvironmentMode["SphericalHarmonic1"] = "spherical-harmonic-1";
61
+ EnvironmentMode["SphericalHarmonic2"] = "spherical-harmonic-2";
62
+ })(EnvironmentMode || (EnvironmentMode = {}));
63
+ /** Environment settings */
64
+ export class EnvironmentSettings {
65
+ enabled = false;
66
+ image = null;
67
+ mode = EnvironmentMode.Disabled;
68
+ intensity = 1.0;
69
+ bakeExposure = 1.0;
70
+ tint = [1.0, 1.0, 1.0];
71
+ maxSpecularEnvironmentSize = 512;
72
+ }
45
73
  /** Rendering settings */
46
74
  export class RenderingSettings {
75
+ api = 'webgl2';
47
76
  textureAtlasSize = [8192, 4096];
48
77
  compressedTextureAtlasSize = [16384, 8192];
49
78
  clearColor = [0.168, 0.168, 0.168, 1.0];
@@ -55,6 +84,8 @@ export class RenderingSettings {
55
84
  bloom = new BloomSettings();
56
85
  hdr = new HdrSettings();
57
86
  textureStreaming = new TextureStreamingSettings();
87
+ environment = new EnvironmentSettings();
88
+ maxTextures = 1024;
58
89
  }
59
90
  /** Camera settings */
60
91
  export class CameraSettings {
@@ -67,6 +98,10 @@ export class EditorSettings {
67
98
  serverCOEP = 'require-corp';
68
99
  camera = new CameraSettings();
69
100
  ids = 'incremental-number';
101
+ package = {
102
+ packageUnusedMeshes: false,
103
+ supercompressionLevel: 8,
104
+ };
70
105
  }
71
106
  /** Plugins settings */
72
107
  export class PluginsSettings {
@@ -138,6 +173,7 @@ export class ScriptingSettings {
138
173
  bundlingType = BundlingType.Esbuild;
139
174
  npmScript = 'build';
140
175
  esbuildFlags = '--format=esm';
176
+ esbuildFlagsEditor = '';
141
177
  entryPoint = 'js/index.js';
142
178
  }
143
179
  /** VR settings */
@@ -206,6 +242,7 @@ export class ImageResource {
206
242
  stream = true;
207
243
  isProbe = false;
208
244
  isSpecularProbe = false;
245
+ hdr = false;
209
246
  }
210
247
  /** Texture resource */
211
248
  export class TextureResource {
@@ -243,6 +280,7 @@ export class MeshResource {
243
280
  simplifyTarget = 0.5;
244
281
  simplifyTargetError = 0.02;
245
282
  importScaling = 1.0;
283
+ hasMorphTargets = false;
246
284
  }
247
285
  /** Material properties for the default Phong pipeline */
248
286
  export class PhongMaterial {
@@ -341,6 +379,19 @@ export class MaterialResource {
341
379
  Sky;
342
380
  Background;
343
381
  }
382
+ /** Animation blending type */
383
+ export var AnimationBlendType;
384
+ (function (AnimationBlendType) {
385
+ AnimationBlendType["None"] = "none";
386
+ AnimationBlendType["Blend1D"] = "blend1D";
387
+ })(AnimationBlendType || (AnimationBlendType = {}));
388
+ /** Root motion handling mode */
389
+ export var RootMotionMode;
390
+ (function (RootMotionMode) {
391
+ RootMotionMode["None"] = "none";
392
+ RootMotionMode["ApplyToOwner"] = "applyToOwner";
393
+ RootMotionMode["ScriptEvent"] = "scriptEvent";
394
+ })(RootMotionMode || (RootMotionMode = {}));
344
395
  /** 'animation' component configuration */
345
396
  export class AnimationComponent {
346
397
  preview = false;
@@ -350,6 +401,10 @@ export class AnimationComponent {
350
401
  speed = 1.0;
351
402
  skin = null;
352
403
  animation = null;
404
+ rootMotionMode = RootMotionMode.None;
405
+ blendFactor = 0.0;
406
+ blendType = AnimationBlendType.None;
407
+ blendAnimations = { animations: [], playbackSpeeds: [] };
353
408
  }
354
409
  /** Light type enum */
355
410
  export var LightType;
@@ -459,6 +514,7 @@ export class MeshComponent {
459
514
  mesh = null;
460
515
  skin = null;
461
516
  morphTargets = null;
517
+ morphTargetWeights = [];
462
518
  }
463
519
  /** Text effect type enum */
464
520
  export var TextEffectType;
@@ -466,6 +522,14 @@ export var TextEffectType;
466
522
  TextEffectType["None"] = "none";
467
523
  TextEffectType["Outline"] = "outline";
468
524
  })(TextEffectType || (TextEffectType = {}));
525
+ /** Text wrap mode */
526
+ export var TextWrapMode;
527
+ (function (TextWrapMode) {
528
+ TextWrapMode["None"] = "none";
529
+ TextWrapMode["Soft"] = "soft";
530
+ TextWrapMode["Hard"] = "hard";
531
+ TextWrapMode["Clip"] = "clip";
532
+ })(TextWrapMode || (TextWrapMode = {}));
469
533
  /** 'text' component configuration */
470
534
  export class TextComponent {
471
535
  alignment = 'center';
@@ -475,6 +539,8 @@ export class TextComponent {
475
539
  effect = TextEffectType.None;
476
540
  text = 'Wonderland Engine';
477
541
  material = 'DefaultFontMaterial';
542
+ wrapMode = TextWrapMode.None;
543
+ wrapWidth = 0.0;
478
544
  }
479
545
  /** Settings for a sphere collider */
480
546
  export class SphereConfig {
@@ -515,6 +581,11 @@ export class AnimationEvent {
515
581
  time = 0.0;
516
582
  name = '';
517
583
  }
584
+ export class RootMotion {
585
+ target = null;
586
+ translationAxis = 0;
587
+ rotationAxis = 0;
588
+ }
518
589
  /** Animation resource */
519
590
  export class AnimationResource {
520
591
  /** Name of the animation */
@@ -525,6 +596,7 @@ export class AnimationResource {
525
596
  targets = [];
526
597
  /** Animation events track */
527
598
  events = [];
599
+ rootMotion;
528
600
  }
529
601
  /** Component configuration */
530
602
  export class ComponentConfig {
@@ -609,6 +681,14 @@ export var DepthFunction;
609
681
  DepthFunction["GreaterOrEqual"] = "greater or equal";
610
682
  DepthFunction["Greater"] = "greater";
611
683
  })(DepthFunction || (DepthFunction = {}));
684
+ /** Mesh sorting mode */
685
+ export var MeshSorting;
686
+ (function (MeshSorting) {
687
+ MeshSorting["None"] = "none";
688
+ MeshSorting["Z"] = "z";
689
+ MeshSorting["InverseZ"] = "inverse-z";
690
+ MeshSorting["MeshIndex"] = "mesh-index";
691
+ })(MeshSorting || (MeshSorting = {}));
612
692
  /** Pipeline resource */
613
693
  export class PipelineResource {
614
694
  name = 'pipeline';
@@ -621,6 +701,7 @@ export class PipelineResource {
621
701
  shader = null;
622
702
  viewVertexShader = null;
623
703
  features = {};
704
+ meshSorting = MeshSorting.None;
624
705
  blendSrcRgb = BlendFunction.One;
625
706
  blendSrcAlpha = BlendFunction.One;
626
707
  blendDestRgb = BlendFunction.Zero;
@@ -644,8 +725,14 @@ export class FontResource {
644
725
  export class LanguageResource {
645
726
  /** Name of the language */
646
727
  name = 'language';
647
- /** Custom terms */
648
- strings = {};
728
+ /** Whether this is the default language */
729
+ isDefault = false;
730
+ }
731
+ /** File resource */
732
+ export class FileResource {
733
+ fileName = '';
734
+ importerName = '';
735
+ importPhysicalAsPhongMaterials = true;
649
736
  }
650
737
  /**
651
738
  * Access to Wonderland Editor's data.
package/dist/native.d.ts CHANGED
@@ -4,6 +4,7 @@ interface NativeToolsAPI {
4
4
  loadFile(filename: string): number;
5
5
  loadScene(filename: string, parent?: string): number;
6
6
  awaitJob(jobId: number, cb: (success: boolean) => void): void;
7
+ openBrowser(url: string): void;
7
8
  }
8
9
  interface NativeUiAPI {
9
10
  freeImage(id: number): void;
@@ -18,6 +19,7 @@ interface NativeUiAPI {
18
19
  dummy(width: number, height: number): void;
19
20
  sameLine(offset: number): void;
20
21
  separator(): void;
22
+ spinner(): void;
21
23
  beginGroup(): void;
22
24
  endGroup(): void;
23
25
  }
@@ -27,7 +29,7 @@ export interface Project {
27
29
  *
28
30
  * Directory in which the project file resides in.
29
31
  */
30
- readonly rootPath: string;
32
+ readonly root: string;
31
33
  /**
32
34
  * Project filename
33
35
  *
package/dist/tools.d.ts CHANGED
@@ -24,3 +24,9 @@ export declare function loadFile(path: string): Promise<void>;
24
24
  export declare function loadScene(path: string, options: {
25
25
  parent?: string;
26
26
  }): Promise<void>;
27
+ /**
28
+ * Open a URL with the system default browser
29
+ *
30
+ * @param url URL to open
31
+ */
32
+ export declare const openBrowser: (url: string) => void;
package/dist/tools.js CHANGED
@@ -41,3 +41,9 @@ export function loadScene(path, options) {
41
41
  const job = tools.loadScene(path, options.parent);
42
42
  return awaitJob(job);
43
43
  }
44
+ /**
45
+ * Open a URL with the system default browser
46
+ *
47
+ * @param url URL to open
48
+ */
49
+ export const openBrowser = tools.openBrowser.bind(tools);
package/dist/ui.d.ts CHANGED
@@ -98,3 +98,5 @@ export declare const separator: () => void;
98
98
  export declare const beginGroup: () => void;
99
99
  /** End a widget group. */
100
100
  export declare const endGroup: () => void;
101
+ /** Spinner to indicate loading. */
102
+ export declare const spinner: () => void;
package/dist/ui.js CHANGED
@@ -122,3 +122,5 @@ export const separator = ui.separator.bind(ui);
122
122
  export const beginGroup = ui.beginGroup.bind(ui);
123
123
  /** End a widget group. */
124
124
  export const endGroup = ui.endGroup.bind(ui);
125
+ /** Spinner to indicate loading. */
126
+ export const spinner = ui.spinner.bind(ui);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wonderlandengine/editor-api",
3
- "version": "1.2.0-dev.3",
3
+ "version": "1.2.3-dev.2",
4
4
  "description": "Wonderland Engine's Editor API for plugins - very experimental.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",