#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