使用拓展语法

master
lightyears 2 years ago
parent f001034025
commit 3df1b48fea
Signed by: lightyears
GPG Key ID: 98D80DDF26D4F2F9

@ -8,17 +8,12 @@ namespace CMSGame
public override void _Ready() public override void _Ready()
{ {
InitializeComponents(); this.GetAutoloadNode(ref Settings, nameof(GameSettings));
this.GetUniqueNode(ref PauseBattleWhenCharacterIsSelectedCheckBox, nameof(PauseBattleWhenCharacterIsSelectedCheckBox));
PauseBattleWhenCharacterIsSelectedCheckBox.ButtonPressed = Settings.BattleSettings.PauseBattleWhenCharacterIsSelected; PauseBattleWhenCharacterIsSelectedCheckBox.ButtonPressed = Settings.BattleSettings.PauseBattleWhenCharacterIsSelected;
} }
private void InitializeComponents()
{
Settings = GetNode<GameSettings>("/root/GameSettings");
PauseBattleWhenCharacterIsSelectedCheckBox = GetNode<CheckBox>($"%{nameof(PauseBattleWhenCharacterIsSelectedCheckBox)}");
}
public void On_PauseBattleWhenCharacterIsSelectedCheckBox_Toggled(bool pressed) public void On_PauseBattleWhenCharacterIsSelectedCheckBox_Toggled(bool pressed)
{ {
Settings.BattleSettings.PauseBattleWhenCharacterIsSelected = pressed; Settings.BattleSettings.PauseBattleWhenCharacterIsSelected = pressed;

@ -1,10 +1,28 @@
using System;
using System.Threading.Tasks;
namespace CMSGame namespace CMSGame
{ {
public static class NodeExtension public static class NodeExtension
{ {
public static T GetUniqueNode<T>(this Node node, string uniqueName) where T : Node public static T GetAutoloadNode<T>(this Node parent, string autoloadName) where T : Node
{ {
return node.GetNode<T>($"%{uniqueName}"); return parent.GetNode<T>($"/root/{autoloadName}");
}
public static void GetAutoloadNode<T>(this Node parent, ref T node, string autoloadName) where T : Node
{
node = parent.GetAutoloadNode<T>(autoloadName);
}
public static T GetUniqueNode<T>(this Node parent, string uniqueName) where T : Node
{
return parent.GetNode<T>($"%{uniqueName}");
}
public static void GetUniqueNode<T>(this Node parent, ref T node, string uniqueName) where T : Node
{
node = parent.GetUniqueNode<T>(uniqueName);
} }
} }
} }

@ -2,7 +2,7 @@ namespace CMSGame
{ {
public partial class Character : Node public partial class Character : Node
{ {
public int HP; public int HealthPoint;
public override void _Ready() public override void _Ready()
{ {

@ -16,9 +16,9 @@ namespace CMSGame
public override void _Ready() public override void _Ready()
{ {
PauseMenuPopup = this.GetUniqueNode<Popup>($"%{nameof(PauseMenuPopup)}"); this.GetUniqueNode(ref PauseMenuPopup, nameof(PauseMenuPopup));
SettingsMenuPopup = this.GetUniqueNode<Popup>($"%{nameof(SettingsMenuPopup)}"); this.GetUniqueNode(ref SettingsMenuPopup, nameof(SettingsMenuPopup));
BattleTimeLabel = this.GetUniqueNode<Label>($"%{nameof(BattleTimeLabel)}"); this.GetUniqueNode(ref BattleTimeLabel, nameof(BattleTimeLabel));
} }
public override void _Process(double delta) public override void _Process(double delta)

Loading…
Cancel
Save