支持更多设置选项

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

View File

@ -77,7 +77,7 @@ namespace VPet_Simulator.Core
Dispatcher.Invoke(() => TimeUIHandle.Invoke(this)); Dispatcher.Invoke(() => TimeUIHandle.Invoke(this));
if (DisplayType == GraphCore.GraphType.Default && !isPress) 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 0:
case 7: case 7:

View File

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

View File

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

View File

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

View File

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

View File

@ -12,7 +12,22 @@ namespace VPet_Simulator.Windows
{ {
public Setting(string lps) : base(lps) 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() public void Save()
@ -40,43 +55,28 @@ namespace VPet_Simulator.Windows
// } // }
//} //}
private double zoomlevel = 0; private double zoomlevel = 0;
/// <summary>
/// 缩放倍率
/// </summary>
public double ZoomLevel public double ZoomLevel
{ {
get get
{ {
if(zoomlevel == 0) return zoomlevel;
{
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 set
{ {
FindorAddLine("zoomlevel").InfoToDouble = value; FindorAddLine("zoomlevel").InfoToDouble = value;
zoomlevel = value; zoomlevel = value;
} }
} }
/// <summary>
public bool IsFullScreen /// 是否为更大的屏幕
/// </summary>
public bool IsBiggerScreen
{ {
get => FindLine("fullscreen") != null; get => GetBool("bigscreen");
set set => SetBool("bigscreen", value);
{
if (value)
FindorAddLine("fullscreen");
else
RemoveAll("fullscreen");
}
} }
/// <summary> /// <summary>
/// 是否启用数据收集 //TODO:判断游戏是否是原版的 /// 是否启用数据收集 //TODO:判断游戏是否是原版的
@ -99,15 +99,15 @@ namespace VPet_Simulator.Windows
/// </summary> /// </summary>
public int DiagnosisInterval 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); set => this["diagnosis"].SetInt("interval", value);
} }
/// <summary> /// <summary>
/// 自动保存频率 /// 自动保存频率 (min)
/// </summary> /// </summary>
public int AutoSaveInterval public int AutoSaveInterval
{ {
get => Math.Max(GetInt("autosave", 7), 0); get => Math.Max(GetInt("autosave", 20), 0);
set => SetInt("autosave", value); set => SetInt("autosave", value);
} }
/// <summary> /// <summary>
@ -178,13 +178,70 @@ namespace VPet_Simulator.Windows
FindorAddLine("passmod").Remove(ModName.ToLower()); FindorAddLine("passmod").Remove(ModName.ToLower());
} }
private int presslength;
private int intercycle;
/// <summary> /// <summary>
/// 按多久视为长按 单位毫秒 /// 按多久视为长按 单位毫秒
/// </summary> /// </summary>
public int PressLength public int PressLength
{ {
get => this["windows"].GetInt("presslength", 500); get => presslength;
set => this["windows"].SetInt("presslength", value); 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 //在 https://store.steampowered.com/app/1920960/VPet
try try
{ {
#if DEBUG
SteamClient.Init(2293870, true);
#else
SteamClient.Init(1920960, true); SteamClient.Init(1920960, true);
#endif
SteamClient.RunCallbacks(); SteamClient.RunCallbacks();
IsSteamUser = SteamClient.IsValid; IsSteamUser = SteamClient.IsValid;
////同时看看有没有买dlc,如果有就添加dlc按钮 ////同时看看有没有买dlc,如果有就添加dlc按钮
@ -105,6 +109,7 @@ namespace VPet_Simulator.Windows
CoreMODs.Add(new CoreMOD(di, this)); CoreMODs.Add(new CoreMOD(di, this));
} }
Dispatcher.Invoke(new Action(() => LoadingText.Content = "尝试加载游戏内容")); Dispatcher.Invoke(new Action(() => LoadingText.Content = "尝试加载游戏内容"));
//加载游戏内容 //加载游戏内容
Core.Controller = new MWController(this); Core.Controller = new MWController(this);
Core.Save = new Save("萝莉斯"); Core.Save = new Save("萝莉斯");
@ -116,43 +121,65 @@ namespace VPet_Simulator.Windows
var main = new Main(Core) { }; var main = new Main(Core) { };
main.DefaultClickAction = () => { Dispatcher.Invoke(() => { main.Say("你知道吗? 鼠标右键可以打开菜单栏"); }); }; main.DefaultClickAction = () => { Dispatcher.Invoke(() => { main.Say("你知道吗? 鼠标右键可以打开菜单栏"); }); };
DisplayGrid.Child = main; 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(); notifyIcon = new NotifyIcon();
ContextMenu m_menu; ContextMenu m_menu;
m_menu = new ContextMenu(); m_menu = new ContextMenu();
m_menu.MenuItems.Add(new MenuItem("重置", (x, y) => { m_menu.MenuItems.Add(new MenuItem("重置状态", (x, y) =>
{
main.CleanState(); main.CleanState();
main.DisplayNomal(); main.DisplayNomal();
})); }));
m_menu.MenuItems.Add(new MenuItem("居中", (x, y) => m_menu.MenuItems.Add(new MenuItem("屏幕居中", (x, y) =>
{ {
Left = (SystemParameters.PrimaryScreenWidth - Width) / 2; Left = (SystemParameters.PrimaryScreenWidth - Width) / 2;
Top = (SystemParameters.PrimaryScreenHeight - Height) / 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) =>
m_menu.MenuItems.Add(new MenuItem("退出", (x, y) => Close())); {
Topmost = false;
winSetting.Show();
}));
m_menu.MenuItems.Add(new MenuItem("退出桌宠", (x, y) => Close()));
notifyIcon.ContextMenu = m_menu; notifyIcon.ContextMenu = m_menu;
var streamResourceInfo = Application.GetResourceStream(new Uri("pack://application:,,,/vpeticon.ico")); notifyIcon.Icon = new System.Drawing.Icon(Application.GetResourceStream(new Uri("pack://application:,,,/vpeticon.ico")).Stream);
if (streamResourceInfo != null)
notifyIcon.Icon = new System.Drawing.Icon(streamResourceInfo.Stream);
notifyIcon.Visible = true; notifyIcon.Visible = true;
//notifyIcon.ShowBalloonTip(5, "你好 " + Environment.UserName, if (Set["SingleTips"].GetBool("helloworld"))
// "Press Alt+C to show Clock\nRight Click on Tray to Close", ToolTipIcon.Info); {
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) private void Window_Closed(object sender, EventArgs e)
{ {
((Main)DisplayGrid.Child).Dispose(); //游戏存档
notifyIcon.Dispose(); 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();
System.Environment.Exit(0); System.Environment.Exit(0);
} }

View File

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

View File

@ -7,102 +7,23 @@
Style="{DynamicResource BaseWindowXStyle}" WindowStartupLocation="CenterScreen" Closing="WindowX_Closing" Style="{DynamicResource BaseWindowXStyle}" WindowStartupLocation="CenterScreen" Closing="WindowX_Closing"
Width="400" Height="450"> Width="400" Height="450">
<Viewbox> <Viewbox>
<Grid Width="400" Height="450"> <Grid Width="400" Height="450">
<TabControl Margin="5" BorderThickness="0" pu:TabControlHelper.ItemsHeight="NaN" <TabControl Margin="5" BorderThickness="0" pu:TabControlHelper.ItemsHeight="NaN"
pu:TabControlHelper.ItemsFontSize="14" Background="Transparent" pu:TabControlHelper.ItemsPadding="10,7" pu:TabControlHelper.ItemsFontSize="14" Background="Transparent"
pu:TabControlHelper.ItemsCornerRadius="4" pu:TabControlHelper.ItemsPadding="10,7" pu:TabControlHelper.ItemsCornerRadius="4"
pu:TabControlHelper.ItemsHoverBackground="{DynamicResource PrimaryLight}" pu:TabControlHelper.ItemsHoverBackground="{DynamicResource PrimaryLight}"
pu:TabControlHelper.ItemsSelectedBackground="{DynamicResource PrimaryDark}" pu:TabControlHelper.ItemsSelectedBackground="{DynamicResource PrimaryDark}"
pu:TabControlHelper.ItemsSelectedForeground="{DynamicResource DARKPrimaryText}" pu:TabControlHelper.ItemsSelectedForeground="{DynamicResource DARKPrimaryText}"
Foreground="{DynamicResource PrimaryText}"> Foreground="{DynamicResource PrimaryText}">
<TabControl.ContentTemplate> <TabControl.ContentTemplate>
<DataTemplate> <DataTemplate>
<Border Margin="5,10,5,20" CornerRadius="15" Background="{DynamicResource DARKPrimaryText}"> <Border Margin="5,10,5,20" CornerRadius="15" Background="{DynamicResource DARKPrimaryText}">
<ContentControl Content="{Binding}" Margin="15,10" /> <ContentControl Content="{Binding}" Margin="15,10" />
</Border> </Border>
</DataTemplate> </DataTemplate>
</TabControl.ContentTemplate> </TabControl.ContentTemplate>
<TabItem Header="图形" Foreground="{DynamicResource PrimaryText}" <TabItem Header="图形" Foreground="{DynamicResource PrimaryText}"
BorderBrush="{DynamicResource PrimaryDarker}"> BorderBrush="{DynamicResource PrimaryDarker}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="15" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<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}"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}" Checked="TopMostBox_Checked"
Unchecked="TopMostBox_Unchecked" />
<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}"
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" />
<TextBlock Grid.Row="2" Text="缩放等级" VerticalAlignment="Center" FontSize="14" />
<Grid Grid.Column="2" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Slider Thumb.DragCompleted="ZoomSlider_DragCompleted" TickFrequency="0.1"
IsSnapToTickEnabled="True" x:Name="ZoomSlider"
Style="{DynamicResource StandardSliderStyle}" VerticalAlignment="Center" Maximum="3"
SmallChange=".1" Minimum="0.5" LargeChange=".1" Value="1" />
<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}" />
</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"
Style="{DynamicResource StandardComboBoxStyle}" Margin="0,3,0,2" />
</Grid>
</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>
<ComboBox x:Name="CBAutoSave" SelectedIndex="3" VerticalAlignment="Top" Margin="10,5,0,0"
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>
</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>
</TextBlock>
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
@ -115,195 +36,415 @@
<RowDefinition Height="35" /> <RowDefinition Height="35" />
<RowDefinition Height="35" /> <RowDefinition Height="35" />
<RowDefinition Height="35" /> <RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="169*" /> <RowDefinition Height="169*" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<pu:Switch x:Name="sDesktopAlignment" BorderBrush="{DynamicResource PrimaryDark}" <TextBlock Text="置于顶层" VerticalAlignment="Center" FontSize="14" />
Grid.Column="2" CheckedBackground="{DynamicResource Primary}" <pu:Switch x:Name="TopMostBox" Grid.Column="2" BorderBrush="{DynamicResource PrimaryDark}"
CheckedBackground="{DynamicResource Primary}"
CheckedBorderBrush="{DynamicResource Primary}" Background="Transparent" BoxWidth="35" CheckedBorderBrush="{DynamicResource Primary}" Background="Transparent" BoxWidth="35"
BoxHeight="18" ToggleSize="14" ToggleShadowColor="{x:Null}" BoxHeight="18" ToggleSize="14" ToggleShadowColor="{x:Null}"
ToggleBrush="{DynamicResource PrimaryDark}" ToggleBrush="{DynamicResource PrimaryDark}"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}" Margin="10,0,0,0" CheckedToggleBrush="{DynamicResource DARKPrimaryText}" Checked="TopMostBox_Checked"
ToolTip="桌面图标是否自动对齐网格" Checked="sDesktopAlignment_Checked" /> Unchecked="TopMostBox_Unchecked" ToolTip="将桌宠置于顶层" />
<TextBlock Grid.Row="0" Text="图标对齐" VerticalAlignment="Center" FontSize="14" /> <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}"
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" ToolTip="解锁缩放限制" />
<TextBlock Grid.Row="2" Text="缩放等级" VerticalAlignment="Center" FontSize="14" />
<Grid Grid.Column="2" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Slider TickFrequency="0.05" IsSnapToTickEnabled="True" x:Name="ZoomSlider"
Style="{DynamicResource StandardSliderStyle}" VerticalAlignment="Center" Maximum="3"
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,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" 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> </Grid>
</StackPanel> </TabItem>
</TabItem> <TabItem Header="系统" BorderBrush="{DynamicResource PrimaryDarker}">
<TabItem Header="诊断" BorderBrush="{DynamicResource PrimaryDarker}"> <StackPanel>
<StackPanel> <TextBlock HorizontalAlignment="Left" VerticalAlignment="Top" Background="{x:Null}"
<TextBlock HorizontalAlignment="Left" FontSize="11" VerticalAlignment="Top" Background="{x:Null}" TextWrapping="Wrap">
TextWrapping="Wrap"> <Run FontWeight="Bold" FontSize="16">自动保存频率</Run><LineBreak />
<Run FontWeight="Bold" FontSize="16">诊断与反馈</Run><LineBreak /> <Run>在指定时间后自动保存游戏数据,频繁的自动保存可能会导致卡顿</Run>
<Run>选择要发送给 LBGame 的诊断数据,诊断数据用于保护和及时更新 VOS, 解决问题并改进产品.</Run><LineBreak /> </TextBlock>
<Run>无论选择哪个选项,设备都可以安全正常地运行.</Run> <Hyperlink Click="hyper_moreInfo">获取有关这些设置的更多信息</Hyperlink> <ComboBox x:Name="CBAutoSave" SelectedIndex="3" VerticalAlignment="Top" Margin="10,5,0,0"
</TextBlock> HorizontalAlignment="Left" Style="{DynamicResource StandardComboBoxStyle}" Width="200"
<RadioButton x:Name="RBDiagnosisYES" Style="{DynamicResource StandardRadioButtonStyle}" SelectionChanged="CBAutoSave_SelectionChanged">
Content="发送诊断数据: 发送有关该设备的存档, 包括购买的游戏,盈&#13;利,饱腹,状态等各种系统内数据" HorizontalAlignment="Left" <ComboBoxItem>关闭自动保存</ComboBoxItem>
Margin="10,10,10,0" VerticalAlignment="Top" GroupName="diagnosis" <ComboBoxItem>每5分钟一次</ComboBoxItem>
Checked="RBDiagnosisYES_Checked" /> <ComboBoxItem>每10分钟一次</ComboBoxItem>
<RadioButton x:Name="RBDiagnosisNO" Style="{DynamicResource StandardRadioButtonStyle}" <ComboBoxItem>每20分钟一次</ComboBoxItem>
Content="不发送诊断数据: 适用于启用修改器,修改过游戏数据等不&#13;符合分析数据条件. 或不希望提供游戏数据的玩家" HorizontalAlignment="Left" <ComboBoxItem>每半小时一次</ComboBoxItem>
Margin="10,10,10,0" VerticalAlignment="Top" GroupName="diagnosis" <ComboBoxItem>每小时一次</ComboBoxItem>
Checked="RBDiagnosisNO_Checked" /> </ComboBox>
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,15,0,0" <TextBlock HorizontalAlignment="Left" VerticalAlignment="Top" Background="{x:Null}"
Background="{x:Null}" TextWrapping="Wrap"> TextWrapping="Wrap" Margin="0,10,0,0">
<Run FontWeight="Bold" FontSize="14">反馈频率</Run><LineBreak /> <Run FontWeight="Bold" FontSize="16">操作设置</Run><LineBreak />
<Run>VOS 应寻求我反馈按以下频率</Run> <Run>游戏操作相关设置</Run>
</TextBlock> </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>
</ComboBox>
</StackPanel>
</TabItem>
<TabItem Header="MOD管理" BorderBrush="{DynamicResource PrimaryDarker}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition Width="15" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ListBox x:Name="ListMod" BorderThickness="0" Background="Transparent"
Style="{DynamicResource SideMenuListBoxStyle}" VerticalAlignment="Top" FontSize="12"
SelectionChanged="ListMod_SelectionChanged" SelectionMode="Single" />
<StackPanel Grid.Column="2">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
<ColumnDefinition Width="7" /> <ColumnDefinition Width="15" />
<ColumnDefinition /> <ColumnDefinition />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Image x:Name="ImageMOD" HorizontalAlignment="Right" Height="85" Margin="0,5,0,0" <Grid.RowDefinitions>
VerticalAlignment="Top" Width="85" Stretch="Fill" /> <RowDefinition Height="35" />
<StackPanel Grid.Column="2"> <RowDefinition Height="35" />
<Label x:Name="LabelModName" Content="Core" HorizontalAlignment="Left" Margin="-5,2,0,0" <RowDefinition Height="35" />
VerticalAlignment="Top" FontWeight="Bold" FontSize="18" Background="{x:Null}" </Grid.RowDefinitions>
Foreground="{DynamicResource PrimaryText}" /> <TextBlock Grid.Row="0" Text="长按间隔" VerticalAlignment="Center" FontSize="14" />
<TextBlock Margin="0,0,0,0" TextWrapping="Wrap" FontSize="12">
<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>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="15" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<RowDefinition Height="35" />
<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}"
ToggleBrush="{DynamicResource PrimaryDark}"
CheckedToggleBrush="{DynamicResource DARKPrimaryText}" Margin="10,0,0,0"
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">
<Run FontWeight="Bold" FontSize="16">诊断与反馈</Run><LineBreak />
<Run>选择要发送给 LBGame 的诊断数据,诊断数据用于保护和及时更新 虚拟桌宠模拟器, 解决问题并改进产品.</Run><LineBreak />
<Run>无论选择哪个选项,游戏都可以安全正常地运行.</Run> <Hyperlink Click="hyper_moreInfo">获取有关这些设置的更多信息</Hyperlink>
</TextBlock>
<RadioButton x:Name="RBDiagnosisYES" Style="{DynamicResource StandardRadioButtonStyle}"
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" IsChecked="True" />
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,15,0,0"
Background="{x:Null}" TextWrapping="Wrap">
<Run FontWeight="Bold" FontSize="14">反馈频率</Run><LineBreak />
<Run>VOS 应寻求我反馈按以下频率</Run>
</TextBlock>
<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>
<ComboBoxItem>每 一万 周期一次</ComboBoxItem>
<ComboBoxItem>每 两万 周期一次</ComboBoxItem>
</ComboBox>
</StackPanel>
</TabItem>
<TabItem Header="MOD管理" BorderBrush="{DynamicResource PrimaryDarker}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition Width="15" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ListBox x:Name="ListMod" BorderThickness="0" Background="Transparent"
Style="{DynamicResource SideMenuListBoxStyle}" VerticalAlignment="Top" FontSize="12"
SelectionChanged="ListMod_SelectionChanged" SelectionMode="Single" />
<StackPanel Grid.Column="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="7" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<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}" />
<TextBlock Margin="0,0,0,0" TextWrapping="Wrap" FontSize="12">
<Run Text="模组作者: " /><LineBreak /> <Run Text="模组作者: " /><LineBreak />
<Run x:Name="runMODAuthor" Text="LorisYounger" /> <Run x:Name="runMODAuthor" Text="LorisYounger" />
<LineBreak /><Run Text="模组版本: " /><Run x:Name="runMODVer" Text="1.0" /> <LineBreak /><Run Text="模组版本: " /><Run x:Name="runMODVer" Text="1.0" />
<LineBreak /><Run Text="游戏版本: " /><Run x:Name="runMODGameVer" Text="1.0" /> <LineBreak /><Run Text="游戏版本: " /><Run x:Name="runMODGameVer" Text="1.0" />
</TextBlock> </TextBlock>
</StackPanel> </StackPanel>
</Grid> </Grid>
<ScrollViewer VerticalScrollBarVisibility="Auto" Height="60" Margin="0,7,0,0" <ScrollViewer VerticalScrollBarVisibility="Auto" Height="60" Margin="0,7,0,0"
pu:ScrollViewerHelper.ScrollBarThickness="10" HorizontalAlignment="Left" pu:ScrollViewerHelper.ScrollBarThickness="10" HorizontalAlignment="Left"
VerticalAlignment="Top"> VerticalAlignment="Top">
<TextBlock x:Name="GameInfo" FontSize="12" TextWrapping="Wrap" <TextBlock x:Name="GameInfo" FontSize="12" TextWrapping="Wrap"
Text="这里是MOD的介绍内容,你的介绍就是你的介绍&#xA;" VerticalAlignment="Top" /> Text="这里是MOD的介绍内容,你的介绍就是你的介绍&#xA;" VerticalAlignment="Top" />
</ScrollViewer> </ScrollViewer>
<Grid Height="140"> <Grid Height="140">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition /> <ColumnDefinition />
<ColumnDefinition /> <ColumnDefinition />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<StackPanel> <StackPanel>
<Label Content="MOD介绍" HorizontalAlignment="Left" Margin="-5,0,0,0" <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"
<ScrollViewer VerticalScrollBarVisibility="Auto" Height="140" Margin="0,0,0,0" Background="{x:Null}" />
pu:ScrollViewerHelper.ScrollBarThickness="10" HorizontalAlignment="Left" <ScrollViewer VerticalScrollBarVisibility="Auto" Height="140" Margin="0,0,0,0"
VerticalAlignment="Top"> pu:ScrollViewerHelper.ScrollBarThickness="10" HorizontalAlignment="Left"
<TextBlock x:Name="GameHave" FontSize="12" TextWrapping="Wrap" VerticalAlignment="Top">
Text="该mod有许多功能&#xA;比如说功能1&#xA;比如说功能1&#xA;比如说功能1&#xA;比如说功能1&#xA;比如说功能1" <TextBlock x:Name="GameHave" FontSize="12" TextWrapping="Wrap"
HorizontalAlignment="Left" VerticalAlignment="Top" /> Text="该mod有许多功能&#xA;比如说功能1&#xA;比如说功能1&#xA;比如说功能1&#xA;比如说功能1&#xA;比如说功能1"
</ScrollViewer> HorizontalAlignment="Left" VerticalAlignment="Top" />
</StackPanel> </ScrollViewer>
<StackPanel Grid.Column="1"> </StackPanel>
<Label Content="内容" HorizontalAlignment="Left" Margin="-5,0,0,0" VerticalAlignment="Top" <StackPanel Grid.Column="1">
FontSize="18" FontWeight="Bold" Background="{x:Null}" /> <Label Content="内容" HorizontalAlignment="Left" Margin="-5,0,0,0"
<TextBlock x:Name="ButtonOpenModFolder" Cursor="Hand" HorizontalAlignment="Left" VerticalAlignment="Top" FontSize="18" FontWeight="Bold"
Margin="0,0,0,0" TextWrapping="Wrap" Text="所在文件夹" VerticalAlignment="Top" Background="{x:Null}" />
FontSize="12" Foreground="{DynamicResource DARKPrimaryDarker}" <TextBlock x:Name="ButtonOpenModFolder" Cursor="Hand" HorizontalAlignment="Left"
TextDecorations="Underline" MouseDown="ButtonOpenModFolder_MouseDown" /> Margin="0,0,0,0" TextWrapping="Wrap" Text="所在文件夹" VerticalAlignment="Top"
<TextBlock x:Name="ButtonEnable" HorizontalAlignment="Left" Margin="0,2,0,0" FontSize="12" Foreground="{DynamicResource DARKPrimaryDarker}"
TextWrapping="Wrap" Text="启用该模组" VerticalAlignment="Top" FontSize="12" TextDecorations="Underline" MouseDown="ButtonOpenModFolder_MouseDown" />
Width="62" Foreground="{DynamicResource DARKPrimaryDarker}" <TextBlock x:Name="ButtonEnable" HorizontalAlignment="Left" Margin="0,2,0,0"
TextDecorations="Underline" Cursor="Hand" MouseDown="ButtonEnable_MouseDown" /> TextWrapping="Wrap" Text="启用该模组" VerticalAlignment="Top" FontSize="12"
<TextBlock x:Name="ButtonDisEnable" HorizontalAlignment="Left" Margin="0,2,0,0" Width="62" Foreground="{DynamicResource DARKPrimaryDarker}"
TextWrapping="Wrap" Text="停用该模组" VerticalAlignment="Top" FontSize="12" TextDecorations="Underline" Cursor="Hand" MouseDown="ButtonEnable_MouseDown" />
Width="62" Foreground="{DynamicResource DARKPrimaryDarker}" <TextBlock x:Name="ButtonDisEnable" HorizontalAlignment="Left" Margin="0,2,0,0"
TextDecorations="Underline" Cursor="Hand" MouseDown="ButtonDisEnable_MouseDown" /> TextWrapping="Wrap" Text="停用该模组" VerticalAlignment="Top" FontSize="12"
<TextBlock x:Name="ButtonPublish" HorizontalAlignment="Left" Margin="0,2,0,0" Width="62" Foreground="{DynamicResource DARKPrimaryDarker}"
TextWrapping="Wrap" Text="更新至Steam" VerticalAlignment="Top" FontSize="12" TextDecorations="Underline" Cursor="Hand"
Width="74" Foreground="DimGray" TextDecorations="Underline" Cursor="Hand" MouseDown="ButtonDisEnable_MouseDown" />
IsEnabled="False" MouseDown="ButtonPublish_MouseDown" /> <TextBlock x:Name="ButtonPublish" HorizontalAlignment="Left" Margin="0,2,0,0"
<TextBlock x:Name="ButtonSteam" HorizontalAlignment="Left" Margin="0,2,0,0" TextWrapping="Wrap" Text="更新至Steam" VerticalAlignment="Top" FontSize="12"
TextWrapping="Wrap" Text="创意工坊页面" VerticalAlignment="Top" FontSize="12" Width="74" Foreground="DimGray" TextDecorations="Underline" Cursor="Hand"
Width="72" Foreground="DimGray" TextDecorations="Underline" Cursor="Hand" IsEnabled="False" MouseDown="ButtonPublish_MouseDown" />
IsEnabled="False" MouseDown="ButtonSteam_MouseDown" /> <TextBlock x:Name="ButtonSteam" HorizontalAlignment="Left" Margin="0,2,0,0"
<ProgressBar x:Name="ProgressBarUpload" Margin="0,2,0,0" Visibility="Collapsed" TextWrapping="Wrap" Text="创意工坊页面" VerticalAlignment="Top" FontSize="12"
pu:ProgressBarHelper.CornerRadius="2" VerticalAlignment="Top" Height="30" Width="72" Foreground="DimGray" TextDecorations="Underline" Cursor="Hand"
Value="60" Background="{DynamicResource Primary}" IsEnabled="False" MouseDown="ButtonSteam_MouseDown" />
BorderBrush="{DynamicResource PrimaryDarker}" <ProgressBar x:Name="ProgressBarUpload" Margin="0,2,0,0" Visibility="Collapsed"
pu:ProgressBarHelper.IsPercentVisible="True" pu:ProgressBarHelper.CornerRadius="2" VerticalAlignment="Top" Height="30"
Foreground="{DynamicResource DARKPrimary}" BorderThickness="2" /> Value="60" Background="{DynamicResource Primary}"
<Button x:Name="ButtonAllow" Content="启用代码插件" HorizontalAlignment="Left" BorderBrush="{DynamicResource PrimaryDarker}"
VerticalAlignment="Top" Background="#FFFF2C2C" Foreground="White" FontSize="10" pu:ProgressBarHelper.IsPercentVisible="True"
ToolTip="启用该模组的代码内容,不能保证系统安全性" Click="ButtonAllow_Click" /> Foreground="{DynamicResource DARKPrimary}" BorderThickness="2" />
</StackPanel> <Button x:Name="ButtonAllow" Content="启用代码插件" HorizontalAlignment="Left"
<Button x:Name="ButtonRestart" Content="重启软件以应用更改" Margin="0,2,0,0" VerticalAlignment="Top" Background="#FFFF2C2C" Foreground="White"
VerticalAlignment="Bottom" Background="{DynamicResource DARKPrimary}" FontSize="10" ToolTip="启用该模组的代码内容,不能保证系统安全性" Click="ButtonAllow_Click" />
Visibility="Collapsed" Foreground="{DynamicResource DARKPrimaryText}" </StackPanel>
Click="ButtonRestart_Click" Grid.ColumnSpan="2" /> <Button x:Name="ButtonRestart" Content="重启软件以应用更改" Margin="0,2,0,0"
</Grid> VerticalAlignment="Bottom" Background="{DynamicResource DARKPrimary}"
</StackPanel> Visibility="Collapsed" Foreground="{DynamicResource DARKPrimaryText}"
</Grid> Click="ButtonRestart_Click" Grid.ColumnSpan="2" />
</TabItem> </Grid>
<TabItem Header="关于" BorderBrush="{DynamicResource PrimaryDarker}" </StackPanel>
Foreground="{DynamicResource PrimaryText}"> </Grid>
<Grid HorizontalAlignment="Left" VerticalAlignment="Top"> </TabItem>
<TextBlock Margin="0,0,0,0" Text="虚拟主播模拟器 规格" FontSize="20" FontWeight="Bold" /> <TabItem Header="关于" BorderBrush="{DynamicResource PrimaryDarker}"
<TextBlock Margin="0,30,0,0" FontWeight="Bold"> Foreground="{DynamicResource PrimaryText}">
<Grid HorizontalAlignment="Left" VerticalAlignment="Top">
<TextBlock Margin="0,0,0,0" Text="虚拟主播模拟器 规格" FontSize="20" FontWeight="Bold" />
<TextBlock Margin="0,30,0,0" FontWeight="Bold">
<Run>用户名</Run><LineBreak /> <Run>用户名</Run><LineBreak />
<Run>版本</Run><LineBreak /> <Run>版本</Run><LineBreak />
<Run>激活</Run><LineBreak /> <Run>激活</Run><LineBreak />
</TextBlock> </TextBlock>
<TextBlock VerticalAlignment="Top" Margin="100,30,0,0"> <TextBlock VerticalAlignment="Top" Margin="100,30,0,0">
<Run x:Name="runUserName">杨远洛里斯</Run><LineBreak /> <Run x:Name="runUserName">杨远洛里斯</Run><LineBreak />
<Run x:Name="runabVer">v1.0 (100)</Run><LineBreak /> <Run x:Name="runabVer">v1.0 (100)</Run><LineBreak />
<Run x:Name="runActivate">已通过Steam[uid]激活服务注册</Run><LineBreak /> <Run x:Name="runActivate">已通过Steam[uid]激活服务注册</Run><LineBreak />
</TextBlock> </TextBlock>
<TextBlock Margin="0,100,0,0" Text="制作组名单" FontSize="20" FontWeight="Bold" /> <TextBlock Margin="0,100,0,0" Text="制作组名单" FontSize="20" FontWeight="Bold" />
<TextBlock Margin="0,130,0,0" FontWeight="Bold"> <TextBlock Margin="0,130,0,0" FontWeight="Bold">
<Run>游戏策划</Run><LineBreak /> <Run>游戏策划</Run><LineBreak />
<Run>UI&amp;程序</Run><LineBreak /> <Run>UI&amp;程序</Run><LineBreak />
<Run>音效音乐</Run><LineBreak /> <Run>动画绘制</Run><LineBreak />
<Run>立绘绘制</Run><LineBreak /> <Run>开源项目</Run><LineBreak /><LineBreak /><LineBreak />
<Run>L2D建模</Run><LineBreak /> <Run>项目页面</Run><LineBreak />
<Run>开源项目</Run><LineBreak />
<LineBreak /><LineBreak /> <LineBreak /><LineBreak />
<LineBreak /><Run xml:space="preserve">Power By </Run> <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> </Run>
<Run TextDecorations="Underline">LBGame</Run> <Hyperlink TextDecorations="Underline" Foreground="Black" Click="LB_Click">LBGame</Hyperlink>
</TextBlock> </TextBlock>
<TextBlock Margin="100,130,0,0"> <TextBlock Margin="100,130,0,0">
<Run>杨远洛里斯, 广大MOD作者</Run><LineBreak /> <Run>杨远洛里斯, 广大MOD作者</Run><LineBreak />
<Run>洛里斯杨远, トニーちゃん, HKW雨辉</Run><LineBreak /> <Run>洛里斯杨远, トニーちゃん</Run> <Hyperlink Click="Git_Click">Git贡献名单</Hyperlink><LineBreak />
<Run>莫皖</Run><LineBreak /> <Run>叶书天, 广大MOD作者</Run>
<Run>见老画师中画家昵称</Run>
<Hyperlink>查看画家名单</Hyperlink>
<LineBreak /> <LineBreak />
<Run>见老画师中建模师昵称</Run>
<Hyperlink>查看建模师名单</Hyperlink><LineBreak />
<Hyperlink>Panuon.WPF.UI</Hyperlink> <Hyperlink>Panuon.WPF.UI</Hyperlink>
<Hyperlink>LinePutScript</Hyperlink><LineBreak /> <Hyperlink>LinePutScript</Hyperlink><LineBreak />
<Hyperlink>Facepunch.Steamworks</Hyperlink> <Hyperlink>Facepunch.Steamworks</Hyperlink>
<Hyperlink>查看引用名单</Hyperlink> <Hyperlink>查看引用名单</Hyperlink><LineBreak /><LineBreak />
<Hyperlink Click="Steam_Click">访问Steam页面</Hyperlink>
<Hyperlink Click="Github_Click">访问Github页面</Hyperlink>
<LineBreak /> <LineBreak />
<Run FontStyle="Italic" FontSize="8">由于游戏暂未开发完毕,该名单并非完整名单.将在正式版完成前修改</Run><LineBreak /> <Run FontStyle="Italic" FontSize="8">由于游戏暂未开发完毕,该名单并非完整名单.将在正式版完成前修改</Run><LineBreak />
</TextBlock> </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"
</Grid> VerticalAlignment="Top" Height="38" />
</TabItem> </Grid>
</TabControl> </TabItem>
<Label x:Name="GameVerison" Content="版本v1.0 (655366666)" HorizontalAlignment="Left" VerticalAlignment="Bottom" </TabControl>
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> </Grid>
</Viewbox> </Viewbox>
</pu:WindowX> </pu:WindowX>

