using System; using System.Runtime.InteropServices; namespace Raylib_cs; /// Automation event [StructLayout(LayoutKind.Sequential)] public unsafe struct AutomationEvent { /// Event frame public uint Frame; /// Event type (AutomationEventType) public uint Type; /// Event parameters (if required) public fixed int Params[4]; public readonly void Play() { Raylib.PlayAutomationEvent(this); } } /// Automation event list [StructLayout(LayoutKind.Sequential)] public unsafe struct AutomationEventList { /// Events max entries (MAX_AUTOMATION_EVENTS) public uint Capacity; /// Events entries count public uint Count; /// Events entries public AutomationEvent* Events; /// public readonly ReadOnlySpan EventsAsSpan => new ReadOnlySpan(Events, (int)Count); public static AutomationEventList Load(string fileName) { return Raylib.LoadAutomationEventList(fileName); } public readonly CBool Export(string fileName) { return Raylib.ExportAutomationEventList(this, fileName); } public void Unload() { Raylib.UnloadAutomationEventList(this); } }