Quantum 3 3.0.4

Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Static Protected Member Functions | Properties | List of all members
Quantum.Core.FrameBase Class Reference

The Frame class is the container for all the transient and static game state data, including the API for entities, physics, assets and others. More...

Classes

class  Culling
 The Culling class handles the scheduling of culling tasks. More...
 
class  EntitiesConfig
 Global entities configuration More...
 
struct  FrameBaseUnsafe
 Frame API to give access to C# unsafe pointers and advanced immediate operations. More...
 
struct  Stats
 Represents the memory statistics for a frame in the Quantum.Core namespace. More...
 

Public Member Functions

AddResult Add (EntityRef entity, int componentIndex, out void *result)
 Adds a component of default value to an entity and returns a pointer to the added component. More...
 
AddResult Add (EntityRef entity, int componentIndex, void *value)
 Adds a component of defined value to an entity More...
 
AddResult Add (EntityRef entity, int componentIndex, void *value, out void *result)
 Adds a component of defined value to an entity and returns a pointer to the added component. More...
 
AddResult Add< T > (EntityRef entity)
 Adds a default component to an entity. More...
 
AddResult Add< T > (EntityRef entity, out T *result)
 Adds a component of default value to an entity and returns a pointer to the added component. More...
 
AddResult Add< T > (EntityRef entity, T value)
 Adds a component to an entity. More...
 
AddResult Add< T > (EntityRef entity, T value, out T *result)
 Adds a component of defined value to an entity and returns a pointer to the added component. More...
 
AssetGuid AddAsset (AssetObject asset)
 Adds a dynamic asset to the frame. Dynamic Asset DB generates and assigns Guids for dynamic assets, so asset can not have AssetObject.Guid set before calling this method. More...
 
void AddAsset (AssetObject asset, AssetGuid guid)
 Adds a dynamic asset to the frame with a guid know ahead of time. Dynamic Asset DB assigns Guids for dynamic assets, so asset can not have AssetObject.Guid set before calling this method. More...
 
bool AddOrGet (EntityRef entity, int componentIndex, out void *result)
 Adds a component of default value to an entity (if it does not have that component yet) and gets a pointer to the component. More...
 
bool AddOrGet< T > (EntityRef entity, out T *result)
 Adds a component of default value to an entity (if it does not have that component yet) and gets a pointer to the component. More...
 
void ClearAllNavMeshRegions ()
 If a navmesh region is toggled on/off is saved here. Call this method to reset every region state to be enabled again. More...
 
void ClearCulledState ()
 Marks all entities as not culled. More...
 
int ComponentCount (int componentIndex, bool includePendingRemoval=false)
 Gets the total count of components of a given index. See ComponentTypeId and ComponentTypeId<T> to have access to component types metadata. More...
 
int ComponentCount< T > (bool includePendingRemoval=false)
 Gets the total count of T components More...
 
EntityRef Create ()
 Creates an entity that is saved in the game state. More...
 
EntityRef Create (AssetRef< EntityPrototype > prototype)
 Creates an entity from a prototype asset. This process is also referred to as "prototype materialization". More...
 
void Create (ComponentPrototypeSet[] prototypes, Map parentAsset)
 Creates (materializes) map prototypes. The difference between this method and calling Create(EntityPrototype) repeatedly is that EntityRef fields get resolved and that MapEntityLink components are added implicitly. More...
 
EntityRef Create (EntityPrototype prototype)
 Creates an entity from a prototype. This process is also referred to as "prototype materialization". More...
 
void Cull (EntityRef entityRef)
 Marks a cullable and existing entity as culled. If the entity does not Exist or is not cullable, nothing is done. More...
 
bool Destroy (EntityRef entityRef)
 Destroys the entity and all components that were added to it. More...
 
bool DestroyPending (EntityRef entityRef)
 Check if a destroy is pending for this entity More...
 
bool DisposeAsset (AssetGuid guid)
 Disposes an asset. More...
 
void DisposeAsset (string path, DatabaseType dbType=DatabaseType.Default)
 Disposes an asset. More...
 
bool Exists (EntityRef entityRef)
 Checks if an entity is still valid. More...
 
ComponentFilter< T0 > Filter< T0 > (ComponentSet without=default, ComponentSet any=default)
 Filter entities by component types. More...
 
ComponentFilter< T0, T1 > Filter< T0, T1 > (ComponentSet without=default, ComponentSet any=default)
 Filter entities by component types. More...
 
ComponentFilter< T0, T1, T2 > Filter< T0, T1, T2 > (ComponentSet without=default, ComponentSet any=default)
 Filter entities by component types. More...
 
ComponentFilter< T0, T1, T2, T3 > Filter< T0, T1, T2, T3 > (ComponentSet without=default, ComponentSet any=default)
 Filter entities by component types. More...
 
ComponentFilter< T0, T1, T2, T3, T4 > Filter< T0, T1, T2, T3, T4 > (ComponentSet without=default, ComponentSet any=default)
 Filter entities by component types. More...
 
ComponentFilter< T0, T1, T2, T3, T4, T5 > Filter< T0, T1, T2, T3, T4, T5 > (ComponentSet without=default, ComponentSet any=default)
 Filter entities by component types. More...
 
