@galacean/engine-core 0.0.0-experimental-2.0-skill.0 → 0.0.0-experimental-2.0-migrate.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/main.js +7218 -4267
  2. package/dist/main.js.map +1 -1
  3. package/dist/module.js +7241 -4296
  4. package/dist/module.js.map +1 -1
  5. package/package.json +3 -3
  6. package/types/2d/assembler/FilledSpriteAssembler.d.ts +32 -0
  7. package/types/2d/assembler/ISpriteRenderer.d.ts +6 -0
  8. package/types/2d/enums/SpriteDrawMode.d.ts +3 -1
  9. package/types/2d/enums/SpriteFilledMode.d.ts +15 -0
  10. package/types/2d/enums/SpriteFilledOrigin.d.ts +21 -0
  11. package/types/2d/enums/TextOverflow.d.ts +4 -2
  12. package/types/2d/index.d.ts +3 -0
  13. package/types/2d/sprite/MaskRenderable.d.ts +48 -0
  14. package/types/2d/sprite/SpriteMask.d.ts +8 -31
  15. package/types/2d/sprite/SpriteMaskUtils.d.ts +1 -0
  16. package/types/2d/sprite/SpriteRenderer.d.ts +31 -0
  17. package/types/2d/sprite/index.d.ts +3 -0
  18. package/types/2d/text/TextRenderer.d.ts +23 -2
  19. package/types/Entity.d.ts +2 -1
  20. package/types/Renderer.d.ts +2 -0
  21. package/types/Script.d.ts +1 -0
  22. package/types/Transform.d.ts +16 -14
  23. package/types/asset/AssetPromise.d.ts +1 -1
  24. package/types/asset/LoadItem.d.ts +2 -1
  25. package/types/clone/CloneDecorators.d.ts +6 -6
  26. package/types/input/pointer/Pointer.d.ts +2 -0
  27. package/types/input/pointer/PointerEventData.d.ts +5 -0
  28. package/types/input/pointer/emitter/PointerEventEmitter.d.ts +1 -1
  29. package/types/physics/CharacterController.d.ts +2 -1
  30. package/types/physics/Collider.d.ts +22 -0
  31. package/types/physics/DynamicCollider.d.ts +20 -0
  32. package/types/physics/PhysicsScene.d.ts +11 -0
  33. package/types/physics/index.d.ts +1 -1
  34. package/types/shader/ShaderFactory.d.ts +11 -1
  35. package/types/shader/ShaderPass.d.ts +1 -0
  36. package/types/ui/UIUtils.d.ts +7 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-core",
3
- "version": "0.0.0-experimental-2.0-skill.0",
3
+ "version": "0.0.0-experimental-2.0-migrate.7",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -18,10 +18,10 @@
18
18
  "types/**/*"
19
19
  ],
20
20
  "dependencies": {
21
- "@galacean/engine-math": "0.0.0-experimental-2.0-skill.0"
21
+ "@galacean/engine-math": "0.0.0-experimental-2.0-migrate.7"
22
22
  },
23
23
  "devDependencies": {
24
- "@galacean/engine-design": "0.0.0-experimental-2.0-skill.0"
24
+ "@galacean/engine-design": "0.0.0-experimental-2.0-migrate.7"
25
25
  },
26
26
  "scripts": {
27
27
  "b:types": "tsc"
@@ -0,0 +1,32 @@
1
+ import { Matrix, Vector2 } from "@galacean/engine-math";
2
+ import { ISpriteRenderer } from "./ISpriteRenderer";
3
+ /**
4
+ * Assemble vertex data for the sprite renderer in filled mode.
5
+ */
6
+ export declare class FilledSpriteAssembler {
7
+ private static _matrix;
8
+ private static _worldPositions;
9
+ private static _uvs;
10
+ private static _inPositions;
11
+ private static _inUVs;
12
+ private static _outPositions;
13
+ private static _outUVs;
14
+ private static _vertexOffset;
15
+ private static _indicesOffset;
16
+ private static readonly _fillAmountEpsilon;
17
+ static resetData(renderer: ISpriteRenderer): void;
18
+ static updatePositions(renderer: ISpriteRenderer, worldMatrix: Matrix, width: number, height: number, pivot: Vector2, flipX: boolean, flipY: boolean): void;
19
+ static updateUVs(renderer: ISpriteRenderer): void;
20
+ static updateColor(renderer: ISpriteRenderer, alpha: number): void;
21
+ private static _filledLinear;
22
+ private static _filledRadial90;
23
+ private static _filledRadial180;
24
+ private static _filledRadial360;
25
+ /**
26
+ * Prepare the 3x3 grid and process 4 quadrants for radial fill.
27
+ */
28
+ private static _processRadialGrid;
29
+ private static _radialCut;
30
+ private static _addTriangle;
31
+ private static _addQuad;
32
+ }
@@ -1,6 +1,8 @@
1
1
  import { Color } from "@galacean/engine-math";
2
2
  import { PrimitiveChunkManager } from "../../RenderPipeline/PrimitiveChunkManager";
3
3
  import { SubPrimitiveChunk } from "../../RenderPipeline/SubPrimitiveChunk";
4
+ import { SpriteFilledMode } from "../enums/SpriteFilledMode";
5
+ import { SpriteFilledOrigin } from "../enums/SpriteFilledOrigin";
4
6
  import { SpriteTileMode } from "../enums/SpriteTileMode";
5
7
  import { Sprite } from "../sprite";
6
8
  /**
@@ -11,6 +13,10 @@ export interface ISpriteRenderer {
11
13
  color?: Color;
12
14
  tileMode?: SpriteTileMode;
13
15
  tiledAdaptiveThreshold?: number;
16
+ filledMode?: SpriteFilledMode;
17
+ filledAmount?: number;
18
+ filledOrigin?: SpriteFilledOrigin;
19
+ filledClockWise?: boolean;
14
20
  _subChunk: SubPrimitiveChunk;
15
21
  _getChunkManager(): PrimitiveChunkManager;
16
22
  }
@@ -7,5 +7,7 @@ export declare enum SpriteDrawMode {
7
7
  /** When modifying the size of the renderer, it scales to fill the range according to the sprite border settings. */
8
8
  Sliced = 1,
9
9
  /** When modifying the size of the renderer, it will tile to fill the range according to the sprite border settings. */
10
- Tiled = 2
10
+ Tiled = 2,
11
+ /** Fill the sprite partially, controlled by fill amount, mode and origin. */
12
+ Filled = 3
11
13
  }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Sprite's filled mode enumeration.
