Class MyComponentContainerExtension
TODO: This should be later ideally some factory rather than just an extension on the MyComponentContainer
Inheritance
System.Object
MyComponentContainerExtension
Assembly: Sandbox.Game.dll
Syntax
public static class MyComponentContainerExtension : Object
Methods
FindComponentBuilder(MyContainerDefinition.DefaultComponent, MyObjectBuilder_ComponentContainer)
Declaration
public static MyObjectBuilder_ComponentBase FindComponentBuilder(MyContainerDefinition.DefaultComponent component, MyObjectBuilder_ComponentContainer builder)
Parameters
Returns
InitComponents(IMyComponentContainer, MyObjectBuilderType, MyStringHash, MyObjectBuilder_ComponentContainer)
Tries to retrieve entity definition of the entity owning this container, check if the definition has some DefaultComponents,
tries to retrieve these components definitions, create these components instances and add them
TODO: This should be ideally a behavior of the MyEntityComponentContainer when it is initialized (deserialized).. or by the factory, for now, this is an extension method
Declaration
public static void InitComponents(this IMyComponentContainer container, MyObjectBuilderType type, MyStringHash subtypeName, MyObjectBuilder_ComponentContainer builder)
Parameters
TryAddComponent(Int64, String, String)
This will try to parse strings to types and create an instance of the component type. Don't use this in retail code, use for debug, modding etc.
Declaration
public static bool TryAddComponent(long entityId, string instanceTypeStr, string componentTypeStr)
Parameters
Type |
Name |
Description |
System.Int64 |
entityId |
Id of entity which should get the component
|
System.String |
instanceTypeStr |
Type of the component instance, no the base type
|
System.String |
componentTypeStr |
The base type of the component to be added
|
Returns
Type |
Description |
System.Boolean |
true on success
|
TryAddComponent(Int64, MyDefinitionId)
This will look for the component definition and if found, it will create its instance and add to the entity with the give id
Declaration
public static bool TryAddComponent(long entityId, MyDefinitionId componentDefinitionId)
Parameters
Type |
Name |
Description |
System.Int64 |
entityId |
|
MyDefinitionId |
componentDefinitionId |
|
Returns
Type |
Description |
System.Boolean |
true on success
|
TryGetComponentDefinition(MyObjectBuilderType, MyStringHash, out MyComponentDefinitionBase)
Declaration
public static bool TryGetComponentDefinition(MyObjectBuilderType type, MyStringHash subtypeName, out MyComponentDefinitionBase componentDefinition)
Parameters
Returns
Type |
Description |
System.Boolean |
|
TryGetContainerDefinition(MyObjectBuilderType, MyStringHash, out MyContainerDefinition)
Declaration
public static bool TryGetContainerDefinition(MyObjectBuilderType type, MyStringHash subtypeName, out MyContainerDefinition definition)
Parameters
Returns
Type |
Description |
System.Boolean |
|
TryGetEntityComponentTypes(Int64, out List<Type>)
This will retrieve component types in the entity container. This method allocates, use only for debugging etc.
Declaration
public static bool TryGetEntityComponentTypes(long entityId, out List<Type> components)
Parameters
Type |
Name |
Description |
System.Int64 |
entityId |
|
System.Collections.Generic.List<System.Type> |
components |
|
Returns
Type |
Description |
System.Boolean |
true if success
|
TryRemoveComponent(Int64, Type)
Declaration
public static bool TryRemoveComponent(long entityId, Type componentType)
Parameters
Type |
Name |
Description |
System.Int64 |
entityId |
|
System.Type |
componentType |
|
Returns
Type |
Description |
System.Boolean |
|