支持更多设置选项

This commit is contained in:
ZouJin 2023-01-24 01:31:16 +08:00
parent 598b83c2ec
commit 90b4cf77e5
28 changed files with 608 additions and 329 deletions

View File

@ -169,8 +169,10 @@ namespace VPet_Simulator.Core
/// </summary>
private void DisplayRaising()
{
switch (rasetype++)
switch (rasetype)
{
case int.MinValue:
break;
case -1:
DisplayFalled_Left();
rasetype = int.MinValue;
@ -178,9 +180,11 @@ namespace VPet_Simulator.Core
case 0:
case 1:
case 2:
rasetype++;
Display(GraphCore.GraphType.Raised_Dynamic, DisplayRaising);
return;
case 3:
rasetype++;
Display(GraphCore.GraphType.Raised_Static_A_Start, DisplayRaising);
return;
default:

View File

@ -77,7 +77,7 @@ namespace VPet_Simulator.Core
Dispatcher.Invoke(() => TimeUIHandle.Invoke(this));
if (DisplayType == GraphCore.GraphType.Default && !isPress)
switch (22)//Function.Rnd.Next(Math.Max(23, 200 - CountNomal)))
switch (1)//Function.Rnd.Next(Math.Max(23, 200 - CountNomal)))
{
case 0:
case 7:

View File

@ -16,7 +16,7 @@
<Border x:Name="BdrPanel" VerticalAlignment="Bottom" Margin="0,0,0,55" TextBlock.FontSize="24"
TextElement.FontSize="24" BorderBrush="{DynamicResource DARKPrimaryDarker}"
BorderThickness="1" Background="{DynamicResource DARKPrimaryText}" CornerRadius="5"
MouseLeave="MenuPanel_MouseLeave">
MouseLeave="MenuPanel_MouseLeave" Visibility="Collapsed">
<Grid Margin="15">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@ -113,7 +113,7 @@
<MenuItem Header="学习" HorizontalContentAlignment="Center" />
</MenuItem>
<MenuItem x:Name="MenuDIY" Header="自定" HorizontalContentAlignment="Center" Click="MenuDIY_Click" />
<MenuItem Header="设置" Click="MenuSetting_Click" HorizontalContentAlignment="Center" />
<MenuItem x:Name="MenuSetting" Header="管理" HorizontalContentAlignment="Center" />
</Menu>
</Grid>
</UserControl>

View File

@ -109,11 +109,6 @@ namespace VPet_Simulator.Core
closetimer.Start();
}
private void MenuSetting_Click(object sender, RoutedEventArgs e)
{
m.Core.Controller.ShowSetting();
}
private void MenuPanel_Click(object sender, RoutedEventArgs e)
{
m.Core.Controller.ShowPanel();
@ -135,6 +130,10 @@ namespace VPet_Simulator.Core
/// 自定
/// </summary>
DIY,
/// <summary>
/// 设置
/// </summary>
Setting,
}
public void AddMenuButton(MenuType parentMenu,
string displayName,
@ -160,6 +159,9 @@ namespace VPet_Simulator.Core
case MenuType.DIY:
MenuDIY.Items.Add(menuItem);
break;
case MenuType.Setting:
MenuSetting.Items.Add(menuItem);
break;
}
}

View File

@ -165,6 +165,18 @@ namespace VPet_Simulator.Core
/// 无聊 (结束)
/// </summary>
Boring_C_End,
/// <summary>
/// 睡觉 (开始)
/// </summary>
Sleep_A_Start,
/// <summary>
/// 睡觉 (循环)
/// </summary>
Sleep_B_Loop,
/// <summary>
/// 睡觉 (结束)
/// </summary>
Sleep_C_End,
}
///// <summary> loop 应该被取缔
///// 动画类型默认设置 前文本|是否循环|是否常用

View File

@ -51,10 +51,7 @@ namespace VPet_Simulator.Core
/// 按多久视为长按 单位毫秒
/// </summary>
int PressLength { get; }
/// <summary>
/// 显示设置窗体
/// </summary>
void ShowSetting();
/// <summary>
/// 显示面板窗体
/// </summary>

View File

