64 lines
1.3 KiB
C#
64 lines
1.3 KiB
C#
#pragma warning disable IDE0130
|
|
using Godot;
|
|
using Polonium.Attributes;
|
|
using Polonium.Interfaces;
|
|
// ReSharper disable once CheckNamespace
|
|
namespace GlobalClasses;
|
|
[ProxyNode]
|
|
[GlobalClass]
|
|
[Tool]
|
|
[RegistryEntity]
|
|
public partial class RootScene : Scene
|
|
{
|
|
private Scene CurrentScene { get; set; }
|
|
|
|
public void SwitchScene(Scene scene)
|
|
{
|
|
if (CurrentScene != null)
|
|
RemoveChild(CurrentScene);
|
|
AddChild(scene);
|
|
CurrentScene = scene;
|
|
}
|
|
|
|
[ProxyMethod]
|
|
public virtual void __Enter()
|
|
{
|
|
}
|
|
|
|
[ProxyMethod]
|
|
public virtual void __Ready()
|
|
{
|
|
}
|
|
|
|
[ProxyMethod]
|
|
public virtual void __Process(double delta)
|
|
{
|
|
}
|
|
|
|
public sealed override void _EnterTree()
|
|
{
|
|
GlobalRegistry.Prepare();
|
|
GlobalRegistry.Start();
|
|
__Enter();
|
|
base._EnterTree();
|
|
}
|
|
|
|
public sealed override void _Process(double delta)
|
|
{
|
|
if(!GlobalRegistry.Paused)
|
|
foreach (ITimeConsumer tc in GlobalRegistry.TimeConsumers)
|
|
tc.Process(delta);
|
|
__Process(delta);
|
|
base._Process(delta);
|
|
}
|
|
|
|
public sealed override void _Ready()
|
|
{
|
|
GlobalRegistry.RootScene = this;
|
|
__Ready();
|
|
base._Ready();
|
|
}
|
|
|
|
}
|
|
#pragma warning restore IDE0130
|