Files
Polonium/Package/embedded/GlobalClasses/Nodes/Scenes/RootScene.cs

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