diff --git a/Hangman.SDK.csproj b/Hangman.SDK.csproj
deleted file mode 100644
index 82d9b99..0000000
--- a/Hangman.SDK.csproj
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
- net9.0
- enable
- disable
- false
- false
- Hangman.SDK
- true
- 0.0.1
- Hangman
-
-
-
-
-
-
-
-
-
-
diff --git a/Package/build/publish b/Package/build/publish
new file mode 100644
index 0000000..5782acc
--- /dev/null
+++ b/Package/build/publish
@@ -0,0 +1,2 @@
+#!/bin/bash
+dotnet nuget push "$(ls -t ../../.godot/mono/temp/bin/Debug/Polonium.*.nupkg | head -n 1)" --source hangman-lab
\ No newline at end of file
diff --git a/Hangman.SDK.sln b/Polonium.sln
similarity index 72%
rename from Hangman.SDK.sln
rename to Polonium.sln
index 4837d15..ba14bba 100644
--- a/Hangman.SDK.sln
+++ b/Polonium.sln
@@ -1,10 +1,10 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hangman.SDK", "Hangman.SDK.csproj", "{5BA39DF8-7098-4348-A670-B3F34269F48F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Polonium", "Polonium.csproj", "{5BA39DF8-7098-4348-A670-B3F34269F48F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hangman.SDK.Generators", "..\Hangman.SDK.Generators\Hangman.SDK.Generators.csproj", "{41B784D2-841C-44D6-90F3-9219BC264B19}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Polonium.Generators", "..\Polonium.Generators\Polonium.Generators.csproj", "{41B784D2-841C-44D6-90F3-9219BC264B19}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hangman.SDK.Generators.Test", "..\Hangman.SDK.Generators.Test\Hangman.SDK.Generators.Test.csproj", "{3BADB215-214B-41C1-B94E-89AF4A972F30}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Polonium.Generators.Test", "..\Polonium.Generators.Test\Polonium.Generators.Test.csproj", "{3BADB215-214B-41C1-B94E-89AF4A972F30}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/build/.targets b/build/.targets
deleted file mode 100644
index bd447c1..0000000
--- a/build/.targets
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/publish b/build/publish
deleted file mode 100644
index a408f57..0000000
--- a/build/publish
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/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/Attributes/AutoRegister.cs b/src/Attributes/AutoRegister.cs
index 9c72cec..1ef9ba4 100644
--- a/src/Attributes/AutoRegister.cs
+++ b/src/Attributes/AutoRegister.cs
@@ -1,4 +1,4 @@
-namespace Hangman.SDK.Attributes;
+namespace Polonium.Attributes;
[AttributeUsage(AttributeTargets.Class)]
public class AutoRegister : Attribute
{
diff --git a/src/Scenes/CameraScene.cs b/src/Scenes/CameraScene.cs
new file mode 100644
index 0000000..684b5aa
--- /dev/null
+++ b/src/Scenes/CameraScene.cs
@@ -0,0 +1,25 @@
+using Godot;
+
+namespace Polonium.Scenes;
+
+public abstract partial class CameraScene : Scene
+{
+ private Camera2D Camera { get; set; }
+ protected abstract float MaxZoom { get; }
+ protected abstract float MinZoom { get; }
+ protected abstract float ZoomRate { get; }
+ private float Zoom
+ {
+ get => Camera.Zoom.X;
+ set => Camera.Zoom = value * Vector2.One;
+ }
+ public override void _Ready()
+ {
+ Camera = GetNode("Camera");
+ base._Ready();
+ }
+ protected void ZoomIn() => Mathf.Max(Zoom * (1 + ZoomRate), MaxZoom);
+ protected void ZoomOut() => Mathf.Min(Zoom * (1 - ZoomRate), MinZoom);
+ protected void ZoomAt(Vector2 pos) => Camera.Position = pos;
+
+}
diff --git a/src/Scenes/RootScene.cs b/src/Scenes/RootScene.cs
index c40679c..a7ef77c 100644
--- a/src/Scenes/RootScene.cs
+++ b/src/Scenes/RootScene.cs
@@ -1,12 +1,12 @@
using Godot;
-namespace Hangman.SDK.Scenes;
+namespace Polonium.Scenes;
public abstract partial class RootScene : Node2D
{
- private Scene CurrentScene { get; set; }
+ private Polonium.Scenes.Scene CurrentScene { get; set; }
- public void SwitchScene(Scene scene)
+ public void SwitchScene(Polonium.Scenes.Scene scene)
{
if (CurrentScene != null)
RemoveChild(CurrentScene);
diff --git a/src/Scenes/Scene.cs b/src/Scenes/Scene.cs
index 99605ca..434bebc 100644
--- a/src/Scenes/Scene.cs
+++ b/src/Scenes/Scene.cs
@@ -1,6 +1,6 @@
using Godot;
-namespace Hangman.SDK.Scenes;
+namespace Polonium.Scenes;
public abstract partial class Scene : Node2D
{
diff --git a/src/Utils.cs b/src/Utils.cs
index be23daa..63dd29d 100644
--- a/src/Utils.cs
+++ b/src/Utils.cs
@@ -1,6 +1,6 @@
using System.Reflection;
-namespace Hangman.SDK;
+namespace Polonium;
public static class Utils
{