using System; using ADOFAIRenderer.Core; namespace ADOFAIRenderer.API; /// /// Fluent builder for configuring and starting a render session. /// public class RenderSessionBuilder { private bool _auto = true; public enum PatchType { Time, Screen } private bool _timePatch = true; private bool _screenPatch = true; /// /// Sets whether automatic rendering is enabled. /// /// true to enable automatic rendering; otherwise, false. Default is true. /// The current instance for method chaining. public RenderSessionBuilder WithAuto(bool enabled = true) { _auto = enabled; return this; } public RenderSessionBuilder WithPatch(PatchType patchType, bool enabled = true) { switch (patchType) { case PatchType.Time: _timePatch = enabled; break; case PatchType.Screen: _screenPatch = enabled; break; default: throw new ArgumentOutOfRangeException(nameof(patchType), patchType, null); } return this; } /// /// Applies the configured flags and initiates the render session. /// public void Start() { RenderFlags.Auto = _auto; RenderFlags.TimePatch = _timePatch; RenderFlags.ScreenPatch = _screenPatch; } }