[简体中文](./CONTRIBUTING.md) | 繁體中文 | [English](./CONTRIBUTING_en.md)
## 參與開發
歡迎參與虛擬桌寵模擬器的開發!為了保證程式碼的可維護性及遊戲性,若想要開發新的功能,請先[電子郵件聯絡](mailto:zoujin.dev@exlb.org)或提交[Issue](https://github.com/LorisYounger/VPet/issues),標題為想要新增的功能/玩法,以確保該功能/玩法適用於虛擬桌寵模擬器,以免在您完成開發後,因不適合而被拒絕(而浪費您的時間)。
如果是修正錯誤或BUG,則不需要先行聯絡,修好後直接提交即可。
當您提供的想法被贊同後,您可以使用[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/blob/main/README_zht.md#%E5%8B%95%E7%95%AB%E7%89%88%E6%AC%8A%E8%81%B2%E6%98%8E%E8%88%87%E6%8E%88%E6%AC%8A)。
註:一般而言,加入新功能都可以透過撰寫模組來達成,詳情請見:[VPet.Plugin.Demo](https://github.com/LorisYounger/VPet.Plugin.Demo)
作者可能會修改、刪減部分您所提交的程式碼,以確保該功能/玩法適用於虛擬桌寵模擬器。
## 動畫版權聲明與授權
在Github中,[桌寵動畫檔案](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)的連結
* 轉發動畫檔案時,禁止任何付費或收費行為
## 桌面應用程式部署方式
1. 下載本專案,透過VisualStudio開啟`VPet.sln`檔案
2. 在「建置」選項中,選擇位元數`x64`及建置專案`Vpet-Simulator.Windows`
![image-20230208004330895](README.assets/image-20230208004330895.png)
3. 點擊「開始」,若一切順利將會報錯`缺少Core模組,無法啟動桌寵`
4. 以管理員身分執行`mklink.bat`,這會讓模組檔案連結至產生的位置
5. 再次點擊啟動即可正常執行
## 軟體架構
* **VPet-Simulator.Windows: 適用於桌面端的虛擬桌寵模擬器**
* *Function 功能性程式碼儲存位置*
* CoreMOD 模組管理
* MWController 視窗控制器
* *WinDesign 視窗及UI設計
* winBetterBuy 更好買視窗
* winCGPTSetting ChatGPT設定
* winSetting 軟體設定、模組視窗
* winConsole 開發控制台
* winGameSetting 遊戲設定
* winReport 意見回饋中心
* MainWindows 主視窗、儲存及展示Core
* PetHelper 快速切換圖示
* **VPet-Simulator.Tool: 方便製作模組的工具(例如:產生動態圖片)**
* **VPet-Simulator.Core: 軟體核心,方便內建至任何的WPF應用程式(例如:VUP-Simulator)**
* Handle 介面及控制項
* IController 視窗控制(呼叫相關功能及設定,例如:移動到側邊等)
* Function 通用功能
* GameCore 遊戲核心,包含各種資料數據等內容
* GameSave 遊戲存檔
* IFood 食物及物品介面
* PetLoader 寵物圖片載入器
* Graph 圖形渲染
* IGraph 動畫基本介面
* GraphCore 動畫顯示核心
* GraphHelper 動畫幫助
* GraphInfo 動畫資訊
* FoodAnimation 食物動畫,支援顯示前中後三層夾心動畫,不一定只用於食物,只是叫這個名字
* PNGAnimation 桌寵動態動畫元件
* Picture 桌寵靜態動畫元件
* Display 顯示
* basestyle/Theme 基礎風格主題
* Main.xaml 核心顯示元件
* MainDisplay 核心顯示方法
* MainLogic 核心顯示邏輯
* ToolBar 點擊人物時的工具欄
* MessageBar 人物說話時的對話框
* WorkTimer 運作計時器