Files
Polonium/GlobalClasses/Nodes/Scenes/RootScene.cs
2025-02-15 08:25:01 +00:00

62 lines
1.2 KiB
C#

using Godot;
using Polonium.Attributes;
using Polonium.Interfaces;
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();
}
}