@ -12,7 +12,22 @@ namespace VPet_Simulator.Windows
{
public Setting(string lps) : base(lps)
{
var line = FindLine("zoomlevel");
if (line == null)
zoomlevel = 0.5;
else
{
zoomlevel = line.InfoToDouble;
if (zoomlevel < 0.1 || zoomlevel > 8)
{
zoomlevel = 0.5;
}
}
presslength = this["gameconfig"].GetInt("presslength", 500);
intercycle = this["gameconfig"].GetInt("intercycle", 200);
moveevent = !this["gameconfig"].GetBool("moveevent");
smartmoveevent = this["gameconfig"].GetBool("smartmoveevent");
enablefunction = !this["gameconfig"].GetBool("enablefunction");
}
public void Save()
@ -40,24 +55,13 @@ namespace VPet_Simulator.Windows
// }
//}
private double zoomlevel = 0;
/// <summary>
/// 缩放倍率
/// </summary>
public double ZoomLevel
{
get
{
if(zoomlevel == 0)
{
var line = FindLine("zoomlevel");
if (line == null)
zoomlevel = 0.5;
else
{
zoomlevel = line.InfoToDouble;
if (zoomlevel < 0.1 || zoomlevel > 8)
{
zoomlevel = 0.5;
}
}
}
return zoomlevel;
}
set
@ -66,17 +70,13 @@ namespace VPet_Simulator.Windows
zoomlevel = value;
}
}
public bool IsFullScreen
/// <summary>
/// 是否为更大的屏幕
/// </summary>
public bool IsBiggerScreen
{
get => FindLine("fullscreen") != null;
set
{
if (value)
FindorAddLine("fullscreen");
else
RemoveAll("fullscreen");
}
get => GetBool("bigscreen");
set => SetBool("bigscreen", value);
}
/// <summary>
/// 是否启用数据收集 //TODO:判断游戏是否是原版的
@ -99,15 +99,15 @@ namespace VPet_Simulator.Windows
/// </summary>
public int DiagnosisInterval
{
get => Math.Max(this["diagnosis"].GetInt("interval", 14), 7);
get => Math.Max(this["diagnosis"].GetInt("interval", 500), 20000);
set => this["diagnosis"].SetInt("interval", value);
}
/// <summary>
/// 自动保存频率
/// 自动保存频率 (min)
/// </summary>
public int AutoSaveInterval
{
get => Math.Max(GetInt("autosave", 7), 0);
get => Math.Max(GetInt("autosave", 20), 0);
set => SetInt("autosave", value);
}
/// <summary>
@ -178,13 +178,70 @@ namespace VPet_Simulator.Windows
FindorAddLine("passmod").Remove(ModName.ToLower());
}
private int presslength;
private int intercycle;
/// <summary>
/// 按多久视为长按 单位毫秒
/// </summary>
public int PressLength
{
get => this["windows"].GetInt("presslength", 500);
set => this["windows"].SetInt("presslength", value);
get => presslength;
set => this["gameconfig"].SetInt("presslength", value);
}
/// <summary>
/// 互动周期
/// </summary>
public int InteractionCycle
{
get => intercycle;
set => this["gameconfig"].SetInt("intercycle", value);
}
/// <summary>
/// 计算间隔
/// </summary>
public double LogicInterval
{
get => this["gameconfig"].GetDouble("logicinterval", 15);
set => this["gameconfig"].SetDouble("logicinterval", value);
}
bool moveevent;
/// <summary>
/// 允许移动事件
/// </summary>
public bool MoveEvent
{
get => moveevent;
set
{
moveevent = value;
this["gameconfig"].SetBool("moveevent", !value);
}
}
bool smartmoveevent;
/// <summary>
/// 智能移动
/// </summary>
public bool SmartMoveEvent
{
get => smartmoveevent;
set
{
smartmoveevent = value;
this["gameconfig"].SetBool("smartmoveevent", value);
}
}
bool enablefunction;
/// <summary>
/// 允许移动
/// </summary>
public bool EnableFunction
{
get => enablefunction;
set
{
enablefunction = value;
this["gameconfig"].SetBool("function", !value);
}
}
}
}

View File

