From c47c2088cf92c6f76a0ed79b33f135073112e058 Mon Sep 17 00:00:00 2001 From: hzhang Date: Wed, 5 Feb 2025 15:01:43 +0000 Subject: [PATCH] add: Scene --- Hangman.SDK.csproj | 8 ++++++++ build/.targets | 11 +++++++++++ build/publish | 2 ++ src/Scenes/RootScene.cs | 19 +++++++++++++++++++ src/Scenes/Scene.cs | 8 ++++++++ src/Utils.cs | 18 ++++++++++++++++++ 6 files changed, 66 insertions(+) create mode 100644 build/.targets create mode 100644 build/publish create mode 100644 src/Scenes/RootScene.cs create mode 100644 src/Scenes/Scene.cs create mode 100644 src/Utils.cs diff --git a/Hangman.SDK.csproj b/Hangman.SDK.csproj index f5f92e2..82d9b99 100644 --- a/Hangman.SDK.csproj +++ b/Hangman.SDK.csproj @@ -6,9 +6,17 @@ disable false false + Hangman.SDK + true + 0.0.1 + Hangman + + + + diff --git a/build/.targets b/build/.targets new file mode 100644 index 0000000..bd447c1 --- /dev/null +++ b/build/.targets @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/build/publish b/build/publish new file mode 100644 index 0000000..a408f57 --- /dev/null +++ b/build/publish @@ -0,0 +1,2 @@ +#!/bin/bash +dotnet nuget push "$(ls -t ../.godot/mono/temp/bin/Debug/Hangman.SDK.*.nupkg | head -n 1)" --source hangman-lab \ No newline at end of file diff --git a/src/Scenes/RootScene.cs b/src/Scenes/RootScene.cs new file mode 100644 index 0000000..c40679c --- /dev/null +++ b/src/Scenes/RootScene.cs @@ -0,0 +1,19 @@ +using Godot; + +namespace Hangman.SDK.Scenes; + +public abstract partial class RootScene : Node2D +{ + private Scene CurrentScene { get; set; } + + public void SwitchScene(Scene scene) + { + if (CurrentScene != null) + RemoveChild(CurrentScene); + AddChild(scene); + CurrentScene = scene; + } + + + +} \ No newline at end of file diff --git a/src/Scenes/Scene.cs b/src/Scenes/Scene.cs new file mode 100644 index 0000000..99605ca --- /dev/null +++ b/src/Scenes/Scene.cs @@ -0,0 +1,8 @@ +using Godot; + +namespace Hangman.SDK.Scenes; + +public abstract partial class Scene : Node2D +{ + +} \ No newline at end of file diff --git a/src/Utils.cs b/src/Utils.cs new file mode 100644 index 0000000..be23daa --- /dev/null +++ b/src/Utils.cs @@ -0,0 +1,18 @@ +using System.Reflection; + +namespace Hangman.SDK; + +public static class Utils +{ + public static IEnumerable GetLoadableTypes(Assembly assembly) + { + try + { + return assembly.GetTypes(); + } + catch (ReflectionTypeLoadException e) + { + return e.Types.Where(t => t != null); + } + } +} \ No newline at end of file