ComponentFilter< T0, T1, T2, T3, T4, T5, T6 > Filter< T0, T1, T2, T3, T4, T5, T6 > (ComponentSet without=default, ComponentSet any=default)
 Filter entities by component types. More...
 
ComponentFilter< T0, T1, T2, T3, T4, T5, T6, T7 > Filter< T0, T1, T2, T3, T4, T5, T6, T7 > (ComponentSet without=default, ComponentSet any=default)
 Filter entities by component types. More...
 
FindAsset< T > (AssetGuid guid)
 Retrieves an asset either from the asset database or as an dynamic asset. In case of a missing asset logs a warning. More...
 
FindAsset< T > (AssetRef assetRef)
 Retrieves an asset either from the asset database or as an dynamic asset. In case of a missing asset logs a warning. More...
 
bool FindAsset< T > (AssetRef assetRef, out T asset)
 Retrieves an asset either from the asset database or as an dynamic asset. In case of a missing asset logs a warning. More...
 
FindAsset< T > (AssetRef< T > assetRef)
 Retrieves an asset either from the asset database or as an dynamic asset. In case of a missing asset logs a warning. More...
 
FindAsset< T > (string path, DatabaseType dbType=DatabaseType.Default)
 Retrieves an asset by path from selected databases. In case of a missing asset logs a warning. More...
 
ComponentPrototype FindPrototype (ComponentPrototypeRef prototypeRef)
 Finds the ComponentPrototype based on the given ComponentPrototypeRef. More...
 
ComponentPrototypeSet FindPrototype (EntityPrototypeRef prototypeRef)
 
FindPrototype< T > (ComponentPrototypeRef prototypeRef)
 Finds and retrieves a specific component prototype based on the given prototype reference. More...
 
TPrototype FindPrototype< TPrototypeRef, TPrototype > (TPrototypeRef prototypeRef)
 Finds a component prototype of type TPrototype given a component prototype reference. More...
 
bool FindPrototype< TPrototypeRef, TPrototype > (TPrototypeRef prototypeRef, out TPrototype prototype)
 Finds a component prototype using the given prototype reference. More...
 
Get< T > (EntityRef entityRef)
 Gets a component from an entity. More...
 
void GetAllEntityRefs (System.Collections.Generic.List< EntityRef > result)
 Retrieves the references to all entities. More...
 
ComponentIterator< T > GetComponentIterator< T > ()
 Create a component iterator for all components of one type. More...
 
ComponentSet GetComponentSet (EntityRef entityRef)
 Gets a set of all component types that were added to the entity. More...
 
Stats GetMemoryStats ()
 Calculates the memory statistics for the current frame. More...
 
GetOrAddSingleton< T > (EntityRef optionalAddTarget=default)
 Gets the instance of the specified singleton component if it exists, otherwise adds the singleton component and returns the new instance. More...
 
GetSingleton< T > ()
 Gets the instance of the specified singleton component. More...
 
EntityRef GetSingletonEntityRef (int componentIndex)
 Gets the entity reference of the specified singleton component. More...
 
EntityRef GetSingletonEntityRef< T > ()
 Gets the EntityRef for the singleton component of the specified type. More...
 
bool Has (EntityRef entityRef, ComponentSet set)
 Checks if the entity contains a whole set of components. More...
 
bool Has (EntityRef entityRef, int componentIndex)
 Determines whether an entity has a specific component. More...
 
bool Has< T > (EntityRef entityRef)
 Checks if an entity has a component. More...
 
bool IsCullable (EntityRef entity)
 If an entity can be culled during simulation. For instance, used by the prediction culling systems to cull entities outside of the prediction area. More...
 
bool IsCulled (EntityRef entityRef)
 If an entity is currently culled from the simulation, regardless of the frame state (Predicted or Verified). More...
 
bool IsPlayerVerifiedOrLocal (PlayerRef player)
 Returns information to deterministically cull simulation code (e.g. commands). More...
 
bool IsPredictionCulled (EntityRef entityRef)
 If the entity is prediction-culled. More...
 
bool LoadAsset (AssetGuid guid)
 Loads an asset asynchronously into memory. More...
 
void OnFrameSimulateBegin ()
 Executes the necessary operations at the beginning of simulating a frame. More...
 
void OnFrameSimulateEnd ()
 Performs actions at the end of frame simulation. More...
 
bool Remove (EntityRef entityRef, int componentIndex)
 Removes a component from an entity. More...
 
bool Remove (EntityRef entityRef, Type componentType)
 Removes a component from an entity. More...
 
bool Remove< T > (EntityRef entityRef)
 Removes a component from an entity. More...
 
bool RemoveSingleton (int componentIndex)
 Removes the singleton component of the specified type. More...
 
bool RemoveSingleton (Type componentType)
 Removes the singleton component of the specified type. More...
 
bool RemoveSingleton< T > ()
 Removes the singleton component of the specified type if it exists. More...
 
void ReplaceAsset (AssetGuid guid, AssetObject asset)
 Replaces a dynamic asset in the frame. Asset asset can not have AssetObject.Path or AssetObject.Guid set as it inherits both from the original asset. More...
 
