diff --git a/README.assets/ss2.gif b/README.assets/ss2.gif
new file mode 100644
index 0000000..c4af6b9
Binary files /dev/null and b/README.assets/ss2.gif differ
diff --git a/README.assets/ss7.gif b/README.assets/ss7.gif
new file mode 100644
index 0000000..108fd65
Binary files /dev/null and b/README.assets/ss7.gif differ
diff --git a/README.md b/README.md
index 18e6ade..0bc5fa9 100644
--- a/README.md
+++ b/README.md
@@ -4,12 +4,70 @@
![ss4](README.assets/ss4.gif)
-## 软件设计
+获取虚拟桌宠模拟器 [OnSteam(免费)](https://store.steampowered.com/app/1920960/VPet) 或 通过[Nuget]()内置到你的WPF应用程序
-* VPet-Simulator: 适用于桌面端的虚拟桌宠模拟器
+## 虚拟桌宠模拟器 详细介绍
+
+虚拟桌宠模拟器是一款桌宠软件,支持各种互动投喂等. 开源免费并且支持创意工坊.
+
+反正免费为啥不试试呢(
+
+该游戏为 [虚拟主播模拟器](https://store.steampowered.com/app/1352140/_/) 内置桌宠(教程)程序独立而来, 如果喜欢的话欢迎添加 [虚拟主播模拟器](https://store.steampowered.com/app/1352140/_/) 至愿望单
+
+### 超多的互动和动画
+
+多达 32(种) * 4(状态) * 3(类型) 种动画, *注:部分种类没有生病状态或循环等内容,实际动画数量会偏少*
+
+#### 一些动画例子:
+
+##### 摸头
+
+![ss2](README.assets/ss2.gif)
+
+##### 提起
+
+![ss4](README.assets/ss4.gif)
+
+##### 爬墙
+
+![ss7](README.assets/ss7.gif)
+
+详情请参见 开源文档中的 [图像资源](https://github.com/LorisYounger/VPet#%E5%9B%BE%E5%83%8F%E8%B5%84%E6%BA%90).
+
+### 免费
+
+该游戏完全免费! 反正不要钱,试试不要紧(
+该游戏主要目的是宣传下 [虚拟主播模拟器](https://store.steampowered.com/app/1352140/_/), 游戏中Q版人物为虚拟主播模拟器的主人公.
+
+### 开源
+
+该游戏在github上开源, 欢迎提出自己的想法,创意或者参与开发!
+您还可以修改代码来制作自己专属的桌宠!(虽然说大部分内容都支持创意工坊,不需要修改代码)
+项目地址: https://github.com/LorisYounger/VPet
+
+### 支持创意工坊
+
+该游戏支持创意工坊,您可以制作别的人物桌宠动画或者互动,并上传至创意工坊分享给更多人使用.
+
+创意工坊支持添加/修改以下内容
+
+* 桌宠动画
+* 物品/食物/饮料等
+* 桌宠工作
+* 说话文本
+* 主题
+
+### 反馈&建议&联系我们
+
+如果有建议或者意见,可以在Steam商店评论/社区,Github Issue,虚拟主播模拟器贴吧,虚拟主播模拟器群(430081239)或者邮件联系我 [mailto:service@exlb.net](mailto:service@exlb.net)
+
+## 软件结构
+
+* VPet-Simulator.Windows: 适用于桌面端的虚拟桌宠模拟器
* MainWindows 主窗体,存放和展示Core
* WinSetting.xaml 软件设置/MOD 窗口
* MWController.cs 窗体控制器
+* VPet-Simulator.Tool: 方便制作MOD的工具(eg:图片帧生成)
* VPet-Simulator.Core: 软件核心 方便内置到任何WPF应用程序(例如:VUP-Simulator)
* Handle 接口与控件
* IController 窗体控制器 (调用相关功能,例如移动到侧边等)
@@ -126,4 +184,43 @@
* 被拉起 (切换位置)(无生病,生病时使用状态不佳)
* 爬墙 (无状态不佳/生病))
* 爬地板 (无状态不佳/生病))
- * 躲藏 (被发现加心情 无状态不佳/生病)
\ No newline at end of file
+ * 躲藏 (被发现加心情 无状态不佳/生病)
+
+## 参与开发
+
+欢迎参与虚拟桌宠模拟器的开发! 为保证代码可维护度和游戏性,如果想要开发新的功能,请先[邮件联系](mailto:zoujin.dev@exlb.org)我想要添加的功能/玩法, 以确保该功能/玩法适用于虚拟桌宠模拟器. 以免未来提交时因不合适被拒(而造成代码浪费)
+如果是修复错误或者BUG,无需联系我,修好后直接PR即可
+
+当想法通过后,您可以通过 [fork](https://github.com/LorisYounger/VPet/fork) 功能拷贝代码至自己的github以方便编写自己的代码, 编写完毕后通过[pull requests](https://github.com/LorisYounger/VPet/compare) 提交
+如果您想法没有被通过,也可以另起炉灶,写个不同版本功能的桌宠软件. 但需遵守 [Apache License 2.0](https://github.com/LorisYounger/VPet/blob/main/LICENSE) 与 [动画版权声明与授权](https://github.com/LorisYounger/VPet#%E5%8A%A8%E7%94%BB%E7%89%88%E6%9D%83%E5%A3%B0%E6%98%8E%E4%B8%8E%E6%8E%88%E6%9D%83)
+
+我可能会对您的提交的代码进行修改,删减等以确保该功能/玩法适用于虚拟桌宠模拟器.
+
+感谢以下参与的开发人员(按贡献程度排序)
+
+* 占位符
+
+## 动画版权声明与授权
+
+在github中 [VPet/VPet-Simulator.Windows/mod/0000_core/pet/vup/](https://github.com/LorisYounger/VPet/tree/main/VPet-Simulator.Windows/mod/0000_core/pet/vup) 动画版权归 [虚拟主播模拟器制作组](https://www.exlb.net/VUP-Simulator)所有, 当使用本类库时,您可能需要自行准备动画文件,或遵循以下协议
+
+### 非商用用途授权
+
+* 需要向用户告知动画文件来源并提供访问 [该页面](https://github.com/LorisYounger/VPet) 的链接
+* 当您完成以上要求后,您可以免费使用动画文件
+
+### 商用用途授权(低于10万)
+
+* 第一次使用时需弹窗并醒目的向用户告知动画文件来源并提供访问 [该页面](https://github.com/LorisYounger/VPet) 的链接
+* 在相应页面(用户可以快捷访问)向用户告知动画文件来源并提供访问 [该页面](https://github.com/LorisYounger/VPet) 的链接
+* 当您完成以上要求后,您可以免费使用动画文件
+
+### 商用用途授权(高于10万或其他)
+
+* 请[邮件联系](mailto:zoujin.dev@exlb.org)我
+
+### 分发动画文件
+
+* 需要告知以上所有授权信息
+* 需要提供访问 [该页面](https://github.com/LorisYounger/VPet) 的链接
+* 分发动画文件时禁止任何付费/收费行为
\ No newline at end of file
diff --git a/VPet-Simulator.Core/Handle/Setting.cs b/VPet-Simulator.Core/Handle/Setting.cs
index d719bc4..15407a5 100644
--- a/VPet-Simulator.Core/Handle/Setting.cs
+++ b/VPet-Simulator.Core/Handle/Setting.cs
@@ -12,6 +12,13 @@ namespace VPet_Simulator.Core
///
public class Setting : LpsDocument
{
+ public Setting(string lps) : base(lps)
+ {
+ }
+ public Setting() : base()
+ {
+ }
+
///
/// 窗体宽度
///
diff --git a/VPet-Simulator.Core/VPet-Simulator.Core.csproj b/VPet-Simulator.Core/VPet-Simulator.Core.csproj
index 6060b48..a6fa848 100644
--- a/VPet-Simulator.Core/VPet-Simulator.Core.csproj
+++ b/VPet-Simulator.Core/VPet-Simulator.Core.csproj
@@ -31,6 +31,42 @@
prompt
4
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ 7.3
+ prompt
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ 7.3
+ prompt
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ 7.3
+ prompt
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ 7.3
+ prompt
+
..\packages\LinePutScript.1.5.4\lib\net462\LinePutScript.dll
diff --git a/VPet-Simulator.Tool/VPet-Simulator.Tool.csproj b/VPet-Simulator.Tool/VPet-Simulator.Tool.csproj
index ef926de..f59ed15 100644
--- a/VPet-Simulator.Tool/VPet-Simulator.Tool.csproj
+++ b/VPet-Simulator.Tool/VPet-Simulator.Tool.csproj
@@ -32,6 +32,46 @@
prompt
4
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ 7.3
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ 7.3
+ prompt
+ true
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ 7.3
+ prompt
+ true
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ 7.3
+ prompt
+ true
+
diff --git a/VPet-Simulator.Windows/MainWindow.xaml.cs b/VPet-Simulator.Windows/MainWindow.xaml.cs
index e0968c4..39b6c0c 100644
--- a/VPet-Simulator.Windows/MainWindow.xaml.cs
+++ b/VPet-Simulator.Windows/MainWindow.xaml.cs
@@ -1,4 +1,5 @@
-using System;
+using Steamworks;
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -25,8 +26,34 @@ namespace VPet_Simulator.Windows
public partial class MainWindow : Window
{
public readonly string ModPath = Environment.CurrentDirectory + @"\mod";
+ public readonly bool IsSteamUser;
+ public Setting Set;
public MainWindow()
{
+ //判断是不是Steam用户,因为本软件会发布到Steam
+ //在 https://store.steampowered.com/app/1920960/VPet
+ try
+ {
+ SteamClient.Init(1920960, true);
+ SteamClient.RunCallbacks();
+ IsSteamUser = SteamClient.IsValid;
+ ////同时看看有没有买dlc,如果有就添加dlc按钮
+ //if (Steamworks.SteamApps.IsDlcInstalled(1386450))
+ // dlcToolStripMenuItem.Visible = true;
+ }
+ catch
+ {
+ IsSteamUser = false;
+ }
+
+ //加载游戏设置
+ if (new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"\Setting.lps").Exists)
+ {
+ Set = new Setting(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + @"\Setting.lps"));
+ }
+ else
+ Set = new Setting();
+
InitializeComponent();
//不存在就关掉
@@ -39,7 +66,7 @@ namespace VPet_Simulator.Windows
}
var core = new GameCore();
- core.Setting = new Setting();
+ core.Setting = Set;
core.Controller = new MWController(this);
core.Graph = new GraphCore();
core.Save = new Save();
diff --git a/VPet-Simulator.Windows/VPet-Simulator.Windows.csproj b/VPet-Simulator.Windows/VPet-Simulator.Windows.csproj
index 4e4726a..8c72dad 100644
--- a/VPet-Simulator.Windows/VPet-Simulator.Windows.csproj
+++ b/VPet-Simulator.Windows/VPet-Simulator.Windows.csproj
@@ -34,6 +34,46 @@
prompt
4
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ 7.3
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ 7.3
+ prompt
+ true
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ 7.3
+ prompt
+ true
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ 7.3
+ prompt
+ true
+
..\packages\Panuon.WPF.1.0.1\lib\net48\Panuon.WPF.dll
@@ -75,6 +115,16 @@
Code
+
+
+ ..\packages\Facepunch.Steamworks.win32.2.3.3\lib\net46\Facepunch.Steamworks.Win32.dll
+
+
+
+
+ ..\packages\Facepunch.Steamworks.2.3.3\lib\net46\Facepunch.Steamworks.Win64.dll
+
+
Code
@@ -108,5 +158,13 @@
VPet-Simulator.Core
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
\ No newline at end of file
diff --git a/VPet-Simulator.Windows/packages.config b/VPet-Simulator.Windows/packages.config
index 6b1ff24..bbc255c 100644
--- a/VPet-Simulator.Windows/packages.config
+++ b/VPet-Simulator.Windows/packages.config
@@ -1,5 +1,7 @@
+
+
\ No newline at end of file
diff --git a/VPet-Simulator.Windows/steam_api.dll b/VPet-Simulator.Windows/steam_api.dll
new file mode 100644
index 0000000..6e0f440
Binary files /dev/null and b/VPet-Simulator.Windows/steam_api.dll differ
diff --git a/VPet-Simulator.Windows/steam_api64.dll b/VPet-Simulator.Windows/steam_api64.dll
new file mode 100644
index 0000000..ad13f2b
Binary files /dev/null and b/VPet-Simulator.Windows/steam_api64.dll differ
diff --git a/VPet.sln b/VPet.sln
index b9b2a51..34cae4a 100644
--- a/VPet.sln
+++ b/VPet.sln
@@ -11,22 +11,36 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VPet-Simulator.Windows", "V
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Release|Any CPU.Build.0 = Release|Any CPU
- {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Release|Any CPU.Build.0 = Release|Any CPU
- {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Debug|x64.ActiveCfg = Debug|x64
+ {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Debug|x64.Build.0 = Debug|x64
+ {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Debug|x86.ActiveCfg = Debug|x86
+ {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Debug|x86.Build.0 = Debug|x86
+ {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Release|x64.ActiveCfg = Release|x64
+ {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Release|x64.Build.0 = Release|x64
+ {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Release|x86.ActiveCfg = Release|x86
+ {7BD4CB1D-C8F3-4349-9BF0-CD11789130BA}.Release|x86.Build.0 = Release|x86
+ {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Debug|x64.ActiveCfg = Debug|x64
+ {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Debug|x64.Build.0 = Debug|x64
+ {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Debug|x86.ActiveCfg = Debug|x86
+ {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Debug|x86.Build.0 = Debug|x86
+ {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Release|x64.ActiveCfg = Release|x64
+ {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Release|x64.Build.0 = Release|x64
+ {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Release|x86.ActiveCfg = Release|x86
+ {692CE45E-01A9-4500-8B1D-AFC0FE2767FA}.Release|x86.Build.0 = Release|x86
+ {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Debug|x64.ActiveCfg = Debug|x64
+ {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Debug|x64.Build.0 = Debug|x64
+ {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Debug|x86.ActiveCfg = Debug|x86
+ {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Debug|x86.Build.0 = Debug|x86
+ {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Release|x64.ActiveCfg = Release|x64
+ {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Release|x64.Build.0 = Release|x64
+ {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Release|x86.ActiveCfg = Release|x86
+ {B5C2DD17-735F-4F9F-82E4-B8692AEC03F1}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE