@fps-games/editor 0.1.0

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 (186) hide show
  1. package/dist/authoring-apply.d.ts +21 -0
  2. package/dist/authoring-apply.d.ts.map +1 -0
  3. package/dist/authoring-apply.js +45 -0
  4. package/dist/authoring-apply.js.map +1 -0
  5. package/dist/index.d.ts +85 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +539 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/local-editor-harness.d.ts +173 -0
  10. package/dist/local-editor-harness.d.ts.map +1 -0
  11. package/dist/local-editor-harness.js +969 -0
  12. package/dist/local-editor-harness.js.map +1 -0
  13. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.d.ts +20 -0
  14. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.d.ts.map +1 -0
  15. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js +239 -0
  16. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -0
  17. package/node_modules/@fps-games/editor-babylon/dist/edit-session.d.ts +30 -0
  18. package/node_modules/@fps-games/editor-babylon/dist/edit-session.d.ts.map +1 -0
  19. package/node_modules/@fps-games/editor-babylon/dist/edit-session.js +297 -0
  20. package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -0
  21. package/node_modules/@fps-games/editor-babylon/dist/editor-world.d.ts +30 -0
  22. package/node_modules/@fps-games/editor-babylon/dist/editor-world.d.ts.map +1 -0
  23. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js +67 -0
  24. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -0
  25. package/node_modules/@fps-games/editor-babylon/dist/event-guard.d.ts +13 -0
  26. package/node_modules/@fps-games/editor-babylon/dist/event-guard.d.ts.map +1 -0
  27. package/node_modules/@fps-games/editor-babylon/dist/event-guard.js +101 -0
  28. package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -0
  29. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +19 -0
  30. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -0
  31. package/node_modules/@fps-games/editor-babylon/dist/index.js +18 -0
  32. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -0
  33. package/node_modules/@fps-games/editor-babylon/dist/input-controller.d.ts +3 -0
  34. package/node_modules/@fps-games/editor-babylon/dist/input-controller.d.ts.map +1 -0
  35. package/node_modules/@fps-games/editor-babylon/dist/input-controller.js +182 -0
  36. package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -0
  37. package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.d.ts +13 -0
  38. package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.d.ts.map +1 -0
  39. package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js +94 -0
  40. package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -0
  41. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.d.ts +43 -0
  42. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.d.ts.map +1 -0
  43. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js +510 -0
  44. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -0
  45. package/node_modules/@fps-games/editor-babylon/dist/legacy-runtime.d.ts +5 -0
  46. package/node_modules/@fps-games/editor-babylon/dist/legacy-runtime.d.ts.map +1 -0
  47. package/node_modules/@fps-games/editor-babylon/dist/legacy-runtime.js +5 -0
  48. package/node_modules/@fps-games/editor-babylon/dist/legacy-runtime.js.map +1 -0
  49. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.d.ts +22 -0
  50. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.d.ts.map +1 -0
  51. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js +408 -0
  52. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -0
  53. package/node_modules/@fps-games/editor-babylon/dist/monitor.d.ts +39 -0
  54. package/node_modules/@fps-games/editor-babylon/dist/monitor.d.ts.map +1 -0
  55. package/node_modules/@fps-games/editor-babylon/dist/monitor.js +780 -0
  56. package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -0
  57. package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.d.ts +37 -0
  58. package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.d.ts.map +1 -0
  59. package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js +268 -0
  60. package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -0
  61. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.d.ts +34 -0
  62. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.d.ts.map +1 -0
  63. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js +221 -0
  64. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -0
  65. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +90 -0
  66. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -0
  67. package/node_modules/@fps-games/editor-babylon/dist/projection.js +479 -0
  68. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -0
  69. package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.d.ts +3 -0
  70. package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.d.ts.map +1 -0
  71. package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js +7 -0
  72. package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -0
  73. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts +18 -0
  74. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts.map +1 -0
  75. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +213 -0
  76. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -0
  77. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.d.ts +36 -0
  78. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.d.ts.map +1 -0
  79. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js +272 -0
  80. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -0
  81. package/node_modules/@fps-games/editor-babylon/dist/selection-controller.d.ts +27 -0
  82. package/node_modules/@fps-games/editor-babylon/dist/selection-controller.d.ts.map +1 -0
  83. package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js +308 -0
  84. package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js.map +1 -0
  85. package/node_modules/@fps-games/editor-babylon/dist/tool-controller.d.ts +17 -0
  86. package/node_modules/@fps-games/editor-babylon/dist/tool-controller.d.ts.map +1 -0
  87. package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js +83 -0
  88. package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -0
  89. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts +47 -0
  90. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -0
  91. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +689 -0
  92. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -0
  93. package/node_modules/@fps-games/editor-babylon/dist/types.d.ts +111 -0
  94. package/node_modules/@fps-games/editor-babylon/dist/types.d.ts.map +1 -0
  95. package/node_modules/@fps-games/editor-babylon/dist/types.js +2 -0
  96. package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -0
  97. package/node_modules/@fps-games/editor-babylon/package.json +25 -0
  98. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +28 -0
  99. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -0
  100. package/node_modules/@fps-games/editor-browser/dist/index.js +54 -0
  101. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -0
  102. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts +12 -0
  103. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -0
  104. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +80 -0
  105. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -0
  106. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.d.ts +11 -0
  107. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.d.ts.map +1 -0
  108. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js +33 -0
  109. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -0
  110. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +9 -0
  111. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -0
  112. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +444 -0
  113. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -0
  114. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts +21 -0
  115. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts.map +1 -0
  116. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js +103 -0
  117. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -0
  118. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts +12 -0
  119. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts.map +1 -0
  120. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +123 -0
  121. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -0
  122. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.d.ts +2 -0
  123. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.d.ts.map +1 -0
  124. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +115 -0
  125. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -0
  126. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.d.ts +3 -0
  127. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.d.ts.map +1 -0
  128. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js +68 -0
  129. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -0
  130. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +183 -0
  131. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -0
  132. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js +2 -0
  133. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -0
  134. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +58 -0
  135. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -0
  136. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +136 -0
  137. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -0
  138. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +4 -0
  139. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -0
  140. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +589 -0
  141. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -0
  142. package/node_modules/@fps-games/editor-browser/package.json +16 -0
  143. package/node_modules/@fps-games/editor-core/dist/authoring-source.d.ts +211 -0
  144. package/node_modules/@fps-games/editor-core/dist/authoring-source.d.ts.map +1 -0
  145. package/node_modules/@fps-games/editor-core/dist/authoring-source.js +511 -0
  146. package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -0
  147. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +132 -0
  148. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -0
  149. package/node_modules/@fps-games/editor-core/dist/editor-session.js +265 -0
  150. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -0
  151. package/node_modules/@fps-games/editor-core/dist/host-services.d.ts +24 -0
  152. package/node_modules/@fps-games/editor-core/dist/host-services.d.ts.map +1 -0
  153. package/node_modules/@fps-games/editor-core/dist/host-services.js +2 -0
  154. package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -0
  155. package/node_modules/@fps-games/editor-core/dist/index.d.ts +106 -0
  156. package/node_modules/@fps-games/editor-core/dist/index.d.ts.map +1 -0
  157. package/node_modules/@fps-games/editor-core/dist/index.js +217 -0
  158. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -0
  159. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +44 -0
  160. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.map +1 -0
  161. package/node_modules/@fps-games/editor-core/dist/scene-graph.js +86 -0
  162. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -0
  163. package/node_modules/@fps-games/editor-core/dist/scene-view-input.d.ts +41 -0
  164. package/node_modules/@fps-games/editor-core/dist/scene-view-input.d.ts.map +1 -0
  165. package/node_modules/@fps-games/editor-core/dist/scene-view-input.js +2 -0
  166. package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -0
  167. package/node_modules/@fps-games/editor-core/dist/serialized-object.d.ts +53 -0
  168. package/node_modules/@fps-games/editor-core/dist/serialized-object.d.ts.map +1 -0
  169. package/node_modules/@fps-games/editor-core/dist/serialized-object.js +32 -0
  170. package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -0
  171. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.d.ts +48 -0
  172. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.d.ts.map +1 -0
  173. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js +2 -0
  174. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -0
  175. package/node_modules/@fps-games/editor-core/package.json +19 -0
  176. package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts +46 -0
  177. package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts.map +1 -0
  178. package/node_modules/@fps-games/editor-forge-play/dist/index.js +156 -0
  179. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -0
  180. package/node_modules/@fps-games/editor-forge-play/package.json +19 -0
  181. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +239 -0
  182. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -0
  183. package/node_modules/@fps-games/editor-protocol/dist/index.js +54 -0
  184. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -0
  185. package/node_modules/@fps-games/editor-protocol/package.json +16 -0
  186. package/package.json +40 -0
