2022-01-28 20:49:07 -08:00
|
|
|
|
using Cysharp.Threading.Tasks;
|
2022-02-01 08:58:52 +00:00
|
|
|
|
using QSB.Utility;
|
2022-01-28 20:49:07 -08:00
|
|
|
|
using System.Threading;
|
2022-02-01 14:24:21 -08:00
|
|
|
|
using UnityEngine;
|
2021-03-23 13:18:29 +00:00
|
|
|
|
|
2022-03-02 19:46:33 -08:00
|
|
|
|
namespace QSB.WorldSync;
|
|
|
|
|
|
|
|
|
|
public enum WorldObjectScene
|
2021-03-23 13:18:29 +00:00
|
|
|
|
{
|
2022-03-02 19:46:33 -08:00
|
|
|
|
Both,
|
|
|
|
|
SolarSystem,
|
|
|
|
|
Eye
|
|
|
|
|
}
|
2021-12-20 18:35:38 -08:00
|
|
|
|
|
2022-03-02 19:46:33 -08:00
|
|
|
|
public abstract class WorldObjectManager : MonoBehaviour, IAddComponentOnStart
|
|
|
|
|
{
|
|
|
|
|
public abstract WorldObjectScene WorldObjectScene { get; }
|
2022-03-11 10:04:11 -08:00
|
|
|
|
public virtual bool DlcOnly => false;
|
2021-12-20 18:35:38 -08:00
|
|
|
|
|
2022-03-02 19:46:33 -08:00
|
|
|
|
public abstract UniTask BuildWorldObjects(OWScene scene, CancellationToken ct);
|
2022-01-18 00:46:27 -08:00
|
|
|
|
|
2022-03-02 19:46:33 -08:00
|
|
|
|
public virtual void UnbuildWorldObjects() { }
|
2022-03-07 17:38:22 -08:00
|
|
|
|
|
2022-03-11 00:58:14 -08:00
|
|
|
|
public override string ToString() => GetType().Name;
|
2022-03-11 10:04:11 -08:00
|
|
|
|
}
|