DataContainer

A base frostbite DataContainer, the highest class in the Frostbite container instance hierarchy. All instances present in game data partitions (ebx) are derived from this type.

Summary

Properties

Name Type
typeInfo TypeInformation
isLazyLoaded bool
isReadOnly bool
instanceGuid Guid | nil
partitionGuid Guid | nil
partition DatabasePartition | nil

Methods

Method Returns
Is(typeName: string) bool
Eq(other: DataContainer) bool
AsDC() DataContainer
Clone() DataContainer
Clone(guid: Guid) DataContainer
ReplaceReferences(with: DataContainer | nil) void
MakeWritable() void
RegisterLoadHandler(callback: callable) ContainerCallback | nil
RegisterLoadHandler(context: any, callback: callable) ContainerCallback | nil
RegisterLoadHandlerOnce(callback: callable) ContainerCallback | nil
RegisterLoadHandlerOnce(context: any, callback: callable) ContainerCallback | nil

Static members

Name Type
DataContainer.typeInfo TypeInformation

Properties

typeInfo

TypeInformation

Type information for this instance. You can get the specific type of this instance via instance.typeInfo.name.

isLazyLoaded

bool

Indicates whether this instance is being lazy-loaded.

isReadOnly

bool

Indicates whether this instance is read-only, which is the case for instances loaded from data. Changes to read-only instances will throw an error.

instanceGuid

Guid | nil

The Guid of this instance, if it has one assigned to it.

partitionGuid

Guid | nil

The Guid of the partition that contains this instance, if there is one. Only instances loaded from data are inside partitions.

partition

DatabasePartition | nil

The DatabasePartition that contains this instance, if there is one. Only instances loaded from data are inside partitions.

Methods

Is

Is(typeName: string): bool

Checks if an instance is of a specific type. This will return true for matching child types too (eg. calling :Is('Asset') on a SoundAsset will return true).

Parameters

Name Type Description
typeName string The type name to check against.

Returns

Type Description
bool Whether this instance is of the provided type.

Eq

Eq(other: DataContainer): bool

Checks if two instances are pointing to the same data. This performs reference equality checks, not value equality.

Parameters

Name Type Description
other DataContainer The instance to check against.

Returns

Type Description
bool Whether this instance points to the same data as other.

AsDC

AsDC(): DataContainer

Returns a reference to the same instance as a DataContainer type. This is usually helpful when you have to upcast a more generic type to make it match the type definition of a property or an array.

Returns

Type Description
DataContainer The same instance but upcasted to a DataContainer.

Clone

Clone(): DataContainer

Creates a shallow clone of this instance, which is essentially the equivalent of creating a new instance of the same type and assigning the values of this instance to all of its properties. Any properties that contain structure types (eg. Vec3) will be cloned when assigning, while properties that contain instance types (eg. DataContainer) will be referencing the same instance.

Returns

Type Description
DataContainer The newly created instance.

Clone

Clone(guid: Guid): DataContainer

Creates a shallow clone of this instance and assigns it the provided Guid, which is essentially the equivalent of creating a new instance of the same type with the provided Guid and assigning the values of this instance to all of its properties. Any properties that contain structure types (eg. Vec3) will be cloned when assigning, while properties that contain instance types (eg. DataContainer) will be referencing the same instance.

Parameters

Name Type Description
guid Guid The Guid to assign to the cloned instance.

Returns

Type Description
DataContainer The newly created instance.

ReplaceReferences

ReplaceReferences(with: DataContainer | nil)

Replaces all registered references to the current instance with references to the provided instance. Passing nil will clear all references to this instance.

Parameters

Name Type Description
with DataContainer | nil The instance to set the references to, or nil to clear them.

MakeWritable

MakeWritable()

Makes a read-only instance writable. This is useful for modifying loaded game data. As this is a quite expensive operation, it is recommended to only use it on instances you plan to modify.

RegisterLoadHandler

RegisterLoadHandler(callback: callable): ContainerCallback | nil

Registers a callback that will be called once this lazy-loaded instance has finished loading. The callback will keep getting called between level loads.

Parameters

Name Type Description
callback callable A callback in the form function(instance: DataContainer).

Returns

Type Description
ContainerCallback | nil A callback handle that can be used to deregister the callback, or nil if this instance is not lazy-loaded.

RegisterLoadHandler

RegisterLoadHandler(context: any, callback: callable): ContainerCallback | nil

Registers a callback that will be called once this lazy-loaded instance has finished loading. The callback will keep getting called between level loads.

Parameters

Name Type Description
context any The context to pass to the provided callback.
callback callable A callback in the form function(context: any, instance: DataContainer).

Returns

Type Description
ContainerCallback | nil A callback handle that can be used to deregister the callback, or nil if this instance is not lazy-loaded.

RegisterLoadHandlerOnce

RegisterLoadHandlerOnce(callback: callable): ContainerCallback | nil

Registers a callback that will be called once this lazy-loaded instance has finished loading. The callback will get called once and then get automatically deregistered.

Parameters

Name Type Description
callback callable A callback in the form function(instance: DataContainer).

Returns

Type Description
ContainerCallback | nil A callback handle that can be used to deregister the callback, or nil if this instance is not lazy-loaded.

RegisterLoadHandlerOnce

RegisterLoadHandlerOnce(context: any, callback: callable): ContainerCallback | nil

Registers a callback that will be called once this lazy-loaded instance has finished loading. The callback will get called once and then get automatically deregistered.

Parameters

Name Type Description
context any The context to pass to the provided callback.
callback callable A callback in the form function(context: any, instance: DataContainer).

Returns

Type Description
ContainerCallback | nil A callback handle that can be used to deregister the callback, or nil if this instance is not lazy-loaded.

Static members

typeInfo

TypeInformation

The type information for the DataContainer type.