using ImpactCFX;
using ImpactCFX.Pooling;

//The result of the effect. This is created when a collision is processed.
public struct ExampleEffectResult : IEffectResult, IObjectPoolRequest
{
    //Properties used internally by Impact CFX
    public bool IsEffectValid { get; set; }
    public int CollisionIndex { get; set; }
    public int MaterialCompositionIndex { get; set; }
    public bool IsObjectPoolRequestValid { get; set; }
    public int TemplateID { get; set; }
    public float Priority { get; set; }
    public int ObjectIndex { get; set; }
    public bool IsUpdate { get; set; }

    //These contact point IDs allow Impact CFX to update effects for sliding and rolling.
    public long ContactPointID { get; set; }
    public bool CheckContactPointID { get; set; }

    //Fields and properties for results specific to the effect.
    public float ValueResult;
}