SetResult Set (EntityRef entity, AssetRef< EntityPrototype > prototype)
 Adds (materializes) components to an already existing entity. More...
 
SetResult Set (EntityRef entity, AssetRef< EntityPrototype > prototype, out ComponentSet overwrittenComponents)
 Adds (materializes) components to an already existing entity. More...
 
SetResult Set (EntityRef entity, EntityPrototype prototype)
 Adds (materializes) components to an already existing entity. If a component already exists, it will get completely overwritten, but an error message will be logged. To avoid errors in such case use Set(EntityRef, EntityPrototype, out ComponentSet) instead. More...
 
SetResult Set (EntityRef entity, EntityPrototype prototype, out ComponentSet overwrittenComponents)
 Adds (materializes) components to an already existing entity. If a component already exists, it will get completely overwritten. More...
 
SetResult Set (EntityRef entity, int componentIndex, void *value)
 Sets a component on an entity. More...
 
SetResult Set< T > (EntityRef entity, T value)
 Sets a component on an entity. More...
 
void SetCullable (EntityRef entityRef, bool cullable)
 Sets if an existing entity is cullable or not. More...
 
void SetSingleton (int componentIndex, void *value, EntityRef optionalAddTarget=default)
 Sets the value of the specified singleton component. More...
 
void SetSingleton< T > (T component, EntityRef optionalAddTarget=default)
 Sets the instance of the specified singleton component. More...
 
bool TryFindAsset< T > (AssetGuid guid, out T asset)
 Retrieves an asset either from the asset database or as an dynamic asset. More...
 
bool TryFindAsset< T > (AssetRef assetRef, out T asset)
 Retrieves an asset either from the asset database or as an dynamic asset. More...
 
bool TryFindAsset< T > (AssetRef< T > assetRef, out T asset)
 Retrieves an asset either from the asset database or as an dynamic asset. More...
 
bool TryFindAsset< T > (string path, out T asset, DatabaseType dbType=DatabaseType.Default)
 Retrieves an asset by path from selected databases. More...
 
bool TryGet< T > (EntityRef entityRef, out T value)
 Gets a component from an entity. Does not throw when the component does not exist. More...
 
bool TryGetComponentSet (EntityRef entityRef, out ComponentSet set)
 Gets a set of all component types that were added to the entity. More...
 
bool TryGetSingleton< T > (out T component)
 Tries to get the instance of the specified singleton component. More...
 
bool TryGetSingletonEntityRef (int componentIndex, out EntityRef entityRef)
 Tries to get the entity reference of the specified singleton component. More...
 
bool TryGetSingletonEntityRef< T > (out EntityRef entityRef)
 Tries to get the EntityRef of the specified singleton component. More...
 

Static Public Member Functions

static void Copy (FrameBase to, FrameBase from)
 Copies the data from one FrameBase instance to another. More...
 
static void Print (FrameBase r, FramePrinter printer, bool printComponentsChecksum=false)
 Prints the entities and their components in the frame. More...
 
static void Serialize (FrameBase r, FrameSerializer serializer)
 Serializes the given frame using the provided serializer. More...
 

Public Attributes

DynamicAssetDB DynamicAssetDB => _dynamicAssetDB
 The Asset Database for Dynamic Assets. More...
 
Physics2D.PhysicsEngine2D.Api Physics2D
 Access to the Physics2D API. More...
 
Physics3D.PhysicsEngine3D.Api Physics3D
 Access to the Physics3D API. More...
 
FrameBaseUnsafe Unsafe
 

Static Protected Member Functions

static void Initialize (FrameBase f, FrameBase.EntitiesConfig config, int maxComponents=256)
 Initializes the FrameBase instance. More...
 

Properties

FrameContext Context [get]
 Access to the FrameContext. More...
 
abstract FP DeltaTime [get, set]
 Gets or sets the delta time of the frame. More...
 
FrameHeap Heap [get]
 Gets the heap used by the frame. More...
 
LayerInfo Layers [get]
 Access to the Layer API. More...
 
abstract Map Map [get, set]
 The current loaded map asset.

See also
Quantum.Map
More...
 
Navigation Navigation [get]
 Access to the Navigation API. More...
 
abstract NavMeshRegionMaskNavMeshRegionMask [get]
 Represents a mask used to define regions on a NavMesh. More...
 
abstract PhysicsSceneSettings * PhysicsSceneSettings [get]
 Represents the current physics scene settings. More...
 
abstract Int32 UpdateRate [get]
 The current frame update rate. More...
 

Detailed Description

The Frame class is the container for all the transient and static game state data, including the API for entities, physics, assets and others.

The reason for this is that Systems must be stateless to comply with Quantum's predict/rollback model. Quantum only guarantees determinism if all game state data is fully contained in the Frame class.

Member Function Documentation

◆ Filter< T0 >()

ComponentFilter<T0> Quantum.Core.FrameBase.Filter< T0 > ( ComponentSet  without = default,
ComponentSet  any = default 
)
inline

Filter entities by component types.

Template Parameters
T0Filter component type
Parameters
withoutComponents that should not be present
anyComponents that should be present
Type Constraints
T0 :unmanaged 
T0 :IComponent 

◆ Filter< T0, T1 >()

