2022-01-18 00:27:32 -08:00
|
|
|
|
using UnityEngine;
|
2021-03-23 13:18:29 +00:00
|
|
|
|
|
|
|
|
|
namespace QSB.WorldSync
|
|
|
|
|
{
|
2021-12-20 18:35:38 -08:00
|
|
|
|
public enum WorldObjectType
|
|
|
|
|
{
|
|
|
|
|
Both,
|
|
|
|
|
SolarSystem,
|
|
|
|
|
Eye
|
|
|
|
|
}
|
|
|
|
|
|
2021-03-23 13:18:29 +00:00
|
|
|
|
public abstract class WorldObjectManager : MonoBehaviour
|
|
|
|
|
{
|
2021-12-20 18:35:38 -08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// when the scene does not match the type, this manager will not build its world objects
|
|
|
|
|
/// </summary>
|
|
|
|
|
public abstract WorldObjectType WorldObjectType { get; }
|
|
|
|
|
|
2022-01-18 00:46:27 -08:00
|
|
|
|
public abstract void BuildWorldObjects(OWScene scene);
|
|
|
|
|
|
|
|
|
|
public virtual void UnbuildWorldObjects() { }
|
2021-12-02 00:42:24 -08:00
|
|
|
|
|
|
|
|
|
/// indicates that this won't become ready immediately
|
2022-01-18 00:27:32 -08:00
|
|
|
|
protected void StartDelayedReady() => QSBWorldSync._numManagersReadying++;
|
2021-12-02 00:42:24 -08:00
|
|
|
|
|
|
|
|
|
/// indicates that this is now ready
|
2022-01-18 00:27:32 -08:00
|
|
|
|
protected void FinishDelayedReady() => QSBWorldSync._numManagersReadying--;
|
2021-03-23 13:18:29 +00:00
|
|
|
|
}
|
|
|
|
|
}
|