添加备份功能和显示状态的设置

This commit is contained in:
ZouJin 2023-06-24 06:08:08 +10:00
parent 9e28514e0e
commit 4177a8f215
8 changed files with 94 additions and 24 deletions

View File

@ -1,6 +1,6 @@
# 虚拟桌宠模拟器 使用教程
**本教程仅会在第一次启动/操作更新时自动打开**
**本教程仅会在第一次启动/操作更新时自动打开** *如果你每次启动桌宠都能看到这个文件自动打开,那就是bug,请反馈给我*
桌宠默认会打开[数据计算](#数据计算), 打开数据计算后会计算桌宠心情/食物等消耗,需要玩家进行互动.可在设置中进行设置开关和游玩节奏

View File

@ -236,7 +236,7 @@ namespace VPet_Simulator.Core
}
}
public event Action FunctionSpendHandle;
private void EventTimer_Elapsed(object sender, ElapsedEventArgs e)
public void EventTimer_Elapsed(object sender, ElapsedEventArgs e)
{
//所有Handle
TimeHandle?.Invoke(this);

View File

@ -2,6 +2,7 @@
using LinePutScript.Dictionary;
using System;
using System.Windows;
using VPet_Simulator.Core;
namespace VPet_Simulator.Windows.Interface
{
@ -106,6 +107,14 @@ namespace VPet_Simulator.Windows.Interface
// set => this["set"].SetBool("storemem", value);
//}
/// <summary>
/// 非计算模式下默认模式
/// </summary>
public GameSave.ModeType CalFunState
{
get => (GameSave.ModeType)this[(gint)"calfunstate"];
set => this[(gint)"calfunstate"] = (int)value;
}
/// <summary>
/// 数据收集频率
/// </summary>
public int DiagnosisInterval

View File

@ -75,9 +75,12 @@ namespace VPet_Simulator.Windows
if (Core != null && Core.Save != null)
{
var ds = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + @"\UserData");
while (ds.Length > Set.BackupSaveMaxNum)
var ds = new List<string>(Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + @"\UserData"));
while (ds.Count > Set.BackupSaveMaxNum)
{
File.Delete(ds[0]);
ds.RemoveAt(0);
}
if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + $"\\UserData\\Save_{st}.lps"))
File.Delete(AppDomain.CurrentDomain.BaseDirectory + $"\\UserData\\Save_{st}.lps");

View File

