diff --git a/src/Scenes/CameraScene.cs b/GlobalClasses/Scenes/CameraScene.cs similarity index 93% rename from src/Scenes/CameraScene.cs rename to GlobalClasses/Scenes/CameraScene.cs index 3713220..02a5d59 100644 --- a/src/Scenes/CameraScene.cs +++ b/GlobalClasses/Scenes/CameraScene.cs @@ -1,8 +1,10 @@ using Godot; using Polonium.Attributes; -namespace Polonium.Scenes; +namespace GlobalClasses; [ProxyNode] +[GlobalClass] +[Tool] public partial class CameraScene : Scene { private Camera2D Camera { get; set; } @@ -26,5 +28,4 @@ public partial class CameraScene : Scene protected void ZoomIn() => Zoom = Mathf.Max(Zoom * (1 + ZoomRate), MaxZoom); protected void ZoomOut() => Zoom = Mathf.Min(Zoom * (1 - ZoomRate), MinZoom); protected void ZoomAt(Vector2 pos) => Camera.Position = pos; - } diff --git a/src/Scenes/DissolveScene.cs b/GlobalClasses/Scenes/DissolveScene.cs similarity index 86% rename from src/Scenes/DissolveScene.cs rename to GlobalClasses/Scenes/DissolveScene.cs index ac28cde..2094e2c 100644 --- a/src/Scenes/DissolveScene.cs +++ b/GlobalClasses/Scenes/DissolveScene.cs @@ -1,9 +1,10 @@ -using System.Diagnostics; using Godot; using Polonium.Attributes; -namespace Polonium.Scenes; +namespace GlobalClasses; [ProxyNode] +[GlobalClass] +[Tool] public partial class DissolveScene : Scene { [Export] @@ -16,7 +17,7 @@ public partial class DissolveScene : Scene if(Finished && !Terminated) { Terminated = true; - PoloniumRegistry.Instance.RootScene.SwitchScene(NextScene); + GlobalRegistry.RootScene.SwitchScene(NextScene); return; } diff --git a/src/Scenes/RootScene.cs b/GlobalClasses/Scenes/RootScene.cs similarity index 72% rename from src/Scenes/RootScene.cs rename to GlobalClasses/Scenes/RootScene.cs index 947ba8f..ab81dfb 100644 --- a/src/Scenes/RootScene.cs +++ b/GlobalClasses/Scenes/RootScene.cs @@ -2,9 +2,12 @@ using Godot; using Polonium.Attributes; using Polonium.Interfaces; -namespace Polonium.Scenes; +namespace GlobalClasses; [ProxyNode] -public partial class RootScene : Node2D +[GlobalClass] +[Tool] +[RegistryEntity] +public partial class RootScene : Scene { private Scene CurrentScene { get; set; } @@ -18,7 +21,7 @@ public partial class RootScene : Node2D public override void _Ready() { - PoloniumRegistry.Instance.RootScene = this; + GlobalRegistry.RootScene = this; base._Ready(); } @@ -35,10 +38,9 @@ public partial class RootScene : Node2D public override void _Process(double delta) { - if(!PoloniumRegistry.Instance.Paused) - foreach (ITimeConsumer tc in PoloniumRegistry.Instance.TimeConsumers) + if(!GlobalRegistry.Paused) + foreach (ITimeConsumer tc in GlobalRegistry.TimeConsumers) tc.Process(delta); base._Process(delta); } } - diff --git a/src/Scenes/Scene.cs b/GlobalClasses/Scenes/Scene.cs similarity index 66% rename from src/Scenes/Scene.cs rename to GlobalClasses/Scenes/Scene.cs index 0a5bde4..1a1e7dd 100644 --- a/src/Scenes/Scene.cs +++ b/GlobalClasses/Scenes/Scene.cs @@ -1,9 +1,11 @@ using Godot; using Polonium.Attributes; -namespace Polonium.Scenes; +namespace GlobalClasses; [ProxyNode] +[GlobalClass] +[Tool] public partial class Scene : Node2D { -} \ No newline at end of file +} diff --git a/Polonium.csproj b/Polonium.csproj index a752c04..e7c6aa5 100644 --- a/Polonium.csproj +++ b/Polonium.csproj @@ -18,8 +18,7 @@ @@ -27,37 +26,37 @@ - - + + - - + + - + - + - + @@ -66,9 +65,10 @@ - + + diff --git a/src/PoloniumRegistry.cs b/src/PoloniumRegistry.cs index 9cfa8d2..1e08831 100644 --- a/src/PoloniumRegistry.cs +++ b/src/PoloniumRegistry.cs @@ -2,15 +2,14 @@ using Godot; using Polonium.Agents; using Polonium.Interfaces; using Polonium.Resources; -using Polonium.Scenes; namespace Polonium; public class PoloniumRegistry { + public static IGlobalRegistry GlobalRegistry { get; set; } private static PoloniumRegistry InternalInstance { get; set; } public static PoloniumRegistry Instance => InternalInstance ??= new PoloniumRegistry(); - public RootScene RootScene { get; set; } public Config Config { get; set; } public Save Save { get; set; } @@ -21,6 +20,6 @@ public class PoloniumRegistry public Dictionary Agents { get; set; } = new(); public HashSet TimeConsumers { get; set; } = new(); - public bool Paused { get; set; } + } \ No newline at end of file diff --git a/src/Scenes/LoadingScene.cs b/src/Scenes/LoadingScene.cs deleted file mode 100644 index 513a091..0000000 --- a/src/Scenes/LoadingScene.cs +++ /dev/null @@ -1,29 +0,0 @@ - -using Polonium.DataStructures; -using Polonium.Managers; - -namespace Polonium.Scenes; -public abstract partial class LoadingScene : Scene - where T : ProgressInfo -{ - public Scene AfterLoaded { get; set; } - - private double CoolDown { get; set; } = 0; - - public LoaderManager Manager { get; set; } - - protected abstract void ConsumeProgressInfo(T progressInfo); - - public override void _Process(double delta) - { - CoolDown += delta; - if (CoolDown < 1) - return; - CoolDown = 0; - T progress = Manager.QueryProgress(); - ConsumeProgressInfo(progress); - if(Manager.Finished) - PoloniumRegistry.Instance.RootScene.SwitchScene(AfterLoaded); - base._Process(delta); - } -} \ No newline at end of file