mirror of
https://github.com/jie65535/GrasscutterCommandGenerator.git
synced 2025-10-22 20:09:46 +08:00
Framework changed to WPF
Only the basic window frame is implemented. Adjusted the structure of resource files.
This commit is contained in:
54
Source/GrasscutterTools/Pages/PageGive.xaml
Normal file
54
Source/GrasscutterTools/Pages/PageGive.xaml
Normal file
@@ -0,0 +1,54 @@
|
||||
<Page
|
||||
x:Class="GrasscutterTools.Pages.PageGive"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:GrasscutterTools.Pages"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
Title="PageGive"
|
||||
d:Background="{StaticResource NormalBorderBrush}"
|
||||
d:DesignHeight="420"
|
||||
d:DesignWidth="490"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<StackPanel Margin="16">
|
||||
|
||||
<GroupBox Header="Give Item" />
|
||||
|
||||
<DockPanel>
|
||||
<Label x:Name="LblLevelTip" Content="Level:" />
|
||||
<TextBox
|
||||
x:Name="TxtLevel"
|
||||
Margin="4,0,0,0"
|
||||
Text="100" />
|
||||
</DockPanel>
|
||||
|
||||
<GroupBox Header="Give All">
|
||||
<StackPanel Margin="8" Orientation="Horizontal">
|
||||
<Button
|
||||
x:Name="BtnGiveAll"
|
||||
Padding="16,8"
|
||||
HorizontalAlignment="Left"
|
||||
Content="All" />
|
||||
<Button
|
||||
x:Name="BtnGiveWeapons"
|
||||
Margin="8,0,0,0"
|
||||
Padding="16,8"
|
||||
HorizontalAlignment="Left"
|
||||
Content="Weapons" />
|
||||
<Button
|
||||
x:Name="BtnGiveMats"
|
||||
Margin="8,0,0,0"
|
||||
Padding="16,8"
|
||||
HorizontalAlignment="Left"
|
||||
Content="Mats" />
|
||||
<Button
|
||||
x:Name="BtnGiveAvatars"
|
||||
Margin="8,0,0,0"
|
||||
Padding="16,8"
|
||||
HorizontalAlignment="Left"
|
||||
Content="Avatars" />
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
</StackPanel>
|
||||
</Page>
|
53
Source/GrasscutterTools/Pages/PageGive.xaml.cs
Normal file
53
Source/GrasscutterTools/Pages/PageGive.xaml.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
using GrasscutterTools.Events;
|
||||
using GrasscutterTools.Game;
|
||||
using GrasscutterTools.Interfaces;
|
||||
using GrasscutterTools.Models;
|
||||
|
||||
namespace GrasscutterTools.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// PageGive.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class PageGive : Page, IPageListProvider, IPageCommand
|
||||
{
|
||||
public PageGive()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
ListSource = new GameItems(Properties.Resources.Items);
|
||||
Categories = ListSource.Select(it => it.Category).Distinct().ToArray();
|
||||
OnCommandGenerated("");
|
||||
}
|
||||
|
||||
public GameItems ListSource { get; private set; }
|
||||
|
||||
public bool CanGroup => true;
|
||||
|
||||
public string[] Categories { get; private set; }
|
||||
|
||||
public event EventHandler<CommandGeneratedEventArgs> CommandGenerated;
|
||||
private void OnCommandGenerated(string command)
|
||||
=> CommandGenerated?.Invoke(this, new CommandGeneratedEventArgs(command));
|
||||
|
||||
public void OnListItemSelected(GameItem item)
|
||||
{
|
||||
LblTest.Content = item;
|
||||
}
|
||||
}
|
||||
}
|
25
Source/GrasscutterTools/Pages/PageHome.xaml
Normal file
25
Source/GrasscutterTools/Pages/PageHome.xaml
Normal file
@@ -0,0 +1,25 @@
|
||||
<Page
|
||||
x:Class="GrasscutterTools.Pages.PageHome"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:GrasscutterTools.Pages"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
Title="PageHome"
|
||||
d:Background="{StaticResource NormalBorderBrush}"
|
||||
d:DesignHeight="420"
|
||||
d:DesignWidth="490"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<Grid>
|
||||
<Image Source="/Resources/ImgHome.jpg" />
|
||||
<Label
|
||||
x:Name="LblWelcome"
|
||||
Margin="0,16,0,0"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Top"
|
||||
FontSize="20">
|
||||
Welcome to GrasscutterTools
|
||||
</Label>
|
||||
</Grid>
|
||||
</Page>
|
28
Source/GrasscutterTools/Pages/PageHome.xaml.cs
Normal file
28
Source/GrasscutterTools/Pages/PageHome.xaml.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace GrasscutterTools.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// PageHome.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class PageHome : Page
|
||||
{
|
||||
public PageHome()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
24
Source/GrasscutterTools/Pages/PageTools.xaml
Normal file
24
Source/GrasscutterTools/Pages/PageTools.xaml
Normal file
@@ -0,0 +1,24 @@
|
||||
<Page
|
||||
x:Class="GrasscutterTools.Pages.PageTools"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:GrasscutterTools.Pages"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
Title="PageTools"
|
||||
d:Background="{StaticResource NormalBorderBrush}"
|
||||
d:DesignHeight="420"
|
||||
d:DesignWidth="490"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<Grid>
|
||||
|
||||
<Button
|
||||
x:Name="BtnIdMergeTool"
|
||||
Padding="16,8"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Click="BtnIdMergeTool_Click"
|
||||
Content="Id Merge Tool" />
|
||||
</Grid>
|
||||
</Page>
|
71
Source/GrasscutterTools/Pages/PageTools.xaml.cs
Normal file
71
Source/GrasscutterTools/Pages/PageTools.xaml.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace GrasscutterTools.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// PageHome.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class PageTools : Page
|
||||
{
|
||||
public PageTools()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void BtnIdMergeTool_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var src = new OpenFileDialog
|
||||
{
|
||||
Title = "请选择原文件",
|
||||
Multiselect = false,
|
||||
};
|
||||
var dest = new OpenFileDialog
|
||||
{
|
||||
Title = "请选择目标文件",
|
||||
Multiselect = false,
|
||||
};
|
||||
|
||||
if (src.ShowDialog() == true && dest.ShowDialog() == true)
|
||||
{
|
||||
var srcLines = File.ReadAllLines(src.FileName);
|
||||
var srcDic = new Dictionary<string, string>(srcLines.Length);
|
||||
foreach (var line in srcLines)
|
||||
{
|
||||
var sp = line.IndexOf(':');
|
||||
if (sp > 0)
|
||||
{
|
||||
var value = line.Substring(sp + 1).Trim();
|
||||
if (!value.StartsWith("[N/A]"))
|
||||
srcDic[line.Substring(0, sp).Trim()] = line.Substring(sp+1).Trim();
|
||||
}
|
||||
}
|
||||
|
||||
var destLines = File.ReadAllLines(dest.FileName);
|
||||
using (var outStream = File.Create(dest.FileName))
|
||||
using (var outTxtStream = new StreamWriter(outStream))
|
||||
{
|
||||
foreach (var line in destLines)
|
||||
{
|
||||
var sp = line.IndexOf(':');
|
||||
if (sp == -1)
|
||||
{
|
||||
outTxtStream.WriteLine(line);
|
||||
}
|
||||
else
|
||||
{
|
||||
var key = line.Substring(0, sp).Trim();
|
||||
if (!srcDic.TryGetValue(key, out var value))
|
||||
value = line.Substring(sp + 1).Trim();
|
||||
outTxtStream.WriteLine($"{key}:{value}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user