@jack120/test 0.2.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 (57) hide show
  1. package/.gitmodules +3 -0
  2. package/.prettierrc +6 -0
  3. package/.vscode/c_cpp_properties.json +14 -0
  4. package/.vscode/launch.json +24 -0
  5. package/.vscode/settings.json +8 -0
  6. package/CMakeLists.txt +52 -0
  7. package/adamas-config.json +5 -0
  8. package/dist/index.js +2415 -0
  9. package/external/CMakeLists.txt +1 -0
  10. package/external/Unity-NodeJS-RPC/CMakeLists.txt +13 -0
  11. package/external/Unity-NodeJS-RPC/README.md +1 -0
  12. package/external/Unity-NodeJS-RPC/RpcClient.cpp +265 -0
  13. package/external/Unity-NodeJS-RPC/include/RpcClient.h +118 -0
  14. package/external/Unity-NodeJS-RPC/main.cpp +76 -0
  15. package/external/Unity-NodeJS-RPC/nlohmann/json.hpp +25526 -0
  16. package/external/Unity-NodeJS-RPC/server/Program.cs +52 -0
  17. package/external/Unity-NodeJS-RPC/server/json.cs +66 -0
  18. package/external/Unity-NodeJS-RPC/server/rpc.cs +369 -0
  19. package/external/Unity-NodeJS-RPC/server/sample1.csproj +10 -0
  20. package/external/Unity-NodeJS-RPC/server/sample1.sln +24 -0
  21. package/external/Unity-NodeJS-RPC/server/unity/RpcUnity.cs.txt +60 -0
  22. package/index.ts +36 -0
  23. package/library/adamas-types.d.ts +70 -0
  24. package/library/debug.ts +7 -0
  25. package/library/device.ts +279 -0
  26. package/library/entity.ts +35 -0
  27. package/library/index.ts +19 -0
  28. package/library/interaction/interaction.ts +281 -0
  29. package/library/native-bindings-osx.node +0 -0
  30. package/library/native-bindings-win.node +0 -0
  31. package/library/networking/state-sync.ts +62 -0
  32. package/library/physics/collider.ts +252 -0
  33. package/library/physics/rigidbody.ts +119 -0
  34. package/library/render/camera.ts +172 -0
  35. package/library/render/light.ts +169 -0
  36. package/library/render/material.ts +258 -0
  37. package/library/render/mesh.ts +208 -0
  38. package/library/render/primitives.ts +76 -0
  39. package/library/render/renderable.ts +137 -0
  40. package/library/render/renderer.ts +124 -0
  41. package/library/render/scene.ts +89 -0
  42. package/library/render/texture.ts +247 -0
  43. package/library/render/transform.ts +259 -0
  44. package/library/rpc.ts +81 -0
  45. package/library/utilities/base64.ts +63 -0
  46. package/loader-template.ts +419 -0
  47. package/native.cc +111 -0
  48. package/package.json +33 -0
  49. package/project.adamas.json +457 -0
  50. package/rusk.glb +0 -0
  51. package/samples/device-sample.ts +30 -0
  52. package/samples/interaction-sample.ts +134 -0
  53. package/samples/physics-sample.ts +39 -0
  54. package/samples/rendering-sample.ts +88 -0
  55. package/samples/spawn-cube.ts +422 -0
  56. package/samples/state-sync-sample.ts +25 -0
  57. package/tsconfig.json +20 -0
