使用拓展语法

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()
{
InitializeComponents();
this.GetAutoloadNode(ref Settings, nameof(GameSettings));
this.GetUniqueNode(ref PauseBattleWhenCharacterIsSelectedCheckBox, nameof(PauseBattleWhenCharacterIsSelectedCheckBox));
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)
{
Settings.BattleSettings.PauseBattleWhenCharacterIsSelected = pressed;

@ -1,10 +1,28 @@
using System;
using System.Threading.Tasks;
namespace CMSGame
{
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 int HP;
public int HealthPoint;
public override void _Ready()
{

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

Loading…
Cancel
Save