@ -38,7 +38,11 @@ namespace VPet_Simulator.Windows
//在 https://store.steampowered.com/app/1920960/VPet
try
{
#if DEBUG
SteamClient.Init(2293870, true);
#else
SteamClient.Init(1920960, true);
#endif
SteamClient.RunCallbacks();
IsSteamUser = SteamClient.IsValid;
////同时看看有没有买dlc,如果有就添加dlc按钮
@ -105,6 +109,7 @@ namespace VPet_Simulator.Windows
CoreMODs.Add(new CoreMOD(di, this));
}
Dispatcher.Invoke(new Action(() => LoadingText.Content = "尝试加载游戏内容"));
//加载游戏内容
Core.Controller = new MWController(this);
Core.Save = new Save("萝莉斯");
@ -116,43 +121,65 @@ namespace VPet_Simulator.Windows
var main = new Main(Core) { };
main.DefaultClickAction = () => { Dispatcher.Invoke(() => { main.Say("你知道吗? 鼠标右键可以打开菜单栏"); }); };
DisplayGrid.Child = main;
main.ToolBar.AddMenuButton(VPet_Simulator.Core.ToolBar.MenuType.DIY, "退出桌宠", () => { Close(); });
main.ToolBar.AddMenuButton(VPet_Simulator.Core.ToolBar.MenuType.Setting, "设置面板", () =>
{
Topmost = false;
winSetting.Show();
});
main.ToolBar.AddMenuButton(VPet_Simulator.Core.ToolBar.MenuType.Setting, "退出桌宠", () => { Close(); });
//加载图标
notifyIcon = new NotifyIcon();
ContextMenu m_menu;
m_menu = new ContextMenu();
m_menu.MenuItems.Add(new MenuItem("重置", (x, y) => {
m_menu.MenuItems.Add(new MenuItem("重置状态", (x, y) =>
{
main.CleanState();
main.DisplayNomal();
}));
m_menu.MenuItems.Add(new MenuItem("居中", (x, y) =>
m_menu.MenuItems.Add(new MenuItem("屏幕居中", (x, y) =>
{
Left = (SystemParameters.PrimaryScreenWidth - Width) / 2;
Top = (SystemParameters.PrimaryScreenHeight - Height) / 2;
}));
m_menu.MenuItems.Add(new MenuItem("设置", (x, y) => Core.Controller.ShowSetting()));
m_menu.MenuItems.Add(new MenuItem("退出", (x, y) => Close()));
m_menu.MenuItems.Add(new MenuItem("设置面板", (x, y) =>
{
Topmost = false;
winSetting.Show();
}));
m_menu.MenuItems.Add(new MenuItem("退出桌宠", (x, y) => Close()));
notifyIcon.ContextMenu = m_menu;
var streamResourceInfo = Application.GetResourceStream(new Uri("pack://application:,,,/vpeticon.ico"));
if (streamResourceInfo != null)
notifyIcon.Icon = new System.Drawing.Icon(streamResourceInfo.Stream);
notifyIcon.Icon = new System.Drawing.Icon(Application.GetResourceStream(new Uri("pack://application:,,,/vpeticon.ico")).Stream);
notifyIcon.Visible = true;
//notifyIcon.ShowBalloonTip(5, "你好 " + Environment.UserName,
// "Press Alt+C to show Clock\nRight Click on Tray to Close", ToolTipIcon.Info);
if (Set["SingleTips"].GetBool("helloworld"))
{
Set["SingleTips"].SetBool("helloworld", true);
notifyIcon.ShowBalloonTip(10, "你好 " + (IsSteamUser ? Steamworks.SteamClient.Name : Environment.UserName),
"欢迎使用虚拟桌宠模拟器!\n如果遇到桌宠爬不见了,可以在我这里设置居中或退出桌宠", ToolTipIcon.Info);
Task.Run(() =>
{
Thread.Sleep(1000);
main.Say("欢迎使用虚拟桌宠模拟器\n这是个早期的测试版,若有bug请多多包涵\n欢迎在菜单栏-管理-反馈中提交bug或建议");
});
}
}));
}
private void Window_Closed(object sender, EventArgs e)
{
//游戏存档
if (Set != null)
File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Setting.lps", Set.ToString());
if (Core != null && Core.Save != null)
File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Save.lps", Core.Save.ToLine().ToString());
if (DisplayGrid.Child != null)
((Main)DisplayGrid.Child).Dispose();
notifyIcon.Dispose();
notifyIcon?.Dispose();
System.Environment.Exit(0);
}

View File

@ -190,7 +190,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Resource Include="vpeticon.ico" />
<Resource Include="vpeticon.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Resource>
<Resource Include="Res\TopLogo2018.PNG" />
<Content Include="steam_api.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

View File

@ -9,8 +9,8 @@
<Viewbox>
<Grid Width="400" Height="450">
<TabControl Margin="5" BorderThickness="0" pu:TabControlHelper.ItemsHeight="NaN"
pu:TabControlHelper.ItemsFontSize="14" Background="Transparent" pu:TabControlHelper.ItemsPadding="10,7"
pu:TabControlHelper.ItemsCornerRadius="4"
pu:TabControlHelper.ItemsFontSize="14" Background="Transparent"
pu:TabControlHelper.ItemsPadding="10,7" pu:TabControlHelper.ItemsCornerRadius="4"
pu:TabControlHelper.ItemsHoverBackground="{DynamicResource PrimaryLight}"
pu:TabControlHelper.ItemsSelectedBackground="{DynamicResource PrimaryDark}"
pu:TabControlHelper.ItemsSelectedForeground="{DynamicResource DARKPrimaryText}"
@ -36,23 +36,27 @@
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="169*" />
</Grid.RowDefinitions>
<TextBlock Text="置于顶层" VerticalAlignment="Center" FontSize="14" />
<pu:Switch x:Name="TopMostBox" Grid.Column="2" BorderBrush="{DynamicResource PrimaryDark}"
CheckedBackground="{DynamicResource Primary}" CheckedBorderBrush="{DynamicResource Primary}"
Background="Transparent" BoxWidth="35" BoxHeight="18" ToggleSize="14"
ToggleShadowColor="{x:Null}" ToggleBrush="{DynamicResource PrimaryDark}"
CheckedBackground="{DynamicResource Primary}"
CheckedBorderBrush="{DynamicResource Primary}" Background="Transparent" BoxWidth="35"
BoxHeight="18" ToggleSize="14" ToggleShadowColor="{x:Null}"
ToggleBrush="{DynamicResource PrimaryDark}"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}" Checked="TopMostBox_Checked"
Unchecked="TopMostBox_Unchecked" />
<TextBlock Grid.Row="1" Text="缩放解锁" VerticalAlignment="Center" FontSize="14" />
Unchecked="TopMostBox_Unchecked" ToolTip="将桌宠置于顶层" />
<TextBlock Grid.Row="1" Text="更高缩放" VerticalAlignment="Center" FontSize="14" />
<pu:Switch x:Name="FullScreenBox" Grid.Row="1" Grid.Column="2"
BorderBrush="{DynamicResource PrimaryDark}" CheckedBackground="{DynamicResource Primary}"
BorderBrush="{DynamicResource PrimaryDark}"
CheckedBackground="{DynamicResource Primary}"
CheckedBorderBrush="{DynamicResource Primary}" Background="Transparent" BoxWidth="35"
BoxHeight="18" ToggleSize="14" ToggleShadowColor="{x:Null}"
ToggleBrush="{DynamicResource PrimaryDark}"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}" Checked="FullScreenBox_Check"
Unchecked="FullScreenBox_Check" />
Unchecked="FullScreenBox_Check" ToolTip="解锁缩放限制" />
<TextBlock Grid.Row="2" Text="缩放等级" VerticalAlignment="Center" FontSize="14" />
<Grid Grid.Column="2" Grid.Row="2">
@ -60,23 +64,45 @@
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Slider Thumb.DragCompleted="ZoomSlider_DragCompleted" TickFrequency="0.1"
IsSnapToTickEnabled="True" x:Name="ZoomSlider"
<Slider TickFrequency="0.05" IsSnapToTickEnabled="True" x:Name="ZoomSlider"
Style="{DynamicResource StandardSliderStyle}" VerticalAlignment="Center" Maximum="3"
SmallChange=".1" Minimum="0.5" LargeChange=".1" Value="1" />
SmallChange=".05" Minimum="0.5" LargeChange=".1" Value="1"
PreviewMouseUp="ZoomSlider_MouseUp" />
<TextBlock Grid.Column="1" Margin="15,0,0,0" VerticalAlignment="Center"
Text="{Binding ElementName=ZoomSlider,Path=Value}" FontSize="16"
Foreground="{DynamicResource DARKPrimaryDarker}" FontWeight="Bold" Background="{x:Null}" />
Text="{Binding ElementName=ZoomSlider,Path=Value,StringFormat=f2}" FontSize="16"
Foreground="{DynamicResource DARKPrimaryDarker}" FontWeight="Bold"
Background="{x:Null}" />
</Grid>
<TextBlock Grid.Row="3" Text="主题" VerticalAlignment="Center" FontSize="14" />
<ComboBox x:Name="ThemeBox" Grid.Row="3" Grid.Column="2"
SelectionChanged="ThemeBox_SelectionChanged" Style="{DynamicResource StandardComboBoxStyle}"
Margin="0,3,0,2" />
<TextBlock Grid.Row="4" Text="字体" VerticalAlignment="Center" FontSize="14" />
<ComboBox x:Name="FontBox" Grid.Row="4" Grid.Column="2" SelectionChanged="FontBox_SelectionChanged"
SelectionChanged="ThemeBox_SelectionChanged" IsEnabled="False"
Style="{DynamicResource StandardComboBoxStyle}" Margin="0,3,0,2" />
<TextBlock Grid.Row="4" Text="字体" VerticalAlignment="Center" FontSize="14" />
<ComboBox x:Name="FontBox" Grid.Row="4" Grid.Column="2"
SelectionChanged="FontBox_SelectionChanged" IsEnabled="False"
Style="{DynamicResource StandardComboBoxStyle}" Margin="0,3,0,2" />
<TextBlock Grid.Row="5" Text="开机启动" VerticalAlignment="Center" FontSize="14" />
<Grid Grid.Row="5" Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<pu:Switch x:Name="StartUpBox" BorderBrush="{DynamicResource PrimaryDark}"
CheckedBackground="{DynamicResource Primary}" IsEnabled="False"
CheckedBorderBrush="{DynamicResource Primary}" Background="Transparent"
BoxWidth="35" BoxHeight="18" ToggleSize="14" ToggleShadowColor="{x:Null}"
ToggleBrush="{DynamicResource PrimaryDark}" Content="开机启动"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}" ToolTip="该游戏随着开机启动该程序" />
<pu:Switch x:Name="StartUpSteamBox" BorderBrush="{DynamicResource PrimaryDark}"
CheckedBackground="{DynamicResource Primary}"
IsEnabled="{Binding ElementName=StartUpBox,Path=IsChecked}"
CheckedBorderBrush="{DynamicResource Primary}" Background="Transparent"
BoxWidth="35" BoxHeight="18" ToggleSize="14" ToggleShadowColor="{x:Null}"
ToggleBrush="{DynamicResource PrimaryDark}" Content="从Steam启动"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}"
ToolTip="从Steam启动该游戏, 统计时长不能停" Grid.Column="1" />
</Grid>
</Grid>
</TabItem>
<TabItem Header="系统" BorderBrush="{DynamicResource PrimaryDarker}">
@ -90,18 +116,54 @@
HorizontalAlignment="Left" Style="{DynamicResource StandardComboBoxStyle}" Width="200"
SelectionChanged="CBAutoSave_SelectionChanged">
<ComboBoxItem>关闭自动保存</ComboBoxItem>
<ComboBoxItem>每天一次</ComboBoxItem>
<ComboBoxItem>每3天一次</ComboBoxItem>
<ComboBoxItem>每周一次</ComboBoxItem>
<ComboBoxItem>每2周一次</ComboBoxItem>
<ComboBoxItem>每月一次</ComboBoxItem>
<ComboBoxItem>每2个月一次</ComboBoxItem>
<ComboBoxItem>每3个月一次</ComboBoxItem>
<ComboBoxItem>每5分钟一次</ComboBoxItem>
<ComboBoxItem>每10分钟一次</ComboBoxItem>
<ComboBoxItem>每20分钟一次</ComboBoxItem>
<ComboBoxItem>每半小时一次</ComboBoxItem>
<ComboBoxItem>每小时一次</ComboBoxItem>
</ComboBox>
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Top" Background="{x:Null}"
TextWrapping="Wrap" Margin="0,10,0,0">
<Run FontWeight="Bold" FontSize="16">桌面</Run><LineBreak />
<Run>系统桌面相关设置</Run>
<Run FontWeight="Bold" FontSize="16">操作设置</Run><LineBreak />
<Run>游戏操作相关设置</Run>
</TextBlock>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="15" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="长按间隔" VerticalAlignment="Center" FontSize="14" />
<Grid Grid.Column="2" Grid.Row="0"
ToolTip="数据计算和互动计算时间间隔,间隔越短需要互动的频率可能会增加.&#13;间隔越大越不容易打扰到当前工作">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Slider x:Name="PressLengthSlider" TickFrequency="0.01" IsSnapToTickEnabled="True"
Style="{DynamicResource StandardSliderStyle}" VerticalAlignment="Center"
Maximum="5" SmallChange=".05" Minimum="0.05" LargeChange="0.1" Value="0.5"
ValueChanged="PressLengthSlider_ValueChanged" />
<TextBlock Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Center" Width="60"
Text="{Binding ElementName=PressLengthSlider,Path=Value,StringFormat={}{0:f2} 秒}"
FontSize="14" Foreground="{DynamicResource DARKPrimaryDarker}" FontWeight="Bold"
Background="{x:Null}" />
</Grid>
</Grid>
</StackPanel>
</TabItem>
<TabItem Header="互动" BorderBrush="{DynamicResource PrimaryDarker}">
<StackPanel>
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Top" Background="{x:Null}"
TextWrapping="Wrap">
<Run FontWeight="Bold" FontSize="16">互动设置</Run><LineBreak />
<Run>游戏互动相关设置</Run>
</TextBlock>
<Grid>
<Grid.ColumnDefinitions>
@ -115,35 +177,112 @@
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="169*" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
</Grid.RowDefinitions>
<pu:Switch x:Name="sDesktopAlignment" BorderBrush="{DynamicResource PrimaryDark}"
Grid.Column="2" CheckedBackground="{DynamicResource Primary}"
CheckedBorderBrush="{DynamicResource Primary}" Background="Transparent" BoxWidth="35"
BoxHeight="18" ToggleSize="14" ToggleShadowColor="{x:Null}"
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"
ToolTip="桌面图标是否自动对齐网格" Checked="sDesktopAlignment_Checked" />
<TextBlock Grid.Row="0" Text="图标对齐" VerticalAlignment="Center" FontSize="14" />
ToolTip="启用数据计算,桌宠会有状态变化,需要按时投喂等.&#13;如果嫌麻烦可以关掉"
Checked="sDesktopAlignment_Checked_1" />
<Grid Grid.Column="2" Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<pu:Switch x:Name="MoveEventBox" BorderBrush="{DynamicResource PrimaryDark}"
CheckedBackground="{DynamicResource Primary}" Content="启用桌宠移动"
CheckedBorderBrush="{DynamicResource Primary}" Background="Transparent"
BoxWidth="35" BoxHeight="18" ToggleSize="14" ToggleShadowColor="{x:Null}"
ToggleBrush="{DynamicResource PrimaryDark}" IsChecked="True"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}" Margin="10,0,0,0"
ToolTip="启用移动互动,桌宠会在屏幕上乱动,移动互动概率为普通互动的一半.&#13;如果嫌麻烦可以关掉" />
<pu:Switch x:Name="SmartMoveEventBox" BorderBrush="{DynamicResource PrimaryDark}"
IsEnabled="{Binding ElementName=MoveEventBox,Path=IsChecked}"
CheckedBackground="{DynamicResource Primary}" Content="智能移动"
CheckedBorderBrush="{DynamicResource Primary}" Background="Transparent"
BoxWidth="35" BoxHeight="18" ToggleSize="14" ToggleShadowColor="{x:Null}"
ToggleBrush="{DynamicResource PrimaryDark}" Grid.Column="1"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}" Margin="10,0,0,0"
ToolTip="当玩家在指定时间未对桌宠进行交互的时候,智能禁用移动功能&#13;将在下次交互时解除" />
</Grid>
<TextBlock Grid.Row="0" Text="数据计算" VerticalAlignment="Center" FontSize="14" />
<TextBlock Grid.Row="3" Text="桌宠移动" VerticalAlignment="Center" FontSize="14" />
<TextBlock Grid.Row="1" Text="计算间隔" VerticalAlignment="Center" FontSize="14" />
<Grid Grid.Column="2" Grid.Row="1"
ToolTip="数据计算和互动计算时间间隔,间隔越短需要互动的频率可能会增加.&#13;间隔越大越不容易打扰到当前工作">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Slider x:Name="CalSlider" TickFrequency="0.1" IsSnapToTickEnabled="True"
Style="{DynamicResource StandardSliderStyle}" VerticalAlignment="Center"
Maximum="60" SmallChange=".5" Minimum="5" LargeChange="1" Value="15" />
<TextBlock Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Center"
Text="{Binding ElementName=CalSlider,Path=Value,StringFormat={}{0:f1} 秒}"
FontSize="14" Foreground="{DynamicResource DARKPrimaryDarker}" FontWeight="Bold"
Background="{x:Null}" Width="60" />
</Grid>
<TextBlock Grid.Row="2" Text="互动周期" VerticalAlignment="Center" FontSize="14" />
<Grid Grid.Column="2" Grid.Row="2" ToolTip="互动周期决定在交互结束后大约经历多少计算间隔后再次进行自主行动">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Slider TickFrequency="1" IsSnapToTickEnabled="True" x:Name="InteractionSlider"
Style="{DynamicResource StandardSliderStyle}" VerticalAlignment="Center"
Maximum="1000" SmallChange="1" Minimum="30" LargeChange="5" Value="200"
ValueChanged="InteractionSlider_ValueChanged" />
<TextBlock Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Center"
Text="{Binding ElementName=InteractionSlider,Path=Value}" FontSize="16"
Foreground="{DynamicResource DARKPrimaryDarker}" FontWeight="Bold"
Background="{x:Null}" Width="60" />
</Grid>
<Grid Grid.Row="4" Grid.Column="2" ToolTip="当玩家在指定时间未对桌宠进行交互的时候,智能禁用移动功能&#13;将在下次交互时解除">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="智能移动判断时间间隔"/>
<ComboBox x:Name="CBSmartMove" Style="{DynamicResource StandardComboBoxStyle}"
IsEnabled="{Binding ElementName=SmartMoveEventBox,Path=IsChecked}"
SelectionChanged="CBAutoSave_SelectionChanged" SelectedIndex="5" Grid.Column="1">
<ComboBoxItem>30 秒</ComboBoxItem>
<ComboBoxItem>1 分钟</ComboBoxItem>
<ComboBoxItem>2 分钟</ComboBoxItem>
<ComboBoxItem>5 分钟</ComboBoxItem>
<ComboBoxItem>10 分钟</ComboBoxItem>
<ComboBoxItem>20 分钟</ComboBoxItem>
<ComboBoxItem>30 分钟</ComboBoxItem>
<ComboBoxItem>40 分钟</ComboBoxItem>
<ComboBoxItem>50 分钟</ComboBoxItem>
<ComboBoxItem>60 分钟</ComboBoxItem>
</ComboBox>
</Grid>
</Grid>
</StackPanel>
</TabItem>
<TabItem Header="诊断" BorderBrush="{DynamicResource PrimaryDarker}">
<StackPanel>
<TextBlock HorizontalAlignment="Left" FontSize="11" VerticalAlignment="Top" Background="{x:Null}"
TextWrapping="Wrap">
<TextBlock HorizontalAlignment="Left" FontSize="11" VerticalAlignment="Top"
Background="{x:Null}" TextWrapping="Wrap">
<Run FontWeight="Bold" FontSize="16">诊断与反馈</Run><LineBreak />
<Run>选择要发送给 LBGame 的诊断数据,诊断数据用于保护和及时更新 VOS, 解决问题并改进产品.</Run><LineBreak />
<Run>无论选择哪个选项,设备都可以安全正常地运行.</Run> <Hyperlink Click="hyper_moreInfo">获取有关这些设置的更多信息</Hyperlink>
<Run>选择要发送给 LBGame 的诊断数据,诊断数据用于保护和及时更新 虚拟桌宠模拟器, 解决问题并改进产品.</Run><LineBreak />
<Run>无论选择哪个选项,游戏都可以安全正常地运行.</Run> <Hyperlink Click="hyper_moreInfo">获取有关这些设置的更多信息</Hyperlink>
</TextBlock>
<RadioButton x:Name="RBDiagnosisYES" Style="{DynamicResource StandardRadioButtonStyle}"
Content="发送诊断数据: 发送有关该设备的存档, 包括购买的游戏,盈&#13;利,饱腹,状态等各种系统内数据" HorizontalAlignment="Left"
Margin="10,10,10,0" VerticalAlignment="Top" GroupName="diagnosis"
Checked="RBDiagnosisYES_Checked" />
Content="发送诊断数据: 发送游戏存档, 包括饱腹,状态等各种游戏内&#13;数据. 可能会包括该游戏内存和CPU使用情况"
HorizontalAlignment="Left" Margin="10,10,10,0" VerticalAlignment="Top"
GroupName="diagnosis" Checked="RBDiagnosisYES_Checked" IsEnabled="False" />
<RadioButton x:Name="RBDiagnosisNO" Style="{DynamicResource StandardRadioButtonStyle}"
Content="不发送诊断数据: 适用于启用修改器,修改过游戏数据等不&#13;符合分析数据条件. 或不希望提供游戏数据的玩家" HorizontalAlignment="Left"
Margin="10,10,10,0" VerticalAlignment="Top" GroupName="diagnosis"
Checked="RBDiagnosisNO_Checked" />
Content="不发送诊断数据: 适用于启用修改器,修改过游戏数据等不&#13;符合分析数据条件. 或不希望提供游戏数据的玩家"
HorizontalAlignment="Left" Margin="10,10,10,0" VerticalAlignment="Top"
GroupName="diagnosis" Checked="RBDiagnosisNO_Checked" IsChecked="True" />
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,15,0,0"
Background="{x:Null}" TextWrapping="Wrap">
<Run FontWeight="Bold" FontSize="14">反馈频率</Run><LineBreak />
@ -151,12 +290,13 @@
</TextBlock>
<ComboBox x:Name="CBDiagnosis" SelectedIndex="1" VerticalAlignment="Top" Margin="10,5,0,0"
HorizontalAlignment="Left" Style="{DynamicResource StandardComboBoxStyle}" Width="200"
SelectionChanged="CBDiagnosis_SelectionChanged">
<ComboBoxItem>每周一次</ComboBoxItem>
<ComboBoxItem>每2周一次</ComboBoxItem>
<ComboBoxItem>每月一次</ComboBoxItem>
<ComboBoxItem>每2个月一次</ComboBoxItem>
<ComboBoxItem>每3个月一次</ComboBoxItem>
SelectionChanged="CBDiagnosis_SelectionChanged" IsEnabled="False">
<ComboBoxItem>每 五百 周期一次</ComboBoxItem>
<ComboBoxItem>每 一千 周期一次</ComboBoxItem>
<ComboBoxItem>每 两千 周期一次</ComboBoxItem>
<ComboBoxItem>每 五千 周期一次</ComboBoxItem>
<ComboBoxItem>每 一万 周期一次</ComboBoxItem>
<ComboBoxItem>每 两万 周期一次</ComboBoxItem>
</ComboBox>
</StackPanel>
</TabItem>
@ -180,9 +320,9 @@
<Image x:Name="ImageMOD" HorizontalAlignment="Right" Height="85" Margin="0,5,0,0"
VerticalAlignment="Top" Width="85" Stretch="Fill" />
<StackPanel Grid.Column="2">
<Label x:Name="LabelModName" Content="Core" HorizontalAlignment="Left" Margin="-5,2,0,0"
VerticalAlignment="Top" FontWeight="Bold" FontSize="18" Background="{x:Null}"
Foreground="{DynamicResource PrimaryText}" />
<Label x:Name="LabelModName" Content="Core" HorizontalAlignment="Left"
Margin="-5,2,0,0" VerticalAlignment="Top" FontWeight="Bold" FontSize="18"
Background="{x:Null}" Foreground="{DynamicResource PrimaryText}" />
<TextBlock Margin="0,0,0,0" TextWrapping="Wrap" FontSize="12">
<Run Text="模组作者: " /><LineBreak />
<Run x:Name="runMODAuthor" Text="LorisYounger" />
@ -204,7 +344,8 @@
</Grid.ColumnDefinitions>
<StackPanel>
<Label Content="MOD介绍" HorizontalAlignment="Left" Margin="-5,0,0,0"
VerticalAlignment="Center" FontSize="18" FontWeight="Bold" Background="{x:Null}" />
VerticalAlignment="Center" FontSize="18" FontWeight="Bold"
Background="{x:Null}" />
<ScrollViewer VerticalScrollBarVisibility="Auto" Height="140" Margin="0,0,0,0"
pu:ScrollViewerHelper.ScrollBarThickness="10" HorizontalAlignment="Left"
VerticalAlignment="Top">
@ -214,8 +355,9 @@
</ScrollViewer>
</StackPanel>
<StackPanel Grid.Column="1">
<Label Content="内容" HorizontalAlignment="Left" Margin="-5,0,0,0" VerticalAlignment="Top"
FontSize="18" FontWeight="Bold" Background="{x:Null}" />
<Label Content="内容" HorizontalAlignment="Left" Margin="-5,0,0,0"
VerticalAlignment="Top" FontSize="18" FontWeight="Bold"
Background="{x:Null}" />
<TextBlock x:Name="ButtonOpenModFolder" Cursor="Hand" HorizontalAlignment="Left"
Margin="0,0,0,0" TextWrapping="Wrap" Text="所在文件夹" VerticalAlignment="Top"
FontSize="12" Foreground="{DynamicResource DARKPrimaryDarker}"
@ -227,7 +369,8 @@
<TextBlock x:Name="ButtonDisEnable" HorizontalAlignment="Left" Margin="0,2,0,0"
TextWrapping="Wrap" Text="停用该模组" VerticalAlignment="Top" FontSize="12"
Width="62" Foreground="{DynamicResource DARKPrimaryDarker}"
TextDecorations="Underline" Cursor="Hand" MouseDown="ButtonDisEnable_MouseDown" />
TextDecorations="Underline" Cursor="Hand"
MouseDown="ButtonDisEnable_MouseDown" />
<TextBlock x:Name="ButtonPublish" HorizontalAlignment="Left" Margin="0,2,0,0"
TextWrapping="Wrap" Text="更新至Steam" VerticalAlignment="Top" FontSize="12"
Width="74" Foreground="DimGray" TextDecorations="Underline" Cursor="Hand"
@ -243,8 +386,8 @@
pu:ProgressBarHelper.IsPercentVisible="True"
Foreground="{DynamicResource DARKPrimary}" BorderThickness="2" />
<Button x:Name="ButtonAllow" Content="启用代码插件" HorizontalAlignment="Left"
VerticalAlignment="Top" Background="#FFFF2C2C" Foreground="White" FontSize="10"
ToolTip="启用该模组的代码内容,不能保证系统安全性" Click="ButtonAllow_Click" />
VerticalAlignment="Top" Background="#FFFF2C2C" Foreground="White"
FontSize="10" ToolTip="启用该模组的代码内容,不能保证系统安全性" Click="ButtonAllow_Click" />
</StackPanel>
<Button x:Name="ButtonRestart" Content="重启软件以应用更改" Margin="0,2,0,0"
VerticalAlignment="Bottom" Background="{DynamicResource DARKPrimary}"
@ -272,38 +415,36 @@
<TextBlock Margin="0,130,0,0" FontWeight="Bold">
<Run>游戏策划</Run><LineBreak />
<Run>UI&amp;程序</Run><LineBreak />
<Run>音效音乐</Run><LineBreak />
<Run>立绘绘制</Run><LineBreak />
<Run>L2D建模</Run><LineBreak />
<Run>开源项目</Run><LineBreak />
<Run>动画绘制</Run><LineBreak />
<Run>开源项目</Run><LineBreak /><LineBreak /><LineBreak />
<Run>项目页面</Run><LineBreak />
<LineBreak /><LineBreak />
<LineBreak /><Run xml:space="preserve">Power By </Run>
<Run TextDecorations="Underline">exLB.net</Run>
<Hyperlink TextDecorations="Underline" Foreground="Black" Click="VPET_Click">exLB.net</Hyperlink>
<Run> </Run>
<Run TextDecorations="Underline">LBGame</Run>
<Hyperlink TextDecorations="Underline" Foreground="Black" Click="LB_Click">LBGame</Hyperlink>
</TextBlock>
<TextBlock Margin="100,130,0,0">
<Run>杨远洛里斯, 广大MOD作者</Run><LineBreak />
<Run>洛里斯杨远, トニーちゃん, HKW雨辉</Run><LineBreak />
<Run>莫皖</Run><LineBreak />
<Run>见老画师中画家昵称</Run>
<Hyperlink>查看画家名单</Hyperlink>
<Run>洛里斯杨远, トニーちゃん</Run> <Hyperlink Click="Git_Click">Git贡献名单</Hyperlink><LineBreak />
<Run>叶书天, 广大MOD作者</Run>
<LineBreak />
<Run>见老画师中建模师昵称</Run>
<Hyperlink>查看建模师名单</Hyperlink><LineBreak />
<Hyperlink>Panuon.WPF.UI</Hyperlink>
<Hyperlink>LinePutScript</Hyperlink><LineBreak />
<Hyperlink>Facepunch.Steamworks</Hyperlink>
<Hyperlink>查看引用名单</Hyperlink>
<Hyperlink>查看引用名单</Hyperlink><LineBreak /><LineBreak />
<Hyperlink Click="Steam_Click">访问Steam页面</Hyperlink>
<Hyperlink Click="Github_Click">访问Github页面</Hyperlink>
<LineBreak />
<Run FontStyle="Italic" FontSize="8">由于游戏暂未开发完毕,该名单并非完整名单.将在正式版完成前修改</Run><LineBreak />
</TextBlock>
<Image Source="/Res/TopLogo2018.PNG" Width="38" Margin="208,257,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Height="38" />
<Image Source="/Res/TopLogo2018.PNG" Width="38" Margin="208,257,0,0" HorizontalAlignment="Left"
VerticalAlignment="Top" Height="38" />
</Grid>
</TabItem>
</TabControl>
<Label x:Name="GameVerison" Content="版本v1.0 (655366666)" HorizontalAlignment="Left" VerticalAlignment="Bottom"
FontSize="10" Foreground="Green" Background="{x:Null}" />
<Label x:Name="GameVerison" Content="版本v1.0 (655366666)" HorizontalAlignment="Left"
VerticalAlignment="Bottom" FontSize="10" Foreground="Green" Background="{x:Null}" />
</Grid>
</Viewbox>
</pu:WindowX>