View File

@ -2,6 +2,7 @@
using Steamworks.Ugc; using Steamworks.Ugc;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -27,10 +28,10 @@ namespace VPet_Simulator.Windows
private bool AllowChange = false; private bool AllowChange = false;
public winGameSetting(MainWindow mw) public winGameSetting(MainWindow mw)
{ {
this.mw = mw; this.mw = mw;
InitializeComponent(); InitializeComponent();
TopMostBox.IsChecked = mw.Set.TopMost; TopMostBox.IsChecked = mw.Set.TopMost;
if (mw.Set.IsFullScreen) if (mw.Set.IsBiggerScreen)
{ {
FullScreenBox.IsChecked = true; FullScreenBox.IsChecked = true;
ZoomSlider.Maximum = 8; ZoomSlider.Maximum = 8;
@ -193,23 +194,16 @@ namespace VPet_Simulator.Windows
{ {
if (FullScreenBox.IsChecked == true) if (FullScreenBox.IsChecked == true)
{ {
mw.Set.IsFullScreen = true; mw.Set.IsBiggerScreen = true;
ZoomSlider.Maximum = 8; ZoomSlider.Maximum = 8;
} }
else else
{ {
mw.Set.IsFullScreen = false; mw.Set.IsBiggerScreen = false;
ZoomSlider.Maximum = 3; 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) 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) private void RBDiagnosisYES_Checked(object sender, RoutedEventArgs e)
{ {
@ -300,8 +290,8 @@ namespace VPet_Simulator.Windows
MessageBoxX.Show("模组 Core 为<虚拟桌宠模拟器>核心文件,无法发布\n如需发布自定义内容,请复制并更改名称", "MOD上传失败", MessageBoxIcon.Error); MessageBoxX.Show("模组 Core 为<虚拟桌宠模拟器>核心文件,无法发布\n如需发布自定义内容,请复制并更改名称", "MOD上传失败", MessageBoxIcon.Error);
return; return;
} }
#if TEST || DEMO #if DEBUG
winMessageBox.Show(mw, "特殊版无法上传创意工坊","经测试,除正式版均无创意工坊权限,此功能仅作为展示"); MessageBoxX.Show("经测试,除正式版均无创意工坊权限,此功能仅作为展示", "特殊版无法上传创意工坊");
#endif #endif
ButtonPublish.IsEnabled = false; ButtonPublish.IsEnabled = false;
ButtonPublish.Text = "正在上传"; ButtonPublish.Text = "正在上传";
@ -382,7 +372,7 @@ namespace VPet_Simulator.Windows
private void hyper_moreInfo(object sender, RoutedEventArgs e) 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) private void WindowX_Closing(object sender, System.ComponentModel.CancelEventArgs e)
@ -401,5 +391,52 @@ namespace VPet_Simulator.Windows
{ {
mw.Set.TopMost = false; 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