@vulfram/engine 0.17.1-alpha → 0.19.3-alpha

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/README.md +3 -3
  2. package/package.json +10 -5
  3. package/src/engine/api.ts +12 -25
  4. package/src/engine/bridge/dispatch.ts +3 -8
  5. package/src/engine/ecs/components.ts +340 -0
  6. package/src/engine/ecs/index.ts +3 -661
  7. package/src/engine/ecs/intents.ts +184 -0
  8. package/src/engine/ecs/systems.ts +26 -0
  9. package/src/engine/intents/store.ts +72 -0
  10. package/src/engine/state.ts +3 -3
  11. package/src/engine/systems/command-intent.ts +11 -16
  12. package/src/engine/systems/diagnostics.ts +3 -13
  13. package/src/engine/systems/input-mirror.ts +156 -18
  14. package/src/engine/systems/resource-upload.ts +12 -14
  15. package/src/engine/systems/response-decode.ts +17 -0
  16. package/src/engine/systems/scene-sync.ts +12 -13
  17. package/src/engine/systems/ui-bridge.ts +31 -10
  18. package/src/engine/systems/utils.ts +46 -3
  19. package/src/engine/systems/world-lifecycle.ts +9 -15
  20. package/src/engine/world/entities.ts +201 -37
  21. package/src/engine/world/mount.ts +27 -6
  22. package/src/engine/world/world-ui.ts +77 -30
  23. package/src/engine/world/world3d.ts +282 -33
  24. package/src/helpers/collision.ts +487 -0
  25. package/src/helpers/index.ts +2 -0
  26. package/src/helpers/raycast.ts +442 -0
  27. package/src/types/cmds/geometry.ts +2 -2
  28. package/src/types/cmds/index.ts +42 -0
  29. package/src/types/cmds/input.ts +39 -0
  30. package/src/types/cmds/material.ts +10 -10
  31. package/src/types/cmds/realm.ts +0 -2
  32. package/src/types/cmds/system.ts +10 -0
  33. package/src/types/cmds/target.ts +14 -0
  34. package/src/types/events/keyboard.ts +2 -2
  35. package/src/types/events/pointer.ts +43 -0
  36. package/src/types/events/system.ts +44 -0
@@ -38,75 +38,118 @@ export interface PointerEventTrace {
38
38
 
39
39
  export interface PointerEventOnMoveData {
40
40
  windowId: number;
41
+ windowWidth?: number;
42
+ windowHeight?: number;
41
43
  pointerType: number;
42
44
  pointerId: number;
43
45
  position: [number, number];
46
+ positionTarget?: [number, number];
47
+ targetWidth?: number;
48
+ targetHeight?: number;
44
49
  trace?: PointerEventTrace;
45
50
  }
46
51
 
47
52
  export interface PointerEventOnEnterData {
48
53
  windowId: number;
54
+ windowWidth?: number;
55
+ windowHeight?: number;
49
56
  pointerType: number;
50
57
  pointerId: number;
58
+ targetWidth?: number;
59
+ targetHeight?: number;
51
60
  trace?: PointerEventTrace;
52
61
  }
53
62
 
54
63
  export interface PointerEventOnLeaveData {
55
64
  windowId: number;
65
+ windowWidth?: number;
66
+ windowHeight?: number;
56
67
  pointerType: number;
57
68
  pointerId: number;
69
+ targetWidth?: number;
70
+ targetHeight?: number;
58
71
  trace?: PointerEventTrace;
59
72
  }
60
73
 
61
74
  export interface PointerEventOnButtonData {
62
75
  windowId: number;
76
+ windowWidth?: number;
77
+ windowHeight?: number;
63
78
  pointerType: number;
64
79
  pointerId: number;
65
80
  button: MouseButton;
66
81
  state: ElementState;
67
82
  position: [number, number];
83
+ positionTarget?: [number, number];
84
+ targetWidth?: number;
85
+ targetHeight?: number;
68
86
  trace?: PointerEventTrace;
69
87
  }
70
88
 
71
89
  export interface PointerEventOnScrollData {
72
90
  windowId: number;
91
+ windowWidth?: number;
92
+ windowHeight?: number;
73
93
  delta: ScrollDelta;
74
94
  phase: TouchPhase;
95
+ targetWidth?: number;
96
+ targetHeight?: number;
75
97
  trace?: PointerEventTrace;
76
98
  }
77
99
 
78
100
  export interface PointerEventOnTouchData {
79
101
  windowId: number;
102
+ windowWidth?: number;
103
+ windowHeight?: number;
80
104
  pointerId: number;
81
105
  phase: TouchPhase;
82
106
  position: [number, number];
107
+ positionTarget?: [number, number];
108
+ targetWidth?: number;
109
+ targetHeight?: number;
83
110
  pressure?: number;
84
111
  trace?: PointerEventTrace;
85
112
  }
86
113
 
87
114
  export interface PointerEventOnPinchGestureData {
88
115
  windowId: number;
116
+ windowWidth?: number;
117
+ windowHeight?: number;
89
118
  delta: number;
90
119
  phase: TouchPhase;
120
+ targetWidth?: number;
121
+ targetHeight?: number;
91
122
  trace?: PointerEventTrace;
92
123
  }
93
124
 
94
125
  export interface PointerEventOnPanGestureData {
95
126
  windowId: number;
127
+ windowWidth?: number;
128
+ windowHeight?: number;
96
129
  delta: [number, number];
97
130
  phase: TouchPhase;
131
+ targetWidth?: number;
132
+ targetHeight?: number;
98
133
  trace?: PointerEventTrace;
99
134
  }
100
135
 
101
136
  export interface PointerEventOnRotationGestureData {
102
137
  windowId: number;
138
+ windowWidth?: number;
139
+ windowHeight?: number;
103
140
  delta: number;
104
141
  phase: TouchPhase;
142
+ targetWidth?: number;
143
+ targetHeight?: number;
105
144
  trace?: PointerEventTrace;
106
145
  }
107
146
 
108
147
  export interface PointerEventOnDoubleTapGestureData {
109
148
  windowId: number;
149
+ windowWidth?: number;
150
+ windowHeight?: number;
151
+ targetWidth?: number;
152
+ targetHeight?: number;
110
153
  trace?: PointerEventTrace;
111
154
  }
112
155
 
@@ -34,6 +34,32 @@ export type SystemEvent =
34
34
  commandType?: string;
35
35
  };
36
36
  }
37
+ | {
38
+ event: 'command-deferred';
39
+ data: {
40
+ commandId: number;
41
+ commandType: string;
42
+ attempts: number;
43
+ reason: string;
44
+ };
45
+ }
46
+ | {
47
+ event: 'command-applied';
48
+ data: {
49
+ commandId: number;
50
+ commandType: string;
51
+ attempts: number;
52
+ };
53
+ }
54
+ | {
55
+ event: 'command-dropped';
56
+ data: {
57
+ commandId: number;
58
+ commandType: string;
59
+ attempts: number;
60
+ reason: string;
61
+ };
62
+ }
37
63
  | { event: 'on-resume' }
38
64
  | { event: 'on-suspend' }
39
65
  | { event: 'on-memory-warning' }
@@ -153,4 +179,22 @@ export type SystemEvent =
153
179
  viewportId: number;
154
180
  parentViewportId?: number;
155
181
  };
182
+ }
183
+ | {
184
+ event: 'input-target-listener-event';
185
+ data: {
186
+ listenerId: number;
187
+ targetId: number;
188
+ eventType: string;
189
+ windowId?: number;
190
+ windowWidth?: number;
191
+ windowHeight?: number;
192
+ pointerId?: number;
193
+ positionGlobal?: [number, number];
194
+ positionTarget?: [number, number];
195
+ targetWidth?: number;
196
+ targetHeight?: number;
197
+ keyCode?: number;
198
+ keyState?: 'pressed' | 'released';
199
+ };
156
200
  };