46 lines
1.1 KiB
C#
Raw Normal View History

using QSB.EyeOfTheUniverse.EyeStateSync.Messages;
2022-01-12 22:08:06 -08:00
using QSB.Messaging;
2022-01-11 20:00:47 -08:00
using QSB.Player;
using QSB.WorldSync;
using System.Linq;
using UnityEngine;
namespace QSB.EyeOfTheUniverse.MaskSync
{
2022-01-12 21:43:57 -08:00
internal class MaskManager : MonoBehaviour
2022-01-11 20:00:47 -08:00
{
2022-01-12 21:43:57 -08:00
private static bool _flickering;
private static float _flickerOutTime;
2022-01-11 20:00:47 -08:00
2022-01-12 21:43:57 -08:00
public void Awake() => QSBPlayerManager.OnRemovePlayer += OnPlayerLeave;
2022-01-11 20:00:47 -08:00
2022-01-12 21:43:57 -08:00
private static void OnPlayerLeave(PlayerInfo player)
2022-01-11 22:01:55 -08:00
{
2022-01-12 21:43:57 -08:00
if (player == QSBPlayerManager.LocalPlayer)
2022-01-12 01:11:18 -08:00
{
2022-01-12 21:43:57 -08:00
_flickering = false;
_flickerOutTime = 0f;
2022-01-11 20:00:47 -08:00
}
}
2022-01-12 21:43:57 -08:00
public static void FlickerOutShuttle()
{
FlickerMessage.IgnoreNextMessage = true;
2022-01-12 22:08:06 -08:00
GlobalMessenger<float, float>.FireEvent(OWEvents.FlickerOffAndOn, 0.5f, 0.5f);
_flickerOutTime = Time.time + 0.5f;
_flickering = true;
}
private void Update()
{
if (_flickering && Time.time > _flickerOutTime)
{
var controller = QSBWorldSync.GetUnityObjects<EyeShuttleController>().First();
controller._shuttleObject.SetActive(false);
_flickering = false;
_flickerOutTime = 0f;
}
}
2022-01-11 20:00:47 -08:00
}
}