ComponentFilter<T0, T1> Quantum.Core.FrameBase.Filter< T0, T1 > ( ComponentSet  without = default,
ComponentSet  any = default 
)
inline

Filter entities by component types.

Template Parameters
T0Filter component type
T1Filter component type
Parameters
withoutComponents that should not be present
anyComponents that should be present
Type Constraints
T0 :unmanaged 
T0 :IComponent 
T1 :unmanaged 
T1 :IComponent 

◆ Filter< T0, T1, T2 >()

ComponentFilter<T0, T1, T2> Quantum.Core.FrameBase.Filter< T0, T1, T2 > ( ComponentSet  without = default,
ComponentSet  any = default 
)
inline

Filter entities by component types.

Template Parameters
T0Filter component type
T1Filter component type
T2Filter component type
Parameters
withoutComponents that should not be present
anyComponents that should be present
Type Constraints
T0 :unmanaged 
T0 :IComponent 
T1 :unmanaged 
T1 :IComponent 
T2 :unmanaged 
T2 :IComponent 

◆ Filter< T0, T1, T2, T3 >()

ComponentFilter<T0, T1, T2, T3> Quantum.Core.FrameBase.Filter< T0, T1, T2, T3 > ( ComponentSet  without = default,
ComponentSet  any = default 
)
inline

Filter entities by component types.

Template Parameters
T0Filter component type
T1Filter component type
T2Filter component type
T3Filter component type
Parameters
withoutComponents that should not be present
anyComponents that should be present
Type Constraints
T0 :unmanaged 
T0 :IComponent 
T1 :unmanaged 
T1 :IComponent 
T2 :unmanaged 
T2 :IComponent 
T3 :unmanaged 
T3 :IComponent 

◆ Filter< T0, T1, T2, T3, T4 >()

ComponentFilter<T0, T1, T2, T3, T4> Quantum.Core.FrameBase.Filter< T0, T1, T2, T3, T4 > ( ComponentSet  without = default,
ComponentSet  any = default 
)
inline

Filter entities by component types.

Template Parameters
T0Filter component type
T1Filter component type
T2Filter component type
T3Filter component type
T4Filter component type
Parameters
withoutComponents that should not be present
anyComponents that should be present
Type Constraints
T0 :unmanaged 
T0 :IComponent 
T1 :unmanaged 
T1 :IComponent 
T2 :unmanaged 
T2 :IComponent 
T3 :unmanaged 
T3 :IComponent 
T4 :unmanaged 
T4 :IComponent 

◆ Filter< T0, T1, T2, T3, T4, T5 >()

ComponentFilter<T0, T1, T2, T3, T4, T5> Quantum.Core.FrameBase.Filter< T0, T1, T2, T3, T4, T5 > ( ComponentSet  without = default,
ComponentSet  any = default 
)
inline

Filter entities by component types.

Template Parameters
T0Filter component type
T1Filter component type
T2Filter component type
T3Filter component type
T4Filter component type
T5Filter component type
Parameters
withoutComponents that should not be present
anyComponents that should be present
Type Constraints
T0 :unmanaged 
T0 :IComponent 
T1 :unmanaged 
T1 :IComponent 
T2 :unmanaged 
T2 :IComponent 
T3 :unmanaged 
T3 :IComponent 
T4 :unmanaged 
T4 :IComponent 
T5 :unmanaged 
T5 :IComponent 

◆ Filter< T0, T1, T2, T3, T4, T5, T6 >()

ComponentFilter<T0, T1, T2, T3, T4, T5, T6> Quantum.Core.FrameBase.Filter< T0, T1, T2, T3, T4, T5, T6 > ( ComponentSet  without = default,
ComponentSet  any = default 
)
inline

Filter entities by component types.

Template Parameters
T0Filter component type
T1Filter component type
T2Filter component type
T3Filter component type
T4Filter component type
T5Filter component type
T6Filter component type
Parameters
withoutComponents that should not be present
anyComponents that should be present
Type Constraints
T0 :unmanaged 
T0 :IComponent 
T1 :unmanaged 
T1 :IComponent 
T2 :unmanaged 
T2 :IComponent 
T3 :unmanaged 
T3 :IComponent 
T4 :unmanaged 
T4 :IComponent 
T5 :unmanaged 
T5 :IComponent 
T6 :unmanaged 
T6 :IComponent 

◆ Filter< T0, T1, T2, T3, T4, T5, T6, T7 >()

ComponentFilter<T0, T1, T2, T3, T4, T5, T6, T7> Quantum.Core.FrameBase.Filter< T0, T1, T2, T3, T4, T5, T6, T7 > ( ComponentSet  without = default,
ComponentSet  any = default 
)
inline

Filter entities by component types.

Template Parameters
T0Filter component type
T1Filter component type
T2Filter component type
T3Filter component type
T4Filter component type
T5Filter component type
T6Filter component type
T7Filter component type
Parameters
withoutComponents that should not be present
anyComponents that should be present
Type Constraints
T0 :unmanaged 
T0 :IComponent 
T1 :unmanaged 
T1 :IComponent 
T2 :unmanaged 
T2 :IComponent 
T3 :unmanaged 
T3 :IComponent 
T4 :unmanaged 
T4 :IComponent 
T5 :unmanaged 
T5 :IComponent 
T6 :unmanaged 
T6 :IComponent 
T7 :unmanaged 
T7 :IComponent 

