mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-04-16 14:42:35 +00:00
ignore player light sensors
This commit is contained in:
parent
a966c83d64
commit
4e445568e9
@ -1,21 +1,24 @@
|
|||||||
using Cysharp.Threading.Tasks;
|
using Cysharp.Threading.Tasks;
|
||||||
using QSB.EchoesOfTheEye.LightSensorSync.WorldObjects;
|
using QSB.EchoesOfTheEye.LightSensorSync.WorldObjects;
|
||||||
|
using QSB.Player;
|
||||||
|
using QSB.Utility;
|
||||||
using QSB.WorldSync;
|
using QSB.WorldSync;
|
||||||
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
namespace QSB.EchoesOfTheEye.LightSensorSync;
|
namespace QSB.EchoesOfTheEye.LightSensorSync;
|
||||||
|
|
||||||
internal class LightSensorManager : WorldObjectManager
|
internal class LightSensorManager : WorldObjectManager
|
||||||
{
|
{
|
||||||
/// <summary>
|
public override WorldObjectScene WorldObjectScene => WorldObjectScene.SolarSystem;
|
||||||
/// light sensor apparently shows up in eye
|
public override bool DlcOnly => true;
|
||||||
/// </summary>
|
|
||||||
public override WorldObjectScene WorldObjectScene => WorldObjectScene.Both;
|
|
||||||
/// <summary>
|
|
||||||
/// light sensor patches like to run even with no dlc
|
|
||||||
/// </summary>
|
|
||||||
public override bool DlcOnly => false;
|
|
||||||
|
|
||||||
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) =>
|
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct)
|
||||||
QSBWorldSync.Init<QSBLightSensor, SingleLightSensor>();
|
{
|
||||||
|
// ignore player light sensors
|
||||||
|
var list = QSBWorldSync.GetUnityObjects<SingleLightSensor>()
|
||||||
|
.Where(x => QSBPlayerManager.PlayerList.All(y => y.LightSensor != x))
|
||||||
|
.SortDeterministic();
|
||||||
|
QSBWorldSync.Init<QSBLightSensor, SingleLightSensor>(list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,11 @@ public partial class PlayerInfo
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
if (IsLocalPlayer)
|
||||||
|
{
|
||||||
|
return Locator.GetPlayerLightSensor();
|
||||||
|
}
|
||||||
|
|
||||||
if (CameraBody == null)
|
if (CameraBody == null)
|
||||||
{
|
{
|
||||||
DebugLog.ToConsole($"Error - Can't get LightSensor for {PlayerId}, because CameraBody is null.", MessageType.Error);
|
DebugLog.ToConsole($"Error - Can't get LightSensor for {PlayerId}, because CameraBody is null.", MessageType.Error);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user