115 lines
1.6 KiB
C#
115 lines
1.6 KiB
C#
namespace TPSBR
|
|
{
|
|
public class SceneService : CoreBehaviour
|
|
{
|
|
// PUBLIC MEMBERS
|
|
|
|
public SceneContext Context => _context;
|
|
public Scene Scene => _scene;
|
|
public bool IsActive => _isActive;
|
|
public bool IsInitialized => _isInitialized;
|
|
|
|
// PRIVATE MEMBERS
|
|
|
|
private Scene _scene;
|
|
private SceneContext _context;
|
|
private bool _isInitialized;
|
|
private bool _isActive;
|
|
|
|
// INTERNAL METHODS
|
|
|
|
internal void Initialize(Scene scene, SceneContext context)
|
|
{
|
|
if (_isInitialized == true)
|
|
return;
|
|
|
|
_scene = scene;
|
|
_context = context;
|
|
|
|
OnInitialize();
|
|
|
|
_isInitialized = true;
|
|
}
|
|
|
|
internal void Deinitialize()
|
|
{
|
|
if (_isInitialized == false)
|
|
return;
|
|
|
|
Deactivate();
|
|
|
|
OnDeinitialize();
|
|
|
|
_scene = null;
|
|
_context = null;
|
|
|
|
_isInitialized = false;
|
|
}
|
|
|
|
internal void Activate()
|
|
{
|
|
if (_isInitialized == false)
|
|
return;
|
|
|
|
if (_isActive == true)
|
|
return;
|
|
|
|
OnActivate();
|
|
|
|
_isActive = true;
|
|
}
|
|
|
|
internal void Tick()
|
|
{
|
|
if (_isActive == false)
|
|
return;
|
|
|
|
OnTick();
|
|
}
|
|
|
|
internal void LateTick()
|
|
{
|
|
if (_isActive == false)
|
|
return;
|
|
|
|
OnLateTick();
|
|
}
|
|
|
|
internal void Deactivate()
|
|
{
|
|
if (_isActive == false)
|
|
return;
|
|
|
|
OnDeactivate();
|
|
|
|
_isActive = false;
|
|
}
|
|
|
|
// GameService INTERFACE
|
|
|
|
protected virtual void OnInitialize()
|
|
{
|
|
}
|
|
|
|
protected virtual void OnDeinitialize()
|
|
{
|
|
}
|
|
|
|
protected virtual void OnActivate()
|
|
{
|
|
}
|
|
|
|
protected virtual void OnDeactivate()
|
|
{
|
|
}
|
|
|
|
protected virtual void OnTick()
|
|
{
|
|
}
|
|
|
|
protected virtual void OnLateTick()
|
|
{
|
|
}
|
|
}
|
|
}
|