Game.Common.Overridden
Assembly: Assembly-CSharp
Namespace: Game.Common
Type: struct
Base: System.ValueType, implements IComponentData, IQueryTypeParameter, IEmptySerializable
Summary: Overridden is an empty/tag ECS component used as a marker on entities. The struct is intentionally empty and compact (annotated with StructLayout(LayoutKind.Sequential, Size = 1)) so it can be attached as a lightweight tag to entities without carrying any payload. It implements: - IComponentData — so it can be used as a Unity.Entities component, - IQueryTypeParameter — allowing use in query/type parameter contexts, - IEmptySerializable — enabling Colossal's serialization pipeline to handle this empty component type correctly.
This pattern is common for "flag" or "tag" components that indicate state (for example: an entity's data was overridden, a one-shot marker, or a category label) without allocating extra memory for component data.
Fields
- This type defines no instance fields. Overridden is an empty struct; the StructLayout attribute forces a 1-byte size so it behaves as a minimal tag both in memory and during serialization.
Properties
- This type defines no properties. Being a pure marker component, there are no properties to read or modify — presence/absence of the component on an entity is the intended indicator.
Constructors
public Overridden()Structs have an implicit public parameterless constructor. Since there is no payload, construction simply yields the empty/tag value used when adding the component to an entity.
Methods
- This type defines no instance methods. All implemented interfaces are marker-style: there are no runtime methods to invoke on this type. Behavior is driven by the ECS systems and queries that check for presence of the component.
Usage Example
// Add the tag to an entity using EntityManager:
entityManager.AddComponent<Overridden>(someEntity);
// Or, when you need to remove the tag:
entityManager.RemoveComponent<Overridden>(someEntity);
// Querying entities that have the Overridden marker in a SystemBase:
public partial class ExampleSystem : SystemBase
{
protected override void OnUpdate()
{
Entities
.WithAll<Overridden>()
.ForEach((Entity entity, in SomeOtherComponent soc) =>
{
// Process entities that are marked as Overridden
})
.Schedule();
}
}
Notes: - Use this component as a lightweight flag in your ECS workflows. - The IEmptySerializable implementation makes it compatible with Colossal.Serialization tooling; the 1-byte layout is deliberate to keep component storage compact.