◆ IsPlayerVerifiedOrLocal()

bool Quantum.Core.FrameBase.IsPlayerVerifiedOrLocal ( PlayerRef  player)

Returns information to deterministically cull simulation code (e.g. commands).

Parameters
playerPlayer ref
Returns
true on every verified frame or when the player is a local player.

◆ GetMemoryStats()

Stats Quantum.Core.FrameBase.GetMemoryStats ( )
inline

Calculates the memory statistics for the current frame.

Returns
A structure containing the heap stats, entity count, and entity total memory.

◆ OnFrameSimulateBegin()

void Quantum.Core.FrameBase.OnFrameSimulateBegin ( )
inline

Executes the necessary operations at the beginning of simulating a frame.

◆ OnFrameSimulateEnd()

void Quantum.Core.FrameBase.OnFrameSimulateEnd ( )
inline

Performs actions at the end of frame simulation.

If the CommitCommandsMode is set to Quantum.CommitCommandsModes.OnFrameSimulationEnd, this method commits all commands.

◆ ComponentCount< T >()

int Quantum.Core.FrameBase.ComponentCount< T > ( bool  includePendingRemoval = false)
inline

Gets the total count of T components

Parameters
includePendingRemovalIf the component entries that were removed but are not yet committed in memory should be considered.
Template Parameters
TThe component type
Returns
Total count
Type Constraints
T :unmanaged 
T :IComponent 

◆ ComponentCount()

int Quantum.Core.FrameBase.ComponentCount ( int  componentIndex,
bool  includePendingRemoval = false 
)
inline

Gets the total count of components of a given index. See ComponentTypeId and ComponentTypeId<T> to have access to component types metadata.

Parameters
includePendingRemovalIf the component entries that were removed but are not yet committed in memory should be considered.
componentIndexThe index of the component type
Returns
Total count

◆ AddAsset() [1/2]

AssetGuid Quantum.Core.FrameBase.AddAsset ( AssetObject  asset)
inline

Adds a dynamic asset to the frame. Dynamic Asset DB generates and assigns Guids for dynamic assets, so asset can not have AssetObject.Guid set before calling this method.

Parameters
assetAsset object
Returns
Asset id
PhysicsMaterial material = new PhysicsMaterial {
Restitution = 1,
FrictionCombineFunction = PhysicsCombineFunction.Average,
RestitutionCombineFunction = PhysicsCombineFunction.Average };
var assetId = f.AddAsset(material);

◆ AddAsset() [2/2]

void Quantum.Core.FrameBase.AddAsset ( AssetObject  asset,
AssetGuid  guid 
)
inline

Adds a dynamic asset to the frame with a guid know ahead of time. Dynamic Asset DB assigns Guids for dynamic assets, so asset can not have AssetObject.Guid set before calling this method.

Parameters
assetAsset object
guidA guid to be assigned. Needs to be of AssetGuidType.DynamicExplicit type
PhysicsMaterial material = new PhysicsMaterial {
Restitution = 1,
FrictionCombineFunction = PhysicsCombineFunction.Average,
RestitutionCombineFunction = PhysicsCombineFunction.Average };
f.AddAsset(material, new AssetGuid(1234, AssetGuidType.DynamicExplicit));

◆ ReplaceAsset()

void Quantum.Core.FrameBase.ReplaceAsset ( AssetGuid  guid,
AssetObject  asset 
)
inline

Replaces a dynamic asset in the frame. Asset asset can not have AssetObject.Path or AssetObject.Guid set as it inherits both from the original asset.

Parameters
guidGuid of an asset to be replaced
assetAsset object

◆ LoadAsset()

bool Quantum.Core.FrameBase.LoadAsset ( AssetGuid  guid)
inline

Loads an asset asynchronously into memory.

Parameters
guidAsset guid

Typically assets are loaded on demand. Use this method to preload assets.

◆ DisposeAsset() [1/2]

bool Quantum.Core.FrameBase.DisposeAsset ( AssetGuid  guid)
inline

Disposes an asset.

Parameters
guidAsset guid

The actual releasing of the asset is postponed and usually is triggered from the main thread at a later time.

◆ DisposeAsset() [2/2]

void Quantum.Core.FrameBase.DisposeAsset ( string  path,
DatabaseType  dbType = DatabaseType.Default 
)
inline

Disposes an asset.

Parameters
pathUnique asset path
dbType

The actual releasing of the asset is postponed and usually is triggered from the main thread at a later time.

◆ FindAsset< T >() [1/5]

T Quantum.Core.FrameBase.FindAsset< T > ( AssetGuid  guid)
inline

Retrieves an asset either from the asset database or as an dynamic asset. In case of a missing asset logs a warning.

Template Parameters
TAsset type
Parameters
guidAsset guid
Returns
Null if guid is not valid or not found, otherwise the requested asset object
Type Constraints
T :AssetObject 

◆ FindAsset< T >() [2/5]

T Quantum.Core.FrameBase.FindAsset< T > ( AssetRef  assetRef)
inline

Retrieves an asset either from the asset database or as an dynamic asset. In case of a missing asset logs a warning.