@ -232,6 +232,7 @@ namespace VPet_Simulator.Windows
winSetting = new winGameSetting(this);
winBetterBuy = new winBetterBuy(this);
Main = new Main(Core) { };
Main.NoFunctionMOD = Set.CalFunState;
if (!Set["CGPT"][(gbol)"enable"] && IsSteamUser)
{
TalkBox = new TalkBox(this);

View File

@ -218,11 +218,13 @@
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Text="备份数量" VerticalAlignment="Center" />
<pu:NumberInput x:Name="numBackupSaveMaxNum" Grid.Column="2" Minimum="1" Value="20" Margin="0,1,0,1" CornerRadius="4"
BorderBrush="{DynamicResource PrimaryDarker}" BorderThickness="1.5" ValueChanged="numBackupSaveMaxNum_ValueChanged" />
<pu:NumberInput x:Name="numBackupSaveMaxNum" Grid.Column="2" Minimum="1" Value="20"
Margin="0,1,0,1" CornerRadius="4" BorderBrush="{DynamicResource PrimaryDarker}"
BorderThickness="1.5" ValueChanged="numBackupSaveMaxNum_ValueChanged" />
<TextBlock Grid.Row="1" Text="加载存档" VerticalAlignment="Center" />
<Button x:Name="BtnSaveReload" pu:ButtonHelper.CornerRadius="4" Content="加载" Grid.Column="3"
Background="{DynamicResource SecondaryLight}" Padding="1" Margin="5" Grid.Row="1" ToolTip="加载上次保存的存档" Click="BtnSaveReload_Click" />
Background="{DynamicResource SecondaryLight}" Padding="1" Margin="5" Grid.Row="1"
ToolTip="加载上次保存的存档" Click="BtnSaveReload_Click" />
<ComboBox x:Name="CBSaveReLoad" SelectedIndex="3"
Style="{DynamicResource StandardComboBoxStyle}" FontSize="16" Grid.Column="2"
Grid.Row="1" MouseEnter="CBSaveReLoad_MouseEnter" />
@ -320,16 +322,31 @@
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
</Grid.RowDefinitions>
<pu:Switch x:Name="CalFunctionBox" BorderBrush="{DynamicResource PrimaryDark}" Grid.Column="2"
CheckedBackground="{DynamicResource Primary}"
CheckedBorderBrush="{DynamicResource Primary}" Background="Transparent" BoxWidth="35"
BoxHeight="18" ToggleSize="14" ToggleShadowColor="{x:Null}"
ToggleBrush="{DynamicResource PrimaryDark}"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}" Margin="10,0,0,0"
ToggleBrush="{DynamicResource PrimaryDark}" Content="启用后桌宠会有状态变化,需要按时投喂等"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}"
ToolTip="启用数据计算,桌宠会有状态变化,需要按时投喂等.&#13;如果嫌麻烦可以关掉" Checked="CalFunctionBox_Checked"
Unchecked="CalFunctionBox_Checked" />
<Grid Grid.Column="2" Grid.Row="3">
<Grid Grid.Row="1" Grid.Column="2" ToolTip="当玩家在指定时间未对桌宠进行交互的时候,智能禁用移动功能&#13;将在下次交互时解除">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="当关闭数据计算时&#13;桌宠显示的状态" FontSize="14" />
<ComboBox x:Name="combCalFunState" Style="{DynamicResource StandardComboBoxStyle}" ToolTip="当关闭数据计算时&#13;桌宠显示的状态"
SelectionChanged="combCalFunState_SelectionChanged" SelectedIndex="5" Grid.Column="1">
<ComboBoxItem Content="Happy" />
<ComboBoxItem Content="Nomal" />
<ComboBoxItem Content="PoorCondition" />
<ComboBoxItem Content="Ill" />
</ComboBox>
</Grid>
<Grid Grid.Column="2" Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
@ -354,9 +371,10 @@
</Grid>
<TextBlock Grid.Row="0" Text="数据计算" VerticalAlignment="Center" />
<TextBlock Grid.Row="3" Text="桌宠移动" VerticalAlignment="Center" />
<TextBlock Grid.Row="1" Text="计算间隔" VerticalAlignment="Center" />
<Grid Grid.Column="2" Grid.Row="1" ToolTip="数据计算和互动计算时间间隔,间隔越短需要互动的频率可能会增加.&#13;间隔越大越不容易打扰到当前工作">
<TextBlock Grid.Row="1" Text="显示状态" VerticalAlignment="Center" />
<TextBlock Grid.Row="4" Text="桌宠移动" VerticalAlignment="Center" />
<TextBlock Grid.Row="2" Text="计算间隔" VerticalAlignment="Center" />
<Grid Grid.Column="2" Grid.Row="2" ToolTip="数据计算和互动计算时间间隔,间隔越短需要互动的频率可能会增加.&#13;间隔越大越不容易打扰到当前工作">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
@ -370,8 +388,8 @@
Foreground="{DynamicResource DARKPrimaryDarker}" FontWeight="Bold"
Background="{x:Null}" Width="60" />
</Grid>
<TextBlock Grid.Row="2" Text="互动周期" VerticalAlignment="Center" />
<Grid Grid.Column="2" Grid.Row="2" ToolTip="互动周期决定在交互结束后大约经历多少计算间隔后再次进行自主行动">
<TextBlock Grid.Row="3" Text="互动周期" VerticalAlignment="Center" />
<Grid Grid.Column="2" Grid.Row="3" ToolTip="互动周期决定在交互结束后大约经历多少计算间隔后再次进行自主行动">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
@ -385,7 +403,7 @@
Foreground="{DynamicResource DARKPrimaryDarker}" FontWeight="Bold"
Background="{x:Null}" Width="60" />
</Grid>
<Grid Grid.Row="4" Grid.Column="2" ToolTip="当玩家在指定时间未对桌宠进行交互的时候,智能禁用移动功能&#13;将在下次交互时解除">
<Grid Grid.Row="5" Grid.Column="2" ToolTip="当玩家在指定时间未对桌宠进行交互的时候,智能禁用移动功能&#13;将在下次交互时解除">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
@ -496,6 +514,7 @@
<ComboBox x:Name="CBDiagnosis" SelectedIndex="1" VerticalAlignment="Top" Margin="10,5,0,0"
HorizontalAlignment="Left" Style="{DynamicResource StandardComboBoxStyle}" Width="200"
SelectionChanged="CBDiagnosis_SelectionChanged" IsEnabled="False">
<ComboBoxItem>每 两百 周期一次</ComboBoxItem>
<ComboBoxItem>每 五百 周期一次</ComboBoxItem>
<ComboBoxItem>每 一千 周期一次</ComboBoxItem>
<ComboBoxItem>每 两千 周期一次</ComboBoxItem>
@ -642,14 +661,14 @@
<TextBlock Margin="0,100,0,0" Text="制作组名单" FontSize="20" FontWeight="Bold"
HorizontalAlignment="Left" VerticalAlignment="Top" />
<TextBlock Margin="100,130,0,0" VerticalAlignment="Top" TextWrapping="WrapWithOverflow">
<Run>杨远洛里斯, 广大MOD作者</Run><LineBreak />
<Run>杨远洛里斯, </Run> <Hyperlink Click="Mod_Click" Foreground="{DynamicResource PrimaryText}">广大MOD作者</Hyperlink><LineBreak />
<Run>洛里斯杨远, トニーちゃん</Run> <Hyperlink Click="Git_Click">Git贡献名单</Hyperlink><LineBreak />
<Run>叶书天, 广大MOD作者</Run>
<Run>叶书天, </Run> <Hyperlink Click="Mod_Click" Foreground="{DynamicResource PrimaryText}">广大MOD作者</Hyperlink>
<LineBreak />
<Hyperlink>Panuon.WPF.UI</Hyperlink>
<Hyperlink>LinePutScript</Hyperlink><LineBreak />
<Hyperlink>Facepunch.Steamworks</Hyperlink>
<Hyperlink>查看引用名单</Hyperlink><LineBreak /><LineBreak />
<Hyperlink Foreground="{DynamicResource PrimaryText}">Panuon.WPF.UI</Hyperlink>
<Hyperlink Foreground="{DynamicResource PrimaryText}">LinePutScript</Hyperlink><LineBreak />
<Hyperlink Foreground="{DynamicResource PrimaryText}">Facepunch.Steamworks</Hyperlink>
<Hyperlink Foreground="{DynamicResource PrimaryText}" Click="Using_Click">查看引用名单</Hyperlink><LineBreak /><LineBreak />
<Hyperlink Click="Steam_Click">访问Steam页面</Hyperlink>
<Hyperlink Click="Github_Click">访问Github页面</Hyperlink>
<LineBreak />

