using Cysharp.Threading.Tasks; using QSB.EchoesOfTheEye.LightSensorSync.WorldObjects; using QSB.Utility; using QSB.WorldSync; using System.Linq; using System.Threading; namespace QSB.EchoesOfTheEye.LightSensorSync; internal class LightSensorManager : WorldObjectManager { public override WorldObjectScene WorldObjectScene => WorldObjectScene.Both; public override bool DlcOnly => true; public static bool IsPlayerLightSensor(LightSensor lightSensor) => lightSensor.name is "CameraDetector" or "REMOTE_CameraDetector"; public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) { // ignore player light sensors var list = QSBWorldSync.GetUnityObjects() .Where(x => !IsPlayerLightSensor(x)) .SortDeterministic(); QSBWorldSync.Init(list); } }