Game.Prefabs.AchievementFilterData
Assembly: Game
Namespace: Game.Prefabs
Type: struct
Base: Unity.Entities.IBufferElementData
Summary:
Represents a single entry used to filter achievements in an ECS buffer. Each element pairs an AchievementId with an allow/deny flag. The struct is intended to be stored in a DynamicBuffer
Fields
-
public AchievementId m_AchievementID
Attributes: [InputField], [Range(0f, 43f)]
AchievementId is defined in Colossal.PSI.Common. The Range attribute suggests valid numeric values map to achievement IDs in the range 0..43 (inclusive). The InputField attribute indicates the field is intended to be editable in an editor UI. -
public bool m_Allow
Flag indicating whether the specified achievement is allowed (true) or filtered/blocked (false).
Properties
- None. This type exposes only public fields.
Constructors
public AchievementFilterData()
Implicit default parameterless constructor (value type). Default field values: m_AchievementID default (typically 0), m_Allow false.
Methods
- None.
Usage Example
// Add and populate a buffer on an entity
var entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;
var entity = entityManager.CreateEntity();
var buffer = entityManager.AddBuffer<Game.Prefabs.AchievementFilterData>(entity);
buffer.Add(new Game.Prefabs.AchievementFilterData {
m_AchievementID = (AchievementId)5,
m_Allow = true
});
// Accessing in a SystemBase
public partial class AchievementFilterSystem : SystemBase {
protected override void OnUpdate() {
Entities
.ForEach((in DynamicBuffer<Game.Prefabs.AchievementFilterData> filters) => {
foreach (var f in filters) {
if (f.m_Allow) {
// handle allowed achievement f.m_AchievementID
} else {
// handle filtered achievement
}
}
}).Schedule();
}
}
Additional notes:
- Because this is an IBufferElementData, use DynamicBuffer