View File

@ -2,6 +2,7 @@
using Panuon.WPF.UI;
using Steamworks.Ugc;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
@ -70,6 +71,8 @@ namespace VPet_Simulator.Windows
TextBoxStartUpX.Text = mw.Set.StartRecordPoint.X.ToString();
TextBoxStartUpY.Text = mw.Set.StartRecordPoint.Y.ToString();
numBackupSaveMaxNum.Value = mw.Set.BackupSaveMaxNum;
combCalFunState.SelectedIndex = (int)mw.Set.CalFunState;
combCalFunState.IsEnabled = !mw.Set.EnableFunction;
if (mw.Set.StartRecordLast == true)
{
StartPlace.IsChecked = true;
@ -787,7 +790,16 @@ namespace VPet_Simulator.Windows
if (!AllowChange)
return;
//MessageBoxX.Show("由于没做完,暂不支持数据计算\n敬请期待后续更新", "没做完!", MessageBoxButton.OK, MessageBoxIcon.Warning);
mw.Set.EnableFunction = CalFunctionBox.IsChecked.Value;
if (CalFunctionBox.IsChecked == true)
{
mw.Set.EnableFunction = true;
combCalFunState.IsEnabled = false;
}
else
{
mw.Set.EnableFunction = false;
combCalFunState.IsEnabled = true;
}
}
private void SwitchMsgOut_Checked(object sender, RoutedEventArgs e)
@ -846,5 +858,31 @@ namespace VPet_Simulator.Windows
}
}
}
private void Mod_Click(object sender, RoutedEventArgs e)
{
List<string> list = new List<string>();
foreach (CoreMOD mod in mw.CoreMODs)
{
foreach (string str in mod.Author.Split(','))
list.Add(str.Trim());
}
list = list.Distinct().ToList();
MessageBoxX.Show(string.Join("\n", list), "感谢以下MOD开发人员");
}
private void Using_Click(object sender, RoutedEventArgs e)
{
MessageBoxX.Show(string.Join("\n", CoreMOD.LoadedDLL), "DLL引用名单");
}
private void combCalFunState_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!AllowChange)
return;
mw.Set.CalFunState = (GameSave.ModeType)combCalFunState.SelectedIndex;
mw.Main.NoFunctionMOD = (GameSave.ModeType)combCalFunState.SelectedIndex;
mw.Main.EventTimer_Elapsed(null, null);
}
}
}

View File

@ -1,4 +1,4 @@
vupmod#Core:|author#lorisyounger:|gamever#20:|ver#100:|
vupmod#Core:|author#LorisYounger:|gamever#20:|ver#100:|
intro#这是虚拟桌宠模拟器的核心运行文件/com可以参考此文件编写mod:|
authorid#253101309:|
itemid#1:|