Template Parameters
TAsset type
Parameters
assetRefAsset reference
Returns
Null if reference is not valid or not found, otherwise the requested asset object
Type Constraints
T :AssetObject 

◆ FindAsset< T >() [3/5]

bool Quantum.Core.FrameBase.FindAsset< T > ( AssetRef  assetRef,
out T  asset 
)
inline

Retrieves an asset either from the asset database or as an dynamic asset. In case of a missing asset logs a warning.

Template Parameters
TAsset type
Parameters
assetRefAsset reference
assetNull if reference is not valid or not found, otherwise the requested asset object.
Returns
true if guid is valid and an asset is found
Type Constraints
T :AssetObject 

◆ FindAsset< T >() [4/5]

T Quantum.Core.FrameBase.FindAsset< T > ( AssetRef< T >  assetRef)
inline

Retrieves an asset either from the asset database or as an dynamic asset. In case of a missing asset logs a warning.

Template Parameters
TAsset type
Parameters
assetRefAsset reference
Returns
Null if reference is not valid or not found, otherwise the requested asset object
Type Constraints
T :AssetObject 

◆ TryFindAsset< T >() [1/4]

bool Quantum.Core.FrameBase.TryFindAsset< T > ( AssetGuid  guid,
out T  asset 
)
inline

Retrieves an asset either from the asset database or as an dynamic asset.

Template Parameters
TAsset type
Parameters
guidAsset guid
assetNull if guid is not valid or not found, otherwise the requested asset object
Returns
true if guid is valid and an asset is found
Type Constraints
T :AssetObject 

◆ TryFindAsset< T >() [2/4]

bool Quantum.Core.FrameBase.TryFindAsset< T > ( AssetRef  assetRef,
out T  asset 
)
inline

Retrieves an asset either from the asset database or as an dynamic asset.

Template Parameters
TAsset type
Parameters
assetRefAsset reference
assetNull if reference is not valid or not found, otherwise the requested asset object
Returns
true if reference is valid and an asset is found
Type Constraints
T :AssetObject 

◆ TryFindAsset< T >() [3/4]

bool Quantum.Core.FrameBase.TryFindAsset< T > ( AssetRef< T >  assetRef,
out T  asset 
)
inline

Retrieves an asset either from the asset database or as an dynamic asset.

Template Parameters
TAsset type
Parameters
assetRefAsset reference
assetNull if reference is not valid or not found, otherwise the requested asset object
Returns
true if reference is valid and an asset is found


Type Constraints
T :AssetObject 

◆ FindAsset< T >() [5/5]

T Quantum.Core.FrameBase.FindAsset< T > ( string  path,
DatabaseType  dbType = DatabaseType.Default 
)
inline

Retrieves an asset by path from selected databases. In case of a missing asset logs a warning.

Template Parameters
TAsset type
Parameters
pathUnique asset path
dbTypeType of the database to look in (AssetDB by default)
Returns
Null if the asset path can not be found, otherwise the requested asset object
Type Constraints
T :AssetObject 

◆ TryFindAsset< T >() [4/4]

bool Quantum.Core.FrameBase.TryFindAsset< T > ( string  path,
out T  asset,
DatabaseType  dbType = DatabaseType.Default 
)
inline

Retrieves an asset by path from selected databases.

Template Parameters
TAsset type
Parameters
pathUnique asset path
assetNull if the path is not valid or not found, otherwise the requested asset object
dbTypeType of the database to look in (AssetDB by default)
Returns
true if the path is valid and an asset is found
Type Constraints
T :AssetObject 

◆ FindPrototype() [1/2]

ComponentPrototypeSet Quantum.Core.FrameBase.FindPrototype ( EntityPrototypeRef  prototypeRef)
inline

Parameters
prototypeRef
Returns

◆ FindPrototype() [2/2]

ComponentPrototype Quantum.Core.FrameBase.FindPrototype ( ComponentPrototypeRef  prototypeRef)
inline

Finds the ComponentPrototype based on the given ComponentPrototypeRef.

Parameters
prototypeRefThe ComponentPrototypeRef to search for.
Returns
The ComponentPrototype if found; otherwise, null.

◆ FindPrototype< T >()

Finds and retrieves a specific component prototype based on the given prototype reference.

Parameters
prototypeRefThe prototype reference of the component.
Template Parameters
TThe type of the component prototype.
Returns
The matching component prototype.
Exceptions
InvalidOperationExceptionThrown when the component type does not match the expected type.
Type Constraints
T :ComponentPrototype 

◆ FindPrototype< TPrototypeRef, TPrototype >() [1/2]

TPrototype Quantum.Core.FrameBase.FindPrototype< TPrototypeRef, TPrototype > ( TPrototypeRef  prototypeRef)
inline

Finds a component prototype of type TPrototype given a component prototype reference.

Parameters
prototypeRefReference to the component prototype
Returns
The component prototype of type TPrototype
Type Constraints
TPrototypeRef :unmanaged 
TPrototypeRef :IComponentPrototypeRef<TPrototype> 
TPrototype :ComponentPrototype 

◆ FindPrototype< TPrototypeRef, TPrototype >() [2/2]