@@ -0,0 +1,510 @@
1
+ import { createBrowserHost } from '@fps-games/editor-browser';
2
+ import { getBabylonRuntime } from './runtime-globals';
3
+ import { getInspectorContainer, setInspectorPicking, syncInspectorToolState } from './inspector-adapter';
4
+ import { adaptMaterialPropertyChange } from './material-property-adapter';
5
+ import { applyOutlinePropertyChange, isOutlinePropertyKey } from './outline-adapter';
6
+ const INSPECTOR_V2_URL = 'https://preview.babylonjs.com/inspector/babylon.inspector-v2.bundle.js';
7
+ const INSPECTOR_HIGHLIGHT_SETTING_KEY = 'Babylon/Inspector/HighlightSelectedEntity';
8
+ function patchSelection(host) {
9
+ const SelectionCtor = host.window.Selection;
10
+ const RangeCtor = host.window.Range;
11
+ const NodeCtor = host.window.Node;
12
+ if (!SelectionCtor || !RangeCtor || !NodeCtor)
13
+ return;
14
+ const proto = SelectionCtor.prototype;
15
+ if (proto.__fpsEditorPatched)
16
+ return;
17
+ const original = proto.addRange;
18
+ proto.addRange = function patchedAddRange(range) {
19
+ original.call(this, range);
20
+ if (this.toString())
21
+ return;
22
+ let node = range.startContainer;
23
+ if (node.nodeType === NodeCtor.ELEMENT_NODE && range.startOffset < node.childNodes.length) {
24
+ node = node.childNodes[range.startOffset];
25
+ }
26
+ const element = (node.nodeType === NodeCtor.ELEMENT_NODE ? node : node.parentElement);
27
+ if (!element)
28
+ return;
29
+ element.style.setProperty('user-select', 'text', 'important');
30
+ original.call(this, range);
31
+ };
32
+ proto.__fpsEditorPatched = true;
33
+ }
34
+ function patchGizmoManagerPrototype(GizmoManager, marker) {
35
+ const proto = GizmoManager?.prototype;
36
+ if (!proto || proto[marker])
37
+ return;
38
+ const applyRotationOverride = (manager) => {
39
+ if (manager?.gizmos?.rotationGizmo)
40
+ manager.gizmos.rotationGizmo.updateGizmoRotationToMatchAttachedMesh = false;
41
+ };
42
+ const rotationDesc = Object.getOwnPropertyDescriptor(proto, 'rotationGizmoEnabled');
43
+ if (rotationDesc?.get && rotationDesc.set) {
44
+ const setRotationGizmoEnabled = rotationDesc.set;
45
+ Object.defineProperty(proto, 'rotationGizmoEnabled', {
46
+ configurable: true,
47
+ enumerable: rotationDesc.enumerable ?? false,
48
+ get: rotationDesc.get,
49
+ set(value) {
50
+ setRotationGizmoEnabled.call(this, value);
51
+ if (value)
52
+ applyRotationOverride(this);
53
+ },
54
+ });
55
+ }
56
+ const coordinatesDesc = Object.getOwnPropertyDescriptor(proto, 'coordinatesMode');
57
+ if (coordinatesDesc?.get && coordinatesDesc.set) {
58
+ const setCoordinatesMode = coordinatesDesc.set;
59
+ Object.defineProperty(proto, 'coordinatesMode', {
60
+ configurable: true,
61
+ enumerable: coordinatesDesc.enumerable ?? false,
62
+ get: coordinatesDesc.get,
63
+ set(value) {
64
+ setCoordinatesMode.call(this, value);
65
+ applyRotationOverride(this);
66
+ },
67
+ });
68
+ }
69
+ Object.defineProperty(proto, marker, {
70
+ value: true,
71
+ configurable: false,
72
+ enumerable: false,
73
+ writable: false,
74
+ });
75
+ }
76
+ function patchRotationGizmoPrototype(RotationGizmo, marker) {
77
+ const proto = RotationGizmo?.prototype;
78
+ if (!proto || proto[marker])
79
+ return;
80
+ const applyRotationOverride = (gizmo) => {
81
+ if (!gizmo)
82
+ return;
83
+ if (gizmo.xGizmo)
84
+ gizmo.xGizmo.updateGizmoRotationToMatchAttachedMesh = false;
85
+ if (gizmo.yGizmo)
86
+ gizmo.yGizmo.updateGizmoRotationToMatchAttachedMesh = false;
87
+ if (gizmo.zGizmo)
88
+ gizmo.zGizmo.updateGizmoRotationToMatchAttachedMesh = false;
89
+ };
90
+ const updateDesc = Object.getOwnPropertyDescriptor(proto, 'updateGizmoRotationToMatchAttachedMesh');
91
+ if (updateDesc?.get && updateDesc.set) {
92
+ const setUpdateGizmoRotation = updateDesc.set;
93
+ Object.defineProperty(proto, 'updateGizmoRotationToMatchAttachedMesh', {
94
+ configurable: true,
95
+ enumerable: updateDesc.enumerable ?? false,
96
+ get: updateDesc.get,
97
+ set(_value) {
98
+ setUpdateGizmoRotation.call(this, false);
99
+ applyRotationOverride(this);
100
+ },
101
+ });
102
+ }
103
+ const coordinatesDesc = Object.getOwnPropertyDescriptor(proto, 'coordinatesMode');
104
+ if (coordinatesDesc?.set) {
105
+ const setCoordinatesMode = coordinatesDesc.set;
106
+ Object.defineProperty(proto, 'coordinatesMode', {
107
+ configurable: true,
108
+ enumerable: coordinatesDesc.enumerable ?? false,
109
+ get: coordinatesDesc.get,
110
+ set(value) {
111
+ setCoordinatesMode.call(this, value);
112
+ applyRotationOverride(this);
113
+ },
114
+ });
115
+ }
116
+ Object.defineProperty(proto, marker, {
117
+ value: true,
118
+ configurable: false,
119
+ enumerable: false,
120
+ writable: false,
121
+ });
122
+ }
123
+ function patchPlaneRotationGizmoPrototype(PlaneRotationGizmo, marker) {
124
+ const proto = PlaneRotationGizmo?.prototype;
125
+ if (!proto || proto[marker])
126
+ return;
127
+ const forceDisabled = function forceDisabled() {
128
+ this._updateGizmoRotationToMatchAttachedMesh = false;
129
+ };
130
+ const baseProto = Object.getPrototypeOf(proto);
131
+ const updateDesc = baseProto ? Object.getOwnPropertyDescriptor(baseProto, 'updateGizmoRotationToMatchAttachedMesh') : null;
132
+ if (updateDesc?.get && updateDesc.set) {
133
+ const getUpdateGizmoRotation = updateDesc.get;
134
+ const setUpdateGizmoRotation = updateDesc.set;
135
+ Object.defineProperty(proto, 'updateGizmoRotationToMatchAttachedMesh', {
136
+ configurable: true,
137
+ enumerable: updateDesc.enumerable ?? false,
138
+ get() {
139
+ return getUpdateGizmoRotation.call(this);
140
+ },
141
+ set(_value) {
142
+ setUpdateGizmoRotation.call(this, false);
143
+ forceDisabled.call(this);
144
+ },
145
+ });
146
+ }
147
+ const coordinatesDesc = baseProto ? Object.getOwnPropertyDescriptor(baseProto, 'coordinatesMode') : null;
148
+ if (coordinatesDesc?.get && coordinatesDesc.set) {
149
+ const getCoordinatesMode = coordinatesDesc.get;
150
+ const setCoordinatesMode = coordinatesDesc.set;
151
+ Object.defineProperty(proto, 'coordinatesMode', {
152
+ configurable: true,
153
+ enumerable: coordinatesDesc.enumerable ?? false,
154
+ get() {
155
+ return getCoordinatesMode.call(this);
156
+ },
157
+ set(value) {
158
+ setCoordinatesMode.call(this, value);
159
+ forceDisabled.call(this);
160
+ },
161
+ });
162
+ }
163
+ Object.defineProperty(proto, marker, {
164
+ value: true,
165
+ configurable: false,
166
+ enumerable: false,
167
+ writable: false,
168
+ });
169
+ }
170
+ function patchBabylonGizmoClasses(source, markerPrefix) {
171
+ if (!source)
172
+ return;
173
+ patchGizmoManagerPrototype(source.GizmoManager, `${markerPrefix}Manager`);
174
+ patchRotationGizmoPrototype(source.RotationGizmo, `${markerPrefix}Rotation`);
175
+ patchPlaneRotationGizmoPrototype(source.PlaneRotationGizmo, `${markerPrefix}Plane`);
176
+ }
177
+ function patchInstancedMeshOutlineProperties(source, marker) {
178
+ const proto = source?.InstancedMesh?.prototype;
179
+ if (!proto || proto[marker])
180
+ return;
181
+ const defineForwardedProperty = (property) => {
182
+ Object.defineProperty(proto, property, {
183
+ configurable: true,
184
+ enumerable: true,
185
+ get() {
186
+ return this?.sourceMesh?.[property];
187
+ },
188
+ set(value) {
189
+ if (this?.sourceMesh) {
190
+ this.sourceMesh[property] = value;
191
+ return;
192
+ }
193
+ Object.defineProperty(this, property, { value, writable: true, configurable: true, enumerable: true });
194
+ },
195
+ });
196
+ };
197
+ defineForwardedProperty('renderOutline');
198
+ defineForwardedProperty('outlineColor');
199
+ defineForwardedProperty('outlineWidth');
200
+ Object.defineProperty(proto, marker, {
201
+ value: true,
202
+ configurable: false,
203
+ enumerable: false,
204
+ writable: false,
205
+ });
206
+ }
207
+ function patchInspectorDefaults(host, babylon) {
208
+ try {
209
+ host.window.localStorage.setItem(INSPECTOR_HIGHLIGHT_SETTING_KEY, 'false');
210
+ }
211
+ catch { }
212
+ patchInstancedMeshOutlineProperties(getBabylonRuntime(babylon), '__fpsEditorInstancedOutlinePatched');
213
+ }
214
+ async function patchRotationGizmoDefaults(host, options) {
215
+ try {
216
+ patchInspectorDefaults(host, options.babylon);
217
+ patchBabylonGizmoClasses(getBabylonRuntime(options.babylon), '__fpsEditorRuntime');
218
+ const modules = await options.loadGizmoModules?.();
219
+ if (modules?.length) {
220
+ patchBabylonGizmoClasses(Object.assign({}, ...modules), '__fpsEditorModule');
221
+ }
222
+ }
223
+ catch { }
224
+ }
225
+ function injectInspectorStyle(host) {
226
+ if (host.document.getElementById('fps-editor-inspector-style'))
227
+ return;
228
+ const style = host.document.createElement('style');
229
+ style.id = 'fps-editor-inspector-style';
230
+ style.textContent = [
231
+ '#inspector-host, #babylon-inspector-container { z-index: 99999 !important; }',
232
+ '#inspector-host button.bridge-tool-inactive, #babylon-inspector-container button.bridge-tool-inactive {',
233
+ ' background: transparent !important;',
234
+ ' box-shadow: none !important;',
235
+ '}',
236
+ '#inspector-host button.bridge-tool-active, #babylon-inspector-container button.bridge-tool-active {',
237
+ ' background: rgba(120, 120, 120, 0.22) !important;',
238
+ ' box-shadow: inset 0 0 0 1px rgba(120, 120, 120, 0.55) !important;',
239
+ '}',
240
+ ].join('\n');
241
+ host.document.head.appendChild(style);
242
+ }
243
+ function tuneOutlineLayer(scene) {
244
+ const engine = scene?.getEngine?.();
245
+ if (!engine?._virtualScenes)
246
+ return;
247
+ for (const virtualScene of engine._virtualScenes) {
248
+ for (const layer of virtualScene.effectLayers || []) {
249
+ if (layer.name !== 'InspectorSelectionOutline')
250
+ continue;
251
+ layer.clearSelection?.();
252
+ layer.outlineThickness = 0;
253
+ layer.occlusionStrength = 0;
254
+ layer.isEnabled = false;
255
+ }
256
+ }
257
+ }
258
+ function serializeNode(node) {
259
+ if (!node)
260
+ return null;
261
+ const parent = node.parent ?? null;
262
+ return {
263
+ name: node.name ?? null,
264
+ id: node.id ?? null,
265
+ uniqueId: node.uniqueId ?? null,
266
+ type: node.getClassName?.() || node.constructor?.name || 'Unknown',
267
+ metadata: node.metadata ?? null,
268
+ parent: parent ? {
269
+ name: parent.name ?? null,
270
+ id: parent.uniqueId ?? parent.id ?? null,
271
+ type: parent.getClassName?.() || parent.constructor?.name || 'Unknown',
272
+ } : null,
273
+ transform: {
274
+ position: node.position ? { x: node.position.x, y: node.position.y, z: node.position.z } : null,
275
+ rotation: node.rotation ? { x: node.rotation.x, y: node.rotation.y, z: node.rotation.z } : null,
276
+ scaling: node.scaling ? { x: node.scaling.x, y: node.scaling.y, z: node.scaling.z } : null,
277
+ rotationQuaternion: node.rotationQuaternion
278
+ ? { x: node.rotationQuaternion.x, y: node.rotationQuaternion.y, z: node.rotationQuaternion.z, w: node.rotationQuaternion.w }
279
+ : null,
280
+ },
281
+ material: node.material ? {
282
+ name: node.material.name ?? null,
283
+ type: node.material.getClassName?.() || node.material.constructor?.name || 'Unknown',
284
+ } : null,
285
+ };
286
+ }
287
+ async function ensureEditorInspector(host, options) {
288
+ const ensureInspectorReady = host.window.ensureInspectorReady;
289
+ if (typeof ensureInspectorReady === 'function') {
290
+ try {
291
+ const localInspector = await ensureInspectorReady();
292
+ if (localInspector?.ShowInspector)
293
+ return localInspector;
294
+ }
295
+ catch { }
296
+ }
297
+ const existing = host.window.INSPECTOR;
298
+ if (existing?.ShowInspector)
299
+ return existing;
300
+ const url = host.window.BRIDGE_INSPECTOR_URL || options.inspectorUrl || INSPECTOR_V2_URL;
301
+ try {
302
+ await new Promise((resolve, reject) => {
303
+ const script = host.document.createElement('script');
304
+ script.src = url;
305
+ script.onload = () => resolve();
306
+ script.onerror = () => reject(new Error(`Failed to load: ${url}`));
307
+ host.document.head.appendChild(script);
308
+ });
309
+ const loaded = host.window.INSPECTOR;
310
+ return loaded?.ShowInspector ? loaded : null;
311
+ }
312
+ catch {
313
+ return null;
314
+ }
315
+ }
316
+ function isHostHTMLElement(target, host) {
317
+ const ElementCtor = host.window.HTMLElement ?? HTMLElement;
318
+ return typeof ElementCtor === 'function' && target instanceof ElementCtor;
319
+ }
320
+ export function createEditorInspectorHost(options) {
321
+ const host = options.host ?? createBrowserHost();
322
+ let scene = null;
323
+ let inspectorVisible = false;
324
+ let inspectorToken = null;
325
+ let dblclickHandler = null;
326
+ let propertyChangedObservable = null;
327
+ let propertyChangedObserver = null;
328
+ function emitContextSelection(node) {
329
+ options.onContextSelection?.(serializeNode(node));
330
+ }
331
+ function unbindDblclick() {
332
+ if (!dblclickHandler)
333
+ return;
334
+ host.document.removeEventListener('dblclick', dblclickHandler);
335
+ dblclickHandler = null;
336
+ }
337
+ function unbindPropertyChanged() {
338
+ if (propertyChangedObservable && propertyChangedObserver) {
339
+ try {
340
+ propertyChangedObservable.remove?.(propertyChangedObserver);
341
+ }
342
+ catch { }
343
+ }
344
+ propertyChangedObservable = null;
345
+ propertyChangedObserver = null;
346
+ }
347
+ function bindPropertyChanged(v2) {
348
+ unbindPropertyChanged();
349
+ const observable = v2?.Inspector?.OnPropertyChangedObservable
350
+ ?? getBabylonRuntime(options.babylon)?.Inspector?.OnPropertyChangedObservable
351
+ ?? scene?.debugLayer?.onPropertyChangedObservable
352
+ ?? null;
353
+ if (!observable?.add)
354
+ return;
355
+ propertyChangedObservable = observable;
356
+ propertyChangedObserver = observable.add((event) => {
357
+ const property = typeof event?.property === 'string' ? event.property : '';
358
+ const entity = event?.object ?? null;
359
+ if (!entity)
360
+ return;
361
+ if (isOutlinePropertyKey(property)) {
362
+ applyOutlinePropertyChange({
363
+ entity,
364
+ property,
365
+ value: event?.value,
366
+ initialValue: event?.initialValue,
367
+ });
368
+ return;
369
+ }
370
+ const materialChange = adaptMaterialPropertyChange({
371
+ scene,
372
+ selectedEntity: options.getSelectedEntity(),
373
+ entity,
374
+ propertyKey: property,
375
+ oldValue: event?.initialValue,
376
+ newValue: event?.value,
377
+ resolveBinding: node => options.resolveBinding?.(node) ?? null,
378
+ });
379
+ if (materialChange)
380
+ options.onMaterialPropertyChanged?.(materialChange);
381
+ });
382
+ }
383
+ function bindDblclick() {
384
+ unbindDblclick();
385
+ dblclickHandler = (event) => {
386
+ const selected = options.getSelectedEntity();
387
+ if (!selected)
388
+ return;
389
+ const rawTarget = event.target;
390
+ const target = isHostHTMLElement(rawTarget, host) ? rawTarget : null;
391
+ if (!target)
392
+ return;
393
+ const tag = target.tagName;
394
+ if (tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT' || target.isContentEditable)
395
+ return;
396
+ const canvas = scene?.getEngine?.()?.getRenderingCanvas?.() ?? null;
397
+ if (rawTarget === canvas || target.closest?.('#inspector-host, #babylon-inspector-container')) {
398
+ emitContextSelection(selected);
399
+ }
400
+ };
401
+ host.document.addEventListener('dblclick', dblclickHandler);
402
+ }
403
+ function applyCurrentSelectionAndTool() {
404
+ const selectionController = options.getSelectionController();
405
+ const selectedEntity = options.getSelectedEntity();
406
+ if (selectedEntity)
407
+ selectionController?.selectEntity?.(selectedEntity, true);
408
+ const tool = options.getCurrentTool?.();
409
+ if (tool)
410
+ syncInspectorToolState(tool, getInspectorContainer(host), host);
411
+ }
412
+ return {
413
+ init(nextScene) {
414
+ scene = nextScene;
415
+ patchInspectorDefaults(host, options.babylon);
416
+ patchSelection(host);
417
+ void patchRotationGizmoDefaults(host, options);
418
+ },
419
+ async show() {
420
+ if (!scene)
421
+ return;
422
+ await patchRotationGizmoDefaults(host, options);
423
+ const selectionController = options.getSelectionController();
424
+ const v2 = await ensureEditorInspector(host, options);
425
+ if (v2?.ShowInspector) {
426
+ const selectionBridge = selectionController?.createV2SelectionBridge?.(v2);
427
+ const serviceDefinitions = [selectionBridge].filter(Boolean);
428
+ const inspectorOptions = {
429
+ ...(typeof v2.ConvertOptions === 'function' ? v2.ConvertOptions({ embedMode: true }) : { layoutMode: 'overlay' }),
430
+ serviceDefinitions: serviceDefinitions.length ? serviceDefinitions : undefined,
431
+ };
432
+ inspectorToken = v2.ShowInspector(scene, inspectorOptions);
433
+ inspectorVisible = true;
434
+ injectInspectorStyle(host);
435
+ bindPropertyChanged(v2);
436
+ selectionController?.bindSelectionSourceTracking?.();
437
+ selectionController?.enablePicking?.();
438
+ bindDblclick();
439
+ host.setTimeout(() => tuneOutlineLayer(scene), 200);
440
+ applyCurrentSelectionAndTool();
441
+ return;
442
+ }
443
+ if (scene.debugLayer?.show) {
444
+ await scene.debugLayer.show({
445
+ embedMode: true,
446
+ initialTab: getBabylonRuntime(options.babylon)?.DebugLayerTab?.Properties ?? 0,
447
+ });
448
+ inspectorVisible = true;
449
+ injectInspectorStyle(host);
450
+ bindPropertyChanged();
451
+ selectionController?.bindSelectionSourceTracking?.();
452
+ selectionController?.enablePicking?.();
453
+ bindDblclick();
454
+ applyCurrentSelectionAndTool();
455
+ return;
456
+ }
457
+ const Inspector = getBabylonRuntime(options.babylon)?.Inspector;
458
+ if (Inspector?.Show) {
459
+ Inspector.Show(scene, {
460
+ embedMode: true,
461
+ initialTab: getBabylonRuntime(options.babylon)?.DebugLayerTab?.Properties ?? 0,
462
+ });
463
+ inspectorVisible = true;
464
+ injectInspectorStyle(host);
465
+ bindPropertyChanged();
466
+ selectionController?.bindSelectionSourceTracking?.();
467
+ selectionController?.enablePicking?.();
468
+ bindDblclick();
469
+ applyCurrentSelectionAndTool();
470
+ }
471
+ },
472
+ hide() {
473
+ if (!inspectorVisible)
474
+ return;
475
+ unbindDblclick();
476
+ unbindPropertyChanged();
477
+ options.getSelectionController()?.reset?.();
478
+ try {
479
+ if (inspectorToken) {
480
+ if (!inspectorToken.isDisposed)
481
+ inspectorToken.dispose();
482
+ inspectorToken = null;
483
+ }
484
+ else if (scene?.debugLayer) {
485
+ scene.debugLayer.hide();
486
+ }
487
+ else {
488
+ const Inspector = getBabylonRuntime(options.babylon)?.Inspector;
489
+ if (Inspector?.Hide)
490
+ Inspector.Hide();
491
+ }
492
+ }
493
+ catch { }
494
+ inspectorVisible = false;
495
+ },
496
+ isVisible() {
497
+ return inspectorVisible;
498
+ },
499
+ syncTool(tool) {
500
+ syncInspectorToolState(tool, getInspectorContainer(host), host);
501
+ },
502
+ tuneOutlineLayer() {
503
+ tuneOutlineLayer(scene);
504
+ },
505
+ };
506
+ }
507
+ export function setInspectorPickingState(enabled, host) {
508
+ return setInspectorPicking(enabled, getInspectorContainer(host));
509
+ }
510
+ //# sourceMappingURL=inspector-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspector-host.js","sourceRoot":"","sources":["../src/inspector-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './edit-session';
2
+ export * from './inspector-host';
3
+ export * from './monitor';
4
+ export * from './selection-controller';
5
+ //# sourceMappingURL=legacy-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-runtime.d.ts","sourceRoot":"","sources":["../src/legacy-runtime.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './edit-session';
2
+ export * from './inspector-host';
3
+ export * from './monitor';
4
+ export * from './selection-controller';
5
+ //# sourceMappingURL=legacy-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-runtime.js","sourceRoot":"","sources":["../src/legacy-runtime.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { MaterialProp, MaterialRuntimeKind, MaterialValue, PersistentBinding } from '@fps-games/editor-protocol';
2
+ import type { BabylonRuntimeGlobal, CanonicalMaterialChange, RuntimeNode, RuntimeScene } from './types';
3
+ export declare const MATERIAL_CANONICAL_PATHS: readonly ["material.albedoColor", "material.emissiveColor", "material.metallic", "material.roughness", "material.alpha", "material.backFaceCulling", "material.albedoTexture.url", "material.normalTexture.url", "material.metallicTexture.url", "material.pbr.albedoColor", "material.pbr.baseWeight", "material.pbr.reflectivityColor", "material.pbr.microSurface", "material.pbr.emissiveColor", "material.pbr.ambientColor", "material.pbr.lightFalloff", "material.standard.diffuseColor", "material.standard.specularColor", "material.standard.specularPower", "material.standard.emissiveColor", "material.standard.ambientColor", "material.standard.useSpecularOverAlpha"];
4
+ type AdaptMaterialPropertyChangeOptions = {
5
+ scene: RuntimeScene | null;
6
+ selectedEntity: RuntimeNode | null;
7
+ entity: unknown;
8
+ propertyKey: unknown;
9
+ oldValue: unknown;
10
+ newValue: unknown;
11
+ resolveBinding: (node: RuntimeNode) => PersistentBinding | null;
12
+ };
13
+ type ApplyMaterialRuntimeOptions = {
14
+ babylon?: BabylonRuntimeGlobal | null;
15
+ };
16
+ export declare function resolveMaterialRuntimeKind(material: any): MaterialRuntimeKind;
17
+ export declare function adaptMaterialPropertyChange(options: AdaptMaterialPropertyChangeOptions): CanonicalMaterialChange | null;
18
+ export declare function applyMaterialValueToRuntimeMaterial(material: unknown, scene: RuntimeScene | null, path: MaterialProp, value: MaterialValue, options?: ApplyMaterialRuntimeOptions): boolean;
19
+ export declare function resolveMaterialOwnerNode(rootNode: RuntimeNode | null, ownerNodePath: string): RuntimeNode | null;
20
+ export declare function applyMaterialValueToRuntimeNode(ownerNode: RuntimeNode | null, scene: RuntimeScene | null, path: MaterialProp, value: MaterialValue, options?: ApplyMaterialRuntimeOptions): boolean;
21
+ export {};
22
+ //# sourceMappingURL=material-property-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"material-property-adapter.d.ts","sourceRoot":"","sources":["../src/material-property-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEtH,OAAO,KAAK,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAExG,eAAO,MAAM,wBAAwB,upBAuBO,CAAC;AAE7C,KAAK,kCAAkC,GAAG;IACxC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,iBAAiB,GAAG,IAAI,CAAC;CACjE,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACvC,CAAC;AAyEF,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,GAAG,GAAG,mBAAmB,CAgB7E;AA4LD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,kCAAkC,GAAG,uBAAuB,GAAG,IAAI,CA8BvH;AAED,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CA6CT;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAgBhH;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAET"}