54 lines
1.9 KiB
C#
54 lines
1.9 KiB
C#
using AcDream.Core.Net;
|
|
|
|
namespace AcDream.Runtime.Session;
|
|
|
|
public sealed record LiveSessionCharacterSelector(
|
|
int? ActiveIndex = null,
|
|
uint? CharacterId = null,
|
|
string? CharacterName = null);
|
|
|
|
public sealed record LiveSessionConnectOptions(
|
|
bool Enabled,
|
|
string Host,
|
|
int Port,
|
|
string User,
|
|
string Password,
|
|
LiveSessionCharacterSelector? Character = null,
|
|
/// <summary>
|
|
/// Campaign LA slice LA2: short-circuits
|
|
/// <see cref="LiveSessionController"/>'s connect transaction right after
|
|
/// the roster report (before <c>TrySelectCharacter</c>/
|
|
/// <c>ApplySelectedCharacter</c>/<c>EnterWorld</c>) — connect, receive
|
|
/// <c>CharacterList</c>, report the roster, gracefully disconnect via the
|
|
/// same <c>StopCore</c> teardown the <see cref="LiveSessionStartStatus.NoCharacters"/>
|
|
/// path already uses, and return
|
|
/// <see cref="LiveSessionStartStatus.ProbeComplete"/>. The pinned launch
|
|
/// contract (<c>docs/plans/2026-08-14-launcher-campaign.md</c> LA1's
|
|
/// <c>mode</c> field) requires a probe session to omit both
|
|
/// <see cref="Character"/> and its policy entirely, but the controller
|
|
/// itself does not enforce that pairing — the headless config loader
|
|
/// does, before a <see cref="LiveSessionConnectOptions"/> is ever built.
|
|
/// </summary>
|
|
bool Probe = false,
|
|
/// <summary>
|
|
/// Keep the connected transport in Runtime's pre-world selection state
|
|
/// instead of applying the legacy first-available fallback. Graphical
|
|
/// composition enables this only when no explicit selector was supplied;
|
|
/// direct/headless callers retain the existing default behavior.
|
|
/// </summary>
|
|
bool AwaitCharacterSelection = false);
|
|
|
|
public interface IRuntimeLiveSessionFramePhase
|
|
{
|
|
void Tick();
|
|
}
|
|
|
|
public interface ILiveSessionEventRouting : IDisposable
|
|
{
|
|
void Attach();
|
|
}
|
|
|
|
public interface ILiveSessionCommandRouting : IDisposable
|
|
{
|
|
void Activate();
|
|
}
|