bool Quantum.Core.FrameBase.FindPrototype< TPrototypeRef, TPrototype > ( TPrototypeRef  prototypeRef,
out TPrototype  prototype 
)
inline

Finds a component prototype using the given prototype reference.

Template Parameters
TPrototypeRefThe type of the prototype reference.
TPrototypeThe type of the component prototype.
Parameters
prototypeRefThe prototype reference.
prototypeThe found component prototype.
Returns
true if the component prototype is found, otherwise false.
Type Constraints
TPrototypeRef :unmanaged 
TPrototypeRef :IComponentPrototypeRef<TPrototype> 
TPrototype :ComponentPrototype 

◆ ClearAllNavMeshRegions()

void Quantum.Core.FrameBase.ClearAllNavMeshRegions ( )
inline

If a navmesh region is toggled on/off is saved here. Call this method to reset every region state to be enabled again.

◆ GetAllEntityRefs()

void Quantum.Core.FrameBase.GetAllEntityRefs ( System.Collections.Generic.List< EntityRef result)
inline

Retrieves the references to all entities.

Parameters
resultThe list to store the entity references.

◆ Has()

bool Quantum.Core.FrameBase.Has ( EntityRef  entityRef,
int  componentIndex 
)
inline

Determines whether an entity has a specific component.

Parameters
entityRefThe reference to the entity.
componentIndexThe index of the component.
Returns
true if the entity has the component, otherwise false.

◆ Has< T >()

bool Quantum.Core.FrameBase.Has< T > ( EntityRef  entityRef)
inline

Checks if an entity has a component.

Template Parameters
TComponent type
Parameters
entityRefEntity reference
Returns
true if the component type exists on the entity
Exceptions
InvalidOperationExceptionThrown when the entity does not exist
Type Constraints
T :unmanaged 
T :IComponent 

◆ DestroyPending()

bool Quantum.Core.FrameBase.DestroyPending ( EntityRef  entityRef)
inline

Check if a destroy is pending for this entity

Parameters
entityRefEntity reference
Returns
true of destroy is pending, false otherwise

◆ Set() [1/2]

SetResult Quantum.Core.FrameBase.Set ( EntityRef  entity,
AssetRef< EntityPrototype prototype 
)
inline

Adds (materializes) components to an already existing entity.

Parameters
entity
prototype
Returns

Set(EntityRef, EntityPrototype)

◆ Set() [2/2]

SetResult Quantum.Core.FrameBase.Set ( EntityRef  entity,
AssetRef< EntityPrototype prototype,
out ComponentSet  overwrittenComponents 
)
inline

Adds (materializes) components to an already existing entity.

Parameters
entity
prototype
overwrittenComponents
Returns

Set(EntityRef, EntityPrototype, out ComponentSet)

◆ GetSingleton< T >()

T Quantum.Core.FrameBase.GetSingleton< T > ( )
inline

Gets the instance of the specified singleton component.

Template Parameters
TThe type of the singleton component.
Returns
The instance of the specified singleton component.
Exceptions
InvalidOperationExceptionThrown if the singleton component is not found.
Type Constraints
T :unmanaged 
T :IComponentSingleton 

◆ GetSingletonEntityRef< T >()

Gets the EntityRef for the singleton component of the specified type.

Template Parameters
TThe type of the singleton component.
Returns
The EntityRef for the singleton component of the specified type.
Exceptions
InvalidOperationExceptionThrown if the singleton component is not found.
Type Constraints
T :unmanaged 
T :IComponentSingleton 

◆ GetSingletonEntityRef()

EntityRef Quantum.Core.FrameBase.GetSingletonEntityRef ( int  componentIndex)
inline

Gets the entity reference of the specified singleton component.

Returns
The entity reference of the specified singleton component.
Parameters
componentIndexThe index of the component.
Exceptions
InvalidOperationExceptionThrown if the singleton component is not found.

◆ SetSingleton< T >()

void Quantum.Core.FrameBase.SetSingleton< T > ( component,
EntityRef  optionalAddTarget = default 
)
inline

Sets the instance of the specified singleton component.

Template Parameters
TThe type of the singleton component.
Parameters
componentThe instance of the singleton component to set.
optionalAddTargetThe entity reference to add the singleton component to. If not specified, a new entity will be created.
Type Constraints
T :unmanaged 
T :IComponentSingleton 

◆ SetSingleton()

void Quantum.Core.FrameBase.SetSingleton ( int  componentIndex,
void *  value,
EntityRef  optionalAddTarget = default 
)
inline

Sets the value of the specified singleton component.

Parameters
componentIndexThe index of the component.
valueThe value to set.
optionalAddTargetThe entity reference where the singleton component should be added, defaults to default.

◆ RemoveSingleton< T >()

Removes the singleton component of the specified type if it exists.

Template Parameters
TThe type of the singleton component.
Returns
true if the singleton component was successfully removed, false if the singleton component does not exist.
Exceptions
InvalidOperationExceptionThrown if an error occurs while removing the singleton component.
Type Constraints
T :unmanaged 
T :IComponentSingleton 

◆ RemoveSingleton() [1/2]

bool Quantum.Core.FrameBase.RemoveSingleton ( Type  componentType)
inline

Removes the singleton component of the specified type.

