using QSB.EchoesOfTheEye.DreamLantern.WorldObjects; using QSB.Messaging; using QSB.Player; using QSB.WorldSync; using System.Collections.Generic; using System.Linq; namespace QSB.EchoesOfTheEye.LightSensorSync.Messages; public class PlayerIlluminatingLanternsMessage : QSBMessage<(uint playerId, int[] lanterns)> { public PlayerIlluminatingLanternsMessage(uint playerId, IEnumerable lanterns) : base(( playerId, lanterns.Select(x => x.GetWorldObject().ObjectId).ToArray() )) { } public override void OnReceiveRemote() { var lightSensor = (SingleLightSensor)QSBPlayerManager.GetPlayer(Data.playerId).LightSensor; lightSensor._illuminatingDreamLanternList.Clear(); lightSensor._illuminatingDreamLanternList.AddRange( Data.lanterns.Select(x => x.GetWorldObject().AttachedObject)); } }