using System; public class Bed : BaseInteractableObject { public override void Interact(Player player) { base.Interact(player); _player.SetPlayerAnimation(AnimationStates.Sitting, OnAnimationFinished); } private void OnAnimationFinished() { UIManager.Instance.ShowTimeSliderDialog("Go to sleep", "Sleep until", OnCancel, OnConfirm); } private void OnCancel() { OnFastForwardEnd(); } private void OnConfirm(TimeSpan time) { _player.SetPlayerActing(PlayerStates.Sleeping); TimeManager.Instance.FastForward(time); TimeManager.Instance.OnFastForwardEnd += OnFastForwardEnd; } private void OnFastForwardEnd() { _player.SetPlayerActing(PlayerStates.Awake); _player.SetPlayerAnimation(AnimationStates.Standing); TimeManager.Instance.OnFastForwardEnd -= OnFastForwardEnd; } }