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