@@ -0,0 +1,457 @@
1
+ {
2
+ "version": 1,
3
+ "meta": {
4
+ "name": "build33",
5
+ "createdAt": "2025-09-12T22:52:13.296Z",
6
+ "updateAt": "2025-09-14T09:08:34.760Z",
7
+ "public": true,
8
+ "description": "The description of the project."
9
+ },
10
+ "projectRoot": "/Users/zekailin00/Desktop/build33",
11
+ "scene": {
12
+ "entities": [
13
+ "1847445d-61bf-4628-975a-11ed56807a70",
14
+ "0e3a33bd-e3f4-49df-862d-4290218fd9fa",
15
+ "428e2b96-d25e-4b11-ab68-05c1afeb509b"
16
+ ],
17
+ "properties": [
18
+ [
19
+ "1847445d-61bf-4628-975a-11ed56807a70",
20
+ {
21
+ "componentType": "Property",
22
+ "name": "New Entity"
23
+ }
24
+ ],
25
+ [
26
+ "0e3a33bd-e3f4-49df-862d-4290218fd9fa",
27
+ {
28
+ "componentType": "Property",
29
+ "name": "New Entity"
30
+ }
31
+ ],
32
+ [
33
+ "428e2b96-d25e-4b11-ab68-05c1afeb509b",
34
+ {
35
+ "componentType": "Property",
36
+ "name": "test entity"
37
+ }
38
+ ]
39
+ ],
40
+ "transforms": [
41
+ [
42
+ "root",
43
+ {
44
+ "componentType": "Transform",
45
+ "parent": "",
46
+ "children": [
47
+ "1847445d-61bf-4628-975a-11ed56807a70",
48
+ "428e2b96-d25e-4b11-ab68-05c1afeb509b"
49
+ ],
50
+ "localScale": {
51
+ "x": 1,
52
+ "y": 1,
53
+ "z": 1
54
+ },
55
+ "localRotation": {
56
+ "isEuler": true,
57
+ "_x": 0,
58
+ "_y": 0,
59
+ "_z": 0,
60
+ "_order": "XYZ"
61
+ },
62
+ "localPosition": {
63
+ "x": 0,
64
+ "y": 0,
65
+ "z": 0
66
+ }
67
+ }
68
+ ],
69
+ [
70
+ "1847445d-61bf-4628-975a-11ed56807a70",
71
+ {
72
+ "componentType": "Transform",
73
+ "parent": "root",
74
+ "children": [
75
+ "0e3a33bd-e3f4-49df-862d-4290218fd9fa"
76
+ ],
77
+ "localScale": {
78
+ "x": 1,
79
+ "y": 1,
80
+ "z": 1
81
+ },
82
+ "localRotation": {
83
+ "isEuler": true,
84
+ "_x": 0,
85
+ "_y": 0,
86
+ "_z": 0,
87
+ "_order": "XYZ"
88
+ },
89
+ "localPosition": {
90
+ "x": 0,
91
+ "y": 0,
92
+ "z": 0
93
+ }
94
+ }
95
+ ],
96
+ [
97
+ "0e3a33bd-e3f4-49df-862d-4290218fd9fa",
98
+ {
99
+ "componentType": "Transform",
100
+ "parent": "1847445d-61bf-4628-975a-11ed56807a70",
101
+ "children": [],
102
+ "localScale": {
103
+ "x": 1,
104
+ "y": 1,
105
+ "z": 1
106
+ },
107
+ "localRotation": {
108
+ "isEuler": true,
109
+ "_x": 0,
110
+ "_y": 0,
111
+ "_z": 0,
112
+ "_order": "XYZ"
113
+ },
114
+ "localPosition": {
115
+ "x": 0,
116
+ "y": 0,
117
+ "z": 0
118
+ }
119
+ }
120
+ ],
121
+ [
122
+ "428e2b96-d25e-4b11-ab68-05c1afeb509b",
123
+ {
124
+ "componentType": "Transform",
125
+ "parent": "root",
126
+ "children": [],
127
+ "localScale": {
128
+ "x": 1,
129
+ "y": 1,
130
+ "z": 1
131
+ },
132
+ "localRotation": {
133
+ "isEuler": true,
134
+ "_x": 0,
135
+ "_y": 0,
136
+ "_z": 0,
137
+ "_order": "XYZ"
138
+ },
139
+ "localPosition": {
140
+ "x": 0,
141
+ "y": 0,
142
+ "z": 0
143
+ }
144
+ }
145
+ ]
146
+ ],
147
+ "renderables": [
148
+ [
149
+ "0e3a33bd-e3f4-49df-862d-4290218fd9fa",
150
+ {
151
+ "componentType": "Renderable",
152
+ "layerMask": 4,
153
+ "receiveShadows": true,
154
+ "castShadows": 1,
155
+ "culling": true,
156
+ "mesh": "a6c9d918-6103-4de7-a203-f22dbdaadd7b",
157
+ "material": "c1d019e1-cecb-401a-b98d-ff2710fce19f"
158
+ }
159
+ ],
160
+ [
161
+ "428e2b96-d25e-4b11-ab68-05c1afeb509b",
162
+ {
163
+ "componentType": "Renderable",
164
+ "mesh": "a6c9d918-6103-4de7-a203-f22dbdaadd7b",
165
+ "material": "9e738789-6704-40c2-9f77-74ea4cfa4eef",
166
+ "layerMask": 1,
167
+ "receiveShadows": true,
168
+ "castShadows": 1,
169
+ "culling": true
170
+ }
171
+ ]
172
+ ],
173
+ "grabbles": [
174
+ [
175
+ "428e2b96-d25e-4b11-ab68-05c1afeb509b",
176
+ {
177
+ "componentType": "Grabble",
178
+ "throwOnDetach": false,
179
+ "trackPosition": false,
180
+ "trackRotation": false,
181
+ "trackScale": false,
182
+ "attachEntity": "428e2b96-d25e-4b11-ab68-05c1afeb509b"
183
+ }
184
+ ]
185
+ ],
186
+ "rigidbodies": [
187
+ [
188
+ "428e2b96-d25e-4b11-ab68-05c1afeb509b",
189
+ {
190
+ "componentType": "Rigid Body",
191
+ "angularDamping": 2.307,
192
+ "isKinematic": true,
193
+ "linearDamping": 0.051,
194
+ "mass": 1.036,
195
+ "useGravity": true
196
+ }
197
+ ]
198
+ ],
199
+ "lights": [
200
+ [
201
+ "428e2b96-d25e-4b11-ab68-05c1afeb509b",
202
+ {
203
+ "componentType": "Light",
204
+ "color": {
205
+ "x": 0,
206
+ "y": 0,
207
+ "z": 0
208
+ },
209
+ "cullingMask": 1,
210
+ "intensity": 1,
211
+ "range": 10,
212
+ "shadows": 0,
213
+ "lightType": 0,
214
+ "spotAngle": 45,
215
+ "isSpotAngleDegree": true
216
+ }
217
+ ]
218
+ ],
219
+ "cameras": [
220
+ [
221
+ "428e2b96-d25e-4b11-ab68-05c1afeb509b",
222
+ {
223
+ "componentType": "Camera",
224
+ "cullingMask": 1,
225
+ "projectionType": 0,
226
+ "projectionFov": 60,
227
+ "projectionAspectRatio": 1.6,
228
+ "projectionNear": 0.1,
229
+ "projectionFar": 1000,
230
+ "renderTexture": "placeholder",
231
+ "orthoLeft": -1,
232
+ "orthoRight": 1,
233
+ "orthoBottom": -1,
234
+ "orthoTop": 1,
235
+ "orthoNear": 0.1,
236
+ "orthoFar": 1000
237
+ }
238
+ ]
239
+ ],
240
+ "colliders": [
241
+ [
242
+ "428e2b96-d25e-4b11-ab68-05c1afeb509b",
243
+ {
244
+ "componentType": "Collider",
245
+ "colliders": [
246
+ {
247
+ "isTrigger": false,
248
+ "colliderType": "Box",
249
+ "center": {
250
+ "x": 0,
251
+ "y": 0,
252
+ "z": 0
253
+ },
254
+ "size": {
255
+ "x": 1,
256
+ "y": 1,
257
+ "z": 1
258
+ }
259
+ },
260
+ {
261
+ "isTrigger": false,
262
+ "colliderType": "Sphere",
263
+ "center": {
264
+ "x": 0,
265
+ "y": 0,
266
+ "z": 0
267
+ },
268
+ "radius": 0.5
269
+ },
270
+ {
271
+ "isTrigger": false,
272
+ "colliderType": "Capsule",
273
+ "center": {
274
+ "x": 0,
275
+ "y": 0,
276
+ "z": 0
277
+ },
278
+ "height": 1,
279
+ "radius": 0.5
280
+ }
281
+ ]
282
+ }
283
+ ]
284
+ ]
285
+ },
286
+ "assetRecord": [
287
+ [
288
+ "8247af8e-45ee-40c6-96a9-85bdcbb27f3c",
289
+ "material-1757717539584.mat"
290
+ ],
291
+ [
292
+ "dcdbb664-b1a1-49cb-a24f-7a4733f8a2a2",
293
+ "material-1757717646383.mat"
294
+ ],
295
+ [
296
+ "845d0317-09d9-4842-85b0-2ce9c096f2d4",
297
+ "material-1757728421851.mat"
298
+ ],
299
+ [
300
+ "4d410ffb-7eca-4fcb-bde9-5666d97f3f85",
301
+ "rusk.glb-1757834350076/Body_1-1757834350078.mesh"
302
+ ],
303
+ [
304
+ "fd610f39-3cbc-4de5-82a3-ed0076f8e767",
305
+ "rusk.glb-1757834350076/Body_2-1757834350080.mesh"
306
+ ],
307
+ [
308
+ "bae3e17a-19ab-4164-90a4-9f082d9b8429",
309
+ "rusk.glb-1757834350076/body_2-1757834350082.mesh"
310
+ ],
311
+ [
312
+ "1c51b72f-9d8b-4f42-ac48-4d08ed6c4b52",
313
+ "rusk.glb-1757834350076/hair_1-1757834350083.mesh"
314
+ ],
315
+ [
316
+ "9d7606ef-aaa6-4613-9f23-9976e84b15a8",
317
+ "rusk.glb-1757834350076/hair_2-1757834350084.mesh"
318
+ ],
319
+ [
320
+ "4e83de96-dae6-4e38-b837-dcac3d3cc1f0",
321
+ "rusk.glb-1757834350076/hair_3-1757834350093.mesh"
322
+ ],
323
+ [
324
+ "a6c9d918-6103-4de7-a203-f22dbdaadd7b",
325
+ "rusk.glb-1757834350076/Hoodie-1757834350095.mesh"
326
+ ],
327
+ [
328
+ "d95eb57d-b238-44e1-8483-b53690e4941a",
329
+ "rusk.glb-1757834350076/kemomimi-1757834350095.mesh"
330
+ ],
331
+ [
332
+ "f1f12506-ff47-40ec-b4ed-730d26f2a4f1",
333
+ "rusk.glb-1757834350076/Vert002-1757834350096.mesh"
334
+ ],
335
+ [
336
+ "2426b3b0-2642-4173-91c1-3df0580ed9a7",
337
+ "rusk.glb-1757834350076/Vert002_1-1757834350096.mesh"
338
+ ],
339
+ [
340
+ "5cf64d2e-3815-4f44-963f-a57a7ae1490a",
341
+ "rusk.glb-1757834350076/sneakers-1757834350097.mesh"
342
+ ],
343
+ [
344
+ "0a2f3000-b7e4-4d0c-96a2-84927f781518",
345
+ "rusk.glb-1757834350076/tail-1757834350097.mesh"
346
+ ],
347
+ [
348
+ "f67f6d2b-a255-4021-a440-beb14f4882d7",
349
+ "rusk.glb-1757834350076/ベジエカーブ003-1757834350118.mesh"
350
+ ],
351
+ [
352
+ "597584ee-2ba1-41ae-9d48-a63f4a909976",
353
+ "rusk.glb-1757834350076/ベジエカーブ003_1-1757834350118.mesh"
354
+ ],
355
+ [
356
+ "60122149-8eca-46f7-8310-e07e2bacc63f",
357
+ "rusk.glb-1757834350076/Wild_Punk_Silver-1757834350317.mat"
358
+ ],
359
+ [
360
+ "7d80e0f9-6c87-407d-a2a3-4d21d5fb20b3",
361
+ "rusk.glb-1757834350076/Wellington_Lens-1757834350398.mat"
362
+ ],
363
+ [
364
+ "9e738789-6704-40c2-9f77-74ea4cfa4eef",
365
+ "rusk.glb-1757834350076/Rusk_Body-1757834350150.mat"
366
+ ],
367
+ [
368
+ "9993f5bf-649e-4728-a05f-bf5469ea5e39",
369
+ "rusk.glb-1757834350076/Rusk_Hair-1757834350322.mat"
370
+ ],
371
+ [
372
+ "a530d993-30d2-4226-8294-1be9ea8d1f6e",
373
+ "rusk.glb-1757834350076/Rusk_Face_Alpha-1757834350144.mat"
374
+ ],
375
+ [
376
+ "645472d3-98b3-4d06-b59c-c131d1e104e1",
377
+ "rusk.glb-1757834350076/Rusk_Hair_Transparent-1757834350163.mat"
378
+ ],
379
+ [
380
+ "bc7b3638-27ec-4a92-b480-5111177cda2e",
381
+ "rusk.glb-1757834350076/Rusk_Costume-1757834350183.mat"
382
+ ],
383
+ [
384
+ "682e24fc-b395-4ac5-9ce1-f35d4fd7d197",
385
+ "rusk.glb-1757834350076/Rusk_Face-1757834350119.mat"
386
+ ],
387
+ [
388
+ "fa5c9dfa-1b24-43d5-a85f-cb26d22c63a5",
389
+ "rusk.glb-1757834350076/Wellington_Frame-1757834350327.mat"
390
+ ],
391
+ [
392
+ "c1d019e1-cecb-401a-b98d-ff2710fce19f",
393
+ "rusk.glb-1757834350076/hoodie-1757834350194.mat"
394
+ ],
395
+ [
396
+ "34c0cd07-9822-4b8a-85ae-25a426eea612",
397
+ "rusk.glb-1757834350076/Wild_Punk_Pants-1757834350208.mat"
398
+ ],
399
+ [
400
+ "c2d2bbb1-b049-4dce-80c1-fb30bcf6d524",
401
+ "rusk.glb-1757834350076/Rusk_Body_BaseMap-1757834350150.tex"
402
+ ],
403
+ [
404
+ "64802c03-9580-4488-a66f-77666c25e884",
405
+ "rusk.glb-1757834350076/Rusk_Hair_BaseMap-1757834350323.tex"
406
+ ],
407
+ [
408
+ "58ace0e7-7b9f-4339-ae33-c9b0ba177301",
409
+ "rusk.glb-1757834350076/Rusk_Face_Alpha_BaseMap-1757834350144.tex"
410
+ ],
411
+ [
412
+ "9c94b08b-724b-4e30-8186-86494a096988",
413
+ "rusk.glb-1757834350076/Rusk_Hair_Transparent_BaseMap-1757834350163.tex"
414
+ ],
415
+ [
416
+ "4b9e9538-1940-43c3-8a78-675d22437e23",
417
+ "rusk.glb-1757834350076/Rusk_Costume_BaseMap-1757834350184.tex"
418
+ ],
419
+ [
420
+ "12cd004c-2a85-47e9-8235-7e8e9f41f82b",
421
+ "rusk.glb-1757834350076/hoodie_BaseMap-1757834350198.tex"
422
+ ],
423
+ [
424
+ "3cafb2e6-4096-4ee7-8455-282d7667f5d0",
425
+ "rusk.glb-1757834350076/Rusk_Face_BaseMap-1757834350119.tex"
426
+ ],
427
+ [
428
+ "4cee5771-bc7d-484d-a4e7-9705123927a6",
429
+ "rusk.glb-1757834350076/Rusk_Face_Emissive-1757834351693.tex"
430
+ ],
431
+ [
432
+ "78e3dcdf-0ab7-4f47-9dc6-b20c29d0fc82",
433
+ "rusk.glb-1757834350076/Wellington_Frame_BaseMap-1757834350327.tex"
434
+ ],
435
+ [
436
+ "29326cf2-4460-4541-920e-375ff8f8c535",
437
+ "rusk.glb-1757834350076/Wild_Punk_Pants_BaseMap-1757834350209.tex"
438
+ ],
439
+ [
440
+ "7e5324d1-3993-4371-9291-d42b1a34e6d3",
441
+ "rusk.glb-1757834350076/Wellington_Frame_Normal-1757834351912.tex"
442
+ ],
443
+ [
444
+ "0e7e0787-b8af-4a77-abec-e2102d714322",
445
+ "rusk.glb-1757834350076/hoodie_Normal-1757834351205.tex"
446
+ ],
447
+ [
448
+ "b79737af-c0e5-4d85-890d-ec128b3528ac",
449
+ "rusk.glb-1757834350076/Wild_Punk_Pants_Normal-1757834352627.tex"
450
+ ]
451
+ ],
452
+ "settings": {
453
+ "toneMapping": "ACES",
454
+ "exposure": 1,
455
+ "units": "meter"
456
+ }
457
+ }
package/rusk.glb ADDED
Binary file
@@ -0,0 +1,30 @@
1
+ import { Device } from "@adamas/device";
2
+
3
+ export const logDevice = () => {
4
+ function logXRDeviceData() {
5
+ console.log("GetLeftPosition() ", Device.GetLeftPosition());
6
+ console.log("GetLeftRotation() ", Device.GetLeftRotation());
7
+ console.log("GetLeftThumbstick() ", Device.GetLeftThumbstick());
8
+ console.log("GetLeftSelect() ", Device.GetLeftSelect());
9
+ console.log("GetLeftActivate() ", Device.GetLeftActivate());
10
+ console.log("GetLeftTurn() ", Device.GetLeftTurn());
11
+ console.log("GetLeftSnapTurn() ", Device.GetLeftSnapTurn());
12
+ console.log("GetLeftMove() ", Device.GetLeftMove());
13
+ console.log("GetLeftGrabMove() ", Device.GetLeftGrabMove());
14
+ console.log("GetRightPosition() ", Device.GetRightPosition());
15
+ console.log("GetRightRotation() ", Device.GetRightRotation());
16
+ console.log("GetRightThumbstick () ", Device.GetRightThumbstick());
17
+ console.log("GetRightSelect() ", Device.GetRightSelect());
18
+ console.log("GetRightActivate() ", Device.GetRightActivate());
19
+ console.log("GetRightTurn() ", Device.GetRightTurn());
20
+ console.log("GetRightSnapTurn() ", Device.GetRightSnapTurn());
21
+ console.log("GetRightMove() ", Device.GetRightMove());
22
+ console.log("GetRightGrabMove() ", Device.GetRightGrabMove());
23
+ console.log("GetHeadPosition() ", Device.GetHeadPosition());
24
+ console.log("GetHeadRotation() ", Device.GetHeadRotation());
25
+ }
26
+
27
+ setInterval(() => {
28
+ logXRDeviceData();
29
+ }, 3000);
30
+ };
@@ -0,0 +1,134 @@
1
+ import { EntityManager } from "@adamas/entity";
2
+ import { GrabInteractableManager } from "@adamas/interaction/interaction";
3
+ import { StateSync } from "@adamas/networking/state-sync";
4
+ import {
5
+ MaterialManager,
6
+ ShaderProperties,
7
+ ShaderType,
8
+ } from "@adamas/render/material";
9
+ import { NewCubeMesh } from "@adamas/render/primitives";
10
+ import { RenderableManager } from "@adamas/render/renderable";
11
+ import { TransformManager } from "@adamas/render/transform";
12
+ import { quat, vec3, vec4 } from "gl-matrix";
13
+
14
+ export const createLocalGrabble = () => {
15
+ const entity = EntityManager.Create("network interactable");
16
+ TransformManager.SetLocalPosition(entity, vec3.fromValues(0, 3, 0));
17
+ const grabComp = GrabInteractableManager.Create(entity);
18
+ const renderComp = RenderableManager.Create(entity);
19
+ RenderableManager.SetMesh(entity, NewCubeMesh());
20
+ const material = MaterialManager.Create(ShaderType.URP_LIT);
21
+ RenderableManager.SetMaterial(entity, material);
22
+ MaterialManager.SetColor(
23
+ material,
24
+ ShaderProperties.BaseColor,
25
+ vec4.fromValues(0.2, 1.0, 0.2, 1.0),
26
+ );
27
+
28
+ GrabInteractableManager.AddActivatedCallback(
29
+ entity,
30
+ (interactableEntity, interactorEntity) => {
31
+ console.log(
32
+ "AddActivatedCallback called",
33
+ "interactableEntity",
34
+ interactableEntity,
35
+ "interactorEntity",
36
+ interactorEntity,
37
+ );
38
+ },
39
+ );
40
+
41
+ GrabInteractableManager.AddDeactivatedCallback(
42
+ entity,
43
+ (interactableEntity, interactorEntity) => {
44
+ console.log(
45
+ "AddDeactivatedCallback called",
46
+ "interactableEntity",
47
+ interactableEntity,
48
+ "interactorEntity",
49
+ interactorEntity,
50
+ );
51
+ },
52
+ );
53
+ GrabInteractableManager.AddSelectEnteredCallback(
54
+ entity,
55
+ (interactableEntity, interactorEntity) => {
56
+ console.log(
57
+ "AddSelectEnteredCallback called",
58
+ "interactableEntity",
59
+ interactableEntity,
60
+ "interactorEntity",
61
+ interactorEntity,
62
+ );
63
+ },
64
+ );
65
+ GrabInteractableManager.AddSelectExitedCallback(
66
+ entity,
67
+ (interactableEntity, interactorEntity) => {
68
+ console.log(
69
+ "AddSelectExitedCallback called",
70
+ "interactableEntity",
71
+ interactableEntity,
72
+ "interactorEntity",
73
+ interactorEntity,
74
+ );
75
+ },
76
+ );
77
+ };
78
+
79
+ export const createNetworkGrabble = () => {
80
+ const entity = EntityManager.Create("network interactable");
81
+ TransformManager.SetLocalPosition(entity, vec3.fromValues(0, 3, 0));
82
+ const grabComp = GrabInteractableManager.Create(entity);
83
+ const renderComp = RenderableManager.Create(entity);
84
+ RenderableManager.SetMesh(entity, NewCubeMesh());
85
+ const material = MaterialManager.Create(ShaderType.URP_LIT);
86
+ RenderableManager.SetMaterial(entity, material);
87
+ MaterialManager.SetColor(
88
+ material,
89
+ ShaderProperties.BaseColor,
90
+ vec4.fromValues(0.2, 1.0, 0.2, 1.0),
91
+ );
92
+
93
+ const playerId = StateSync.GetPlayerId();
94
+ let networkProp = StateSync.CreateNetworkState(
95
+ "_internal::networkFollower",
96
+ {
97
+ grabbingClient: -1,
98
+ position: vec3.fromValues(0, 0, 0),
99
+ rotation: quat.identity(quat.fromValues(1, 0, 0, 0)),
100
+ time: "",
101
+ },
102
+ (prop, value) => {
103
+ if (networkProp.grabbingClient != playerId) {
104
+ console.log(`prop: ${prop}; value: ${value}`);
105
+ TransformManager.SetLocalPosition(entity, networkProp.position);
106
+ TransformManager.SetLocalRotation(entity, networkProp.rotation);
107
+ }
108
+ },
109
+ );
110
+
111
+ GrabInteractableManager.AddSelectEnteredCallback(
112
+ entity,
113
+ (interactable, interactor) => {
114
+ networkProp.grabbingClient = playerId;
115
+ },
116
+ );
117
+
118
+ GrabInteractableManager.AddSelectExitedCallback(
119
+ entity,
120
+ (interactable, interactor) => {
121
+ if (networkProp.grabbingClient == playerId) {
122
+ networkProp.grabbingClient = -1;
123
+ }
124
+ },
125
+ );
126
+
127
+ setInterval(() => {
128
+ if (networkProp.grabbingClient == playerId) {
129
+ networkProp.position = TransformManager.GetLocalPosition(entity);
130
+ networkProp.rotation = TransformManager.GetLocalRotation(entity);
131
+ networkProp.time = new Date().toISOString();
132
+ }
133
+ }, 200);
134
+ };
@@ -0,0 +1,39 @@
1
+ import { Entity, EntityManager } from "@adamas/entity";
2
+ import { ColliderManager, ColliderHandle } from "@adamas/physics/collider";
3
+ import { RigidbodyManager } from "@adamas/physics/rigidbody";
4
+ import {
5
+ MaterialManager,
6
+ ShaderProperties,
7
+ ShaderType,
8
+ } from "@adamas/render/material";
9
+ import { NewCubeMesh } from "@adamas/render/primitives";
10
+ import { RenderableManager } from "@adamas/render/renderable";
11
+ import { TransformManager } from "@adamas/render/transform";
12
+ import { quat, vec3, vec4 } from "gl-matrix";
13
+
14
+ export const createColliders = () => {
15
+ const entity = EntityManager.Create("Box collider test");
16
+ TransformManager.SetLocalPosition(entity, vec3.fromValues(0, 2, 0));
17
+
18
+ RenderableManager.Create(entity);
19
+ RenderableManager.SetMesh(entity, NewCubeMesh());
20
+ const material = MaterialManager.Create(ShaderType.URP_LIT);
21
+ RenderableManager.SetMaterial(entity, material);
22
+ MaterialManager.SetColor(
23
+ material,
24
+ ShaderProperties.BaseColor,
25
+ vec4.fromValues(0.2, 0.6, 0.6, 1.0),
26
+ );
27
+
28
+ const collider: ColliderHandle = ColliderManager.CreateCapsule(entity);
29
+ RigidbodyManager.Create(entity);
30
+ RigidbodyManager.SetIsKinematic(entity, true);
31
+ RigidbodyManager.SetUseGravity(entity, false);
32
+
33
+ setInterval(() => {
34
+ const center = ColliderManager.GetCapsuleColliderCenter(collider);
35
+ console.log("GetcolliderCenter", center);
36
+ center[1] += 1.4;
37
+ ColliderManager.SetCapsuleColliderCenter(collider, center);
38
+ }, 3000);
39
+ };