mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-20 15:41:01 +00:00
WorldObjectManager: DlcOnly flag
This commit is contained in:
parent
4bc0b16379
commit
ff3d139ac7
@ -8,6 +8,7 @@ namespace QSB.EchoesOfTheEye.AirlockSync;
|
||||
internal class AirlockManager : WorldObjectManager
|
||||
{
|
||||
public override WorldObjectScene WorldObjectScene => WorldObjectScene.SolarSystem;
|
||||
public override bool DlcOnly => true;
|
||||
|
||||
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) => QSBWorldSync.Init<QSBGhostAirlock, GhostAirlock>();
|
||||
}
|
@ -8,6 +8,7 @@ namespace QSB.EchoesOfTheEye.LightSensorSync;
|
||||
internal class LightSensorManager : WorldObjectManager
|
||||
{
|
||||
public override WorldObjectScene WorldObjectScene => WorldObjectScene.Both;
|
||||
public override bool DlcOnly => true;
|
||||
|
||||
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) => QSBWorldSync.Init<QSBLightSensor, SingleLightSensor>();
|
||||
}
|
@ -8,6 +8,7 @@ namespace QSB.EchoesOfTheEye.PictureFrameDoors;
|
||||
internal class PictureFrameDoorsManager : WorldObjectManager
|
||||
{
|
||||
public override WorldObjectScene WorldObjectScene => WorldObjectScene.SolarSystem;
|
||||
public override bool DlcOnly => true;
|
||||
|
||||
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct)
|
||||
{
|
||||
|
@ -10,6 +10,7 @@ namespace QSB.EchoesOfTheEye.RaftSync;
|
||||
public class RaftManager : WorldObjectManager
|
||||
{
|
||||
public override WorldObjectScene WorldObjectScene => WorldObjectScene.SolarSystem;
|
||||
public override bool DlcOnly => true;
|
||||
|
||||
public static readonly List<RaftController> Rafts = new();
|
||||
|
||||
|
@ -8,6 +8,7 @@ namespace QSB.EchoesOfTheEye.SlideProjectors;
|
||||
internal class SlideProjectorManager : WorldObjectManager
|
||||
{
|
||||
public override WorldObjectScene WorldObjectScene => WorldObjectScene.SolarSystem;
|
||||
public override bool DlcOnly => true;
|
||||
|
||||
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) => QSBWorldSync.Init<QSBSlideProjector, SlideProjector>();
|
||||
}
|
@ -51,6 +51,11 @@ public static class QSBWorldSync
|
||||
|
||||
foreach (var manager in Managers)
|
||||
{
|
||||
if (manager.DlcOnly && !QSBCore.DLCInstalled)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (manager.WorldObjectScene)
|
||||
{
|
||||
case WorldObjectScene.SolarSystem when QSBSceneManager.CurrentScene != OWScene.SolarSystem:
|
||||
@ -360,4 +365,4 @@ public static class QSBWorldSync
|
||||
SaveGame = saveGame
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,10 +15,11 @@ public enum WorldObjectScene
|
||||
public abstract class WorldObjectManager : MonoBehaviour, IAddComponentOnStart
|
||||
{
|
||||
public abstract WorldObjectScene WorldObjectScene { get; }
|
||||
public virtual bool DlcOnly => false;
|
||||
|
||||
public abstract UniTask BuildWorldObjects(OWScene scene, CancellationToken ct);
|
||||
|
||||
public virtual void UnbuildWorldObjects() { }
|
||||
|
||||
public override string ToString() => GetType().Name;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user