3
+ */
4
+ export declare enum SpriteFilledMode {
5
+ /** Fill horizontally. */
6
+ Horizontal = 0,
7
+ /** Fill vertically. */
8
+ Vertical = 1,
9
+ /** Fill radially over 90 degrees. */
10
+ Radial90 = 2,
11
+ /** Fill radially over 180 degrees. */
12
+ Radial180 = 3,
13
+ /** Fill radially over 360 degrees. */
14
+ Radial360 = 4
15
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Sprite's filled origin enumeration.
3
+ */
4
+ export declare enum SpriteFilledOrigin {
5
+ /** Origin at the right. */
6
+ Right = 0,
7
+ /** Origin at the top-right. */
8
+ TopRight = 1,
9
+ /** Origin at the top. */
10
+ Top = 2,
11
+ /** Origin at the top-left. */
12
+ TopLeft = 3,
13
+ /** Origin at the left. */
14
+ Left = 4,
15
+ /** Origin at the bottom-left. */
16
+ BottomLeft = 5,
17
+ /** Origin at the bottom. */
18
+ Bottom = 6,
19
+ /** Origin at the bottom-right. */
20
+ BottomRight = 7
21
+ }
@@ -1,9 +1,11 @@
1
1
  /**
2
- * The way to handle the situation where wrapped text is too tall to fit in the height.
2
+ * The way to handle the situation where the text is too large to fit in the bounds.
3
3
  */
4
4
  export declare enum OverflowMode {
5
5
  /** Overflow when the text is too tall */
6
6
  Overflow = 0,
7
7
  /** Truncate with height when the text is too tall */
8
- Truncate = 1
8
+ Truncate = 1,
9
+ /** Shrink the font size until the text fits within the bounds (both width and height) */
10
+ Shrink = 2
9
11
  }
@@ -1,11 +1,14 @@
1
1
  export type { ISpriteAssembler } from "./assembler/ISpriteAssembler";
2
2
  export type { ISpriteRenderer } from "./assembler/ISpriteRenderer";
3
+ export { FilledSpriteAssembler } from "./assembler/FilledSpriteAssembler";
3
4
  export { SimpleSpriteAssembler } from "./assembler/SimpleSpriteAssembler";
4
5
  export { SlicedSpriteAssembler } from "./assembler/SlicedSpriteAssembler";
5
6
  export { TiledSpriteAssembler } from "./assembler/TiledSpriteAssembler";
6
7
  export { SpriteAtlas } from "./atlas/SpriteAtlas";
7
8
  export { FontStyle } from "./enums/FontStyle";
8
9
  export { SpriteDrawMode } from "./enums/SpriteDrawMode";
10
+ export { SpriteFilledMode } from "./enums/SpriteFilledMode";
11
+ export { SpriteFilledOrigin } from "./enums/SpriteFilledOrigin";
9
12
  export { SpriteMaskInteraction } from "./enums/SpriteMaskInteraction";
10
13
  export { SpriteModifyFlags } from "./enums/SpriteModifyFlags";
11
14
  export { SpriteTileMode } from "./enums/SpriteTileMode";
@@ -0,0 +1,48 @@
1
+ import { BoundingBox, Vector2, Vector3 } from "@galacean/engine-math";
2
+ import { RenderElement } from "../../RenderPipeline/RenderElement";
3
+ import { Renderer } from "../../Renderer";
4
+ import { SpriteMaskLayer } from "../../enums/SpriteMaskLayer";
5
+ import { SpriteModifyFlags } from "../enums/SpriteModifyFlags";
6
+ import { Sprite } from "./Sprite";
7
+ /**
8
+ * Public contract of the MaskRenderable mixin, used for declaration file generation.
9
+ */
10
+ export interface IMaskRenderable {
11
+ influenceLayers: SpriteMaskLayer;
12
+ flipX: boolean;
13
+ flipY: boolean;
14
+ sprite: Sprite;
15
+ alphaCutoff: number;
16
+ _renderElement: RenderElement;
17
+ _maskIndex: number;
18
+ _containsWorldPoint(worldPoint: Vector3): boolean;
19
+ _initMask(): void;
20
+ _cloneMaskData(target: IMaskRenderable): void;
21
+ _destroyMaskResources(): void;
22
+ _updateMaskBounds(worldBounds: BoundingBox): void;
23
+ _renderMask(distanceForSort: number): void;
24
+ _onSpriteChange(type: SpriteModifyFlags): void;
25
+ _onSpriteChangeExtra(type: SpriteModifyFlags): void;
26
+ _getSpriteWidth(): number;
27
+ _getSpriteHeight(): number;
28
+ _getSpritePivot(): Vector2;
29
+ }
30
+ type RendererConstructor = abstract new (...args: any[]) => Renderer;
31
+ /**
32
+ * Mixin that provides shared mask rendering logic for both 2D SpriteMask and UI Mask.
33
+ */
34
+ export declare function MaskRenderable<T extends RendererConstructor>(Base: T): (abstract new (...args: any[]) => IMaskRenderable) & T;
35
+ /**
36
+ * @remarks Extends `RendererUpdateFlags`.
37
+ */
38
+ export declare enum MaskDirtyFlags {
39
+ /** UV. */
40
+ UV = 2,
41
+ /** Automatic Size. */
42
+ AutomaticSize = 8,
43
+ /** WorldVolume and UV. */
44
+ WorldVolumeAndUV = 3,
45
+ /** All. */
46
+ All = 11
47
+ }
48
+ export {};
@@ -1,23 +1,16 @@
1
1
  import { BoundingBox } from "@galacean/engine-math";
2
2
  import { RenderContext } from "../../RenderPipeline/RenderContext";
3
3
  import { Renderer } from "../../Renderer";
4
- import { SpriteMaskLayer } from "../../enums/SpriteMaskLayer";
5
- import { ISpriteRenderer } from "../assembler/ISpriteRenderer";
6
- import { Sprite } from "./Sprite";
4
+ import { SpriteModifyFlags } from "../enums/SpriteModifyFlags";
5
+ declare const SpriteMask_base: (abstract new (...args: any[]) => import("./MaskRenderable").IMaskRenderable) & typeof Renderer;
7
6
  /**
8
7
  * A component for masking Sprites.
9
8
  */
10
- export declare class SpriteMask extends Renderer implements ISpriteRenderer {
11
- /** The mask layers the sprite mask influence to. */
12
- influenceLayers: SpriteMaskLayer;
13
- private _sprite;
9
+ export declare class SpriteMask extends SpriteMask_base {
14
10
  private _automaticWidth;
15
11
  private _automaticHeight;
16
12
  private _customWidth;
17
13
  private _customHeight;
18
- private _flipX;
19
- private _flipY;
20
- private _alphaCutoff;
21
14
  /**
22
15
  * Render width (in world coordinates).
23
16
  *
@@ -36,26 +29,6 @@ export declare class SpriteMask extends Renderer implements ISpriteRenderer {
36
29
  */
37
30
  get height(): number;
38
31
  set height(value: number);
39
- /**
40
- * Flips the sprite on the X axis.
41
- */
42
- get flipX(): boolean;
43
- set flipX(value: boolean);
44
- /**
45
- * Flips the sprite on the Y axis.
46
- */
47
- get flipY(): boolean;
48
- set flipY(value: boolean);
49
- /**
50
- * The Sprite to render.
51
- */
52
- get sprite(): Sprite;
53
- set sprite(value: Sprite | null);
54
- /**
55
- * The minimum alpha value used by the mask to select the area of influence defined over the mask's sprite. Value between 0 and 1.
56
- */
57
- get alphaCutoff(): number;
58
- set alphaCutoff(value: number);
59
32
  /**
60
33
  * @inheritdoc
61
34
  */
@@ -69,6 +42,10 @@ export declare class SpriteMask extends Renderer implements ISpriteRenderer {
69
42
  * @inheritdoc
70
43
  */
71
44
  protected _onDestroy(): void;
45
+ _getSpriteWidth(): number;
46
+ _getSpriteHeight(): number;
47
+ _getSpritePivot(): import("@galacean/engine-math").Vector2;
48
+ _onSpriteChangeExtra(type: SpriteModifyFlags): void;
72
49
  private _calDefaultSize;
73
- private _onSpriteChange;
74
50
  }
51
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -3,6 +3,8 @@ import { RenderContext } from "../../RenderPipeline/RenderContext";
3
3
  import { Renderer } from "../../Renderer";
4
4
  import { ISpriteRenderer } from "../assembler/ISpriteRenderer";
5
5
  import { SpriteDrawMode } from "../enums/SpriteDrawMode";
6
+ import { SpriteFilledMode } from "../enums/SpriteFilledMode";
7
+ import { SpriteFilledOrigin } from "../enums/SpriteFilledOrigin";
6
8
  import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
7
9
  import { SpriteTileMode } from "../enums/SpriteTileMode";
8
10
  import { Sprite } from "./Sprite";
@@ -15,6 +17,10 @@ export declare class SpriteRenderer extends Renderer implements ISpriteRenderer
15
17
  private _assembler;
16
18
  private _tileMode;
17
19
  private _tiledAdaptiveThreshold;
20
+ private _filledMode;
21
+ private _filledAmount;
22
+ private _filledOrigin;
23
+ private _filledClockWise;
18
24
  private _color;
19
25
  private _sprite;
20
26
  private _automaticWidth;
@@ -38,6 +44,26 @@ export declare class SpriteRenderer extends Renderer implements ISpriteRenderer
38
44
  */
39
45
  get tiledAdaptiveThreshold(): number;
40
46
  set tiledAdaptiveThreshold(value: number);
47
+ /**
48
+ * The fill amount of the sprite renderer, range from 0 to 1. (Only works in filled mode.)
49
+ */
50
+ get filledAmount(): number;
51
+ set filledAmount(value: number);
52
+ /**
53
+ * The fill mode of the sprite renderer. (Only works in filled mode.)
54
+ */
55
+ get filledMode(): SpriteFilledMode;
56
+ set filledMode(value: SpriteFilledMode);
57
+ /**
58
+ * The fill origin of the sprite renderer. (Only works in filled mode.)
59
+ */
60
+ get filledOrigin(): SpriteFilledOrigin;
61
+ set filledOrigin(value: SpriteFilledOrigin);
62
+ /**
63
+ * Whether the fill is clockwise. (Only works in filled radial mode.)
64
+ */
65
+ get filledClockWise(): boolean;
66
+ set filledClockWise(value: boolean);
41
67
  /**
42
68
  * The Sprite to render.
43
69
  */
@@ -96,4 +122,9 @@ export declare class SpriteRenderer extends Renderer implements ISpriteRenderer
96
122
  private _calDefaultSize;
97
123
  private _onSpriteChange;
98
124
  private _onColorChanged;
125
+ /**
126
+ * Returns an origin valid for the given fill mode: the passed origin when it belongs to the mode's
127
+ * accepted subset, otherwise the mode's default. Keeps `filledMode`/`filledOrigin` always consistent.
128
+ */
129
+ private static _correctOrigin;
99
130
  }
@@ -1,3 +1,6 @@
1
+ export type { IMaskRenderable } from "./MaskRenderable";
2
+ export { MaskDirtyFlags, MaskRenderable } from "./MaskRenderable";
1
3
  export { Sprite } from "./Sprite";
2
4
  export { SpriteMask } from "./SpriteMask";
5
+ export { SpriteMaskUtils } from "./SpriteMaskUtils";
3
6
  export { SpriteRenderer } from "./SpriteRenderer";
@@ -3,20 +3,24 @@ import { Entity } from "../../Entity";
3
3
  import { RenderContext } from "../../RenderPipeline/RenderContext";
4
4
  import { Renderer } from "../../Renderer";
5
5
  import { TransformModifyFlags } from "../../Transform";
6
+ import { SpriteMaskLayer } from "../../enums/SpriteMaskLayer";
6
7
  import { FontStyle } from "../enums/FontStyle";
7
8
  import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
8
9
  import { TextHorizontalAlignment, TextVerticalAlignment } from "../enums/TextAlignment";
9
10
  import { OverflowMode } from "../enums/TextOverflow";
10
11
  import { Font } from "./Font";
11
12
  import { ITextRenderer } from "./ITextRenderer";
12
- import { SpriteMaskLayer } from "../../enums/SpriteMaskLayer";
13
13
  /**
14
14
  * Renders a text for 2D graphics.
15
15
  */
16
16
  export declare class TextRenderer extends Renderer implements ITextRenderer {
17
- private static _textureProperty;
17
+ private static _tempVec20;
18
18
  private static _tempVec30;
19
19
  private static _tempVec31;
20
+ private static _textureProperty;
21
+ private static _textTextureSizeProperty;
22
+ private static _outlineColorProperty;
23
+ private static _outlineWidthProperty;
20
24
  private static _worldPositions;
21
25
  private static _charRenderInfos;
22
26
  private _textChunks;
@@ -34,6 +38,8 @@ export declare class TextRenderer extends Renderer implements ITextRenderer {
34
38
  private _verticalAlignment;
35
39
  private _enableWrapping;
36
40
  private _overflowMode;
41
+ private _outlineColor;
42
+ private _outlineWidth;
37
43
  /**
38
44
  * Rendering color for the Text.
39
45
  */
@@ -99,6 +105,16 @@ export declare class TextRenderer extends Renderer implements ITextRenderer {
99
105
  */
100
106
  get overflowMode(): OverflowMode;
101
107
  set overflowMode(value: OverflowMode);
108
+ /**
109
+ * The outline width in pixels. 0 means outline is disabled. Clamped to [0, 8].
110
+ */
111
+ get outlineWidth(): number;
112
+ set outlineWidth(value: number);
113
+ /**
114
+ * The outline color. Only effective when outlineWidth > 0.
115
+ */
116
+ get outlineColor(): Color;
117
+ set outlineColor(value: Color);
102
118
  /**
103
119
  * Interacts with the masks.
104
120
  */
@@ -117,6 +133,10 @@ export declare class TextRenderer extends Renderer implements ITextRenderer {
117
133
  protected _updateBounds(worldBounds: BoundingBox): void;
118
134
  protected _render(context: RenderContext): void;
119
135
  private _resetSubFont;
136
+ /**
137
+ * Switch the sub font to a specific font size, used by the SHRINK overflow measurement.
138
+ */
139
+ private _applyFontSizeForShrink;
120
140
  private _updatePosition;
121
141
  private _updateColor;
122
142
  private _updateLocalData;
@@ -125,4 +145,5 @@ export declare class TextRenderer extends Renderer implements ITextRenderer {
125
145
  private _buildChunk;
126
146
  private _freeTextChunks;
127
147
  private _onColorChanged;
148
+ private _onOutlineColorChanged;
128
149
  }
package/types/Entity.d.ts CHANGED
@@ -10,6 +10,7 @@ import { EngineObject } from "./base";
10
10
  * Entity, be used as components container.
11
11
  */
12
12
  export declare class Entity extends EngineObject {
13
+ private static _isTransformType;
13
14
  /** The name of entity. */
14
15
  name: string;
15
16
  /** The layer the entity belongs to. */
@@ -159,7 +160,7 @@ export declare class Entity extends EngineObject {
159
160
  private _setActiveInHierarchy;
160
161
  private _setInActiveInHierarchy;
161
162
  private _setSiblingIndex;
162
- private _setTransform;
163
+ private _replaceTransform;
163
164
  private _invModelMatrix;
164
165
  private _inverseWorldMatFlag;
165
166
  /**
@@ -1,4 +1,5 @@
1
1
  import { BoundingBox, Vector4 } from "@galacean/engine-math";
2
+ import { SpriteMaskInteraction } from "./2d/enums/SpriteMaskInteraction";
2
3
  import { Component } from "./Component";
3
4
  import { Entity } from "./Entity";
4
5
  import { RenderContext } from "./RenderPipeline/RenderContext";
@@ -18,6 +19,7 @@ export declare class Renderer extends Component implements ICloneHook<Renderer>
18
19
  private static _mvpMatrixProperty;
19
20
  private static _normalMatrixProperty;
20
21
  _renderFrameCount: number;
22
+ _maskInteraction: SpriteMaskInteraction;
21
23
  _maskLayer: SpriteMaskLayer;
22
24
  protected _overrideUpdate: boolean;
23
25
  protected _materials: Material[];
package/types/Script.d.ts CHANGED
@@ -130,6 +130,7 @@ export declare class Script extends Component {
130
130
  * Called at the end of the destroyed frame.
131
131
  */
132
132
  onDestroy(): void;
133
+ private _hasCollisionEventCallbacks;
133
134
  }
134
135
  export declare enum PointerMethods {
135
136
  onPointerDown = "onPointerDown",
@@ -30,6 +30,7 @@ export declare class Transform extends Component implements ICloneHook<Transform
30
30
  private _worldForward;
31
31
  private _worldRight;
32
32
  private _worldUp;
33
+ private _frontFaceInvert;
33
34
  protected _isParentDirty: boolean;
34
35
  private _parentTransformCache;
35
36
  private _dirtyFlag;
@@ -286,24 +287,25 @@ export declare enum TransformModifyFlags {
286
287
  * of world scaling dirty flags in the case of non-uniform scaling.
287
288
  */
288
289
  IsWorldUniformScaling = 256,
290
+ WorldFrontFaceInvert = 2048,
289
291
  /** WorldMatrix | WorldPosition */
290
292
  WmWp = 132,
291
293
  /** WorldMatrix | WorldEuler | WorldQuat */
292
294
  WmWeWq = 152,
293
- /** WorldMatrix | WorldEuler | WorldQuat | WorldScale*/
294
- WmWeWqWs = 184,
295
+ /** WorldMatrix | WorldEuler | WorldQuat | WorldScale | WorldFrontFaceInvert */
296
+ WmWeWqWs = 2232,
295
297
  /** WorldMatrix | WorldPosition | WorldEuler | WorldQuat */
296
298
  WmWpWeWq = 156,
297
- /** WorldMatrix | WorldScale */
298
- WmWs = 160,
299
- /** WorldMatrix | WorldScale | WorldUniformScaling */
300
- WmWsWus = 416,
301
- /** WorldMatrix | WorldPosition | WorldScale */
302
- WmWpWs = 164,
303
- /** WorldMatrix | WorldPosition | WorldEuler | WorldQuat | WorldScale */
304
- WmWpWeWqWs = 188,
305
- /** WorldMatrix | WorldPosition | WorldEuler | WorldQuat | WorldScale | WorldUniformScaling */
306
- WmWpWeWqWsWus = 444,
307
- /** LocalQuat | LocalMatrix | WorldMatrix | WorldPosition | WorldEuler | WorldQuat | WorldScale | WorldUniformScaling */
308
- LqLmWmWpWeWqWsWus = 510
299
+ /** WorldMatrix | WorldScale | WorldFrontFaceInvert */
300
+ WmWs = 2208,
301
+ /** WorldMatrix | WorldScale | WorldUniformScaling | WorldFrontFaceInvert */
302
+ WmWsWus = 2464,
303
+ /** WorldMatrix | WorldPosition | WorldScale | WorldFrontFaceInvert */
304
+ WmWpWs = 2212,
305
+ /** WorldMatrix | WorldPosition | WorldEuler | WorldQuat | WorldScale | WorldFrontFaceInvert */
306
+ WmWpWeWqWs = 2236,
307
+ /** WorldMatrix | WorldPosition | WorldEuler | WorldQuat | WorldScale | WorldUniformScaling | WorldFrontFaceInvert */
308
+ WmWpWeWqWsWus = 2492,
309
+ /** LocalQuat | LocalMatrix | WorldMatrix | WorldPosition | WorldEuler | WorldQuat | WorldScale | WorldUniformScaling | WorldFrontFaceInvert */
310
+ LqLmWmWpWeWqWsWus = 2558
309
311
  }
@@ -57,7 +57,7 @@ export declare class AssetPromise<T> implements PromiseLike<T> {
57
57
  * @param onTaskDetail - This callback function provides detailed progress information about the task. For instance, in file downloading scenarios, you can use the loaded and total parameters to calculate the download progress percentage and utilize the url parameter to provide additional details such as download speed and estimated remaining time
58
58
  * @returns AssetPromise
59
59
  */
60
- onProgress(onTaskComplete: (loaded: number, total: number) => void, onTaskDetail?: (identifier: string, loaded: number, total: number) => void): AssetPromise<T>;
60
+ onProgress(onTaskComplete?: (loaded: number, total: number) => void, onTaskDetail?: (identifier: string, loaded: number, total: number) => void): AssetPromise<T>;
61
61
  then<TResult1 = T, TResult2 = never>(onfulfilled?: (value: T) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>): AssetPromise<TResult1 | TResult2>;
62
62
  /**
63
63
  * Attaches a callback for only the rejection of the Promise.
@@ -29,7 +29,8 @@ export type LoadItem = {
29
29
  params?: Record<string, any>;
30
30
  } & PickOnlyOne<{
31
31
  /**
32
- * Loading url.
32
+ * Requested resource identity. Virtual resources keep their virtual path so
33
+ * loaders can resolve dependent resources through ResourceManager.
33
34
  */
34
35
  url: string;
35
36
  /**
@@ -1,17 +1,17 @@
1
1
  /**
2
- * Property decorator — deep clone this field's whole subtree, overriding the value type's default
2
+ * Field decorator — deep clone this field's whole subtree, overriding the value type's default
3
3
  * clone mode (field-level decorators have the highest priority). The deep intent carries into
4
4
  * field-cloneable members; engine-bound and platform objects keep their defaults. A decorator is
5
5
  * an explicit intent: if the decorated value itself can't be deep cloned (an entity reference,
6
6
  * asset, function, or object with opaque internal state), cloning throws rather than falling back.
7
7
  * Field-cloned classes reproduce only their own enumerable string-keyed properties.
8
8
  */
9
- export declare function deepClone(target: object, propertyKey: string): void;
9
+ export declare function deepClone<This extends object, Value>(_value: undefined, context: ClassFieldDecoratorContext<This, Value>): void;
10
10
  /**
11
- * Property decorator — assign (share the reference) this field, overriding the value type's default clone mode.
11
+ * Field decorator — assign (share the reference) this field, overriding the value type's default clone mode.
12
12
  */
13
- export declare function assignmentClone(target: object, propertyKey: string): void;
13
+ export declare function assignmentClone<This extends object, Value>(_value: undefined, context: ClassFieldDecoratorContext<This, Value>): void;
14
14
  /**
15
- * Property decorator — ignore this field when cloning; keep the clone's own constructor-built value.
15
+ * Field decorator — ignore this field when cloning; keep the clone's own constructor-built value.
16
16
  */
17
- export declare function ignoreClone(target: object, propertyKey: string): void;
17
+ export declare function ignoreClone<This extends object, Value>(_value: undefined, context: ClassFieldDecoratorContext<This, Value>): void;
@@ -18,6 +18,8 @@ export declare class Pointer {
18
18
  pressedButtons: PointerButton;
19
19
  /** The position of the pointer in screen space pixel coordinates. */
20
20
  position: Vector2;
21
+ /** The position of the pointer when it was last pressed down (in screen space pixel coordinates). */
22
+ pressedPosition: Vector2;
21
23
  /** The change of the pointer. */
22
24
  deltaPosition: Vector2;
23
25
  }
@@ -1,4 +1,5 @@
1
1
  import { Vector3 } from "@galacean/engine-math";
2
+ import { Entity } from "../../Entity";
2
3
  import { IPoolElement } from "../../utils/ObjectPool";
3
4
  import { Pointer } from "./Pointer";
4
5
  /**
@@ -9,4 +10,8 @@ export declare class PointerEventData implements IPoolElement {
9
10
  pointer: Pointer;
10
11
  /** The position of the event trigger (in world space). */
11
12
  worldPosition: Vector3;
13
+ /** The hit-tested target entity (deepest entity on the bubble path). */
14
+ target: Entity;
15
+ /** The entity currently handling the event (same as target on non-bubbling fire, varies on bubble). */
16
+ currentTarget: Entity;
12
17
  }
@@ -17,7 +17,7 @@ export declare abstract class PointerEventEmitter {
17
17
  abstract processLeave(pointer: Pointer): void;
18
18
  abstract dispose(): void;
19
19
  protected abstract _init(): void;
20
- protected _createEventData(pointer: Pointer): PointerEventData;
20
+ protected _createEventData(pointer: Pointer, target: Entity, currentTarget?: Entity): PointerEventData;
21
21
  protected _fireDown(entity: Entity, eventData: PointerEventData): void;
22
22
  protected _fireUp(entity: Entity, eventData: PointerEventData): void;
23
23
  protected _fireClick(entity: Entity, eventData: PointerEventData): void;
@@ -1,4 +1,4 @@
1
- import { Vector3 } from "@galacean/engine-math";
1
+ import { Quaternion, Vector3 } from "@galacean/engine-math";
2
2
  import { Collider } from "./Collider";
3
3
  import { ControllerNonWalkableMode } from "./enums/ControllerNonWalkableMode";
4
4
  import { ColliderShape } from "./shape";
@@ -46,6 +46,7 @@ export declare class CharacterController extends Collider {
46
46
  */
47
47
  addShape(shape: ColliderShape): void;
48
48
  protected _syncNative(): void;
49
+ protected _teleportToEntityTransform(worldPosition: Vector3, _worldRotation: Quaternion): void;
49
50
  private _syncWorldPositionFromPhysicalSpace;
50
51
  private _setUpDirection;
51
52
  }
@@ -1,3 +1,4 @@
1
+ import { Quaternion, Vector3 } from "@galacean/engine-math";
1
2
  import { BoolUpdateFlag } from "../BoolUpdateFlag";
2
3
  import type { ICloneHook } from "../clone/ICloneHook";
3
4
  import { Component } from "../Component";
@@ -11,6 +12,14 @@ export declare class Collider extends Component implements ICloneHook<Collider>
11
12
  protected _updateFlag: BoolUpdateFlag;
12
13
  protected _shapes: ColliderShape[];
13
14
  protected _collisionLayerIndex: number;
15
+ /**
16
+ * A collider must teleport on the next transform sync when its native actor
17
+ * already exists at a stale pose, such as after re-entering the scene or after
18
+ * clone-time native reconstruction. Ordinary first entry can use subclass sync
19
+ * semantics so kinematic actors still use setKinematicTarget.
20
+ */
21
+ private _pendingReenterTeleport;
22
+ private _enteredScene;
14
23
  /**
15
24
  * The shapes of this collider.
16
25
  */
@@ -41,6 +50,19 @@ export declare class Collider extends Component implements ICloneHook<Collider>
41
50
  */
42
51
  _onClone(target: Collider): void;
43
52
  protected _syncNative(): void;
53
+ /**
54
+ * Teleport native actor to a world pose (instant, no implied velocity).
55
+ * Used during initialization paths (clone) where the native actor must be re-aligned
56
+ * with the entity transform after construction-time pose was based on stale defaults.
57
+ */
58
+ protected _teleportToEntityTransform(worldPosition: Vector3, worldRotation: Quaternion): void;
59
+ /**
60
+ * Sync entity world transform to native actor for per-frame updates.
61
+ * Default semantics: teleport (setGlobalPose). Subclasses override to express
62
+ * physics-aware movement (e.g. DynamicCollider routes kinematic actors through
63
+ * setKinematicTarget to generate contact events on swept motion).
64
+ */
65
+ protected _syncEntityTransformToNative(worldPosition: Vector3, worldRotation: Quaternion): void;
44
66
  protected _addNativeShape(shape: ColliderShape): void;
45
67
  protected _removeNativeShape(shape: ColliderShape): void;
46
68
  private _setCollisionLayer;