Returns
true if the singleton component was successfully removed, false otherwise.

◆ RemoveSingleton() [2/2]

bool Quantum.Core.FrameBase.RemoveSingleton ( int  componentIndex)
inline

Removes the singleton component of the specified type.

Returns
true if the singleton component was successfully removed; otherwise, false.
Exceptions
InvalidOperationExceptionThrown if the singleton component is not found.

◆ TryGetSingletonEntityRef< T >()

bool Quantum.Core.FrameBase.TryGetSingletonEntityRef< T > ( out EntityRef  entityRef)
inline

Tries to get the EntityRef of the specified singleton component.

Template Parameters
TThe type of the singleton component.
Parameters
entityRefThe reference to store the entity.
Returns
true if the singleton component is found and the EntityRef is valid; otherwise, false.
Type Constraints
T :unmanaged 
T :IComponentSingleton 

◆ TryGetSingletonEntityRef()

bool Quantum.Core.FrameBase.TryGetSingletonEntityRef ( int  componentIndex,
out EntityRef  entityRef 
)
inline

Tries to get the entity reference of the specified singleton component.

Parameters
componentIndexThe index of the component.
entityRefThe entity reference of the singleton component if it exists, otherwise default.
Returns
true if the entity reference of the singleton component exists, otherwise false.

◆ TryGetSingleton< T >()

bool Quantum.Core.FrameBase.TryGetSingleton< T > ( out T  component)
inline

Tries to get the instance of the specified singleton component.

Template Parameters
TThe type of the singleton component.
Parameters
componentWhen this method returns, contains the instance of the specified singleton component if it is found; otherwise, the default value.
Returns
true if the singleton component is found; otherwise, false.
Type Constraints
T :unmanaged 
T :IComponentSingleton 

◆ GetOrAddSingleton< T >()

T Quantum.Core.FrameBase.GetOrAddSingleton< T > ( EntityRef  optionalAddTarget = default)
inline

Gets the instance of the specified singleton component if it exists, otherwise adds the singleton component and returns the new instance.

Template Parameters
TThe type of the singleton component.
Parameters
optionalAddTargetThe optional entity reference to add the singleton component to.
Returns
The instance of the specified singleton component.
Type Constraints
T :unmanaged 
T :IComponentSingleton 

◆ Print()

static void Quantum.Core.FrameBase.Print ( FrameBase  r,
FramePrinter  printer,
bool  printComponentsChecksum = false 
)
inlinestatic

Prints the entities and their components in the frame.

Parameters
rThe frame to print.
printerThe frame printer.
printComponentsChecksumWhether to print the checksums of the components or not.

◆ Serialize()

static void Quantum.Core.FrameBase.Serialize ( FrameBase  r,
FrameSerializer  serializer 
)
inlinestatic

Serializes the given frame using the provided serializer.

Parameters
rThe frame to serialize.
serializerThe frame serializer.

◆ Copy()

static void Quantum.Core.FrameBase.Copy ( FrameBase  to,
FrameBase  from 
)
inlinestatic

Copies the data from one FrameBase instance to another.

Parameters
toThe destination FrameBase instance.
fromThe source FrameBase instance.

◆ Initialize()

static void Quantum.Core.FrameBase.Initialize ( FrameBase  f,
FrameBase.EntitiesConfig  config,
int  maxComponents = 256 
)
inlinestaticprotected

Initializes the FrameBase instance.

Parameters
fThe FrameBase instance to initialize.
configThe configuration settings for the FrameBase instance.
maxComponentsThe maximum number of components allowed.
Exceptions
NotImplementedExceptionThrown if the method is not implemented.

Member Data Documentation

◆ DynamicAssetDB

DynamicAssetDB Quantum.Core.FrameBase.DynamicAssetDB => _dynamicAssetDB

The Asset Database for Dynamic Assets.

Property Documentation

◆ PhysicsSceneSettings

abstract PhysicsSceneSettings* Quantum.Core.FrameBase.PhysicsSceneSettings
get

Represents the current physics scene settings.

◆ Map

abstract Map Quantum.Core.FrameBase.Map
getset

The current loaded map asset.

See also
Quantum.Map

◆ NavMeshRegionMask

abstract NavMeshRegionMask* Quantum.Core.FrameBase.NavMeshRegionMask
get

Represents a mask used to define regions on a NavMesh.

◆ Layers

LayerInfo Quantum.Core.FrameBase.Layers
get

Access to the Layer API.

◆ UpdateRate

abstract Int32 Quantum.Core.FrameBase.UpdateRate
get

The current frame update rate.

◆ DeltaTime

abstract FP Quantum.Core.FrameBase.DeltaTime
getset

Gets or sets the delta time of the frame.

◆ Context

FrameContext Quantum.Core.FrameBase.Context
get

Access to the FrameContext.

◆ Heap

FrameHeap Quantum.Core.FrameBase.Heap
get

Gets the heap used by the frame.

Quantum.PhysicsCombineFunction
PhysicsCombineFunction
Defines how the properties of the collider will be combined and affect the collision resolution....
Definition: PhysicsMaterial.cs:12
Quantum.AssetGuidType
AssetGuidType
Type of AssetGuid.
Definition: AssetGuid.cs:295