30 lines
787 B
C#
30 lines
787 B
C#
using AcDream.Core.Physics;
|
|
|
|
namespace AcDream.App.Input;
|
|
|
|
internal interface ILocalPlayerIdentitySource
|
|
{
|
|
uint ServerGuid { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Session-scoped identity slot shared by focused update owners.
|
|
/// </summary>
|
|
internal sealed class LocalPlayerIdentityState : ILocalPlayerIdentitySource
|
|
{
|
|
public uint ServerGuid { get; set; }
|
|
}
|
|
|
|
internal interface ILocalPlayerControllerSource
|
|
{
|
|
PlayerMovementController? Controller { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// The one mutable local movement-controller slot. Player-mode lifecycle owns
|
|
/// assignment; update and presentation owners receive the read-only seam.
|
|
/// </summary>
|
|
internal sealed class LocalPlayerControllerSlot : ILocalPlayerControllerSource
|
|
{
|
|
public PlayerMovementController? Controller { get; set; }
|
|
}
|