diff --git a/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs b/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs index a0e8c08..294fa30 100644 --- a/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs +++ b/DungeonShooting_Godot/src/framework/generator/UiGenerator.cs @@ -61,13 +61,9 @@ retraction + $"/// \n" + retraction + $"public class {uiNodeInfo.ClassName} : IUiNode<{uiNodeInfo.TypeName}, {uiNodeInfo.ClassName}>\n" + retraction + $"{{\n" + - retraction + $" /// \n" + - retraction + $" /// Ui节点实例, 节点类型: , 节点路径: {parent}{uiNodeInfo.OriginName}\n" + - retraction + $" /// \n" + - retraction + $" public {uiNodeInfo.TypeName} Instance {{ get; }}\n\n" + GeneratePropertyListClassCode("Instance.", parent, uiNodeInfo, retraction + " ") + - retraction + $" public {uiNodeInfo.ClassName}({uiNodeInfo.TypeName} node) => Instance = node;\n" + - retraction + $" public {uiNodeInfo.ClassName} Clone() => new (({uiNodeInfo.TypeName})Instance.Duplicate());\n" + + retraction + $" public {uiNodeInfo.ClassName}({uiNodeInfo.TypeName} node) : base(node) {{ }}\n" + + retraction + $" public override {uiNodeInfo.ClassName} Clone() => new (({uiNodeInfo.TypeName})Instance.Duplicate());\n" + retraction + $"}}\n\n"; } diff --git a/DungeonShooting_Godot/src/framework/ui/IUiNode.cs b/DungeonShooting_Godot/src/framework/ui/IUiNode.cs index f2b9214..31c5e70 100644 --- a/DungeonShooting_Godot/src/framework/ui/IUiNode.cs +++ b/DungeonShooting_Godot/src/framework/ui/IUiNode.cs @@ -6,15 +6,35 @@ /// /// Godot中的节点类型 /// 克隆该对象返回的类型 -public interface IUiNode where TNodeType : Node +public abstract class IUiNode where TNodeType : Node { /// /// Godot节点实例 /// - TNodeType Instance { get; } + public TNodeType Instance { get; } /// /// 克隆当前对象, 并返回新的对象, /// 注意: 如果子节点改名或者移动层级, 那么有可能对导致属性中的子节点无法访问 /// - TCloneType Clone(); + public abstract TCloneType Clone(); + + public IUiNode(TNodeType node) + { + Instance = node; + } + + public UiBase OpenNestedUi(string resourcePath, params object[] args) + { + var packedScene = ResourceManager.Load(resourcePath); + var uiBase = packedScene.Instantiate(); + Instance.AddChild(uiBase); + uiBase.OnCreateUi(); + uiBase.ShowUi(args); + return uiBase; + } + + public T OpenNestedUi(string resourcePath) where T : UiBase + { + return (T)OpenNestedUi(resourcePath); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/ui/UiBase.cs b/DungeonShooting_Godot/src/framework/ui/UiBase.cs index d3e50ef..c2581b6 100644 --- a/DungeonShooting_Godot/src/framework/ui/UiBase.cs +++ b/DungeonShooting_Godot/src/framework/ui/UiBase.cs @@ -25,26 +25,81 @@ public bool KeepOut = false; /// + /// 是否已经打开ui + /// + public bool IsOpen { get; private set; } = false; + + /// + /// 是否已经销毁 + /// + public bool IsDisposed { get; private set; } = false; + + /// /// 创建当前ui时调用 /// - public virtual void OnCreate() + public virtual void OnCreateUi() { } /// - /// 当前ui打开时调用,并接收参数 + /// 当前ui显示时调用,并接收参数 /// - public abstract void OnOpen(params object[] args); + public abstract void OnShowUi(params object[] args); /// - /// 当前ui关闭时调用 + /// 当前ui隐藏时调用 /// - public abstract void OnClose(); + public abstract void OnHideUi(); /// /// 销毁当前ui时调用 /// - public virtual void OnDispose() + public virtual void OnDisposeUi() { } + + /// + /// 显示ui, 并传入参数 + /// + public void ShowUi(params object[] args) + { + if (IsOpen) + { + return; + } + + IsOpen = true; + Visible = true; + OnShowUi(args); + } + + /// + /// 隐藏ui + /// + public void HideUi() + { + if (!IsOpen) + { + return; + } + + IsOpen = false; + Visible = false; + OnHideUi(); + } + + /// + /// 关闭并销毁ui + /// + public void DisposeUi() + { + if (IsDisposed) + { + return; + } + HideUi(); + IsDisposed = true; + OnDisposeUi(); + QueueFree(); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/framework/ui/UiManager.cs b/DungeonShooting_Godot/src/framework/ui/UiManager.cs index 0141236..6e5ee71 100644 --- a/DungeonShooting_Godot/src/framework/ui/UiManager.cs +++ b/DungeonShooting_Godot/src/framework/ui/UiManager.cs @@ -50,6 +50,9 @@ GameApplication.Instance.AddChild(_popLayer); } + /// + /// 获取指定的Ui层根节点 + /// public static CanvasLayer GetUiLayer(UiLayer uiLayer) { switch (uiLayer) @@ -66,20 +69,40 @@ return null; } - - public static UiBase OpenUi(string resourcePath) + + private static UiBase InstantiateUi(string resourcePath) { var packedScene = ResourceManager.Load(resourcePath); var uiBase = packedScene.Instantiate(); - var canvasLayer = GetUiLayer(uiBase.Layer); - canvasLayer.AddChild(uiBase); - uiBase.OnCreate(); - uiBase.OnOpen(); return uiBase; } - public static T OpenUi(string resourcePath) where T : UiBase + /// + /// 根据Ui资源路径打开Ui, 并返回Ui实例, 该Ui资源的场景根节点必须继承 + /// + public static UiBase OpenUi(string resourcePath, params object[] args) { - return (T)OpenUi(resourcePath); + var uiBase = InstantiateUi(resourcePath); + var canvasLayer = GetUiLayer(uiBase.Layer); + canvasLayer.AddChild(uiBase); + uiBase.OnCreateUi(); + uiBase.ShowUi(args); + return uiBase; + } + + /// + /// 根据Ui资源路径打开Ui, 并返回Ui实例, 该Ui资源的场景根节点必须继承 + /// + public static T OpenUi(string resourcePath, params object[] args) where T : UiBase + { + return (T)OpenUi(resourcePath, args); + } + + /// + /// 销毁指定Ui + /// + public static void DisposeUi(UiBase uiBase) + { + uiBase.DisposeUi(); } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/GunBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/GunBar.cs index cfd1f34..ea10af1 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/GunBar.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/GunBar.cs @@ -15,12 +15,12 @@ _gunBar = gunBar; } - public void OnOpen() + public void OnShow() { _binder = EventManager.AddEventListener(EventEnum.OnPlayerRefreshWeaponTexture, OnPlayerRefreshWeaponTexture); } - public void OnClose() + public void OnHide() { _binder.RemoveEventListener(); } diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/HealthBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/HealthBar.cs index 0e387a7..0d57584 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/HealthBar.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/HealthBar.cs @@ -22,7 +22,7 @@ _healthBar = healthBar; } - public void OnOpen() + public void OnShow() { _eventFactory = EventManager.CreateEventFactory(); _eventFactory.AddEventListener(EventEnum.OnPlayerHpChange, OnPlayerHpChange); @@ -31,7 +31,7 @@ _eventFactory.AddEventListener(EventEnum.OnPlayerMaxShieldChange, OnPlayerMaxShieldChange); } - public void OnClose() + public void OnHide() { _eventFactory.RemoveAllEventListener(); } diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs index 9ffe5ed..4ae3f95 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/InteractiveTipBar.cs @@ -18,13 +18,13 @@ _interactiveTipBar = interactiveTipBar; } - public void OnOpen() + public void OnShow() { GameCamera.Main.OnPositionUpdateEvent += OnCameraPositionUpdate; _binder = EventManager.AddEventListener(EventEnum.OnPlayerChangeInteractiveItem, OnPlayerChangeInteractiveItem); } - public void OnClose() + public void OnHide() { GameCamera.Main.OnPositionUpdateEvent -= OnCameraPositionUpdate; _binder.RemoveEventListener(); diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs index 85a331e..8202f72 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/ReloadBar.cs @@ -19,12 +19,12 @@ startX = -(width - 3) / 2f; } - public void OnOpen() + public void OnShow() { GameCamera.Main.OnPositionUpdateEvent += OnCameraPositionUpdate; } - public void OnClose() + public void OnHide() { GameCamera.Main.OnPositionUpdateEvent -= OnCameraPositionUpdate; } diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs index b34326a..807b8fd 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs @@ -51,13 +51,8 @@ /// public class UiNode2_Icon : IUiNode { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.InteractiveTipBar.Icon - /// - public Godot.Sprite2D Instance { get; } - - public UiNode2_Icon(Godot.Sprite2D node) => Instance = node; - public UiNode2_Icon Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + public UiNode2_Icon(Godot.Sprite2D node) : base(node) { } + public override UiNode2_Icon Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); } /// @@ -65,13 +60,8 @@ /// public class UiNode3_InteractiveIcon : IUiNode { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.InteractiveTipBar.InteractiveIcon - /// - public Godot.Sprite2D Instance { get; } - - public UiNode3_InteractiveIcon(Godot.Sprite2D node) => Instance = node; - public UiNode3_InteractiveIcon Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + public UiNode3_InteractiveIcon(Godot.Sprite2D node) : base(node) { } + public override UiNode3_InteractiveIcon Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); } /// @@ -79,13 +69,8 @@ /// public class UiNode4_Line2D : IUiNode { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.InteractiveTipBar.Line2D - /// - public Godot.Line2D Instance { get; } - - public UiNode4_Line2D(Godot.Line2D node) => Instance = node; - public UiNode4_Line2D Clone() => new ((Godot.Line2D)Instance.Duplicate()); + public UiNode4_Line2D(Godot.Line2D node) : base(node) { } + public override UiNode4_Line2D Clone() => new ((Godot.Line2D)Instance.Duplicate()); } /// @@ -94,11 +79,6 @@ public class UiNode1_InteractiveTipBar : IUiNode { /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.InteractiveTipBar - /// - public Godot.Node2D Instance { get; } - - /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Icon /// public UiNode2_Icon L_Icon @@ -137,8 +117,8 @@ } private UiNode4_Line2D _L_Line2D; - public UiNode1_InteractiveTipBar(Godot.Node2D node) => Instance = node; - public UiNode1_InteractiveTipBar Clone() => new ((Godot.Node2D)Instance.Duplicate()); + public UiNode1_InteractiveTipBar(Godot.Node2D node) : base(node) { } + public override UiNode1_InteractiveTipBar Clone() => new ((Godot.Node2D)Instance.Duplicate()); } /// @@ -146,13 +126,8 @@ /// public class UiNode7_Block : IUiNode { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ReloadBar.Slot.Block - /// - public Godot.Sprite2D Instance { get; } - - public UiNode7_Block(Godot.Sprite2D node) => Instance = node; - public UiNode7_Block Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + public UiNode7_Block(Godot.Sprite2D node) : base(node) { } + public override UiNode7_Block Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); } /// @@ -161,11 +136,6 @@ public class UiNode6_Slot : IUiNode { /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ReloadBar.Slot - /// - public Godot.Sprite2D Instance { get; } - - /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.ReloadBar.Block /// public UiNode7_Block L_Block @@ -178,8 +148,8 @@ } private UiNode7_Block _L_Block; - public UiNode6_Slot(Godot.Sprite2D node) => Instance = node; - public UiNode6_Slot Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); + public UiNode6_Slot(Godot.Sprite2D node) : base(node) { } + public override UiNode6_Slot Clone() => new ((Godot.Sprite2D)Instance.Duplicate()); } /// @@ -188,11 +158,6 @@ public class UiNode5_ReloadBar : IUiNode { /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.ReloadBar - /// - public Godot.Node2D Instance { get; } - - /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Slot /// public UiNode6_Slot L_Slot @@ -205,8 +170,8 @@ } private UiNode6_Slot _L_Slot; - public UiNode5_ReloadBar(Godot.Node2D node) => Instance = node; - public UiNode5_ReloadBar Clone() => new ((Godot.Node2D)Instance.Duplicate()); + public UiNode5_ReloadBar(Godot.Node2D node) : base(node) { } + public override UiNode5_ReloadBar Clone() => new ((Godot.Node2D)Instance.Duplicate()); } /// @@ -214,13 +179,8 @@ /// public class UiNode11_HpBar : IUiNode { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.HealthBar.HpSlot.HpBar - /// - public Godot.TextureRect Instance { get; } - - public UiNode11_HpBar(Godot.TextureRect node) => Instance = node; - public UiNode11_HpBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode11_HpBar(Godot.TextureRect node) : base(node) { } + public override UiNode11_HpBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// @@ -229,11 +189,6 @@ public class UiNode10_HpSlot : IUiNode { /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.HealthBar.HpSlot - /// - public Godot.NinePatchRect Instance { get; } - - /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.HealthBar.HpBar /// public UiNode11_HpBar L_HpBar @@ -246,8 +201,8 @@ } private UiNode11_HpBar _L_HpBar; - public UiNode10_HpSlot(Godot.NinePatchRect node) => Instance = node; - public UiNode10_HpSlot Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); + public UiNode10_HpSlot(Godot.NinePatchRect node) : base(node) { } + public override UiNode10_HpSlot Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); } /// @@ -255,13 +210,8 @@ /// public class UiNode13_ShieldBar : IUiNode { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.HealthBar.ShieldSlot.ShieldBar - /// - public Godot.TextureRect Instance { get; } - - public UiNode13_ShieldBar(Godot.TextureRect node) => Instance = node; - public UiNode13_ShieldBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode13_ShieldBar(Godot.TextureRect node) : base(node) { } + public override UiNode13_ShieldBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// @@ -270,11 +220,6 @@ public class UiNode12_ShieldSlot : IUiNode { /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.HealthBar.ShieldSlot - /// - public Godot.NinePatchRect Instance { get; } - - /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.HealthBar.ShieldBar /// public UiNode13_ShieldBar L_ShieldBar @@ -287,8 +232,8 @@ } private UiNode13_ShieldBar _L_ShieldBar; - public UiNode12_ShieldSlot(Godot.NinePatchRect node) => Instance = node; - public UiNode12_ShieldSlot Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); + public UiNode12_ShieldSlot(Godot.NinePatchRect node) : base(node) { } + public override UiNode12_ShieldSlot Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); } /// @@ -297,11 +242,6 @@ public class UiNode9_HealthBar : IUiNode { /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.HealthBar - /// - public Godot.TextureRect Instance { get; } - - /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.HpSlot /// public UiNode10_HpSlot L_HpSlot @@ -327,8 +267,8 @@ } private UiNode12_ShieldSlot _L_ShieldSlot; - public UiNode9_HealthBar(Godot.TextureRect node) => Instance = node; - public UiNode9_HealthBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode9_HealthBar(Godot.TextureRect node) : base(node) { } + public override UiNode9_HealthBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// @@ -336,13 +276,8 @@ /// public class UiNode14_MapBar : IUiNode { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.MapBar - /// - public Godot.TextureRect Instance { get; } - - public UiNode14_MapBar(Godot.TextureRect node) => Instance = node; - public UiNode14_MapBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode14_MapBar(Godot.TextureRect node) : base(node) { } + public override UiNode14_MapBar Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// @@ -350,13 +285,8 @@ /// public class UiNode16_GunSprite : IUiNode { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.GunBar.GunSprite - /// - public Godot.TextureRect Instance { get; } - - public UiNode16_GunSprite(Godot.TextureRect node) => Instance = node; - public UiNode16_GunSprite Clone() => new ((Godot.TextureRect)Instance.Duplicate()); + public UiNode16_GunSprite(Godot.TextureRect node) : base(node) { } + public override UiNode16_GunSprite Clone() => new ((Godot.TextureRect)Instance.Duplicate()); } /// @@ -364,13 +294,8 @@ /// public class UiNode17_BulletText : IUiNode { - /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.GunBar.BulletText - /// - public Godot.Label Instance { get; } - - public UiNode17_BulletText(Godot.Label node) => Instance = node; - public UiNode17_BulletText Clone() => new ((Godot.Label)Instance.Duplicate()); + public UiNode17_BulletText(Godot.Label node) : base(node) { } + public override UiNode17_BulletText Clone() => new ((Godot.Label)Instance.Duplicate()); } /// @@ -379,11 +304,6 @@ public class UiNode15_GunBar : IUiNode { /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control.GunBar - /// - public Godot.Control Instance { get; } - - /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.GunSprite /// public UiNode16_GunSprite L_GunSprite @@ -409,8 +329,8 @@ } private UiNode17_BulletText _L_BulletText; - public UiNode15_GunBar(Godot.Control node) => Instance = node; - public UiNode15_GunBar Clone() => new ((Godot.Control)Instance.Duplicate()); + public UiNode15_GunBar(Godot.Control node) : base(node) { } + public override UiNode15_GunBar Clone() => new ((Godot.Control)Instance.Duplicate()); } /// @@ -419,11 +339,6 @@ public class UiNode8_Control : IUiNode { /// - /// Ui节点实例, 节点类型: , 节点路径: RoomUI.Control - /// - public Godot.Control Instance { get; } - - /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.HealthBar /// public UiNode9_HealthBar L_HealthBar @@ -462,8 +377,8 @@ } private UiNode15_GunBar _L_GunBar; - public UiNode8_Control(Godot.Control node) => Instance = node; - public UiNode8_Control Clone() => new ((Godot.Control)Instance.Duplicate()); + public UiNode8_Control(Godot.Control node) : base(node) { } + public override UiNode8_Control Clone() => new ((Godot.Control)Instance.Duplicate()); } } diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs index e0d0e6a..d8edd35 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUIPanel.cs @@ -12,29 +12,29 @@ private HealthBar _healthBar; private GunBar _gunBar; - public override void OnCreate() + public override void OnCreateUi() { - //Generator.UiGenerator.GenerateUi(this, "src/game/ui/roomUI/RoomUI.cs"); + Generator.UiGenerator.GenerateUi(this, "src/game/ui/roomUI/RoomUI.cs"); _reloadBar = new ReloadBar(L_ReloadBar); _interactiveTipBar = new InteractiveTipBar(L_InteractiveTipBar); _healthBar = new HealthBar(L_Control.L_HealthBar); _gunBar = new GunBar(L_Control.L_GunBar); } - public override void OnOpen(params object[] args) + public override void OnShowUi(params object[] args) { - _reloadBar.OnOpen(); - _interactiveTipBar.OnOpen(); - _healthBar.OnOpen(); - _gunBar.OnOpen(); + _reloadBar.OnShow(); + _interactiveTipBar.OnShow(); + _healthBar.OnShow(); + _gunBar.OnShow(); } - public override void OnClose() + public override void OnHideUi() { - _reloadBar.OnClose(); - _interactiveTipBar.OnClose(); - _healthBar.OnClose(); - _gunBar.OnClose(); + _reloadBar.OnHide(); + _interactiveTipBar.OnHide(); + _healthBar.OnHide(); + _gunBar.OnHide(); } public override void _Process(double delta) diff --git a/DungeonShooting_Godot/src/test/TestUi/Test.cs b/DungeonShooting_Godot/src/test/TestUi/Test.cs deleted file mode 100644 index b462db9..0000000 --- a/DungeonShooting_Godot/src/test/TestUi/Test.cs +++ /dev/null @@ -1,88 +0,0 @@ -using Godot; - -namespace UI; - -/* - Test - c1 - c11 - c2 - */ -public abstract partial class Test : UiBase -{ - public UiNode2_c1 c1 - { - get - { - if (_c1 == null) _c1 = new UiNode2_c1(GetNodeOrNull("c1")); - return _c1; - } - } - public UiNode3_c2 c2 - { - get - { - if (_c2 == null) _c2 = new UiNode3_c2(GetNodeOrNull("c2")); - return _c2; - } - } - - private UiNode2_c1 _c1; - private UiNode3_c2 _c2; - - public class UiNode1_c11 : IUiNode - { - public Control Instance { get; } - - public UiNode1_c11(Control node) - { - Instance = node; - } - - public UiNode1_c11 Clone() - { - return new UiNode1_c11((Control)Instance.Duplicate()); - } - } - - public class UiNode2_c1 : IUiNode - { - public Control Instance { get; } - - public UiNode1_c11 c11 - { - get - { - if (_c11 == null) _c11 = new UiNode1_c11(Instance.GetNodeOrNull("c11")); - return _c11; - } - } - - private UiNode1_c11 _c11; - - public UiNode2_c1(Control node) - { - Instance = node; - } - - public UiNode2_c1 Clone() - { - return new UiNode2_c1((Control)Instance.Duplicate()); - } - } - - public class UiNode3_c2 : IUiNode - { - public Control Instance { get; } - - public UiNode3_c2(Control node) - { - Instance = node; - } - - public UiNode3_c2 Clone() - { - return new UiNode3_c2((Control)Instance.Duplicate()); - } - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/test/TestUi/TestPanel.cs b/DungeonShooting_Godot/src/test/TestUi/TestPanel.cs deleted file mode 100644 index a65c268..0000000 --- a/DungeonShooting_Godot/src/test/TestUi/TestPanel.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace UI; - -public partial class TestPanel : Test -{ - public override void OnOpen(params object[] args) - { - - } - - public override void OnClose() - { - - } -} \ No newline at end of file