View File

@ -2,6 +2,7 @@
using Steamworks.Ugc;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -30,7 +31,7 @@ namespace VPet_Simulator.Windows
this.mw = mw;
InitializeComponent();
TopMostBox.IsChecked = mw.Set.TopMost;
if (mw.Set.IsFullScreen)
if (mw.Set.IsBiggerScreen)
{
FullScreenBox.IsChecked = true;
ZoomSlider.Maximum = 8;
@ -193,23 +194,16 @@ namespace VPet_Simulator.Windows
{
if (FullScreenBox.IsChecked == true)
{
mw.Set.IsFullScreen = true;
mw.Set.IsBiggerScreen = true;
ZoomSlider.Maximum = 8;
}
else
{
mw.Set.IsFullScreen = false;
mw.Set.IsBiggerScreen = false;
ZoomSlider.Maximum = 3;
}
}
private void ZoomSlider_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e)
{
mw.SetZoomLevel(ZoomSlider.Value / 2);
this.Width = 400 * ZoomSlider.Value;
this.Height = 450 * ZoomSlider.Value;
}
private void ThemeBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
@ -225,10 +219,6 @@ namespace VPet_Simulator.Windows
}
private void sDesktopAlignment_Checked(object sender, RoutedEventArgs e)
{
}
private void RBDiagnosisYES_Checked(object sender, RoutedEventArgs e)
{
@ -300,8 +290,8 @@ namespace VPet_Simulator.Windows
MessageBoxX.Show("模组 Core 为<虚拟桌宠模拟器>核心文件,无法发布\n如需发布自定义内容,请复制并更改名称", "MOD上传失败", MessageBoxIcon.Error);
return;
}
#if TEST || DEMO
winMessageBox.Show(mw, "特殊版无法上传创意工坊","经测试,除正式版均无创意工坊权限,此功能仅作为展示");
#if DEBUG
MessageBoxX.Show("经测试,除正式版均无创意工坊权限,此功能仅作为展示", "特殊版无法上传创意工坊");
#endif
ButtonPublish.IsEnabled = false;
ButtonPublish.Text = "正在上传";
@ -382,7 +372,7 @@ namespace VPet_Simulator.Windows
private void hyper_moreInfo(object sender, RoutedEventArgs e)
{
Process.Start("https://www.exlb.net/Diagnosis");
}
private void WindowX_Closing(object sender, System.ComponentModel.CancelEventArgs e)
@ -401,5 +391,52 @@ namespace VPet_Simulator.Windows
{
mw.Set.TopMost = false;
}
private void ZoomSlider_MouseUp(object sender, MouseButtonEventArgs e)
{
mw.SetZoomLevel(ZoomSlider.Value / 2);
this.Width = 400 * ZoomSlider.Value;
this.Height = 450 * ZoomSlider.Value;
}
private void PressLengthSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
mw.Set.PressLength = (int)(PressLengthSlider.Value * 1000);
}
private void InteractionSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
}
private void Git_Click(object sender, RoutedEventArgs e)
{
Process.Start("https://github.com/LorisYounger/VPet/graphs/contributors");
}
private void Steam_Click(object sender, RoutedEventArgs e)
{
Process.Start("https://store.steampowered.com/app/1920960/_/");
}
private void Github_Click(object sender, RoutedEventArgs e)
{
Process.Start("https://github.com/LorisYounger/VPet");
}
private void LB_Click(object sender, RoutedEventArgs e)
{
Process.Start("https://www.exlb.net/VPet");
}
private void VPET_Click(object sender, RoutedEventArgs e)
{
Process.Start("https://www.exlb.net/");
}
private void sDesktopAlignment_Checked_1(object sender, RoutedEventArgs e)
{
MessageBoxX.Show("由于没做完,暂不支持数据计算\n敬请期待后续更新", "没做完!", MessageBoxButton.OK, MessageBoxIcon.Warning);
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB