mirror of
https://github.com/LorisYounger/VPet.ModMaker.git
synced 2024-08-30 18:22:21 +00:00
完善 SaveText
This commit is contained in:
parent
30f272ad25
commit
529d556e20
@ -1,4 +1,5 @@
|
|||||||
using HKW.HKWViewModels.SimpleObservable;
|
using HKW.HKWViewModels.SimpleObservable;
|
||||||
|
using LinePutScript.Converter;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -10,8 +11,7 @@ namespace VPet.ModMaker.Models;
|
|||||||
|
|
||||||
public class ClickTextModel : I18nModel<I18nClickTextModel>
|
public class ClickTextModel : I18nModel<I18nClickTextModel>
|
||||||
{
|
{
|
||||||
public string Text { get; set; }
|
public ObservableValue<string> Name { get; } = new();
|
||||||
public ObservableValue<string> Id { get; } = new();
|
|
||||||
public ObservableValue<ClickText.ModeType> Mode { get; } = new();
|
public ObservableValue<ClickText.ModeType> Mode { get; } = new();
|
||||||
|
|
||||||
public ObservableValue<string> Working { get; } = new();
|
public ObservableValue<string> Working { get; } = new();
|
||||||
@ -25,6 +25,7 @@ public class ClickTextModel : I18nModel<I18nClickTextModel>
|
|||||||
public ClickTextModel(ClickTextModel clickText)
|
public ClickTextModel(ClickTextModel clickText)
|
||||||
: this()
|
: this()
|
||||||
{
|
{
|
||||||
|
Name.Value = clickText.Name.Value;
|
||||||
Mode.Value = clickText.Mode.Value;
|
Mode.Value = clickText.Mode.Value;
|
||||||
Working.Value = clickText.Working.Value;
|
Working.Value = clickText.Working.Value;
|
||||||
WorkingState.Value = clickText.WorkingState.Value;
|
WorkingState.Value = clickText.WorkingState.Value;
|
||||||
@ -42,7 +43,7 @@ public class ClickTextModel : I18nModel<I18nClickTextModel>
|
|||||||
public ClickTextModel(ClickText clickText)
|
public ClickTextModel(ClickText clickText)
|
||||||
: this()
|
: this()
|
||||||
{
|
{
|
||||||
Text = clickText.Text;
|
Name.Value = clickText.Text;
|
||||||
Mode.Value = clickText.Mode;
|
Mode.Value = clickText.Mode;
|
||||||
Working.Value = clickText.Working;
|
Working.Value = clickText.Working;
|
||||||
WorkingState.Value = clickText.State;
|
WorkingState.Value = clickText.State;
|
||||||
@ -55,7 +56,7 @@ public class ClickTextModel : I18nModel<I18nClickTextModel>
|
|||||||
{
|
{
|
||||||
return new()
|
return new()
|
||||||
{
|
{
|
||||||
Text = Text,
|
Text = Name.Value,
|
||||||
Mode = Mode.Value,
|
Mode = Mode.Value,
|
||||||
Working = Working.Value,
|
Working = Working.Value,
|
||||||
State = WorkingState.Value,
|
State = WorkingState.Value,
|
||||||
|
@ -19,10 +19,12 @@ public class I18nModel<T>
|
|||||||
I18nHelper.Current.AddLang += AddLang;
|
I18nHelper.Current.AddLang += AddLang;
|
||||||
I18nHelper.Current.RemoveLang += RemoveLang;
|
I18nHelper.Current.RemoveLang += RemoveLang;
|
||||||
I18nHelper.Current.ReplaceLang += ReplaceLang;
|
I18nHelper.Current.ReplaceLang += ReplaceLang;
|
||||||
if (I18nDatas.Count == 0)
|
if (I18nHelper.Current.CultureNames.Count == 0)
|
||||||
return;
|
return;
|
||||||
foreach (var item in I18nDatas)
|
foreach (var item in I18nHelper.Current.CultureNames)
|
||||||
I18nDatas[item.Key] = item.Value;
|
{
|
||||||
|
I18nDatas.Add(item, new());
|
||||||
|
}
|
||||||
CurrentI18nData.Value = I18nDatas[I18nHelper.Current.CultureName.Value];
|
CurrentI18nData.Value = I18nDatas[I18nHelper.Current.CultureName.Value];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,8 +11,7 @@ namespace VPet.ModMaker.Models;
|
|||||||
|
|
||||||
public class LowTextModel : I18nModel<I18nLowTextModel>
|
public class LowTextModel : I18nModel<I18nLowTextModel>
|
||||||
{
|
{
|
||||||
public string Text { get; set; }
|
public ObservableValue<string> Name { get; } = new();
|
||||||
public ObservableValue<string> Id { get; } = new();
|
|
||||||
public ObservableValue<LowText.ModeType> Mode { get; } = new();
|
public ObservableValue<LowText.ModeType> Mode { get; } = new();
|
||||||
public ObservableValue<LowText.StrengthType> Strength { get; } = new();
|
public ObservableValue<LowText.StrengthType> Strength { get; } = new();
|
||||||
public ObservableValue<LowText.LikeType> Like { get; } = new();
|
public ObservableValue<LowText.LikeType> Like { get; } = new();
|
||||||
@ -22,6 +21,7 @@ public class LowTextModel : I18nModel<I18nLowTextModel>
|
|||||||
public LowTextModel(LowTextModel lowText)
|
public LowTextModel(LowTextModel lowText)
|
||||||
: this()
|
: this()
|
||||||
{
|
{
|
||||||
|
Name.Value = lowText.Name.Value;
|
||||||
Mode.Value = lowText.Mode.Value;
|
Mode.Value = lowText.Mode.Value;
|
||||||
Strength.Value = lowText.Strength.Value;
|
Strength.Value = lowText.Strength.Value;
|
||||||
Like.Value = lowText.Like.Value;
|
Like.Value = lowText.Like.Value;
|
||||||
@ -36,7 +36,7 @@ public class LowTextModel : I18nModel<I18nLowTextModel>
|
|||||||
public LowTextModel(LowText lowText)
|
public LowTextModel(LowText lowText)
|
||||||
: this()
|
: this()
|
||||||
{
|
{
|
||||||
Text = lowText.Text;
|
Name.Value = lowText.Text;
|
||||||
Mode.Value = lowText.Mode;
|
Mode.Value = lowText.Mode;
|
||||||
Strength.Value = lowText.Strength;
|
Strength.Value = lowText.Strength;
|
||||||
Like.Value = lowText.Like;
|
Like.Value = lowText.Like;
|
||||||
@ -48,7 +48,7 @@ public class LowTextModel : I18nModel<I18nLowTextModel>
|
|||||||
{
|
{
|
||||||
return new()
|
return new()
|
||||||
{
|
{
|
||||||
Text = Text,
|
Text = Name.Value,
|
||||||
Mode = Mode.Value,
|
Mode = Mode.Value,
|
||||||
Strength = Strength.Value,
|
Strength = Strength.Value,
|
||||||
Like = Like.Value,
|
Like = Like.Value,
|
||||||
|
@ -114,11 +114,12 @@ public class ModInfoModel : I18nModel<I18nModInfoModel>
|
|||||||
//lps.FindorAddLine("itemid").info = "0";
|
//lps.FindorAddLine("itemid").info = "0";
|
||||||
File.WriteAllText(modInfoFile, lps.ToString());
|
File.WriteAllText(modInfoFile, lps.ToString());
|
||||||
SaveFoods(path);
|
SaveFoods(path);
|
||||||
|
SaveText(path);
|
||||||
SaveLang(path);
|
SaveLang(path);
|
||||||
SaveImage(path);
|
SaveImage(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveFoods(string path)
|
private void SaveFoods(string path)
|
||||||
{
|
{
|
||||||
if (Foods.Count == 0)
|
if (Foods.Count == 0)
|
||||||
return;
|
return;
|
||||||
@ -133,7 +134,45 @@ public class ModInfoModel : I18nModel<I18nModInfoModel>
|
|||||||
File.WriteAllText(foodFile, lps.ToString());
|
File.WriteAllText(foodFile, lps.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveLang(string path)
|
private void SaveText(string path)
|
||||||
|
{
|
||||||
|
if (LowTexts.Count == 0 && ClickTexts.Count == 0)
|
||||||
|
return;
|
||||||
|
var textPath = Path.Combine(path, "text");
|
||||||
|
Directory.CreateDirectory(textPath);
|
||||||
|
SaveLowText(textPath);
|
||||||
|
SaveClickText(textPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveLowText(string textPath)
|
||||||
|
{
|
||||||
|
if (LowTexts.Count == 0)
|
||||||
|
return;
|
||||||
|
var textFile = Path.Combine(textPath, "lowText.lps");
|
||||||
|
File.Create(textFile).Close();
|
||||||
|
var lps = new LPS();
|
||||||
|
foreach (var text in LowTexts)
|
||||||
|
{
|
||||||
|
lps.Add(LPSConvert.SerializeObjectToLine<Line>(text.ToLowText(), "lowfoodtext"));
|
||||||
|
}
|
||||||
|
File.WriteAllText(textFile, lps.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveClickText(string textPath)
|
||||||
|
{
|
||||||
|
if (ClickTexts.Count == 0)
|
||||||
|
return;
|
||||||
|
var textFile = Path.Combine(textPath, "clickText.lps");
|
||||||
|
File.Create(textFile).Close();
|
||||||
|
var lps = new LPS();
|
||||||
|
foreach (var text in ClickTexts)
|
||||||
|
{
|
||||||
|
lps.Add(LPSConvert.SerializeObjectToLine<Line>(text.ToClickText(), "clicktext"));
|
||||||
|
}
|
||||||
|
File.WriteAllText(textFile, lps.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveLang(string path)
|
||||||
{
|
{
|
||||||
var langPath = Path.Combine(path, "lang");
|
var langPath = Path.Combine(path, "lang");
|
||||||
Directory.CreateDirectory(langPath);
|
Directory.CreateDirectory(langPath);
|
||||||
@ -151,12 +190,21 @@ public class ModInfoModel : I18nModel<I18nModInfoModel>
|
|||||||
new Line(food.Description.Value, food.I18nDatas[cultureName].Description.Value)
|
new Line(food.Description.Value, food.I18nDatas[cultureName].Description.Value)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (lps.Count > 0)
|
foreach (var lowText in LowTexts)
|
||||||
|
{
|
||||||
|
lps.Add(new Line(lowText.Name.Value, lowText.I18nDatas[cultureName].Text.Value));
|
||||||
|
}
|
||||||
|
foreach (var clickText in ClickTexts)
|
||||||
|
{
|
||||||
|
lps.Add(
|
||||||
|
new Line(clickText.Name.Value, clickText.I18nDatas[cultureName].Text.Value)
|
||||||
|
);
|
||||||
|
}
|
||||||
File.WriteAllText(cultureFile, lps.ToString());
|
File.WriteAllText(cultureFile, lps.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SaveImage(string path)
|
private void SaveImage(string path)
|
||||||
{
|
{
|
||||||
var imagePath = Path.Combine(path, "image");
|
var imagePath = Path.Combine(path, "image");
|
||||||
Directory.CreateDirectory(imagePath);
|
Directory.CreateDirectory(imagePath);
|
||||||
|
@ -13,6 +13,8 @@ namespace VPet.ModMaker.ViewModels.ModEdit.ClickTextEdit;
|
|||||||
public class ClickTextEditWindowVM
|
public class ClickTextEditWindowVM
|
||||||
{
|
{
|
||||||
#region Value
|
#region Value
|
||||||
|
|
||||||
|
public ClickTextModel OldClickText { get; set; }
|
||||||
public ObservableValue<ClickTextModel> ClickText { get; } = new(new());
|
public ObservableValue<ClickTextModel> ClickText { get; } = new(new());
|
||||||
public ObservableCollection<ClickText.ModeType> ModeTypes { get; } = new();
|
public ObservableCollection<ClickText.ModeType> ModeTypes { get; } = new();
|
||||||
public ObservableCollection<ClickText.DayTime> DayTimes { get; } = new();
|
public ObservableCollection<ClickText.DayTime> DayTimes { get; } = new();
|
||||||
|
@ -61,6 +61,7 @@ public class ClickTextPageVM
|
|||||||
{
|
{
|
||||||
var window = new ClickTextEditWindow();
|
var window = new ClickTextEditWindow();
|
||||||
var vm = window.ViewModel;
|
var vm = window.ViewModel;
|
||||||
|
vm.OldClickText = clickText;
|
||||||
var newLowTest = vm.ClickText.Value = new(clickText);
|
var newLowTest = vm.ClickText.Value = new(clickText);
|
||||||
window.ShowDialog();
|
window.ShowDialog();
|
||||||
if (window.IsCancel)
|
if (window.IsCancel)
|
||||||
|
@ -16,6 +16,7 @@ namespace VPet.ModMaker.ViewModels.ModEdit.FoodEdit;
|
|||||||
public class FoodEditWindowVM
|
public class FoodEditWindowVM
|
||||||
{
|
{
|
||||||
#region Value
|
#region Value
|
||||||
|
public FoodModel OldFood { get; set; }
|
||||||
public ObservableValue<FoodModel> Food { get; } = new(new());
|
public ObservableValue<FoodModel> Food { get; } = new(new());
|
||||||
public ObservableCollection<Food.FoodType> FoodTypes { get; } = new();
|
public ObservableCollection<Food.FoodType> FoodTypes { get; } = new();
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -65,6 +65,7 @@ public class FoodPageVM
|
|||||||
{
|
{
|
||||||
var window = new FoodEditWindow();
|
var window = new FoodEditWindow();
|
||||||
var vm = window.ViewModel;
|
var vm = window.ViewModel;
|
||||||
|
vm.OldFood = food;
|
||||||
var newFood = vm.Food.Value = new(food);
|
var newFood = vm.Food.Value = new(food);
|
||||||
window.ShowDialog();
|
window.ShowDialog();
|
||||||
if (window.IsCancel)
|
if (window.IsCancel)
|
||||||
|
@ -13,6 +13,7 @@ namespace VPet.ModMaker.ViewModels.ModEdit.LowTextEdit;
|
|||||||
public class LowTextEditWindowVM
|
public class LowTextEditWindowVM
|
||||||
{
|
{
|
||||||
#region Value
|
#region Value
|
||||||
|
public LowTextModel OldLowText { get; set; }
|
||||||
public ObservableValue<LowTextModel> LowText { get; } = new(new());
|
public ObservableValue<LowTextModel> LowText { get; } = new(new());
|
||||||
|
|
||||||
public ObservableCollection<LowText.ModeType> ModeTypes { get; } = new();
|
public ObservableCollection<LowText.ModeType> ModeTypes { get; } = new();
|
||||||
|
@ -64,6 +64,7 @@ public class LowTextPageVM
|
|||||||
{
|
{
|
||||||
var window = new LowTextEditWindow();
|
var window = new LowTextEditWindow();
|
||||||
var vm = window.ViewModel;
|
var vm = window.ViewModel;
|
||||||
|
vm.OldLowText = lowText;
|
||||||
var newLowTest = vm.LowText.Value = new(lowText);
|
var newLowTest = vm.LowText.Value = new(lowText);
|
||||||
window.ShowDialog();
|
window.ShowDialog();
|
||||||
if (window.IsCancel)
|
if (window.IsCancel)
|
||||||
|
@ -63,13 +63,13 @@ public class ModEditWindowVM
|
|||||||
foreach (var lowText in ModInfo.Value.LowTexts)
|
foreach (var lowText in ModInfo.Value.LowTexts)
|
||||||
{
|
{
|
||||||
var lowTextI18n = lowText.I18nDatas[i18n.Key];
|
var lowTextI18n = lowText.I18nDatas[i18n.Key];
|
||||||
if (i18n.Value.TryGetValue(lowText.Text, out var text))
|
if (i18n.Value.TryGetValue(lowText.Name.Value, out var text))
|
||||||
lowTextI18n.Text.Value = text;
|
lowTextI18n.Text.Value = text;
|
||||||
}
|
}
|
||||||
foreach (var clickText in ModInfo.Value.ClickTexts)
|
foreach (var clickText in ModInfo.Value.ClickTexts)
|
||||||
{
|
{
|
||||||
var clickTextI18n = clickText.I18nDatas[i18n.Key];
|
var clickTextI18n = clickText.I18nDatas[i18n.Key];
|
||||||
if (i18n.Value.TryGetValue(clickText.Text, out var text))
|
if (i18n.Value.TryGetValue(clickText.Name.Value, out var text))
|
||||||
clickTextI18n.Text.Value = text;
|
clickTextI18n.Text.Value = text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Content="Id" />
|
<Label Content="Id" />
|
||||||
<TextBox Grid.Column="1" Text="{Binding ClickText.Value.Id.Value, UpdateSourceTrigger=PropertyChanged}" />
|
<TextBox Grid.Column="1" Text="{Binding ClickText.Value.Name.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
<Label Grid.Row="1" Content="指定工作" />
|
<Label Grid.Row="1" Content="指定工作" />
|
||||||
<TextBox
|
<TextBox
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
|
@ -37,20 +37,26 @@ public partial class ClickTextEditWindow : Window
|
|||||||
|
|
||||||
private void Button_Yes_Click(object sender, RoutedEventArgs e)
|
private void Button_Yes_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(ViewModel.ClickText.Value.Id.Value))
|
if (string.IsNullOrEmpty(ViewModel.ClickText.Value.Name.Value))
|
||||||
{
|
{
|
||||||
MessageBox.Show("Id不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
MessageBox.Show("Id不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
ModInfoModel.Current.ClickTexts.Any(
|
ViewModel.OldClickText?.Name.Value != ViewModel.ClickText.Value.Name.Value
|
||||||
i => i.Id.Value == ViewModel.ClickText.Value.Id.Value
|
&& ModInfoModel.Current.ClickTexts.Any(
|
||||||
|
i => i.Name.Value == ViewModel.ClickText.Value.Name.Value
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
MessageBox.Show("此Id已存在", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
MessageBox.Show("此Id已存在", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (string.IsNullOrEmpty(ViewModel.ClickText.Value.CurrentI18nData.Value.Text.Value))
|
||||||
|
{
|
||||||
|
MessageBox.Show("文本不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
IsCancel = false;
|
IsCancel = false;
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
@ -60,10 +60,10 @@
|
|||||||
</DataGrid.RowStyle>
|
</DataGrid.RowStyle>
|
||||||
<DataGrid.Columns>
|
<DataGrid.Columns>
|
||||||
<DataGridTextColumn
|
<DataGridTextColumn
|
||||||
Binding="{Binding Id.Value}"
|
Binding="{Binding Name.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Id">
|
SortMemberPath="Name.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="Id" />
|
<Label Content="Id" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -72,7 +72,7 @@
|
|||||||
Binding="{Binding CurrentI18nData.Value.Text.Value}"
|
Binding="{Binding CurrentI18nData.Value.Text.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Text">
|
SortMemberPath="CurrentI18nData.Value.Text.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="文本" />
|
<Label Content="文本" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -81,7 +81,7 @@
|
|||||||
Binding="{Binding Mode.Value}"
|
Binding="{Binding Mode.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Mode">
|
SortMemberPath="Mode.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="状态" />
|
<Label Content="状态" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -90,7 +90,7 @@
|
|||||||
Binding="{Binding Working.Value}"
|
Binding="{Binding Working.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Working">
|
SortMemberPath="Working.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="指定工作" />
|
<Label Content="指定工作" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -99,7 +99,7 @@
|
|||||||
Binding="{Binding WorkingState.Value}"
|
Binding="{Binding WorkingState.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="WorkingState">
|
SortMemberPath="WorkingState.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="工作状态" />
|
<Label Content="工作状态" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -108,7 +108,7 @@
|
|||||||
Binding="{Binding LikeMin.Value}"
|
Binding="{Binding LikeMin.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="LikeMin">
|
SortMemberPath="LikeMin.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="最小好感" />
|
<Label Content="最小好感" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -117,7 +117,7 @@
|
|||||||
Binding="{Binding LikeMax.Value}"
|
Binding="{Binding LikeMax.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="LikeMax">
|
SortMemberPath="LikeMax.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="最大好感" />
|
<Label Content="最大好感" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -126,7 +126,7 @@
|
|||||||
Binding="{Binding DayTime.Value}"
|
Binding="{Binding DayTime.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="DayTime">
|
SortMemberPath="DayTime.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="时间" />
|
<Label Content="时间" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
|
@ -46,11 +46,11 @@ public partial class FoodEditWindow : Window
|
|||||||
|
|
||||||
private void Button_Yes_Click(object sender, RoutedEventArgs e)
|
private void Button_Yes_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
//if (string.IsNullOrEmpty(ViewModel.Food.Value.Id.Value))
|
if (string.IsNullOrEmpty(ViewModel.Food.Value.Name.Value))
|
||||||
//{
|
{
|
||||||
// MessageBox.Show("Id不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
MessageBox.Show("Id不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
// return;
|
return;
|
||||||
//}
|
}
|
||||||
if (ViewModel.Food.Value.CurrentI18nData.Value.Name.Value is null)
|
if (ViewModel.Food.Value.CurrentI18nData.Value.Name.Value is null)
|
||||||
{
|
{
|
||||||
MessageBox.Show("名称不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
MessageBox.Show("名称不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
@ -61,7 +61,10 @@ public partial class FoodEditWindow : Window
|
|||||||
MessageBox.Show("图像不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
MessageBox.Show("图像不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ModInfoModel.Current.Foods.Any(i => i.Name == ViewModel.Food.Value.Name))
|
if (
|
||||||
|
ViewModel.OldFood?.Name.Value != ViewModel.Food.Value.Name.Value
|
||||||
|
&& ModInfoModel.Current.Foods.Any(i => i.Name == ViewModel.Food.Value.Name)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
MessageBox.Show("此Id已存在", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
MessageBox.Show("此Id已存在", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
return;
|
return;
|
||||||
|
@ -60,7 +60,7 @@
|
|||||||
Binding="{Binding Name.Value}"
|
Binding="{Binding Name.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Name">
|
SortMemberPath="Name.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="食物ID" />
|
<Label Content="食物ID" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -95,7 +95,7 @@
|
|||||||
Binding="{Binding CurrentI18nData.Value.Name.Value}"
|
Binding="{Binding CurrentI18nData.Value.Name.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Name">
|
SortMemberPath="CurrentI18nData.Value.Name.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="食物名称" />
|
<Label Content="食物名称" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -113,7 +113,7 @@
|
|||||||
Binding="{Binding StrengthFood.Value}"
|
Binding="{Binding StrengthFood.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="StrengthFood">
|
SortMemberPath="StrengthFood.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="饱腹值" />
|
<Label Content="饱腹值" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -122,7 +122,7 @@
|
|||||||
Binding="{Binding StrengthDrink.Value}"
|
Binding="{Binding StrengthDrink.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="StrengthDrink">
|
SortMemberPath="StrengthDrink.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="口渴值" />
|
<Label Content="口渴值" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -131,7 +131,7 @@
|
|||||||
Binding="{Binding Health.Value}"
|
Binding="{Binding Health.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Health">
|
SortMemberPath="Health.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="健康值" />
|
<Label Content="健康值" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -140,7 +140,7 @@
|
|||||||
Binding="{Binding Strength.Value}"
|
Binding="{Binding Strength.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Strength">
|
SortMemberPath="Strength.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="体力值" />
|
<Label Content="体力值" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -149,7 +149,7 @@
|
|||||||
Binding="{Binding Feeling.Value}"
|
Binding="{Binding Feeling.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Feeling">
|
SortMemberPath="Feeling.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="心情值" />
|
<Label Content="心情值" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -158,7 +158,7 @@
|
|||||||
Binding="{Binding Likability.Value}"
|
Binding="{Binding Likability.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Likability">
|
SortMemberPath="Likability.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="好感值" />
|
<Label Content="好感值" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -167,7 +167,7 @@
|
|||||||
Binding="{Binding Exp.Value}"
|
Binding="{Binding Exp.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Exp">
|
SortMemberPath="Exp.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="经验值" />
|
<Label Content="经验值" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -176,7 +176,7 @@
|
|||||||
Binding="{Binding Price.Value}"
|
Binding="{Binding Price.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Price">
|
SortMemberPath="Price.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="价格" />
|
<Label Content="价格" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -185,7 +185,7 @@
|
|||||||
Binding="{Binding CurrentI18nData.Value.Description.Value}"
|
Binding="{Binding CurrentI18nData.Value.Description.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Description">
|
SortMemberPath="CurrentI18nData.Value.Description.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="描述" />
|
<Label Content="描述" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Content="Id" />
|
<Label Content="Id" />
|
||||||
<TextBox Grid.Column="1" Text="{Binding LowText.Value.Id.Value, UpdateSourceTrigger=PropertyChanged}" />
|
<TextBox Grid.Column="1" Text="{Binding LowText.Value.Name.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
<Label Grid.Row="1" Content="口渴/饥饿状态" />
|
<Label Grid.Row="1" Content="口渴/饥饿状态" />
|
||||||
<Label Grid.Row="1" Content="状态" />
|
<Label Grid.Row="1" Content="状态" />
|
||||||
<ComboBox
|
<ComboBox
|
||||||
|
@ -38,12 +38,17 @@ public partial class LowTextEditWindow : Window
|
|||||||
|
|
||||||
private void Button_Yes_Click(object sender, RoutedEventArgs e)
|
private void Button_Yes_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(ViewModel.LowText.Value.Id.Value))
|
if (string.IsNullOrEmpty(ViewModel.LowText.Value.Name.Value))
|
||||||
{
|
{
|
||||||
MessageBox.Show("Id不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
MessageBox.Show("Id不可为空", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ModInfoModel.Current.LowTexts.Any(i => i.Id.Value == ViewModel.LowText.Value.Id.Value))
|
if (
|
||||||
|
ViewModel.OldLowText?.Name.Value != ViewModel.LowText.Value.Name.Value
|
||||||
|
&& ModInfoModel.Current.LowTexts.Any(
|
||||||
|
i => i.Name.Value == ViewModel.LowText.Value.Name.Value
|
||||||
|
)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
MessageBox.Show("此Id已存在", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
MessageBox.Show("此Id已存在", "", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||||
return;
|
return;
|
||||||
|
@ -57,10 +57,10 @@
|
|||||||
</DataGrid.RowStyle>
|
</DataGrid.RowStyle>
|
||||||
<DataGrid.Columns>
|
<DataGrid.Columns>
|
||||||
<DataGridTextColumn
|
<DataGridTextColumn
|
||||||
Binding="{Binding Id.Value}"
|
Binding="{Binding Name.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Id">
|
SortMemberPath="Id.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="Id" />
|
<Label Content="Id" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -69,7 +69,7 @@
|
|||||||
Binding="{Binding CurrentI18nData.Value.Text.Value}"
|
Binding="{Binding CurrentI18nData.Value.Text.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Name">
|
SortMemberPath="CurrentI18nData.Value.Text.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="文本" />
|
<Label Content="文本" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -78,7 +78,7 @@
|
|||||||
Binding="{Binding Mode.Value}"
|
Binding="{Binding Mode.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Mode">
|
SortMemberPath="Mode.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="状态" />
|
<Label Content="状态" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -87,7 +87,7 @@
|
|||||||
Binding="{Binding Strength.Value}"
|
Binding="{Binding Strength.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="StrengthFood">
|
SortMemberPath="Strength.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="口渴/饥饿需求" />
|
<Label Content="口渴/饥饿需求" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
@ -96,7 +96,7 @@
|
|||||||
Binding="{Binding Like.Value}"
|
Binding="{Binding Like.Value}"
|
||||||
CanUserSort="True"
|
CanUserSort="True"
|
||||||
IsReadOnly="True"
|
IsReadOnly="True"
|
||||||
SortMemberPath="Like">
|
SortMemberPath="Like.Value">
|
||||||
<DataGridTextColumn.Header>
|
<DataGridTextColumn.Header>
|
||||||
<Label Content="好感需求" />
|
<Label Content="好感需求" />
|
||||||
</DataGridTextColumn.Header>
|
</DataGridTextColumn.Header>
|
||||||
|
Loading…
Reference in New Issue
Block a user