mirror of
https://github.com/jie65535/GrasscutterCommandGenerator.git
synced 2025-06-07 22:59:14 +08:00
Load pages
This commit is contained in:
parent
7b886ea251
commit
63ebaa5df8
@ -18,15 +18,13 @@
|
||||
**/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using GrasscutterTools.Game;
|
||||
using GrasscutterTools.OpenCommand;
|
||||
using GrasscutterTools.Pages;
|
||||
using GrasscutterTools.Properties;
|
||||
using GrasscutterTools.Utils;
|
||||
|
||||
@ -38,81 +36,61 @@ namespace GrasscutterTools.Forms
|
||||
|
||||
public FormMain()
|
||||
{
|
||||
Console.WriteLine("FormMain ctor enter");
|
||||
InitializeComponent();
|
||||
Icon = Resources.IconGrasscutter;
|
||||
|
||||
if (DesignMode) return;
|
||||
|
||||
// 加载版本信息
|
||||
LoadVersion();
|
||||
|
||||
// 初始化页面
|
||||
InitPages();
|
||||
// 加载设置
|
||||
LoadSettings();
|
||||
Console.WriteLine("FormMain ctor completed");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 窗体载入时触发(切换语言时会重新载入)
|
||||
/// 初始化并创建所有页面
|
||||
/// </summary>
|
||||
private void FormMain_Load(object sender, EventArgs e)
|
||||
private void InitPages()
|
||||
{
|
||||
Text += " - by jie65535 - v" + AppVersion.ToString(3);
|
||||
#if DEBUG
|
||||
Text += "-debug";
|
||||
//Text += "-debug -攻击修改特供版";
|
||||
#endif
|
||||
if (DesignMode) return;
|
||||
|
||||
GameData.LoadResources();
|
||||
|
||||
//LoadCustomCommands();
|
||||
//InitArtifactList();
|
||||
//InitGameItemList();
|
||||
//InitWeapons();
|
||||
//InitAvatars();
|
||||
//InitEntityList();
|
||||
//InitScenes();
|
||||
//InitStatList();
|
||||
//InitPermList();
|
||||
//InitQuestList();
|
||||
//InitMailPage();
|
||||
|
||||
//ChangeTPArtifact();
|
||||
Console.WriteLine("InitPages enter");
|
||||
TCMain.SuspendLayout();
|
||||
var ph = CreatePage<PageHome>();
|
||||
ph.OnLanguageChanged = () => FormMain_Load(this, EventArgs.Empty);
|
||||
TPHome.Controls.Add(ph);
|
||||
var poc = CreatePage<PageOpenCommand>();
|
||||
poc.ShowTipInRunButton = msg => ShowTip(msg, BtnInvokeOpenCommand);
|
||||
TPRemoteCall.Controls.Add(poc);
|
||||
TPCustom.Controls.Add(CreatePage<PageCustomCommands>());
|
||||
TPArtifact.Controls.Add(CreatePage<PageGiveArtifact>());
|
||||
TPSpawn.Controls.Add(CreatePage<PageSpawn>());
|
||||
TPItem.Controls.Add(CreatePage<PageGiveItem>());
|
||||
TPAvatar.Controls.Add(CreatePage<PageAvatar>());
|
||||
TPWeapon.Controls.Add(CreatePage<PageGiveWeapon>());
|
||||
TPManage.Controls.Add(CreatePage<PageManagement>());
|
||||
TPMail.Controls.Add(CreatePage<PageMail>());
|
||||
TPQuest.Controls.Add(CreatePage<PageQuest>());
|
||||
TPScene.Controls.Add(CreatePage<PageScene>());
|
||||
TPAbout.Controls.Add(CreatePage<PageAbout>());
|
||||
TCMain.ResumeLayout();
|
||||
Console.WriteLine("InitPages completed");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 第一次显示窗体时触发
|
||||
/// 创建指定类型页面
|
||||
/// </summary>
|
||||
protected override void OnShown(EventArgs e)
|
||||
/// <typeparam name="T">页面类型,必须继承BasePage</typeparam>
|
||||
/// <returns>页面实例</returns>
|
||||
private T CreatePage<T>() where T : BasePage, new()
|
||||
{
|
||||
base.OnShown(e);
|
||||
// 还原窗体位置
|
||||
if (Settings.Default.MainFormLocation != default)
|
||||
Location = Settings.Default.MainFormLocation;
|
||||
// 还原窗体大小
|
||||
if (Settings.Default.MainFormSize != default)
|
||||
Size = Settings.Default.MainFormSize;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 窗口关闭后触发
|
||||
/// </summary>
|
||||
private void FormMain_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
// 保存当前设置
|
||||
SaveSettings();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 应用版本
|
||||
/// </summary>
|
||||
private Version AppVersion;
|
||||
|
||||
/// <summary>
|
||||
/// 加载应用版本
|
||||
/// </summary>
|
||||
private void LoadVersion()
|
||||
{
|
||||
AppVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
|
||||
var page = new T
|
||||
{
|
||||
SetCommand = SetCommand,
|
||||
RunCommands = RunCommands,
|
||||
GetCommand = () => CmbCommand.Text,
|
||||
Dock = DockStyle.Fill,
|
||||
};
|
||||
return page;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -124,21 +102,6 @@ namespace GrasscutterTools.Forms
|
||||
{
|
||||
// 恢复自动复制选项状态
|
||||
ChkAutoCopy.Checked = Settings.Default.AutoCopy;
|
||||
|
||||
// 初始化首页设置
|
||||
//InitHomeSettings();
|
||||
|
||||
// 初始化获取物品记录
|
||||
//InitGiveItemRecord();
|
||||
|
||||
// 初始化生成记录
|
||||
//InitSpawnRecord();
|
||||
|
||||
// 初始化开放命令
|
||||
//InitOpenCommand();
|
||||
|
||||
// 初始化邮件列表
|
||||
//InitMailList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -146,6 +109,66 @@ namespace GrasscutterTools.Forms
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 窗体载入时触发(切换语言时会重新载入)
|
||||
/// </summary>
|
||||
private void FormMain_Load(object sender, EventArgs e)
|
||||
{
|
||||
Text += " - by jie65535 - v" + Common.AppVersion.ToString(3);
|
||||
#if DEBUG
|
||||
Text += "-debug";
|
||||
#endif
|
||||
if (DesignMode) return;
|
||||
|
||||
// 加载游戏ID资源
|
||||
GameData.LoadResources();
|
||||
|
||||
// 遍历每一个页面重新加载
|
||||
foreach (TabPage tp in TCMain.Controls)
|
||||
{
|
||||
if (tp.Controls.Count > 0 && tp.Controls[0] is BasePage page)
|
||||
page.OnLoad();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 第一次显示窗体时触发
|
||||
/// </summary>
|
||||
protected override void OnShown(EventArgs e)
|
||||
{
|
||||
base.OnShown(e);
|
||||
// 还原窗体位置
|
||||
if (Settings.Default.MainFormLocation != default)
|
||||
{
|
||||
Location = Settings.Default.MainFormLocation;
|
||||
Console.WriteLine("Restore window location: " + Location.ToString());
|
||||
}
|
||||
// 还原窗体大小
|
||||
if (Settings.Default.MainFormSize != default)
|
||||
{
|
||||
Size = Settings.Default.MainFormSize;
|
||||
Console.WriteLine("Restore window size: " + Size.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 窗口关闭后触发
|
||||
/// </summary>
|
||||
private void FormMain_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
Console.WriteLine("FormMain FormClosed enter");
|
||||
// 遍历每一个页面,通知关闭
|
||||
foreach (TabPage tp in TCMain.Controls)
|
||||
{
|
||||
if (tp.Controls.Count > 0 && tp.Controls[0] is BasePage page)
|
||||
page.OnClosed();
|
||||
}
|
||||
|
||||
// 保存当前设置
|
||||
SaveSettings();
|
||||
Console.WriteLine("FormMain FormClosed completed");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存设置
|
||||
/// </summary>
|
||||
@ -162,15 +185,6 @@ namespace GrasscutterTools.Forms
|
||||
else
|
||||
Settings.Default.MainFormSize = Size;
|
||||
|
||||
// 保存自定义命令
|
||||
//SaveCustomCommands();
|
||||
|
||||
// 保存开放命令设置
|
||||
//SaveOpenCommand();
|
||||
|
||||
// 保存邮件设置
|
||||
//SaveMailSettings();
|
||||
|
||||
// 保存默认设置
|
||||
Settings.Default.Save();
|
||||
}
|
||||
@ -182,11 +196,6 @@ namespace GrasscutterTools.Forms
|
||||
|
||||
#endregion - 初始化 Init -
|
||||
|
||||
/// <summary>
|
||||
/// 命令版本
|
||||
/// </summary>
|
||||
private CommandVersion CommandVersion => Common.CommandVersion;
|
||||
|
||||
#region - 命令 Command -
|
||||
|
||||
/// <summary>
|
||||
@ -310,7 +319,7 @@ namespace GrasscutterTools.Forms
|
||||
/// <returns>是否执行成功</returns>
|
||||
private async Task<bool> RunCommands(params string[] commands)
|
||||
{
|
||||
if (OC == null || !OC.CanInvoke)
|
||||
if (Common.OC == null || !Common.OC.CanInvoke)
|
||||
{
|
||||
ShowTip(Resources.RequireOpenCommandTip, BtnInvokeOpenCommand);
|
||||
TCMain.SelectedTab = TPRemoteCall;
|
||||
@ -333,7 +342,7 @@ namespace GrasscutterTools.Forms
|
||||
var cmd = command.TrimStart('/');
|
||||
try
|
||||
{
|
||||
var msg = await OC.Invoke(cmd);
|
||||
var msg = await Common.OC.Invoke(cmd);
|
||||
TxtCommandRunLog.AppendText(string.IsNullOrEmpty(msg) ? "OK" : msg);
|
||||
TxtCommandRunLog.AppendText(Environment.NewLine);
|
||||
}
|
||||
@ -432,46 +441,5 @@ namespace GrasscutterTools.Forms
|
||||
}
|
||||
|
||||
#endregion - 通用 General -
|
||||
|
||||
#region - 命令记录 Command Logs -
|
||||
|
||||
/// <summary>
|
||||
/// 获取命令记录
|
||||
/// (反序列化)
|
||||
/// </summary>
|
||||
/// <param name="commandsText">命令记录文本(示例:"标签1\n命令1\n标签2\n命令2...")</param>
|
||||
/// <returns>命令列表</returns>
|
||||
private List<GameCommand> GetCommands(string commandsText)
|
||||
{
|
||||
var lines = commandsText.Split('\n');
|
||||
List<GameCommand> commands = new List<GameCommand>(lines.Length / 2);
|
||||
for (int i = 0; i < lines.Length - 1; i += 2)
|
||||
commands.Add(new GameCommand(lines[i].Trim(), lines[i + 1].Trim()));
|
||||
return commands;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取命令记录文本
|
||||
/// (序列化)
|
||||
/// </summary>
|
||||
/// <param name="commands">命令列表</param>
|
||||
/// <returns>命令记录文本(示例:"标签1\n命令1\n标签2\n命令2...")</returns>
|
||||
private string GetCommandsText(List<GameCommand> commands)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
foreach (var cmd in commands)
|
||||
{
|
||||
builder.AppendLine(cmd.Name);
|
||||
builder.AppendLine(cmd.Command);
|
||||
}
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
#endregion - 命令记录 Command Logs -
|
||||
|
||||
/// <summary>
|
||||
/// 开放命令接口
|
||||
/// </summary>
|
||||
private OpenCommandAPI OC => Common.OC;
|
||||
}
|
||||
}
|
@ -433,7 +433,7 @@
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="LblClearSubAttrCheckedList.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
<value>Bottom</value>
|
||||
</data>
|
||||
<data name="LblClearSubAttrCheckedList.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
|
@ -42,8 +42,6 @@ namespace GrasscutterTools.Pages
|
||||
InitializeComponent();
|
||||
if (DesignMode) return;
|
||||
|
||||
LoadVersion();
|
||||
|
||||
// 玩家UID
|
||||
NUDUid.Value = Settings.Default.Uid;
|
||||
NUDUid.ValueChanged += (o, e) => Settings.Default.Uid = NUDUid.Value;
|
||||
@ -83,18 +81,6 @@ namespace GrasscutterTools.Pages
|
||||
|
||||
#region - 检查更新 Check update -
|
||||
|
||||
/// <summary>
|
||||
/// 应用版本
|
||||
/// </summary>
|
||||
private Version AppVersion;
|
||||
|
||||
/// <summary>
|
||||
/// 加载应用版本
|
||||
/// </summary>
|
||||
private void LoadVersion()
|
||||
{
|
||||
AppVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
|
||||
}
|
||||
|
||||
private ReleaseAPI.ReleaseInfo LastestInfo = null;
|
||||
private Version lastestVersion = null;
|
||||
@ -102,7 +88,7 @@ namespace GrasscutterTools.Pages
|
||||
private async Task LoadUpdate()
|
||||
{
|
||||
var info = await ReleaseAPI.GetReleasesLastest("jie65535", "GrasscutterCommandGenerator");
|
||||
if (Version.TryParse(info.TagName.Substring(1), out lastestVersion) && AppVersion < lastestVersion)
|
||||
if (Version.TryParse(info.TagName.Substring(1), out lastestVersion) && Common.AppVersion < lastestVersion)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Settings.Default.CheckedLastVersion)
|
||||
&& Version.TryParse(Settings.Default.CheckedLastVersion, out Version checkedVersion)
|
||||
@ -163,6 +149,11 @@ namespace GrasscutterTools.Pages
|
||||
private void BtnOpenShopEditor_Click(object sender, EventArgs e)
|
||||
=> ShowForm<FormShopEditor>("ShopEditor");
|
||||
|
||||
/// <summary>
|
||||
/// 当选中语言改变时触发
|
||||
/// </summary>
|
||||
public Action OnLanguageChanged { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 语言选中项改变时触发
|
||||
/// </summary>
|
||||
@ -173,6 +164,8 @@ namespace GrasscutterTools.Pages
|
||||
MultiLanguage.SetDefaultLanguage(MultiLanguage.Languages[CmbLanguage.SelectedIndex]);
|
||||
// 动态更改语言
|
||||
MultiLanguage.LoadLanguage(ParentForm, ParentForm.GetType());
|
||||
// 通知语言改变
|
||||
OnLanguageChanged?.Invoke();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -167,9 +167,9 @@
|
||||
//
|
||||
// CmbClimateType
|
||||
//
|
||||
resources.ApplyResources(this.CmbClimateType, "CmbClimateType");
|
||||
this.CmbClimateType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.CmbClimateType.FormattingEnabled = true;
|
||||
resources.ApplyResources(this.CmbClimateType, "CmbClimateType");
|
||||
this.CmbClimateType.Name = "CmbClimateType";
|
||||
this.CmbClimateType.SelectedIndexChanged += new System.EventHandler(this.CmbClimateType_SelectedIndexChanged);
|
||||
//
|
||||
|
@ -441,9 +441,6 @@
|
||||
<data name=">>NUDTpX.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>65, 29</value>
|
||||
</data>
|
||||
@ -465,9 +462,6 @@
|
||||
<data name=">>CmbClimateType.ZOrder" xml:space="preserve">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="LblClimateType.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="LblClimateType.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
|
@ -10,7 +10,7 @@ namespace GrasscutterTools.Utils
|
||||
/// <summary>
|
||||
/// 应用版本
|
||||
/// </summary>
|
||||
public static Version AppVersion { get; set; }
|
||||
public static Version AppVersion { get; } = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
|
||||
|
||||
/// <summary>
|
||||
/// 命令版本
|
||||
|
Loading…
Reference in New Issue
Block a user