connected-spaces-platform.web 6.1.0 → 6.3.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.
@@ -422,13 +422,21 @@ export declare namespace Multiplayer {
422
422
  }
423
423
  export declare namespace Multiplayer {
424
424
  /**
425
- * @description Enum used to specify the the type of a space entity
426
- * /// Note that this specifically starts from 1 as 0 is reserved for internal purposes.
427
- * Any additions should not use 0.
425
+ * @description Enum used to specify what part of a SpaceEntity was updated when deserialising.
426
+ * Use this to determine which parts of an entity to copy values from when an update occurs.
427
+ * It is a bitwise flag enum, so values are additive, the value may represent several flags.
428
428
  */
429
- enum SpaceEntityType {
430
- Avatar = 1,
431
- Object = 2
429
+ enum SpaceEntityUpdateFlags {
430
+ UPDATE_FLAGS_NAME = 1,
431
+ UPDATE_FLAGS_POSITION = 2,
432
+ UPDATE_FLAGS_ROTATION = 4,
433
+ UPDATE_FLAGS_SCALE = 8,
434
+ UPDATE_FLAGS_COMPONENTS = 16,
435
+ UPDATE_FLAGS_SELECTION_ID = 32,
436
+ UPDATE_FLAGS_THIRD_PARTY_REF = 64,
437
+ UPDATE_FLAGS_THIRD_PARTY_PLATFORM = 128,
438
+ UPDATE_FLAGS_PARENT = 256,
439
+ UPDATE_FLAGS_LOCK_TYPE = 512
432
440
  }
433
441
  }
434
442
  export declare namespace Multiplayer {
@@ -449,21 +457,13 @@ export declare namespace Multiplayer {
449
457
  }
450
458
  export declare namespace Multiplayer {
451
459
  /**
452
- * @description Enum used to specify what part of a SpaceEntity was updated when deserialising.
453
- * Use this to determine which parts of an entity to copy values from when an update occurs.
454
- * It is a bitwise flag enum, so values are additive, the value may represent several flags.
460
+ * @description Enum used to specify the the type of a space entity
461
+ * /// Note that this specifically starts from 1 as 0 is reserved for internal purposes.
462
+ * Any additions should not use 0.
455
463
  */
456
- enum SpaceEntityUpdateFlags {
457
- UPDATE_FLAGS_NAME = 1,
458
- UPDATE_FLAGS_POSITION = 2,
459
- UPDATE_FLAGS_ROTATION = 4,
460
- UPDATE_FLAGS_SCALE = 8,
461
- UPDATE_FLAGS_COMPONENTS = 16,
462
- UPDATE_FLAGS_SELECTION_ID = 32,
463
- UPDATE_FLAGS_THIRD_PARTY_REF = 64,
464
- UPDATE_FLAGS_THIRD_PARTY_PLATFORM = 128,
465
- UPDATE_FLAGS_PARENT = 256,
466
- UPDATE_FLAGS_LOCK_TYPE = 512
464
+ enum SpaceEntityType {
465
+ Avatar = 1,
466
+ Object = 2
467
467
  }
468
468
  }
469
469
  export declare namespace Multiplayer {
@@ -507,7 +507,10 @@ export declare namespace Multiplayer {
507
507
  ThirdPartyComponentRef = 12,
508
508
  IsShadowCaster = 13,
509
509
  MaterialOverrides = 14,
510
- Num = 15
510
+ IsVirtualVisible = 15,
511
+ ShowAsHoldoutInAR = 16,
512
+ ShowAsHoldoutInVirtual = 17,
513
+ Num = 18
511
514
  }
512
515
  }
513
516
  export declare namespace Multiplayer {
@@ -582,7 +585,8 @@ export declare namespace Multiplayer {
582
585
  LocomotionModel = 14,
583
586
  IsVisible = 15,
584
587
  IsARVisible = 16,
585
- Num = 17
588
+ IsVirtualVisible = 17,
589
+ Num = 18
586
590
  }
587
591
  }
588
592
  export declare namespace Multiplayer {
@@ -607,7 +611,8 @@ export declare namespace Multiplayer {
607
611
  IsVisible = 7,
608
612
  IsEnabled = 8,
609
613
  IsARVisible = 9,
610
- Num = 10
614
+ IsVirtualVisible = 10,
615
+ Num = 11
611
616
  }
612
617
  }
613
618
  export declare namespace Multiplayer {
@@ -729,7 +734,8 @@ export declare namespace Multiplayer {
729
734
  IsEnabled = 6,
730
735
  IsVisible = 7,
731
736
  IsARVisible = 8,
732
- Num = 9
737
+ IsVirtualVisible = 9,
738
+ Num = 10
733
739
  }
734
740
  }
735
741
  export declare namespace Multiplayer {
@@ -745,7 +751,8 @@ export declare namespace Multiplayer {
745
751
  Scale = 5,
746
752
  IsVisible = 6,
747
753
  IsARVisible = 7,
748
- Num = 8
754
+ IsVirtualVisible = 8,
755
+ Num = 9
749
756
  }
750
757
  }
751
758
  export declare namespace Multiplayer {
@@ -767,7 +774,8 @@ export declare namespace Multiplayer {
767
774
  IsVisible = 11,
768
775
  IsARVisible = 12,
769
776
  ThirdPartyComponentRef = 13,
770
- Num = 14
777
+ IsVirtualVisible = 14,
778
+ Num = 15
771
779
  }
772
780
  }
773
781
  export declare namespace Multiplayer {
@@ -795,7 +803,8 @@ export declare namespace Multiplayer {
795
803
  IsARVisible = 7,
796
804
  IsShadowCaster = 8,
797
805
  Tint = 9,
798
- Num = 10
806
+ IsVirtualVisible = 10,
807
+ Num = 11
799
808
  }
800
809
  }
801
810
  export declare namespace Multiplayer {
@@ -810,7 +819,8 @@ export declare namespace Multiplayer {
810
819
  IsSpawnPoint = 4,
811
820
  IsVisible = 5,
812
821
  IsARVisible = 6,
813
- Num = 7
822
+ IsVirtualVisible = 7,
823
+ Num = 8
814
824
  }
815
825
  }
816
826
  export declare namespace Multiplayer {
@@ -829,7 +839,8 @@ export declare namespace Multiplayer {
829
839
  DisplayMode = 8,
830
840
  IsARVisible = 9,
831
841
  IsEmissive = 10,
832
- Num = 11
842
+ IsVirtualVisible = 11,
843
+ Num = 12
833
844
  }
834
845
  }
835
846
  export declare namespace Multiplayer {
@@ -895,7 +906,8 @@ export declare namespace Multiplayer {
895
906
  IsARVisible = 13,
896
907
  ThirdPartyComponentRef = 14,
897
908
  LightShadowType = 15,
898
- Num = 16
909
+ IsVirtualVisible = 16,
910
+ Num = 17
899
911
  }
900
912
  }
901
913
  export declare namespace Multiplayer {
@@ -954,7 +966,8 @@ export declare namespace Multiplayer {
954
966
  DefaultImageCollectionId = 7,
955
967
  DefaultImageAssetId = 8,
956
968
  AttenuationRadius = 9,
957
- Num = 10
969
+ IsVirtualVisible = 10,
970
+ Num = 11
958
971
  }
959
972
  }
960
973
  export declare namespace Multiplayer {
@@ -1003,7 +1016,10 @@ export declare namespace Multiplayer {
1003
1016
  ThirdPartyComponentRef = 8,
1004
1017
  IsShadowCaster = 9,
1005
1018
  MaterialOverrides = 10,
1006
- Num = 11
1019
+ IsVirtualVisible = 11,
1020
+ ShowAsHoldoutInAR = 12,
1021
+ ShowAsHoldoutInVirtual = 13,
1022
+ Num = 14
1007
1023
  }
1008
1024
  }
1009
1025
  export declare namespace Multiplayer {
@@ -1023,7 +1039,8 @@ export declare namespace Multiplayer {
1023
1039
  BillboardMode = 9,
1024
1040
  IsVisible = 10,
1025
1041
  IsARVisible = 11,
1026
- Num = 12
1042
+ IsVirtualVisible = 12,
1043
+ Num = 13
1027
1044
  }
1028
1045
  }
1029
1046
  export declare namespace Multiplayer {
@@ -1083,7 +1100,8 @@ export declare namespace Multiplayer {
1083
1100
  IsARVisible = 17,
1084
1101
  MeshComponentId = 18,
1085
1102
  IsEnabled = 19,
1086
- Num = 20
1103
+ IsVirtualVisible = 20,
1104
+ Num = 21
1087
1105
  }
1088
1106
  }
1089
1107
  export declare namespace Multiplayer {
@@ -1378,6 +1396,40 @@ export declare namespace Multiplayer {
1378
1396
  setPosition: (value: Common.Vector3) => void;
1379
1397
  }
1380
1398
  }
1399
+ export declare namespace Multiplayer {
1400
+ /**
1401
+ * @description Controls rendering behavior properties, such as a holdout state related to display modes, for a component.
1402
+ */
1403
+ interface IRenderBehaviourComponent {
1404
+ /**
1405
+ @defgroup HoldoutConcept Holdouts and Data Access
1406
+ * A holdout is an object that is rendered as a mask, cutting it out from the final image.
1407
+ * It still participates in depth testing, allowing objects to move behind it, but does not contribute pixels to the final image.
1408
+ * @description Checks if the component is shown as holdout when in AR mode.
1409
+ * @return True if the component is shown as holdout when in AR mode, false otherwise.
1410
+ * /// @see HoldoutConcept
1411
+ */
1412
+ getShowAsHoldoutInAR: () => boolean;
1413
+ /**
1414
+ * @description Sets if the component is shown as holdout in AR mode.
1415
+ * @param inValue - True if the component is shown as holdout in AR mode, false otherwise.
1416
+ * /// @see HoldoutConcept
1417
+ */
1418
+ setShowAsHoldoutInAR: (value: boolean) => void;
1419
+ /**
1420
+ * @description Checks if the component is shown as holdout when in Virtual mode.
1421
+ * @return True if the component is shown as holdout when in Virtual mode, false otherwise.
1422
+ * /// @see HoldoutConcept
1423
+ */
1424
+ getShowAsHoldoutInVirtual: () => boolean;
1425
+ /**
1426
+ * @description Sets if the component is shown as holdout in Virtual mode.
1427
+ * @param inValue - True if the component is shown as holdout in Virtual mode, false otherwise.
1428
+ * /// @see HoldoutConcept
1429
+ */
1430
+ setShowAsHoldoutInVirtual: (value: boolean) => void;
1431
+ }
1432
+ }
1381
1433
  export declare namespace Multiplayer {
1382
1434
  /**
1383
1435
  * @description Controls the 3D rotation of the component.
@@ -1494,7 +1546,7 @@ export declare namespace Multiplayer {
1494
1546
  }
1495
1547
  export declare namespace Multiplayer {
1496
1548
  /**
1497
- * @description Controls the visibility of the component when in default mode or in AR mode.
1549
+ * @description Controls the visibility of the component when in default mode, AR mode or Virtual mode.
1498
1550
  */
1499
1551
  interface IVisibleComponent {
1500
1552
  /**
@@ -1517,6 +1569,16 @@ export declare namespace Multiplayer {
1517
1569
  * @param inValue - True if the component is visible in AR mode, false otherwise.
1518
1570
  */
1519
1571
  setIsARVisible: (value: boolean) => void;
1572
+ /**
1573
+ * @description Checks if the component is visible when in Virtual mode.
1574
+ * @return True if the component is visible when in Virtual mode, false otherwise.
1575
+ */
1576
+ getIsVirtualVisible: () => boolean;
1577
+ /**
1578
+ * @description Sets if the component is visible in Virtual mode.
1579
+ * @param inValue - True if the component is visible in Virtual mode, false otherwise.
1580
+ */
1581
+ setIsVirtualVisible: (value: boolean) => void;
1520
1582
  }
1521
1583
  }
1522
1584
  export declare namespace Systems {
@@ -1614,11 +1676,12 @@ export declare class CSPFoundation {
1614
1676
  * @description Sets the endpoints for the various services needed for foundation, passes over the client header information and initialises the
1615
1677
  * systems required for foundation to operate.
1616
1678
  * @param endpointRootURI - Root URI for service endpoints
1617
- * @param tenant - Tenant for Magnopus Services. Data is not shared between tenants so clients using separate tenants cannot
1618
- * interact with each other.
1679
+ * @param tenant - Tenant for Magnopus Services. Data is not shared between tenants so clients using separate tenants
1680
+ * cannot interact with each other.
1681
+ * @param clientUserAgentHeader - The Client Info data
1619
1682
  * @return True for successful initialisation.
1620
1683
  */
1621
- static initialise(endpointRootURI: string, tenant: string): boolean;
1684
+ static initialise(endpointRootURI: string, tenant: string, clientUserAgentHeader: ClientUserAgent): boolean;
1622
1685
  /**
1623
1686
  * @description This should be used at the end of the application lifecycle.
1624
1687
  * Clears event queues and destroys foundation systems.
@@ -1670,12 +1733,6 @@ export declare class CSPFoundation {
1670
1733
  * @return EndpointURIs class with deduced endpoint URIs.
1671
1734
  */
1672
1735
  static createEndpointsFromRoot(endpointRootURI: string): EndpointURIs;
1673
- /**
1674
- * @description Sets a class containing all relevant Client info currently set for Foundation.
1675
- * Used internally to generate ClientUserAgentString.
1676
- * @param the - Client Info class with current Client Info data
1677
- */
1678
- static setClientUserAgentInfo(clientUserAgentHeader: ClientUserAgent): void;
1679
1736
  /**
1680
1737
  * @description Gets a class containing all relevant Client info currently set for Foundation.
1681
1738
  * @return The Client Info class with current Client Info data
@@ -1689,7 +1746,7 @@ export declare class CSPFoundation {
1689
1746
  static getClientUserAgentString(): string;
1690
1747
  /**
1691
1748
  * @description Gets the tenant that foundation is currently using, based on what was provided during initialisation.
1692
- * @return Csp::common::string&
1749
+ * @return Const csp::common::string&
1693
1750
  */
1694
1751
  static getTenant(): string;
1695
1752
  }
@@ -3863,21 +3920,12 @@ export declare namespace Common {
3863
3920
  * which will provide a non-owning pointer to the new SpaceEntity so that it can be used on the local client.
3864
3921
  */
3865
3922
  createEntity(name: string, spaceTransform: Multiplayer.SpaceTransform, parentID: bigint | null): Promise<Multiplayer.SpaceEntity>;
3866
- addEntity(entityToAdd: Multiplayer.SpaceEntity): void;
3867
3923
  /**
3868
3924
  * @description Destroy the specified entity.
3869
3925
  * @param entity - A non-owning pointer to the entity to be destroyed.
3870
3926
  * @param callback - A callback that executes when the entity destruction is complete.
3871
3927
  */
3872
3928
  destroyEntity(entity: Multiplayer.SpaceEntity): Promise<boolean>;
3873
- /**
3874
- * @description Sets a callback to be executed when an entity is fully created.
3875
- * /// Only one EntityCreatedCallback may be registered, calling this function again will override whatever was previously set.
3876
- * The better way to set this and avoid initialisation race conditions is via passing this in the constructor, only use this if you wish to
3877
- * override or remove this callback.
3878
- * /// @param Callback csp::multiplayer::EntityCreatedCallback : the callback to execute.
3879
- */
3880
- setEntityCreatedCallback(callback: (arg1: Multiplayer.SpaceEntity) => void): void;
3881
3929
  /**
3882
3930
  * @description Finds the first found SpaceEntity of a matching Name.
3883
3931
  * @param name - The name to search.
@@ -3920,6 +3968,12 @@ export declare namespace Common {
3920
3968
  * @return A non-owning pointer to the object entity with the given index.
3921
3969
  */
3922
3970
  getObjectByIndex(objectIndex: number): Multiplayer.SpaceEntity;
3971
+ /**
3972
+ * @description Return all the entities currently known to the realtime engine.
3973
+ @warning This list may be extremely large.
3974
+ * @return A non-owning pointer to a List of non-owning pointers to all entities.
3975
+ */
3976
+ getAllEntities(): Common.List<Multiplayer.SpaceEntity>;
3923
3977
  /**
3924
3978
  * @description Get the number of total entities in the system.
3925
3979
  * @return The total number of entities.
@@ -3949,16 +4003,6 @@ export declare namespace Common {
3949
4003
  * entity fetch
3950
4004
  */
3951
4005
  setEntityFetchCompleteCallback(callback: (arg1: number) => void): void;
3952
- /**
3953
- * @description Adds an entity to a list of entities to be updated when ProcessPendingEntityOperations is called.
3954
- * From a client perspective, ProcessPendingEntityOperations is normally called via the CSPFoundation::Tick method.
3955
- * @param entity - A non-owning pointer to the entity to be marked.
3956
- */
3957
- markEntityForUpdate(entity: Multiplayer.SpaceEntity): void;
3958
- /**
3959
- * @description Applies any pending changes to entities that have been marked for update.
3960
- */
3961
- processPendingEntityOperations(): void;
3962
4006
  }
3963
4007
  }
3964
4008
  export declare namespace Common {
@@ -4037,6 +4081,7 @@ export declare namespace Multiplayer {
4037
4081
  class ComponentBase extends NativeClassWrapper implements INativeResource {
4038
4082
  /** @internal */
4039
4083
  constructor(pointer: NativePointer);
4084
+ static create_type_logSystem_parent(type: Multiplayer.ComponentType, logSystem: Common.LogSystem, parent: Multiplayer.SpaceEntity): ComponentBase;
4040
4085
  /**
4041
4086
  * @description Virtual destructor for the component.
4042
4087
  */
@@ -4107,14 +4152,10 @@ export declare namespace Multiplayer {
4107
4152
  /**
4108
4153
  * @description Constructor for CSPSceneDescription by deserializing a SceneDescription json file.
4109
4154
  * @param sceneDescriptionJson - The SceneDescription to deserialize.
4110
- * @param entitySystem - The OnlineRealtimeEngine for this session.
4111
- * @param logSystem - The OnlineRealtimeEngine for this session.
4112
- * @param remoteScriptRunner - The ScriptRunner for this session.
4113
4155
  */
4114
- static create_sceneDescriptionJson_entitySystem_logSystem_remoteScriptRunner(sceneDescriptionJson: string, entitySystem: Multiplayer.OnlineRealtimeEngine, logSystem: Common.LogSystem, remoteScriptRunner: Common.IJSScriptRunner): CSPSceneDescription;
4156
+ static create_sceneDescriptionJson(sceneDescriptionJson: string): CSPSceneDescription;
4157
+ static create(): CSPSceneDescription;
4115
4158
  delete(): void;
4116
- get entities(): Common.Array<Multiplayer.SpaceEntity>;
4117
- set entities(value: Common.Array<Multiplayer.SpaceEntity>);
4118
4159
  }
4119
4160
  }
4120
4161
  export declare namespace Multiplayer {
@@ -4279,13 +4320,13 @@ export declare namespace Multiplayer {
4279
4320
  /**
4280
4321
  * @description Creates a SpaceEntity instance using the space entity system provided.
4281
4322
  */
4282
- static create_entitySystem_scriptRunner_logSystem(entitySystem: Multiplayer.OnlineRealtimeEngine, scriptRunner: Common.IJSScriptRunner, logSystem: Common.LogSystem): SpaceEntity;
4323
+ static create_entitySystem_scriptRunner_logSystem(entitySystem: Common.IRealtimeEngine, scriptRunner: Common.IJSScriptRunner, logSystem: Common.LogSystem): SpaceEntity;
4283
4324
  /**
4284
4325
  * @description Destroys the SpaceEntity instance.
4285
4326
  */
4286
4327
  delete(): void;
4287
4328
  /**
4288
- * @description Get the ID of this SpaceEntity, this is generated by the endpoints and should be unique to each Entity.
4329
+ * @description Get the ID of this SpaceEntity, this should be unique to each Entity.
4289
4330
  * @return The uint64_t ID of the SpaceEntity.
4290
4331
  */
4291
4332
  getId(): bigint;
@@ -4303,8 +4344,9 @@ export declare namespace Multiplayer {
4303
4344
  /**
4304
4345
  * @description Set the name of the SpaceEntity.
4305
4346
  * @param value - The name to set.
4347
+ * @return Whether a new value was set, may fail if not modifiable, or if a dirty property is already set to this value.
4306
4348
  */
4307
- setName(value: string): void;
4349
+ setName(value: string): boolean;
4308
4350
  /**
4309
4351
  * @description Get the SpaceTransform of the SpaceEntity.
4310
4352
  * @return SpaceTransform.
@@ -4328,8 +4370,9 @@ export declare namespace Multiplayer {
4328
4370
  /**
4329
4371
  * @description Set the position of the SpaceEntity, in world space.
4330
4372
  * @param value - The position to set.
4373
+ * @return Whether a new value was set, may fail if not modifiable, or if a dirty property is already set to this value.
4331
4374
  */
4332
- setPosition(value: Common.Vector3): void;
4375
+ setPosition(value: Common.Vector3): boolean;
4333
4376
  /**
4334
4377
  * @description Get the rotation of the SpaceEntity.
4335
4378
  * @return Rotation.
@@ -4343,8 +4386,9 @@ export declare namespace Multiplayer {
4343
4386
  /**
4344
4387
  * @description Set the rotation of the SpaceEntity.
4345
4388
  * @param value - The rotation to set.
4389
+ * @return Whether a new value was set, may fail if not modifiable, or if a dirty property is already set to this value.
4346
4390
  */
4347
- setRotation(value: Common.Vector4): void;
4391
+ setRotation(value: Common.Vector4): boolean;
4348
4392
  /**
4349
4393
  * @description Get the scale of the SpaceEntity.
4350
4394
  * @return Scale.
@@ -4358,8 +4402,9 @@ export declare namespace Multiplayer {
4358
4402
  /**
4359
4403
  * @description Set the scale of the SpaceEntity.
4360
4404
  * @param value - The scale to set.
4405
+ * @return Whether a new value was set, may fail if not modifiable, or if a dirty property is already set to this value.
4361
4406
  */
4362
- setScale(value: Common.Vector3): void;
4407
+ setScale(value: Common.Vector3): boolean;
4363
4408
  /**
4364
4409
  * @description Get whether the space is transient or persistent.
4365
4410
  * @return Returns true if the space is transient and false if it is marked as persistent.
@@ -4373,8 +4418,9 @@ export declare namespace Multiplayer {
4373
4418
  /**
4374
4419
  * @description Set the third party reference for this entity
4375
4420
  * @param inThirdPartyRef - The third party reference to set.
4421
+ * @return Whether a new value was set, may fail if not modifiable, or if a dirty property is already set to this value.
4376
4422
  */
4377
- setThirdPartyRef(thirdPartyRef: string): void;
4423
+ setThirdPartyRef(thirdPartyRef: string): boolean;
4378
4424
  /**
4379
4425
  * @description Get the third party platform type of this entity.
4380
4426
  * @return A string representing third party platform type set for this entity.
@@ -4383,8 +4429,9 @@ export declare namespace Multiplayer {
4383
4429
  /**
4384
4430
  * @description Set third party platform type for this entity.
4385
4431
  * @param inThirdPartyPlatformType - The third party platform type to set.
4432
+ * @return Whether a new value was set, may fail if not modifiable, or if a dirty property is already set to this value.
4386
4433
  */
4387
- setThirdPartyPlatformType(thirdPartyPlatformType: Systems.EThirdPartyPlatform): void;
4434
+ setThirdPartyPlatformType(thirdPartyPlatformType: Systems.EThirdPartyPlatform): boolean;
4388
4435
  /**
4389
4436
  * @description Get the type of the Entity.
4390
4437
  * @return The SpaceEntityType enum value.
@@ -4403,7 +4450,7 @@ export declare namespace Multiplayer {
4403
4450
  removeParentEntity(): void;
4404
4451
  /**
4405
4452
  * @description Gets the parent of this entity
4406
- * @return SpaceEntity
4453
+ * @return Non-owning pointer to the parent of this entity. May be null.
4407
4454
  */
4408
4455
  getParentEntity(): Multiplayer.SpaceEntity;
4409
4456
  /**
@@ -4419,10 +4466,6 @@ export declare namespace Multiplayer {
4419
4466
  * @return Csp::common::list&lt;spaceentity&gt;
4420
4467
  */
4421
4468
  getChildEntities(): Common.List<Multiplayer.SpaceEntity>;
4422
- /**
4423
- * @description Queues an update which will be executed on next Tick() or ProcessPendingEntityOperations(). Not a blocking or async function.
4424
- */
4425
- queueUpdate(): void;
4426
4469
  /**
4427
4470
  * @description Sends a patch message with a flag to destroy the entity.
4428
4471
  * /// Will remove the entity from endpoints and signal remote clients to delete the entity.
@@ -4449,6 +4492,11 @@ export declare namespace Multiplayer {
4449
4492
  * @param callback - Contains a bool that is true when the patch message is sent.
4450
4493
  */
4451
4494
  setPatchSentCallback(callback: (arg1: boolean) => void): void;
4495
+ /**
4496
+ * @description Get a pointer to the first component on the entity of specified type
4497
+ * @return Non-owning pointer to component, nullptr if component of type cannot be found
4498
+ */
4499
+ findFirstComponentOfType(type: Multiplayer.ComponentType): Multiplayer.ComponentBase;
4452
4500
  /**
4453
4501
  * @description Get the map of components on this SpaceEntity.
4454
4502
  * @return A map of components indexed with the component ID.
@@ -4472,8 +4520,10 @@ export declare namespace Multiplayer {
4472
4520
  * the best we can do is add a blank component in its place, which clients decide to
4473
4521
  * ignore when retrieving data.
4474
4522
  * /// @param Key uint16_t : The component ID of the component to remove.
4523
+ * @return Whether a component was removed, may fail if not modifiable, there is no component of provided key, or if a dirty component is
4524
+ * already set to this deletion.
4475
4525
  */
4476
- removeComponent(key: number): void;
4526
+ removeComponent(key: number): boolean;
4477
4527
  /**
4478
4528
  * @description Gets the script associated with the space entity.
4479
4529
  * @return The EntityScript instance set on the entity.
@@ -4514,21 +4564,32 @@ export declare namespace Multiplayer {
4514
4564
  * A CSP error will be sent to the LogSystem if this condition is not met.
4515
4565
  @post This internally sets the lock type as a dirty property.
4516
4566
  * This entity should now be replicated, to process the change.
4567
+ * @return Whether setting the lock was successful.
4517
4568
  */
4518
- lock(): void;
4569
+ lock(): boolean;
4519
4570
  /**
4520
4571
  * @description Unlocks the entity if the entity is locked
4521
4572
  @pre The entity must be locked.
4522
4573
  * A CSP error will be sent to the LogSystem if this condition is not met.
4523
4574
  @post This internally sets the lock type as a dirty property.
4524
4575
  * This entity should now be replicated, to process the change.
4576
+ * @return Whether removing the lock was successful.
4525
4577
  */
4526
- unlock(): void;
4578
+ unlock(): boolean;
4579
+ /**
4580
+ * @description Gets the type of lock currently applied to this entity
4581
+ * @return The Locktype, will be LockType::None if the entity is currently unlocked.
4582
+ */
4583
+ getLockType(): Multiplayer.LockType;
4527
4584
  /**
4528
4585
  * @description Checks if the entity has a lock type other than LockType::None, set by calling SpaceEntity::Lock.
4529
4586
  * @return Bool
4530
4587
  */
4531
4588
  isLocked(): boolean;
4589
+ /**
4590
+ * @description Queues an update which will be executed on next Tick() or ProcessPendingEntityOperations(). Not a blocking or async function.
4591
+ */
4592
+ queueUpdate(): void;
4532
4593
  }
4533
4594
  }
4534
4595
  export declare namespace Multiplayer {
@@ -4772,6 +4833,8 @@ export declare namespace Systems {
4772
4833
  set assets(value: Common.Array<Systems.Asset>);
4773
4834
  get sequences(): Common.Array<Systems.Sequence>;
4774
4835
  set sequences(value: Common.Array<Systems.Sequence>);
4836
+ get anchors(): Common.Array<Systems.Anchor>;
4837
+ set anchors(value: Common.Array<Systems.Anchor>);
4775
4838
  }
4776
4839
  }
4777
4840
  export declare namespace Systems {
@@ -4911,11 +4974,6 @@ export declare namespace Systems {
4911
4974
  * @return Pointer to the graphql system class
4912
4975
  */
4913
4976
  getGraphQLSystem(): Systems.GraphQLSystem;
4914
- /**
4915
- * @description Retrieves the Analytics system.
4916
- * @return Pointer to the analytics system class
4917
- */
4918
- getAnalyticsSystem(): Systems.AnalyticsSystem;
4919
4977
  /**
4920
4978
  * @description Retrieves the Maintenance system.
4921
4979
  * @return Pointer to the maintenance system class
@@ -4948,7 +5006,6 @@ export declare namespace Systems {
4948
5006
  getHotspotSequenceSystem(): Systems.HotspotSequenceSystem;
4949
5007
  getMultiplayerConnection(): Multiplayer.MultiplayerConnection;
4950
5008
  getEventBus(): Multiplayer.NetworkEventBus;
4951
- makeOnlineRealtimeEngine(): Multiplayer.OnlineRealtimeEngine;
4952
5009
  }
4953
5010
  }
4954
5011
  export declare namespace Systems {
@@ -4997,57 +5054,6 @@ export declare namespace Systems {
4997
5054
  getFailureReason(): Systems.ERequestFailureReason;
4998
5055
  }
4999
5056
  }
5000
- export declare namespace Systems {
5001
- /**
5002
- @ingroup Analytics System
5003
- * @description Interface for an Analytics Provider
5004
- */
5005
- class IAnalyticsProvider extends NativeClassWrapper implements INativeResource {
5006
- /** @internal */
5007
- constructor(pointer: NativePointer);
5008
- delete(): void;
5009
- }
5010
- }
5011
- export declare namespace Systems {
5012
- /**
5013
- @ingroup Analytics System
5014
- * @description Public facing system that allows interfacing with an analytics provider.
5015
- * Offers methods for sending events to the provider
5016
- * Events are added to a queue to be processewd on a different thread
5017
- * If events are unable to be send to the provider, then they will be held in the queue
5018
- */
5019
- class AnalyticsSystem extends NativeClassWrapper {
5020
- /** @internal */
5021
- constructor(pointer: NativePointer);
5022
- /**
5023
- * @description Send an event
5024
- * @param event - AnalyticsEvent
5025
- */
5026
- log(event: Systems.AnalyticsEvent): void;
5027
- }
5028
- }
5029
- export declare namespace Systems {
5030
- class AnalyticsEvent extends NativeClassWrapper implements INativeResource {
5031
- /** @internal */
5032
- constructor(pointer: NativePointer);
5033
- addInt(key: string, value: bigint): void;
5034
- addString(key: string, value: string): void;
5035
- addFloat(key: string, value: number): void;
5036
- addBool(key: string, value: boolean): void;
5037
- getInt(key: string): bigint;
5038
- getString(key: string): string;
5039
- getFloat(key: string): number;
5040
- getBool(key: string): boolean;
5041
- getTag(): string;
5042
- delete(): void;
5043
- }
5044
- }
5045
- export declare namespace Systems {
5046
- class AnalyticsEventInitialiser {
5047
- static initialise(tag: string): Systems.AnalyticsEvent;
5048
- static deInitialise(event: Systems.AnalyticsEvent): void;
5049
- }
5050
- }
5051
5057
  export declare namespace Systems {
5052
5058
  /**
5053
5059
  @ingroup Asset System
@@ -6274,6 +6280,144 @@ export declare namespace Common {
6274
6280
  set hotspotData(value: Common.HotspotSequenceChangedNetworkEventData);
6275
6281
  }
6276
6282
  }
6283
+ export declare namespace Multiplayer {
6284
+ /**
6285
+ * @description Class for creating and managing objects in an offline context.
6286
+ * /// This provides functionality to create and manage a player avatar and other objects while being offline.
6287
+ * The callbacks that are injected into functions are all synchronous, meaning they are called before the funciton ends.
6288
+ */
6289
+ class OfflineRealtimeEngine extends Common.IRealtimeEngine implements INativeResource {
6290
+ /** @internal */
6291
+ constructor(pointer: NativePointer);
6292
+ static fromIRealtimeEngine(baseInstance: Common.IRealtimeEngine): Multiplayer.OfflineRealtimeEngine;
6293
+ /**
6294
+ * @description OfflineRealtimeEngine constructor.
6295
+ * Creates a realtime engine pre-populated from a scene description. (Usually parsed from a checkpoint file)
6296
+ * @param sceneDescription - The scene description containing entities within the scene.
6297
+ * These entities will be populated in the RealtimeEngine.
6298
+ * @param logSystem - Logger such that this system can print status and debug output
6299
+ * @param remoteScriptRunner - Object capable of running a script.
6300
+ */
6301
+ static create_sceneDescription_logSystem_remoteScriptRunner(sceneDescription: Multiplayer.CSPSceneDescription, logSystem: Common.LogSystem, remoteScriptRunner: Common.IJSScriptRunner): OfflineRealtimeEngine;
6302
+ /**
6303
+ * @description OfflineRealtimeEngine constructor
6304
+ * Creates an empty realtime engine.
6305
+ * @param logSystem - Logger such that this system can print status and debug output
6306
+ * @param remoteScriptRunner - Object capable of running a script.
6307
+ */
6308
+ static create_logSystem_remoteScriptRunner(logSystem: Common.LogSystem, remoteScriptRunner: Common.IJSScriptRunner): OfflineRealtimeEngine;
6309
+ /**
6310
+ * @description OfflineRealtimeEngine destructor
6311
+ * Removes entity script bindings and deregisters tick event listeners
6312
+ */
6313
+ delete(): void;
6314
+ /**
6315
+ * @description Returns the concrete type of the instantiation of the abstract IRealtimeEngine.
6316
+ */
6317
+ getRealtimeEngineType(): Common.RealtimeEngineType;
6318
+ /**
6319
+ * @description Create and add a SpaceEntity with type Avatar, and relevant components and default states as specified.
6320
+ * @param name - The entity name of the newly created avatar entity.
6321
+ * @param userId - The Id of the user creating the avatar. This can be fetched from csp::systems::UserSystem::GetLoginState
6322
+ * @param transform - The initial transform to set the SpaceEntity to.
6323
+ * @param state - The initial Avatar State to set.
6324
+ * @param avatarId - The ID to be set on the AvatarSpaceComponent
6325
+ * @param avatarPlayMode - The Initial AvatarPlayMode to set.
6326
+ * @param callback - Csp::multiplayer::entitycreatedcallback a callback that executes when the creation is complete,
6327
+ * which will provide a non-owning pointer to the new SpaceEntity so that it can be used on the local client.
6328
+ */
6329
+ createAvatar(name: string, userId: string, transform: Multiplayer.SpaceTransform, isVisible: boolean, state: Multiplayer.AvatarState, avatarId: string, avatarPlayMode: Multiplayer.AvatarPlayMode): Promise<Multiplayer.SpaceEntity>;
6330
+ /**
6331
+ * @description Create and add a SpaceEntity, with relevant default values.
6332
+ * @param name - The name of the newly created SpaceEntity.
6333
+ * @param transform - The initial transform to set the SpaceEntity to.
6334
+ * @param parentID - ID of another entity in the space that this entity should be created as a child to. If empty,
6335
+ * entity is created as a root entity.
6336
+ * @param callback - A callback that executes when the creation is complete,
6337
+ * which will provide a non-owning pointer to the new SpaceEntity so that it can be used on the local client.
6338
+ */
6339
+ createEntity(name: string, transform: Multiplayer.SpaceTransform, parentID: bigint | null): Promise<Multiplayer.SpaceEntity>;
6340
+ /**
6341
+ * @description Destroy the specified entity.
6342
+ * @param entity - A non-owning pointer to the entity to be destroyed.
6343
+ * @param callback - A callback that executes when the entity destruction is complete.
6344
+ */
6345
+ destroyEntity(entity: Multiplayer.SpaceEntity): Promise<boolean>;
6346
+ /**
6347
+ * @description Finds the first found SpaceEntity of a matching Name.
6348
+ * @param name - The name to search.
6349
+ * @return A non-owning pointer to the first found matching SpaceEntity.
6350
+ */
6351
+ findSpaceEntity(name: string): Multiplayer.SpaceEntity;
6352
+ /**
6353
+ * @description Finds the first found SpaceEntity that has the ID EntityId.
6354
+ * @param entityId - The Id to look for.
6355
+ * @return A non-owning pointer to the first found matching SpaceEntity.
6356
+ */
6357
+ findSpaceEntityById(entityId: bigint): Multiplayer.SpaceEntity;
6358
+ /**
6359
+ * @description Finds the first found SpaceEntity of a matching Name. The found SpaceEntity will contain an AvatarSpaceComponent.
6360
+ * @param name - The name to search for.
6361
+ * @return A pointer to the first found matching SpaceEntity.
6362
+ */
6363
+ findSpaceAvatar(name: string): Multiplayer.SpaceEntity;
6364
+ /**
6365
+ * @description Finds the first found SpaceEntity of a matching Name. The found SpaceEntity will not contain an AvatarSpaceComponent.
6366
+ * @param name - The name to search for.
6367
+ * @return A pointer to the first found matching SpaceEntity.
6368
+ */
6369
+ findSpaceObject(name: string): Multiplayer.SpaceEntity;
6370
+ /**
6371
+ * @description Get an Entity by its index.
6372
+ * /// @param EntityIndex size_t : The index of the entity to get.
6373
+ * @return A non-owning pointer to the entity at the given index.
6374
+ */
6375
+ getEntityByIndex(entityIndex: number): Multiplayer.SpaceEntity;
6376
+ /**
6377
+ * @description Get an Avatar by its index. The returned pointer will be an entity that contains an AvatarSpaceComponent.
6378
+ * /// @param AvatarIndex size_t : The index of the avatar entity to get.
6379
+ * @return A non-owning pointer to the avatar entity with the given index.
6380
+ */
6381
+ getAvatarByIndex(avatarIndex: number): Multiplayer.SpaceEntity;
6382
+ /**
6383
+ * @description Get an Object by its index. The returned pointer will be an entity that does not contain an AvatarSpaceComponent.
6384
+ * /// @param ObjectIndex size_t : The index of the object entity to get.
6385
+ * @return A non-owning pointer to the object entity with the given index.
6386
+ */
6387
+ getObjectByIndex(objectIndex: number): Multiplayer.SpaceEntity;
6388
+ /**
6389
+ * @description Get the number of total entities in the system.
6390
+ * @return The total number of entities.
6391
+ */
6392
+ getNumEntities(): number;
6393
+ /**
6394
+ * @description Get the number of total Avatars in the system. Avatars are entities that contain AvatarSpaceComponents.
6395
+ * @return The total number of Avatar entities.
6396
+ */
6397
+ getNumAvatars(): number;
6398
+ /**
6399
+ * @description Get the number of total Objects in the system. Objects are entities that do not contain AvatarSpaceComponents.
6400
+ * @return The total number of object entities.
6401
+ */
6402
+ getNumObjects(): number;
6403
+ /**
6404
+ * @description Return all the entities currently known to the realtime engine.
6405
+ @warning This list may be extremely large.
6406
+ * @return A non-owning pointer to a List of non-owning pointers to all entities.
6407
+ */
6408
+ getAllEntities(): Common.List<Multiplayer.SpaceEntity>;
6409
+ /**
6410
+ * @description Retrieves all entities that exist at the root level (do not have a parent entity).
6411
+ * @return A list of root entities containing non-owning pointers to entities.
6412
+ */
6413
+ getRootHierarchyEntities(): Common.List<Multiplayer.SpaceEntity>;
6414
+ /**
6415
+ * @description The client ID of the local client. An arbitrary unchanging value.
6416
+ * @return INT53_MAX, the maximum number expressible in all our interop languages (you can thank javascript for the weird sizing).
6417
+ */
6418
+ static localClientId(): bigint;
6419
+ }
6420
+ }
6277
6421
  export declare namespace Multiplayer {
6278
6422
  /**
6279
6423
  * @description Class for creating and managing multiplayer objects known as space entities.
@@ -6321,26 +6465,12 @@ export declare namespace Multiplayer {
6321
6465
  * which will provide a non-owning pointer to the new SpaceEntity so that it can be used on the local client.
6322
6466
  */
6323
6467
  createEntity(name: string, spaceTransform: Multiplayer.SpaceTransform, parentID: bigint | null): Promise<Multiplayer.SpaceEntity>;
6324
- /**
6325
- * @description Add a new entity to the system.
6326
- * /// This can be called at any time from any thread and internally add the entity to a pending
6327
- * list which is then updated in a thread safe manner when ProcessPendingEntityOperations
6328
- * is called from the main thread.
6329
- * /// @param EntityToAdd SpaceEntity : Pointer to the entity to be added.
6330
- */
6331
- addEntity(entityToAdd: Multiplayer.SpaceEntity): void;
6332
6468
  /**
6333
6469
  * @description Destroy the specified entity.
6334
6470
  * @param entity - A non-owning pointer to the entity to be destroyed.
6335
6471
  * @param callback - A callback that executes when the entity destruction is complete.
6336
6472
  */
6337
6473
  destroyEntity(entity: Multiplayer.SpaceEntity): Promise<boolean>;
6338
- /**
6339
- * @description Sets a callback to be executed when an entity is fully created.
6340
- * /// Only one EntityCreatedCallback may be registered, calling this function again will override whatever was previously set.
6341
- * /// @param Callback csp::multiplayer::EntityCreatedCallback : the callback to execute.
6342
- */
6343
- setEntityCreatedCallback(callback: (arg1: Multiplayer.SpaceEntity) => void): void;
6344
6474
  /**
6345
6475
  * @description Finds the first found SpaceEntity of a matching Name.
6346
6476
  * @param name - The name to search.
@@ -6398,6 +6528,12 @@ export declare namespace Multiplayer {
6398
6528
  * @return The total number of object entities.
6399
6529
  */
6400
6530
  getNumObjects(): number;
6531
+ /**
6532
+ * @description Return all the entities currently known to the realtime engine.
6533
+ @warning This list may be extremely large.
6534
+ * @return A non-owning pointer to a List of non-owning pointers to all entities.
6535
+ */
6536
+ getAllEntities(): Common.List<Multiplayer.SpaceEntity>;
6401
6537
  /**
6402
6538
  * @description Retrieves all entities that exist at the root level (do not have a parent entity).
6403
6539
  * @return A list of root entities containing non-owning pointers to entities.
@@ -6408,11 +6544,18 @@ export declare namespace Multiplayer {
6408
6544
  * From a client perspective, ProcessPendingEntityOperations is normally called via the CSPFoundation::Tick method.
6409
6545
  * @param entity - A non-owning pointer to the entity to be marked.
6410
6546
  */
6411
- markEntityForUpdate(entity: Multiplayer.SpaceEntity): void;
6547
+ queueEntityUpdate(entity: Multiplayer.SpaceEntity): void;
6412
6548
  /**
6413
6549
  * @description Applies any pending changes to entities that have been marked for update.
6414
6550
  */
6415
6551
  processPendingEntityOperations(): void;
6552
+ /**
6553
+ * @description Sets a callback to be executed when a remote entity is created.
6554
+ * To wait for local entities to be created, await the callback provided in the CreateObject/CreateAvatar methods.
6555
+ * /// Only one EntityCreatedCallback may be registered, calling this function again will override whatever was previously set.
6556
+ * /// @param Callback csp::multiplayer::EntityCreatedCallback : the callback to execute.
6557
+ */
6558
+ setRemoteEntityCreatedCallback(callback: (arg1: Multiplayer.SpaceEntity) => void): void;
6416
6559
  /**
6417
6560
  * @description Sets a callback to be executed when the script system is ready to run scripts.
6418
6561
  * @param callback - The callback to execute.
@@ -6457,23 +6600,6 @@ export declare namespace Multiplayer {
6457
6600
  * \endrst
6458
6601
  */
6459
6602
  setEntityPatchRateLimitEnabled(enabled: boolean): void;
6460
- /**
6461
- * @description Locks the entity mutex.
6462
- */
6463
- lockEntityUpdate(): void;
6464
- /**
6465
- * @description Unlocks the entity mutex.
6466
- */
6467
- unlockEntityUpdate(): void;
6468
- /**
6469
- * @description Queues a specific entity to update. Used in SpaceEntity to queue updates via passing the this pointer
6470
- */
6471
- queueEntityUpdate(entityToUpdate: Multiplayer.SpaceEntity): void;
6472
- /**
6473
- * @description "Resolves" the entity heirarchy, such that the entity is parented appropriately, and internal buffers are populated appropriately.
6474
- * (Vague, need more understanding about what this does)
6475
- */
6476
- resolveEntityHierarchy(entity: Multiplayer.SpaceEntity): void;
6477
6603
  delete(): void;
6478
6604
  }
6479
6605
  }
@@ -6484,7 +6610,7 @@ export declare namespace Multiplayer {
6484
6610
  * /// These are used for objects that need to move or act within the space, such as characters or animated props.
6485
6611
  * This component makes it possible to play, pause, or loop animations.
6486
6612
  */
6487
- class AnimatedModelSpaceComponent extends Multiplayer.ComponentBase implements Multiplayer.ITransformComponent, Multiplayer.IVisibleComponent, Multiplayer.IExternalResourceComponent, Multiplayer.IThirdPartyComponentRef, Multiplayer.IShadowCasterComponent, INativeResource {
6613
+ class AnimatedModelSpaceComponent extends Multiplayer.ComponentBase implements Multiplayer.ITransformComponent, Multiplayer.IVisibleComponent, Multiplayer.IExternalResourceComponent, Multiplayer.IThirdPartyComponentRef, Multiplayer.IShadowCasterComponent, Multiplayer.IRenderBehaviourComponent, INativeResource {
6488
6614
  /** @internal */
6489
6615
  constructor(pointer: NativePointer);
6490
6616
  static fromComponentBase(baseInstance: Multiplayer.ComponentBase): Multiplayer.AnimatedModelSpaceComponent;
@@ -6616,6 +6742,14 @@ export declare namespace Multiplayer {
6616
6742
  */
6617
6743
  setIsARVisible(value: boolean): void;
6618
6744
  /**
6745
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
6746
+ */
6747
+ getIsVirtualVisible(): boolean;
6748
+ /**
6749
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
6750
+ */
6751
+ setIsVirtualVisible(value: boolean): void;
6752
+ /**
6619
6753
  @}
6620
6754
  * \addtogroup IThirdPartyComponentRef
6621
6755
  @{
@@ -6637,6 +6771,25 @@ export declare namespace Multiplayer {
6637
6771
  @copydoc IShadowCasterComponent::SetIsShadowCaster()
6638
6772
  */
6639
6773
  setIsShadowCaster(value: boolean): void;
6774
+ /**
6775
+ @}
6776
+ * \addtogroup IRenderBehaviourComponent
6777
+ @{
6778
+ @copydoc IRenderBehaviourComponent::GetShowAsHoldoutInAR()
6779
+ */
6780
+ getShowAsHoldoutInAR(): boolean;
6781
+ /**
6782
+ @copydoc IRenderBehaviourComponent::SetShowAsHoldoutInAR()
6783
+ */
6784
+ setShowAsHoldoutInAR(value: boolean): void;
6785
+ /**
6786
+ @copydoc IRenderBehaviourComponent::GetShowAsHoldoutInVirtual()
6787
+ */
6788
+ getShowAsHoldoutInVirtual(): boolean;
6789
+ /**
6790
+ @copydoc IRenderBehaviourComponent::SetShowAsHoldoutInVirtual()
6791
+ */
6792
+ setShowAsHoldoutInVirtual(value: boolean): void;
6640
6793
  delete(): void;
6641
6794
  }
6642
6795
  }
@@ -7021,6 +7174,14 @@ export declare namespace Multiplayer {
7021
7174
  @copydoc IVisibleComponent::SetIsARVisible()
7022
7175
  */
7023
7176
  setIsARVisible(value: boolean): void;
7177
+ /**
7178
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
7179
+ */
7180
+ getIsVirtualVisible(): boolean;
7181
+ /**
7182
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
7183
+ */
7184
+ setIsVirtualVisible(value: boolean): void;
7024
7185
  delete(): void;
7025
7186
  }
7026
7187
  }
@@ -7136,6 +7297,14 @@ export declare namespace Multiplayer {
7136
7297
  @copydoc IVisibleComponent::SetIsARVisible()
7137
7298
  */
7138
7299
  setIsARVisible(value: boolean): void;
7300
+ /**
7301
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
7302
+ */
7303
+ getIsVirtualVisible(): boolean;
7304
+ /**
7305
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
7306
+ */
7307
+ setIsVirtualVisible(value: boolean): void;
7139
7308
  delete(): void;
7140
7309
  }
7141
7310
  }
@@ -7914,6 +8083,14 @@ export declare namespace Multiplayer {
7914
8083
  @copydoc IVisibleComponent::SetIsARVisible()
7915
8084
  */
7916
8085
  setIsARVisible(value: boolean): void;
8086
+ /**
8087
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
8088
+ */
8089
+ getIsVirtualVisible(): boolean;
8090
+ /**
8091
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
8092
+ */
8093
+ setIsVirtualVisible(value: boolean): void;
7917
8094
  delete(): void;
7918
8095
  }
7919
8096
  }
@@ -8022,6 +8199,14 @@ export declare namespace Multiplayer {
8022
8199
  @copydoc IVisibleComponent::SetIsARVisible()
8023
8200
  */
8024
8201
  setIsARVisible(value: boolean): void;
8202
+ /**
8203
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
8204
+ */
8205
+ getIsVirtualVisible(): boolean;
8206
+ /**
8207
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
8208
+ */
8209
+ setIsVirtualVisible(value: boolean): void;
8025
8210
  delete(): void;
8026
8211
  }
8027
8212
  }
@@ -8188,6 +8373,14 @@ export declare namespace Multiplayer {
8188
8373
  */
8189
8374
  setIsARVisible(value: boolean): void;
8190
8375
  /**
8376
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
8377
+ */
8378
+ getIsVirtualVisible(): boolean;
8379
+ /**
8380
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
8381
+ */
8382
+ setIsVirtualVisible(value: boolean): void;
8383
+ /**
8191
8384
  @}
8192
8385
  * \addtogroup IThirdPartyComponentRef
8193
8386
  @{
@@ -8297,6 +8490,14 @@ export declare namespace Multiplayer {
8297
8490
  */
8298
8491
  setIsARVisible(value: boolean): void;
8299
8492
  /**
8493
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
8494
+ */
8495
+ getIsVirtualVisible(): boolean;
8496
+ /**
8497
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
8498
+ */
8499
+ setIsVirtualVisible(value: boolean): void;
8500
+ /**
8300
8501
  @}
8301
8502
  * \addtogroup IShadowCasterComponent
8302
8503
  @{
@@ -8420,6 +8621,14 @@ export declare namespace Multiplayer {
8420
8621
  @copydoc IVisibleComponent::SetIsARVisible()
8421
8622
  */
8422
8623
  setIsARVisible(value: boolean): void;
8624
+ /**
8625
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
8626
+ */
8627
+ getIsVirtualVisible(): boolean;
8628
+ /**
8629
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
8630
+ */
8631
+ setIsVirtualVisible(value: boolean): void;
8423
8632
  delete(): void;
8424
8633
  }
8425
8634
  }
@@ -8558,6 +8767,14 @@ export declare namespace Multiplayer {
8558
8767
  @copydoc IVisibleComponent::SetIsARVisible()
8559
8768
  */
8560
8769
  setIsARVisible(value: boolean): void;
8770
+ /**
8771
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
8772
+ */
8773
+ getIsVirtualVisible(): boolean;
8774
+ /**
8775
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
8776
+ */
8777
+ setIsVirtualVisible(value: boolean): void;
8561
8778
  delete(): void;
8562
8779
  }
8563
8780
  }
@@ -8717,6 +8934,14 @@ export declare namespace Multiplayer {
8717
8934
  */
8718
8935
  setIsARVisible(value: boolean): void;
8719
8936
  /**
8937
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
8938
+ */
8939
+ getIsVirtualVisible(): boolean;
8940
+ /**
8941
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
8942
+ */
8943
+ setIsVirtualVisible(value: boolean): void;
8944
+ /**
8720
8945
  @}
8721
8946
  * \addtogroup IThirdPartyComponentRef
8722
8947
  @{
@@ -9008,6 +9233,14 @@ export declare namespace Multiplayer {
9008
9233
  */
9009
9234
  setIsARVisible(value: boolean): void;
9010
9235
  /**
9236
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
9237
+ */
9238
+ getIsVirtualVisible(): boolean;
9239
+ /**
9240
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
9241
+ */
9242
+ setIsVirtualVisible(value: boolean): void;
9243
+ /**
9011
9244
  @}
9012
9245
  * \addtogroup IShadowCasterComponent
9013
9246
  @{
@@ -9109,7 +9342,7 @@ export declare namespace Multiplayer {
9109
9342
  * /// It displays non-animated objects, such as furniture, buildings, or decorative items within a space.
9110
9343
  * The static model defines the visual appearance but has no animations or dynamic behaviors.
9111
9344
  */
9112
- class StaticModelSpaceComponent extends Multiplayer.ComponentBase implements Multiplayer.IExternalResourceComponent, Multiplayer.IShadowCasterComponent, Multiplayer.IThirdPartyComponentRef, Multiplayer.ITransformComponent, Multiplayer.IVisibleComponent, INativeResource {
9345
+ class StaticModelSpaceComponent extends Multiplayer.ComponentBase implements Multiplayer.IExternalResourceComponent, Multiplayer.IShadowCasterComponent, Multiplayer.IThirdPartyComponentRef, Multiplayer.ITransformComponent, Multiplayer.IVisibleComponent, Multiplayer.IRenderBehaviourComponent, INativeResource {
9113
9346
  /** @internal */
9114
9347
  constructor(pointer: NativePointer);
9115
9348
  static fromComponentBase(baseInstance: Multiplayer.ComponentBase): Multiplayer.StaticModelSpaceComponent;
@@ -9211,6 +9444,14 @@ export declare namespace Multiplayer {
9211
9444
  */
9212
9445
  setIsARVisible(value: boolean): void;
9213
9446
  /**
9447
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
9448
+ */
9449
+ getIsVirtualVisible(): boolean;
9450
+ /**
9451
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
9452
+ */
9453
+ setIsVirtualVisible(value: boolean): void;
9454
+ /**
9214
9455
  @}
9215
9456
  * \addtogroup IThirdPartyComponentRef
9216
9457
  @{
@@ -9232,6 +9473,25 @@ export declare namespace Multiplayer {
9232
9473
  @copydoc IShadowCasterComponent::SetIsShadowCaster()
9233
9474
  */
9234
9475
  setIsShadowCaster(value: boolean): void;
9476
+ /**
9477
+ @}
9478
+ * \addtogroup IRenderBehaviourComponent
9479
+ @{
9480
+ @copydoc IRenderBehaviourComponent::GetShowAsHoldoutInAR()
9481
+ */
9482
+ getShowAsHoldoutInAR(): boolean;
9483
+ /**
9484
+ @copydoc IRenderBehaviourComponent::SetShowAsHoldoutInAR()
9485
+ */
9486
+ setShowAsHoldoutInAR(value: boolean): void;
9487
+ /**
9488
+ @copydoc IRenderBehaviourComponent::GetShowAsHoldoutInVirtual()
9489
+ */
9490
+ getShowAsHoldoutInVirtual(): boolean;
9491
+ /**
9492
+ @copydoc IRenderBehaviourComponent::SetShowAsHoldoutInVirtual()
9493
+ */
9494
+ setShowAsHoldoutInVirtual(value: boolean): void;
9235
9495
  delete(): void;
9236
9496
  }
9237
9497
  }
@@ -9372,6 +9632,14 @@ export declare namespace Multiplayer {
9372
9632
  @copydoc IVisibleComponent::SetIsARVisible()
9373
9633
  */
9374
9634
  setIsARVisible(value: boolean): void;
9635
+ /**
9636
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
9637
+ */
9638
+ getIsVirtualVisible(): boolean;
9639
+ /**
9640
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
9641
+ */
9642
+ setIsVirtualVisible(value: boolean): void;
9375
9643
  delete(): void;
9376
9644
  }
9377
9645
  }
@@ -9585,6 +9853,14 @@ export declare namespace Multiplayer {
9585
9853
  */
9586
9854
  setIsARVisible(value: boolean): void;
9587
9855
  /**
9856
+ @copydoc IVisibleComponent::GetIsVirtualVisible()
9857
+ */
9858
+ getIsVirtualVisible(): boolean;
9859
+ /**
9860
+ @copydoc IVisibleComponent::SetIsVirtualVisible()
9861
+ */
9862
+ setIsVirtualVisible(value: boolean): void;
9863
+ /**
9588
9864
  @}
9589
9865
  * \addtogroup IEnableableComponent
9590
9866
  @{
@@ -10305,11 +10581,22 @@ export declare namespace Systems {
10305
10581
  getMaterials(spaceId: string): Promise<Systems.MaterialsResult>;
10306
10582
  /**
10307
10583
  * @description Gets a material using its AssetCollection and Asset Id.
10584
+ @details This is slower than GetMaterialFromUri, as it needs to first retrieve the internal AssetCollection and Asset.
10308
10585
  * @param assetCollectionId - The asset collection id this material is associated with.
10309
10586
  * @param assetId - The asset id this material is associated with.
10310
10587
  * @param callback - Callback when asynchronous task finishes.
10311
10588
  */
10312
10589
  getMaterial(assetCollectionId: string, assetId: string): Promise<Systems.MaterialResult>;
10590
+ /**
10591
+ * @description Gets a material using it's Uri.
10592
+ @details This function does not retrieve the AssetCollection or Asset remotely. It downloads the material directly from the uri.
10593
+ * This should be used in an offline context where The AssetCollection and Asset has been parsed from a SceneData file.
10594
+ * @param assetCollection - The asset collection this material is associated with.
10595
+ * @param assetId - The asset id this material is associated with.
10596
+ * @param uri - The uri this material was uploaded to.
10597
+ * @param callback - Callback when asynchronous task finishes.
10598
+ */
10599
+ getMaterialFromUri(assetCollection: Systems.AssetCollection, assetId: string, uri: string): Promise<Systems.MaterialResult>;
10313
10600
  /**
10314
10601
  * @description Sets a callback for an asset changed event. Triggered when assets, such as textures or meshes, are modified
10315
10602
  * @param callback - Callback to receive data for the asset that has been changed.
@@ -11809,7 +12096,8 @@ export declare namespace Systems {
11809
12096
  * The initial load behaviour will differ based on the concrete IRealtimeEngine passed to this function.
11810
12097
  * If user does not have permission to discover or enter the space, callback will be called with EResultCode::Failed and
11811
12098
  * ERequestFailureReason::UserSpaceAccessDenied
11812
- * @param spaceId - Space id to enter into
12099
+ * @param spaceId - ID of space to enter into. In the case where you are using an offline realtime engine, this will be the
12100
+ * ID of the local space.
11813
12101
  * @param realtimeEngine - RealtimeEngine to load the space with. This object belongs to the caller, and does not
11814
12102
  * transfer ownership. Once the space is loaded, the caller should be sure to maintain the lifetime of the RealtimeEngine so long
11815
12103
  * as the space is active. Once the caller has called csp::systems::SpaceSystem::ExitSpace and received the callback, then they are
@@ -12435,27 +12723,36 @@ export declare namespace Systems {
12435
12723
  * @param userName - Csp::common::string
12436
12724
  * @param email - Csp::common::string
12437
12725
  * @param password - Csp::common::string
12726
+ * @param createMultiplayerConnection - Whether to create a multiplayer connection. If false, this session will not establish a SignalR
12727
+ * connection to backend services, and thus be unable to receive messages or events. This session will also be unable to enter online spaces via
12728
+ * a csp::multiplayer::OnlineRealtimeEngine. If true, this session will receive events, and may enter both online and offline spaces.
12438
12729
  * @param userHasVerifiedAge - An optional bool to specify whether or not the user has verified that they are over 18
12439
12730
  * @param callback - Callback to call when a response is received
12440
12731
  @pre One of either UserName or Email must not be empty.
12441
12732
  @pre Password must not be empty.
12442
12733
  */
12443
- login(userName: string, email: string, password: string, userHasVerifiedAge: boolean | null): Promise<Systems.LoginStateResult>;
12734
+ login(userName: string, email: string, password: string, createMultiplayerConnection: boolean, userHasVerifiedAge: boolean | null): Promise<Systems.LoginStateResult>;
12444
12735
  /**
12445
12736
  * @description Resume a previous session for the associated user ID using a refresh token
12446
12737
  * The refresh token can be obtained after registering a callback with `SetNewLoginTokenReceivedCallback` and logging in regularly.
12447
12738
  * @param userId - User ID for the previous session
12448
12739
  * @param refreshToken - Refresh token to be used for refreshing the authentication token
12740
+ * @param createMultiplayerConnection - Whether to create a multiplayer connection. If false, this session will not establish a SignalR
12741
+ * connection to backend services, and thus be unable to receive messages or events. This session will also be unable to enter online spaces via
12742
+ * a csp::multiplayer::OnlineRealtimeEngine. If true, this session will receive events, and may enter both online and offline spaces.
12449
12743
  * @param callback - Callback when asynchronous task finishes
12450
12744
  @pre UserId must not be empty.
12451
12745
  */
12452
- loginWithRefreshToken(userId: string, refreshToken: string): Promise<Systems.LoginStateResult>;
12746
+ loginWithRefreshToken(userId: string, refreshToken: string, createMultiplayerConnection: boolean): Promise<Systems.LoginStateResult>;
12453
12747
  /**
12454
12748
  * @description Log in to Magnopus Connected Services as a guest.
12749
+ * @param createMultiplayerConnection - Whether to create a multiplayer connection. If false, this session will not establish a SignalR
12750
+ * connection to backend services, and thus be unable to receive messages or events. This session will also be unable to enter online spaces via
12751
+ * a csp::multiplayer::OnlineRealtimeEngine. If true, this session will receive events, and may enter both online and offline spaces.
12455
12752
  * @param userHasVerifiedAge - An optional bool to specify whether or not the user has verified that they are over 18
12456
12753
  * @param callback - Callback to call when a response is received
12457
12754
  */
12458
- loginAsGuest(userHasVerifiedAge: boolean | null): Promise<Systems.LoginStateResult>;
12755
+ loginAsGuest(createMultiplayerConnection: boolean, userHasVerifiedAge: boolean | null): Promise<Systems.LoginStateResult>;
12459
12756
  /**
12460
12757
  @ingroup Third Party Authentication
12461
12758
  * @description As a Connected Spaces Platform user the 3rd party authentication flow consists of two steps, first calling
@@ -12480,10 +12777,13 @@ export declare namespace Systems {
12480
12777
  * Note: The Authentication Provider and the Redirect URL you've passed in the first step will be used now
12481
12778
  * @param thirdPartyToken - The authentication token returned by the Provider
12482
12779
  * @param thirdPartyStateId - The state Id returned by the Provider
12780
+ * @param createMultiplayerConnection - Whether to create a multiplayer connection. If false, this session will not establish a SignalR
12781
+ * connection to backend services, and thus be unable to receive messages or events. This session will also be unable to enter online spaces via
12782
+ * a csp::multiplayer::OnlineRealtimeEngine. If true, this session will receive events, and may enter both online and offline spaces.
12483
12783
  * @param userHasVerifiedAge - An optional bool to specify whether or not the user has verified that they are over 18
12484
12784
  * @param callback - Callback that contains the result of the magnopus connected services authentication operation
12485
12785
  */
12486
- loginToThirdPartyAuthenticationProvider(thirdPartyToken: string, thirdPartyStateId: string, userHasVerifiedAge: boolean | null): Promise<Systems.LoginStateResult>;
12786
+ loginToThirdPartyAuthenticationProvider(thirdPartyToken: string, thirdPartyStateId: string, createMultiplayerConnection: boolean, userHasVerifiedAge: boolean | null): Promise<Systems.LoginStateResult>;
12487
12787
  /**
12488
12788
  * @description Logout from Magnopus Connected Services.
12489
12789
  * @param callback - Callback to call when a response is received
@@ -12624,12 +12924,12 @@ export declare namespace Common {
12624
12924
  static ofcsp_multiplayer_ComponentUpdateInfo(): Array<Multiplayer.ComponentUpdateInfo>;
12625
12925
  static ofcsp_common_ReplicatedValue(): Array<Common.ReplicatedValue>;
12626
12926
  static ofcsp_systems_SpaceUserRole(): Array<Systems.SpaceUserRole>;
12627
- static ofcsp_multiplayer_SpaceEntity(): Array<Multiplayer.SpaceEntity>;
12628
12927
  static ofcsp_multiplayer_NetworkEventRegistration(): Array<Multiplayer.NetworkEventRegistration>;
12629
12928
  static ofcsp_multiplayer_MessageInfo(): Array<Multiplayer.MessageInfo>;
12630
12929
  static ofcsp_systems_AssetCollection(): Array<Systems.AssetCollection>;
12631
12930
  static ofcsp_systems_Asset(): Array<Systems.Asset>;
12632
12931
  static ofcsp_systems_Sequence(): Array<Systems.Sequence>;
12932
+ static ofcsp_systems_Anchor(): Array<Systems.Anchor>;
12633
12933
  static ofcsp_systems_VersionMetadata(): Array<Systems.VersionMetadata>;
12634
12934
  static ofcsp_systems_ServiceStatus(): Array<Systems.ServiceStatus>;
12635
12935
  static ofString(): Array<string>;
@@ -12656,7 +12956,6 @@ export declare namespace Common {
12656
12956
  static ofcsp_systems_BasicSpace(): Array<Systems.BasicSpace>;
12657
12957
  static ofcsp_systems_InviteUserRoleInfo(): Array<Systems.InviteUserRoleInfo>;
12658
12958
  static ofcsp_systems_UserRoleInfo(): Array<Systems.UserRoleInfo>;
12659
- static ofcsp_systems_Anchor(): Array<Systems.Anchor>;
12660
12959
  static ofcsp_systems_AnchorResolution(): Array<Systems.AnchorResolution>;
12661
12960
  static ofcsp_systems_PointOfInterest(): Array<Systems.PointOfInterest>;
12662
12961
  static ofcsp_systems_BasicProfile(): Array<Systems.BasicProfile>;
@@ -12669,12 +12968,12 @@ export declare namespace Common {
12669
12968
  static ofcsp_multiplayer_ComponentUpdateInfo_number(size: number): Array<Multiplayer.ComponentUpdateInfo>;
12670
12969
  static ofcsp_common_ReplicatedValue_number(size: number): Array<Common.ReplicatedValue>;
12671
12970
  static ofcsp_systems_SpaceUserRole_number(size: number): Array<Systems.SpaceUserRole>;
12672
- static ofcsp_multiplayer_SpaceEntity_number(size: number): Array<Multiplayer.SpaceEntity>;
12673
12971
  static ofcsp_multiplayer_NetworkEventRegistration_number(size: number): Array<Multiplayer.NetworkEventRegistration>;
12674
12972
  static ofcsp_multiplayer_MessageInfo_number(size: number): Array<Multiplayer.MessageInfo>;
12675
12973
  static ofcsp_systems_AssetCollection_number(size: number): Array<Systems.AssetCollection>;
12676
12974
  static ofcsp_systems_Asset_number(size: number): Array<Systems.Asset>;
12677
12975
  static ofcsp_systems_Sequence_number(size: number): Array<Systems.Sequence>;
12976
+ static ofcsp_systems_Anchor_number(size: number): Array<Systems.Anchor>;
12678
12977
  static ofcsp_systems_VersionMetadata_number(size: number): Array<Systems.VersionMetadata>;
12679
12978
  static ofcsp_systems_ServiceStatus_number(size: number): Array<Systems.ServiceStatus>;
12680
12979
  static ofString_number(size: number): Array<string>;
@@ -12701,7 +13000,6 @@ export declare namespace Common {
12701
13000
  static ofcsp_systems_BasicSpace_number(size: number): Array<Systems.BasicSpace>;
12702
13001
  static ofcsp_systems_InviteUserRoleInfo_number(size: number): Array<Systems.InviteUserRoleInfo>;
12703
13002
  static ofcsp_systems_UserRoleInfo_number(size: number): Array<Systems.UserRoleInfo>;
12704
- static ofcsp_systems_Anchor_number(size: number): Array<Systems.Anchor>;
12705
13003
  static ofcsp_systems_AnchorResolution_number(size: number): Array<Systems.AnchorResolution>;
12706
13004
  static ofcsp_systems_PointOfInterest_number(size: number): Array<Systems.PointOfInterest>;
12707
13005
  static ofcsp_systems_BasicProfile_number(size: number): Array<Systems.BasicProfile>;