From c8fa3d56f11e6e58e367bf3b652ffeb50eeeeb91 Mon Sep 17 00:00:00 2001 From: stop-pattern <40131396+stop-pattern@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:11:38 +0900 Subject: [PATCH 1/9] update readme --- README_TEMPLATE.md | 175 ++++----------------------------------------- 1 file changed, 13 insertions(+), 162 deletions(-) diff --git a/README_TEMPLATE.md b/README_TEMPLATE.md index 0fbaaee..0cd80e4 100644 --- a/README_TEMPLATE.md +++ b/README_TEMPLATE.md @@ -1,176 +1,30 @@ -# READMEのテンプレート -## 使い方 -1. 既にある`README.md`を消す -2. このテンプレートを`README.md`にリネームする -3. 水平線より上(この使い方の部分)を消す -4. `$REPONAME$`をリポジトリの名前に置換する -5. Todoのところを書く -6. 保存してコミット&プッシュ ---- -# $REPONAME$ -[AtsEX](https://github.com/automatic9045/AtsEX)を使ったBve5またはBve6用のプラグイン -**Todo: プラグインの概要を書く** +# CommEx +[AtsEX](https://github.com/automatic9045/AtsEX)AtsEXを通してBveと外部で通信するプラグイン ## プラグインの機能 -- **Todo: 機能を列挙** +- 未定 ## 導入方法 -**Todo: 導入方法を必要に応じて変更** ### 1. AtsEXの導入 [公式のダウンロードページ](https://automatic9045.github.io/AtsEX/download/)を参照してください ### 2. 本プラグインの導入 1. [Releases](releases/)から最新版がダウンロードできます -2. **Todo: 配置場所をプラグインの種類に応じて下から選択して変更** -```md -# 拡張機能の場合 -2. AtsExの導入場所にある`Extensions`フォルダの中に本プラグインを配置します +1. AtsExの導入場所にある`Extensions`フォルダの中に本プラグインを配置します - デフォルト: `C:\Users\Public\Documents\AtsEx\1.0\Extensions` - プラグインはBveの起動と同時に読み込まれ、必要に応じて他のプラグインから利用されます - -# マッププラグインの場合 -2. シナリオフォルダの中に本プラグインを配置します - ディレクトリ構成例: - ```text - Scenarios - ├ MyScenario.txt - └ MyMaps - └ SampleMap - ├ MapPlugins - │ ├ 本プラグイン($REPONAME$.dll) - │ ├ OtherPlugin.dll - │ └ ... - ├ MapPluginUsing.xml - ├ Image.jpg - ├ Map.txt - ├ Signals.csv - ├ Sounds.csv - ├ Sounds3D.csv - ├ Stations.csv - └ Structures.csv - ``` -3. `MapPluginUsing.xml`を作成し本プラグインの情報を記入します - MapPluginUsing.xml(例): - ```xml - - - - - - ``` -4. マップファイルから参照します - Map.txt(例): - ```text - BveTs Map 2.02:utf-8 - - // AtsEX - include ''; // AtsEXのプラグインを使うという宣言 - include '1'; // AtsEXのプラグインを探すディレクトリの深さ - include 'MapPluginUsing.xml'; // 使うプラグインの情報を伝えるファイルの位置 - - Structure.Load('Structures.txt'); - Signal.Load('Signals.csv'); - Sound.Load('Sounds_e.txt'); - Sound3D.Load('Sounds3D.txt'); - Station.Load('Stations.csv'); - - 0; - ... - ``` - -# 車両プラグインの場合 -2. 車両アドオンの中に本プラグインを配置します - ディレクトリ構成例: - ```text - Scenarios - └ MyVehicles -   └ SampleVehicle -     ├ Vehicle.txt -     ├ Ats -     │ ├ AtsEx.Caller.txt -     │ ├ AtsEx.Caller.x64.dll -     │ ├ AtsEx.Caller.x86.dll -     │ ├ AtsEXPlugins -     │ │ ├ 本プラグイン($REPONAME$.dll) -     │ │ └ OtherPlugin.dll -     │ ├ DetailManager.x64.dll -     │ ├ DetailManager.x86.dll -     │ ├ detailmodules.txt -     │ ├ OtherNormalPlugin.dll -     │ └ ... -     ├ Notch -     │ ├ Notch.txt -     │ └ ... -     ├ Panel -     │ ├ Panel.txt -     │ └ ... -     ├ Sound -     │ ├ Sound.txt -     │ ├ Motor.txt -     │ └ ... -     ├ Parameters.txt -     └ ... - ``` -3. 設定ファイルを作成し本プラグインの情報を記入します - - AtsEx.Caller.txt - ```text - ..\..\..\AtsEx - ``` - - AtsEx.Caller.x86.VehiclePluginUsing.xml: x64と同じ - - AtsEx.Caller.x64.VehiclePluginUsing.xml(例): - ```xml - - - - - - ``` - - AtsEx.Caller.x86.VehicleConfig.xml: x64と同じ - - AtsEx.Caller.x64.VehicleConfig.xml(例): - ```xml - - - true - true - - ``` -4. ビークルファイルから参照します - Vehicle.txt(例): - ```text - BveTs Vehicle 2.00 - PerformanceCurve = Notch\Notch.txt - Parameters = Parameters.txt - Panel = Panel\Panel.txt - Sound = Sound\Sound.txt - MotorNoise = Sound\Motor.txt - Ats32 = Ats\AtsEx.Caller.x86.dll - Ats64 = Ats\AtsEx.Caller.x64.dll - ``` - - 非AtsEXなプラグインと両立する場合は次の通りです - 1. Ats32とAts64でDetailManagerを指定する - 2. detailmodules.txtでAtsEx.Callerを指定する -``` -> [!WARNING] -> この項目の内容はすべてが正しい保証がありません -> 正確な情報を得るには以下を参照してください -> - AtsEXの[公式リポジトリ](https://github.com/automatic9045/AtsEX/) -> - AtsEXの[公式サイト](https://automatic9045.github.io/AtsEX/) +1. Bveから拡張機能が有効になっているか確認 + 1. Bveを起動し右クリック + 1. **AtsEX バージョン情報・プラグイン一覧** を開く + 1. **CommEx** が有効になっていることを確認(デフォルトで有効) ## 使い方 -- **Todo: 必要に応じて書く** -### パネル -**Todo: 必要に応じて書く** -| index | 型 | 機能 | 備考 | -| ------ | ---- | ---------- | ----------------- | -| ats001 | uint | 速度絶対値 | 1km刻みで切り捨て | +未定 ## ライセンス -- **Todo: `LICENSE`の著作権表示を書き換える** -- **Todo: ライセンスを変更する場合には`LICENSE`を書き換えた後にここも変更する** - [MIT](LICENSE) - できること - 商用利用 @@ -183,7 +37,6 @@ ## 動作環境 -**Todo: 動作環境を必要に応じて変更** - Windows - Win10 22H2 - Win11 23H2 or later @@ -191,13 +44,12 @@ - BVE Trainsim Version 5.8.7554.391 or later - BVE Trainsim Version 6.0.7554.619 or later - [AtsEX](https://github.com/automatic9045/AtsEX) - - [ver1.0-RC5 - v1.0.40101.1](https://github.com/automatic9045/AtsEX/releases/tag/v1.0.40101.1) or later + - [ver1.0-RC9 - v1.0.40627.1](https://github.com/automatic9045/AtsEX/releases/tag/v1.0.40627.1) or later ## 開発環境 -**Todo: 開発環境を必要に応じて変更** - [AtsEX](https://github.com/automatic9045/AtsEX) - - [ver1.0-RC5 - v1.0.40101.1](https://github.com/automatic9045/AtsEX/releases/tag/v1.0.40101.1) + - [ver1.0-RC9 - v1.0.40627.1](https://github.com/automatic9045/AtsEX/releases/tag/v1.0.40627.1) - Win10 22H2 - Visual Studio 2022 - Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.5.3 @@ -207,9 +59,8 @@ ## 依存環境 -**Todo: 依存環境を必要に応じて変更** -- AtsEx.CoreExtensions (1.0.0-rc1) -- AtsEx.PluginHost (1.0.0-rc5) +- AtsEx.CoreExtensions (1.0.0-rc9) +- AtsEx.PluginHost (1.0.0-rc9) (開発者向け) 間接参照を含めたすべての依存情報については、各プロジェクトのフォルダにある `packages.lock.json` をご確認ください。 From 6fd205c2d46eef5f2ba780575bbaa317eca80e07 Mon Sep 17 00:00:00 2001 From: stop-pattern <40131396+stop-pattern@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:41:30 +0900 Subject: [PATCH 2/9] update readme --- README.md | 85 +++++++++++++++++++++++++++++++--------------- README_TEMPLATE.md | 66 ----------------------------------- 2 files changed, 58 insertions(+), 93 deletions(-) delete mode 100644 README_TEMPLATE.md diff --git a/README.md b/README.md index e366547..cb6c9c8 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,28 @@ -# AtsExCsTemplate -[AtsEX](https://github.com/automatic9045/AtsEX)を使ったBve5またはBve6用のプラグインのためのテンプレート - - -## プラグイン開発が初めての人へ -~全然クイックじゃない~[クイックスタート](../../wiki/クイックスタート/)から取り掛かるのがおすすめです - - -## ライセンス -[MIT](LICENSE) +# CommEx +[AtsEX](https://github.com/automatic9045/AtsEX)AtsEXを通してBveと外部で通信するプラグイン + + +## プラグインの機能 +- [ ] シリアル通信 + - [ ] バイナリ + - [ ] BIDS互換 + - [ ] SerialOutput互換 +- [ ] ネットワーク + - [ ] UDP + + +## 導入方法 +### 1. AtsEXの導入 +[公式のダウンロードページ](https://automatic9045.github.io/AtsEX/download/)を参照してください +### 2. 本プラグインの導入 +1. [Releases](releases/)から最新版がダウンロードできます +1. AtsExの導入場所にある`Extensions`フォルダの中に本プラグインを配置します + - デフォルト: `C:\Users\Public\Documents\AtsEx\1.0\Extensions` + - プラグインはBveの起動と同時に読み込まれ、必要に応じて他のプラグインから利用されます +1. Bveから拡張機能が有効になっているか確認 + 1. Bveを起動し右クリック + 1. **AtsEX バージョン情報・プラグイン一覧** を開く + 1. **CommEx** が有効になっていることを確認(デフォルトで有効) ## このテンプレートの機能 - 取っ掛かりやすいように3種類のプラグインのファイル @@ -78,25 +93,43 @@ git clone https://github.com/USERNAME/REPONAME.git BveからAtsExのバージョン情報を見たときに表示される内容を設定できます AtsExのバージョン情報画面から見えるのはファイル名と下の3項目です -- AssemblyTitle - - プラグインの名前 -- AssemblyDescription - - プラグインの説明 -- AssemblyVersion - - プラグインのバージョン +## ライセンス +- [MIT](LICENSE) + - できること + - 商用利用 + - 修正 + - 配布 + - 私的使用 + - ダメなこと + - 著作者は一切責任を負わない + - 本プラグインは無保証で提供される ### 1. コードを書く 頑張ってゴリゴリ書きましょう -### 2. ドキュメントを書く -1. githubリポジトリの詳細を設定する -1. LICENSEの著作権表記を変更する -1. README.md を消した後 README_TEMPLATE.md を README.md にリネームしてtodoを埋める +## 動作環境 +- Windows + - Win10 22H2 + - Win11 23H2 or later +- [Bve](https://bvets.net/) + - BVE Trainsim Version 5.8.7554.391 or later + - BVE Trainsim Version 6.0.7554.619 or later +- [AtsEX](https://github.com/automatic9045/AtsEX) + - [ver1.0-RC9 - v1.0.40627.1](https://github.com/automatic9045/AtsEX/releases/tag/v1.0.40627.1) or later ### 3. 公開する 公開ができる状態になったらmainにpushしてtag打ってreleaseを作りましょう +## 開発環境 +- [AtsEX](https://github.com/automatic9045/AtsEX) + - [ver1.0-RC9 - v1.0.40627.1](https://github.com/automatic9045/AtsEX/releases/tag/v1.0.40627.1) +- Win10 22H2 + - Visual Studio 2022 + - Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.5.3 +- [Bve](https://bvets.net/) + - BVE Trainsim Version 5.8.7554.391 + - BVE Trainsim Version 6.0.7554.619 ## デバッグについて ※この項目に書いてあることは環境によって差異があるかもしれないので適宜自分の環境に合わせて読み替えること @@ -129,11 +162,9 @@ AtsExのバージョン情報画面から見えるのはファイル名と下の - メニューバーのデバッグとテストの下あたりの開始ボタン(緑の三角形) 1. 張ったブレークで止まるか見てみる +## 依存環境 +- AtsEx.CoreExtensions (1.0.0-rc9) +- AtsEx.PluginHost (1.0.0-rc9) -## 備考・その他 -- C#は初めてなのでお作法がわかりません - - ミスとか良くないところがあったらissue立てるなりしてくれればできる範囲で対応します - - PR大歓迎!!! -- 自分用に作ったので適当です、自分が欲しい機能をとりあえず入れてます -- AtsExとAtsEXがどっちもあったのでここでは引用を除いてコードに準じてAtsExとしています - - AtsEXが正式な表記っぽい? +(開発者向け) +間接参照を含めたすべての依存情報については、各プロジェクトのフォルダにある `packages.lock.json` をご確認ください。 diff --git a/README_TEMPLATE.md b/README_TEMPLATE.md deleted file mode 100644 index 0cd80e4..0000000 --- a/README_TEMPLATE.md +++ /dev/null @@ -1,66 +0,0 @@ -# CommEx -[AtsEX](https://github.com/automatic9045/AtsEX)AtsEXを通してBveと外部で通信するプラグイン - - -## プラグインの機能 -- 未定 - - -## 導入方法 -### 1. AtsEXの導入 -[公式のダウンロードページ](https://automatic9045.github.io/AtsEX/download/)を参照してください -### 2. 本プラグインの導入 -1. [Releases](releases/)から最新版がダウンロードできます -1. AtsExの導入場所にある`Extensions`フォルダの中に本プラグインを配置します - - デフォルト: `C:\Users\Public\Documents\AtsEx\1.0\Extensions` - - プラグインはBveの起動と同時に読み込まれ、必要に応じて他のプラグインから利用されます -1. Bveから拡張機能が有効になっているか確認 - 1. Bveを起動し右クリック - 1. **AtsEX バージョン情報・プラグイン一覧** を開く - 1. **CommEx** が有効になっていることを確認(デフォルトで有効) - - -## 使い方 -未定 - - -## ライセンス -- [MIT](LICENSE) - - できること - - 商用利用 - - 修正 - - 配布 - - 私的使用 - - ダメなこと - - 著作者は一切責任を負わない - - 本プラグインは無保証で提供される - - -## 動作環境 -- Windows - - Win10 22H2 - - Win11 23H2 or later -- [Bve](https://bvets.net/) - - BVE Trainsim Version 5.8.7554.391 or later - - BVE Trainsim Version 6.0.7554.619 or later -- [AtsEX](https://github.com/automatic9045/AtsEX) - - [ver1.0-RC9 - v1.0.40627.1](https://github.com/automatic9045/AtsEX/releases/tag/v1.0.40627.1) or later - - -## 開発環境 -- [AtsEX](https://github.com/automatic9045/AtsEX) - - [ver1.0-RC9 - v1.0.40627.1](https://github.com/automatic9045/AtsEX/releases/tag/v1.0.40627.1) -- Win10 22H2 - - Visual Studio 2022 - - Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.5.3 -- [Bve](https://bvets.net/) - - BVE Trainsim Version 5.8.7554.391 - - BVE Trainsim Version 6.0.7554.619 - - -## 依存環境 -- AtsEx.CoreExtensions (1.0.0-rc9) -- AtsEx.PluginHost (1.0.0-rc9) - -(開発者向け) -間接参照を含めたすべての依存情報については、各プロジェクトのフォルダにある `packages.lock.json` をご確認ください。 From 8890dc76b7444a55dfbead58474002c9232d475e Mon Sep 17 00:00:00 2001 From: stop-pattern <40131396+stop-pattern@users.noreply.github.com> Date: Mon, 1 Jul 2024 22:44:44 +0900 Subject: [PATCH 3/9] Organize projects --- AtsExCsTemplate.sln | 37 -------------- CommEx.sln | 25 ++++++++++ .../MapPlugin.csproj => CommEx/CommEx.csproj | 2 +- {Extension => CommEx}/Extension.cs | 2 +- .../Properties/AssemblyInfo.cs | 12 ++--- {Extension => CommEx}/packages.lock.json | 0 Extension/Extension.csproj | 21 -------- MapPlugin/MapPlugin.cs | 45 ----------------- MapPlugin/Properties/AssemblyInfo.cs | 25 ---------- MapPlugin/packages.lock.json | 50 ------------------- VehiclePlugin/Properties/AssemblyInfo.cs | 25 ---------- VehiclePlugin/VehiclePlugin.cs | 45 ----------------- VehiclePlugin/VehiclePlugin.csproj | 21 -------- VehiclePlugin/packages.lock.json | 50 ------------------- 14 files changed, 33 insertions(+), 327 deletions(-) delete mode 100644 AtsExCsTemplate.sln create mode 100644 CommEx.sln rename MapPlugin/MapPlugin.csproj => CommEx/CommEx.csproj (91%) rename {Extension => CommEx}/Extension.cs (97%) rename {Extension => CommEx}/Properties/AssemblyInfo.cs (72%) rename {Extension => CommEx}/packages.lock.json (100%) delete mode 100644 Extension/Extension.csproj delete mode 100644 MapPlugin/MapPlugin.cs delete mode 100644 MapPlugin/Properties/AssemblyInfo.cs delete mode 100644 MapPlugin/packages.lock.json delete mode 100644 VehiclePlugin/Properties/AssemblyInfo.cs delete mode 100644 VehiclePlugin/VehiclePlugin.cs delete mode 100644 VehiclePlugin/VehiclePlugin.csproj delete mode 100644 VehiclePlugin/packages.lock.json diff --git a/AtsExCsTemplate.sln b/AtsExCsTemplate.sln deleted file mode 100644 index 1e4e2ee..0000000 --- a/AtsExCsTemplate.sln +++ /dev/null @@ -1,37 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.5.33516.290 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VehiclePlugin", "VehiclePlugin\VehiclePlugin.csproj", "{B4C723A7-FD6A-4931-B3BF-A6635F44899B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MapPlugin", "MapPlugin\MapPlugin.csproj", "{C7F17EA7-55CF-449F-9255-C3B1721A4DC9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Extension", "Extension\Extension.csproj", "{80D2BAF1-62D2-4538-8249-5F1C6D2B3DCE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B4C723A7-FD6A-4931-B3BF-A6635F44899B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B4C723A7-FD6A-4931-B3BF-A6635F44899B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B4C723A7-FD6A-4931-B3BF-A6635F44899B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B4C723A7-FD6A-4931-B3BF-A6635F44899B}.Release|Any CPU.Build.0 = Release|Any CPU - {C7F17EA7-55CF-449F-9255-C3B1721A4DC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C7F17EA7-55CF-449F-9255-C3B1721A4DC9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C7F17EA7-55CF-449F-9255-C3B1721A4DC9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C7F17EA7-55CF-449F-9255-C3B1721A4DC9}.Release|Any CPU.Build.0 = Release|Any CPU - {80D2BAF1-62D2-4538-8249-5F1C6D2B3DCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80D2BAF1-62D2-4538-8249-5F1C6D2B3DCE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80D2BAF1-62D2-4538-8249-5F1C6D2B3DCE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80D2BAF1-62D2-4538-8249-5F1C6D2B3DCE}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7A01144D-3066-4B8F-9C06-A9212986B216} - EndGlobalSection -EndGlobal diff --git a/CommEx.sln b/CommEx.sln new file mode 100644 index 0000000..e8cdccd --- /dev/null +++ b/CommEx.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33516.290 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CommEx", "CommEx\CommEx.csproj", "{EE56A6F8-0E94-4E02-9EC9-E4E8CADAC3B0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EE56A6F8-0E94-4E02-9EC9-E4E8CADAC3B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE56A6F8-0E94-4E02-9EC9-E4E8CADAC3B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE56A6F8-0E94-4E02-9EC9-E4E8CADAC3B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE56A6F8-0E94-4E02-9EC9-E4E8CADAC3B0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7A01144D-3066-4B8F-9C06-A9212986B216} + EndGlobalSection +EndGlobal diff --git a/MapPlugin/MapPlugin.csproj b/CommEx/CommEx.csproj similarity index 91% rename from MapPlugin/MapPlugin.csproj rename to CommEx/CommEx.csproj index 6ff6c55..46fc9af 100644 --- a/MapPlugin/MapPlugin.csproj +++ b/CommEx/CommEx.csproj @@ -3,7 +3,7 @@ net48 - AtsExCsTemplate.MapPlugin + CommEx false false true diff --git a/Extension/Extension.cs b/CommEx/Extension.cs similarity index 97% rename from Extension/Extension.cs rename to CommEx/Extension.cs index f608d13..ae4c1c3 100644 --- a/Extension/Extension.cs +++ b/CommEx/Extension.cs @@ -7,7 +7,7 @@ using AtsEx.PluginHost.Plugins; using AtsEx.PluginHost.Plugins.Extensions; -namespace AtsExCsTemplate.Extension +namespace CommEx { /// /// プラグインの本体 diff --git a/Extension/Properties/AssemblyInfo.cs b/CommEx/Properties/AssemblyInfo.cs similarity index 72% rename from Extension/Properties/AssemblyInfo.cs rename to CommEx/Properties/AssemblyInfo.cs index 617da01..a1373c7 100644 --- a/Extension/Properties/AssemblyInfo.cs +++ b/CommEx/Properties/AssemblyInfo.cs @@ -3,12 +3,12 @@ // アセンブリに関する一般情報は以下を通して制御されます // 制御されます。アセンブリに関連付けられている情報を変更するには、 // これらの属性値を変更してください。 -[assembly: AssemblyTitle("Extension")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyTitle("CommEx")] +[assembly: AssemblyDescription("AtsEXを通してBveと外部で通信する")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Extension")] -[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyCompany("stop-pattern")] +[assembly: AssemblyProduct("CommEx")] +[assembly: AssemblyCopyright("Copyright © 2024 stop-pattern")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -23,4 +23,4 @@ // すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます // 既定値にすることができます: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.11.*")] +[assembly: AssemblyVersion("0.01.*")] diff --git a/Extension/packages.lock.json b/CommEx/packages.lock.json similarity index 100% rename from Extension/packages.lock.json rename to CommEx/packages.lock.json diff --git a/Extension/Extension.csproj b/Extension/Extension.csproj deleted file mode 100644 index 6182bb6..0000000 --- a/Extension/Extension.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - net48 - AtsExCsTemplate.Extension - false - false - true - - - - - all - - - all - - - - \ No newline at end of file diff --git a/MapPlugin/MapPlugin.cs b/MapPlugin/MapPlugin.cs deleted file mode 100644 index 44dcba3..0000000 --- a/MapPlugin/MapPlugin.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -using AtsEx.PluginHost.Plugins; - -namespace AtsExCsTemplate.MapPlugin -{ - /// - /// プラグインの本体 - /// Plugin() の第一引数でこのプラグインの仕様を指定 - /// Plugin() の第二引数でこのプラグインが必要とするAtsEX本体の最低バージョンを指定(オプション) - /// - [Plugin(PluginType.MapPlugin)] - internal class MapPluginMain : AssemblyPluginBase - { - /// - /// プラグインが読み込まれた時に呼ばれる - /// 初期化を実装する - /// - /// - public MapPluginMain(PluginBuilder builder) : base(builder) - { - } - - /// - /// プラグインが解放されたときに呼ばれる - /// 後処理を実装する - /// - public override void Dispose() - { - } - - /// - /// シナリオ読み込み中に毎フレーム呼び出される - /// - /// 前回フレームからの経過時間 - public override TickResult Tick(TimeSpan elapsed) - { - return new MapPluginTickResult(); - } - } -} diff --git a/MapPlugin/Properties/AssemblyInfo.cs b/MapPlugin/Properties/AssemblyInfo.cs deleted file mode 100644 index e5e6628..0000000 --- a/MapPlugin/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.Reflection; - -// アセンブリに関する一般情報は以下を通して制御されます -// 制御されます。アセンブリに関連付けられている情報を変更するには、 -// これらの属性値を変更してください。 -[assembly: AssemblyTitle("MapPlugin")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MapPlugin")] -[assembly: AssemblyCopyright("Copyright © 2023")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// アセンブリのバージョン情報は、以下の 4 つの値で構成されています: -// -// メジャー バージョン -// マイナー バージョン -// ビルド番号 -// リビジョン -// -// すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます -// 既定値にすることができます: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.*")] diff --git a/MapPlugin/packages.lock.json b/MapPlugin/packages.lock.json deleted file mode 100644 index 94714a0..0000000 --- a/MapPlugin/packages.lock.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "version": 1, - "dependencies": { - ".NETFramework,Version=v4.8": { - "AtsEx.CoreExtensions": { - "type": "Direct", - "requested": "[1.0.0-rc7, )", - "resolved": "1.0.0-rc7", - "contentHash": "wpQIS8smxANiPt4gBD0LpWa3408wfLVY1gRvJvWeV4OFuIJHXMaTwEZgtpa+UsTmKxfX4S4KbdCCg1xBCDmaWg==", - "dependencies": { - "AtsEx.PluginHost": "1.0.0-rc1", - "ObjectiveHarmonyPatch": "1.1.0" - } - }, - "AtsEx.PluginHost": { - "type": "Direct", - "requested": "[1.0.0-rc8, )", - "resolved": "1.0.0-rc8", - "contentHash": "W/1suCpKZ0y7E6dl2Y1iY10kJ5D9KD1m3XUWiz3Z1H5NHFcJU32Hz2ON+So9iDUCSIVG0C06RfbsHCpY9x4dvw==", - "dependencies": { - "SlimDX": "4.0.13.44", - "UnembeddedResources": "1.0.0" - } - }, - "Lib.Harmony": { - "type": "Transitive", - "resolved": "2.2.2", - "contentHash": "70KvWz+DiUELxafsYL/LHxA/jH3PDWeApLo/VwtnrpTvRWQ/eUdPfS/l5funmhZWOy41QXw6UjVv+6C57Nx77A==" - }, - "ObjectiveHarmonyPatch": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "tzKrRbZCURq3RpAGbTXZywNJ1sGI/4ia+8OJ6NiSPfhw0uCevXUcHGFlpIxgOQei/3JQKqUMH9aq+RvWUn/44g==", - "dependencies": { - "Lib.Harmony": "2.2.2" - } - }, - "SlimDX": { - "type": "Transitive", - "resolved": "4.0.13.44", - "contentHash": "Oj8ICZ3tIGvd93s5W6wSWXckDb3payQCo4fWp7GKPwnnGck7wEHHBZwnwfJJTdNb+t+IYr4HJCu07YhZ82xrIg==" - }, - "UnembeddedResources": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "cZJ8PtsQwQ4EzShUiUdKz2blvj/r6v0/Tg5+43SsWBTpHhX79P05Srtu6ypiSPgOKePnpB5D/SM5HCyoaMQN6g==" - } - } - } -} \ No newline at end of file diff --git a/VehiclePlugin/Properties/AssemblyInfo.cs b/VehiclePlugin/Properties/AssemblyInfo.cs deleted file mode 100644 index a75c419..0000000 --- a/VehiclePlugin/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.Reflection; - -// アセンブリに関する一般情報は以下を通して制御されます -// 制御されます。アセンブリに関連付けられている情報を変更するには、 -// これらの属性値を変更してください。 -[assembly: AssemblyTitle("VehiclePlugin")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("VehiclePlugin")] -[assembly: AssemblyCopyright("Copyright © 2023")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// アセンブリのバージョン情報は、以下の 4 つの値で構成されています: -// -// メジャー バージョン -// マイナー バージョン -// ビルド番号 -// リビジョン -// -// すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます -// 既定値にすることができます: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.*")] diff --git a/VehiclePlugin/VehiclePlugin.cs b/VehiclePlugin/VehiclePlugin.cs deleted file mode 100644 index b68b437..0000000 --- a/VehiclePlugin/VehiclePlugin.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -using AtsEx.PluginHost.Plugins; - -namespace AtsExCsTemplate.VehiclePlugin -{ - /// - /// プラグインの本体 - /// Plugin() の第一引数でこのプラグインの仕様を指定 - /// Plugin() の第二引数でこのプラグインが必要とするAtsEX本体の最低バージョンを指定(オプション) - /// - [Plugin(PluginType.VehiclePlugin)] - internal class VehiclePluginMain : AssemblyPluginBase - { - /// - /// プラグインが読み込まれた時に呼ばれる - /// 初期化を実装する - /// - /// - public VehiclePluginMain(PluginBuilder builder) : base(builder) - { - } - - /// - /// プラグインが解放されたときに呼ばれる - /// 後処理を実装する - /// - public override void Dispose() - { - } - - /// - /// シナリオ読み込み中に毎フレーム呼び出される - /// - /// 前回フレームからの経過時間 - public override TickResult Tick(TimeSpan elapsed) - { - return new VehiclePluginTickResult(); - } - } -} diff --git a/VehiclePlugin/VehiclePlugin.csproj b/VehiclePlugin/VehiclePlugin.csproj deleted file mode 100644 index b4be3e9..0000000 --- a/VehiclePlugin/VehiclePlugin.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - net48 - AtsExCsTemplate.VehiclePlugin - false - false - true - - - - - all - - - all - - - - \ No newline at end of file diff --git a/VehiclePlugin/packages.lock.json b/VehiclePlugin/packages.lock.json deleted file mode 100644 index 94714a0..0000000 --- a/VehiclePlugin/packages.lock.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "version": 1, - "dependencies": { - ".NETFramework,Version=v4.8": { - "AtsEx.CoreExtensions": { - "type": "Direct", - "requested": "[1.0.0-rc7, )", - "resolved": "1.0.0-rc7", - "contentHash": "wpQIS8smxANiPt4gBD0LpWa3408wfLVY1gRvJvWeV4OFuIJHXMaTwEZgtpa+UsTmKxfX4S4KbdCCg1xBCDmaWg==", - "dependencies": { - "AtsEx.PluginHost": "1.0.0-rc1", - "ObjectiveHarmonyPatch": "1.1.0" - } - }, - "AtsEx.PluginHost": { - "type": "Direct", - "requested": "[1.0.0-rc8, )", - "resolved": "1.0.0-rc8", - "contentHash": "W/1suCpKZ0y7E6dl2Y1iY10kJ5D9KD1m3XUWiz3Z1H5NHFcJU32Hz2ON+So9iDUCSIVG0C06RfbsHCpY9x4dvw==", - "dependencies": { - "SlimDX": "4.0.13.44", - "UnembeddedResources": "1.0.0" - } - }, - "Lib.Harmony": { - "type": "Transitive", - "resolved": "2.2.2", - "contentHash": "70KvWz+DiUELxafsYL/LHxA/jH3PDWeApLo/VwtnrpTvRWQ/eUdPfS/l5funmhZWOy41QXw6UjVv+6C57Nx77A==" - }, - "ObjectiveHarmonyPatch": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "tzKrRbZCURq3RpAGbTXZywNJ1sGI/4ia+8OJ6NiSPfhw0uCevXUcHGFlpIxgOQei/3JQKqUMH9aq+RvWUn/44g==", - "dependencies": { - "Lib.Harmony": "2.2.2" - } - }, - "SlimDX": { - "type": "Transitive", - "resolved": "4.0.13.44", - "contentHash": "Oj8ICZ3tIGvd93s5W6wSWXckDb3payQCo4fWp7GKPwnnGck7wEHHBZwnwfJJTdNb+t+IYr4HJCu07YhZ82xrIg==" - }, - "UnembeddedResources": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "cZJ8PtsQwQ4EzShUiUdKz2blvj/r6v0/Tg5+43SsWBTpHhX79P05Srtu6ypiSPgOKePnpB5D/SM5HCyoaMQN6g==" - } - } - } -} \ No newline at end of file From 51a623eefecb77c1e6a74cadd50c9842b16880a9 Mon Sep 17 00:00:00 2001 From: stop-pattern <40131396+stop-pattern@users.noreply.github.com> Date: Mon, 1 Jul 2024 23:15:14 +0900 Subject: [PATCH 4/9] add new class --- CommEx/Serial/Main.cs | 58 ++++++++++++++++++++++++++++ CommEx/{Extension.cs => Udp/Main.cs} | 18 +++++++-- 2 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 CommEx/Serial/Main.cs rename CommEx/{Extension.cs => Udp/Main.cs} (64%) diff --git a/CommEx/Serial/Main.cs b/CommEx/Serial/Main.cs new file mode 100644 index 0000000..689aa95 --- /dev/null +++ b/CommEx/Serial/Main.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using AtsEx.PluginHost.Plugins; +using AtsEx.PluginHost.Plugins.Extensions; + +namespace CommEx.Serial +{ + /// + /// プラグインの本体 + /// Plugin() の第一引数でこのプラグインの仕様を指定 + /// Plugin() の第二引数でこのプラグインが必要とするAtsEX本体の最低バージョンを指定(オプション) + /// + [Plugin(PluginType.Extension)] + internal class Serial : AssemblyPluginBase, IExtension + { + /// + /// プラグインが読み込まれた時に呼ばれる + /// 初期化を実装する + /// + /// + public Serial(PluginBuilder builder) : base(builder) + { + Extensions.AllExtensionsLoaded += Extensions_AllExtensionsLoaded; + } + + /// + /// 全ての AtsEX 拡張機能が読み込まれ、AtsEx.PluginHost.Plugins.Extensions プロパティが取得可能になると発生 + /// + /// + /// + private void Extensions_AllExtensionsLoaded(object sender, EventArgs e) + { + throw new NotImplementedException(); + } + + /// + /// プラグインが解放されたときに呼ばれる + /// 後処理を実装する + /// + public override void Dispose() + { + Extensions.AllExtensionsLoaded -= Extensions_AllExtensionsLoaded; + } + + /// + /// シナリオ読み込み中に毎フレーム呼び出される + /// + /// 前回フレームからの経過時間 + public override TickResult Tick(TimeSpan elapsed) + { + return new ExtensionTickResult(); + } + } +} diff --git a/CommEx/Extension.cs b/CommEx/Udp/Main.cs similarity index 64% rename from CommEx/Extension.cs rename to CommEx/Udp/Main.cs index ae4c1c3..e521183 100644 --- a/CommEx/Extension.cs +++ b/CommEx/Udp/Main.cs @@ -7,7 +7,7 @@ using AtsEx.PluginHost.Plugins; using AtsEx.PluginHost.Plugins.Extensions; -namespace CommEx +namespace CommEx.Udp { /// /// プラグインの本体 @@ -15,15 +15,26 @@ namespace CommEx /// Plugin() の第二引数でこのプラグインが必要とするAtsEX本体の最低バージョンを指定(オプション) /// [Plugin(PluginType.Extension)] - internal class ExtensionMain : AssemblyPluginBase, IExtension + internal class Udp : AssemblyPluginBase, IExtension { /// /// プラグインが読み込まれた時に呼ばれる /// 初期化を実装する /// /// - public ExtensionMain(PluginBuilder builder) : base(builder) + public Udp(PluginBuilder builder) : base(builder) { + Extensions.AllExtensionsLoaded += Extensions_AllExtensionsLoaded; + } + + /// + /// 全ての AtsEX 拡張機能が読み込まれ、AtsEx.PluginHost.Plugins.Extensions プロパティが取得可能になると発生 + /// + /// + /// + private void Extensions_AllExtensionsLoaded(object sender, EventArgs e) + { + throw new NotImplementedException(); } /// @@ -32,6 +43,7 @@ public ExtensionMain(PluginBuilder builder) : base(builder) /// public override void Dispose() { + Extensions.AllExtensionsLoaded -= Extensions_AllExtensionsLoaded; } /// From 2d423699f7c5e5bc517b42de532adb433c416156 Mon Sep 17 00:00:00 2001 From: stop-pattern <40131396+stop-pattern@users.noreply.github.com> Date: Mon, 1 Jul 2024 23:26:34 +0900 Subject: [PATCH 5/9] Update workflows --- .github/workflows/build.yml | 4 ++-- .github/workflows/release.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 151f936..359bd60 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,10 +24,10 @@ jobs: uses: actions/setup-dotnet@v4.0.0 - name: Restore nuget packages - run: dotnet restore AtsExCsTemplate.sln --locked-mode + run: dotnet restore CommEx.sln --locked-mode - name: MSBuild - run: dotnet publish .\AtsExCsTemplate.sln --configuration Release --no-restore /p:platform="Any CPU" /p:OutputPath="./out/" + run: dotnet publish .\CommEx.sln --configuration Release --no-restore /p:platform="Any CPU" /p:OutputPath="./out/" - name: Collect artifact run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bcf757e..03f4597 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,9 +20,9 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v4.0.0 - name: Restore nuget packages - run: dotnet restore AtsExCsTemplate.sln --locked-mode + run: dotnet restore CommEx.sln --locked-mode - name: Build sln - run: dotnet publish .\AtsExCsTemplate.sln --configuration Release --no-restore /p:platform="Any CPU" /p:OutputPath="./out/" + run: dotnet publish .\CommEx.sln --configuration Release --no-restore /p:platform="Any CPU" /p:OutputPath="./out/" - name: Collect artifact run: | mkdir plugins/ From e5a02da1505e2e2eeda1951e6c4e9324cecc10a8 Mon Sep 17 00:00:00 2001 From: stop-pattern <40131396+stop-pattern@users.noreply.github.com> Date: Mon, 1 Jul 2024 23:32:10 +0900 Subject: [PATCH 6/9] fix readme --- README.md | 105 ++---------------------------------------------------- 1 file changed, 2 insertions(+), 103 deletions(-) diff --git a/README.md b/README.md index cb6c9c8..7f7c09b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # CommEx -[AtsEX](https://github.com/automatic9045/AtsEX)AtsEXを通してBveと外部で通信するプラグイン +[AtsEX](https://github.com/automatic9045/AtsEX)を通してBveと外部で通信するプラグイン ## プラグインの機能 @@ -24,74 +24,8 @@ 1. **AtsEX バージョン情報・プラグイン一覧** を開く 1. **CommEx** が有効になっていることを確認(デフォルトで有効) -## このテンプレートの機能 -- 取っ掛かりやすいように3種類のプラグインのファイル - - マッププラグイン - - 車両プラグイン - - 拡張機能 -- Actionsでのdll自動生成 -- 頑張って書いた[wiki](../../wiki/) - - -## 動作環境 -- [AtsEX](https://github.com/automatic9045/AtsEX) - - [ver1.0-RC8 - v1.0.40401.1](https://github.com/automatic9045/AtsEX/releases/tag/v1.0.40401.1) or later -- Win10 22H2, Win11 22H2 or later - - Visual Studio 2022 - - Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.5.3 -- [Bve](https://bvets.net/) - - BVE Trainsim Version 6.0.7554.619 - - -## 依存環境 -- [AtsEx.CoreExtensions](https://www.nuget.org/packages/AtsEx.CoreExtensions/) (1.0.0-rc7) -- [AtsEx.PluginHost](https://www.nuget.org/packages/AtsEx.PluginHost/) (1.0.0-rc8) - -間接参照を含めたすべての依存情報については、各プロジェクトのフォルダにある `packages.lock.json` をご確認ください。 - ## 使い方 -1. Use this template から新しくリポジトリを作成する -1. githubリポジトリの詳細を設定する -2. LICENSEの著作権表記を変更する -1. 自分の作りたい機能に合わせて設定する -1. コードを書く -1. リリースする - -### 0. 下準備 -#### 0.1. テンプレートから新しくリポジトリを作成して設定する -1. `Use this template`ボタンから新しいリポジトリの作成画面に入る - - `Create a new repository`で新しくリポジトリを作成する - - リポジトリの名前はお好みで - - Description にプラグインの概要とかを書いておくといい -1. リポジトリの設定画面でDescriptionやTopicsを設定する -1. LICENSEの著作権表記を変更する -1. README.md を消した後 README_TEMPLATE.md を README.md にリネームしてtodoを埋める - -#### 0.2. ローカルにクローンする -1. `< > Code`からURLをコピーする -1. Visual Studio を開いて リポジトリのクローン からコピーしたURLでローカルにクローンする - -できないときとかは下のコマンドでできる -```bash -git clone https://github.com/USERNAME/REPONAME.git -``` - -#### 0.3. Visual Studio でビルドできる状態にする -1. AtsExCsTemplate.csproj を開いてすべて保存から適当な場所にslnを生成する -1. NuGetからAtsEx関連のライブラリを入れる(ビルドすれば勝手に入る) -1. 開発するプラグインの種類に応じて要らないファイルを削除する - - MapPlugin/ - - マッププラグイン用のプロジェクト - - VehiclePlugin/ - - 車両プラグイン用のプロジェクト - - Extension/ - - 拡張機能用のプロジェクト - -#### 0.4. プラグイン情報の設定 -**Properties/AssemblyInfo.cs** -BveからAtsExのバージョン情報を見たときに表示される内容を設定できます -AtsExのバージョン情報画面から見えるのはファイル名と下の3項目です ## ライセンス - [MIT](LICENSE) @@ -104,8 +38,6 @@ AtsExのバージョン情報画面から見えるのはファイル名と下の - 著作者は一切責任を負わない - 本プラグインは無保証で提供される -### 1. コードを書く -頑張ってゴリゴリ書きましょう ## 動作環境 - Windows @@ -117,9 +49,6 @@ AtsExのバージョン情報画面から見えるのはファイル名と下の - [AtsEX](https://github.com/automatic9045/AtsEX) - [ver1.0-RC9 - v1.0.40627.1](https://github.com/automatic9045/AtsEX/releases/tag/v1.0.40627.1) or later -### 3. 公開する -公開ができる状態になったらmainにpushしてtag打ってreleaseを作りましょう - ## 開発環境 - [AtsEX](https://github.com/automatic9045/AtsEX) @@ -131,40 +60,10 @@ AtsExのバージョン情報画面から見えるのはファイル名と下の - BVE Trainsim Version 5.8.7554.391 - BVE Trainsim Version 6.0.7554.619 -## デバッグについて -※この項目に書いてあることは環境によって差異があるかもしれないので適宜自分の環境に合わせて読み替えること -### 1. 生成物がAtsExから読めるようにする -そのままの状態でビルドしてもデバッグできないのでBveからAtsEx経由でビルドしたプラグインが読み込めるようにする必要があります -そのためには大きく次のA,Bで2通りのやり方があります -おすすめはBのシンボリックリンク経由です -シンボリックリンク経由だとpdbなどのごみがBve側のディレクトリに散らばったりしなくて嬉しいです -#### 1.A. 生成物の出力パスをいじる -1. メニューバー > プロジェクト > (プロジェクト名)のプロパティ を選択しプロジェクトのプロパティ画面を開く -1. サイドバー > ビルド を選択しビルドの設定画面を開く -1. 出力セクションの出力パスをプラグインの出力先に設定する -1. 試しにビルドしてみて出力されるか確認する -#### 1.B.シンボリックリンクを張る -1. 生成物がない場合はビルドしてダミーのdllを生成する -1. 出力ディレクトリ(binの下)にある生成物へのシンボリックリンクをプラグインの配置場所に配置する - - winでシンボリックリンクを簡単に張るには[Link Shell Extension](https://www.gigafree.net/system/explorer/hardlinkshellextension.html)がおすすめ -1. 試しにビルドしてみて更新されるか確認する -### 2. Visual Studioでデバッグする -#### 2.1. デバッグの設定をする -1. メニューバー > デバッグ > (プロジェクト名)のデバッグプロパティ を選択しプロジェクトのデバッグプロパティ画面を開く -1. 開始動作を"外部プログラムの開始"を選択しBveのパスを設定する -1. 必要があればコマンドライン引数にシナリオファイルのパスを設定する - - ここでシナリオファイルのパスを設定したらそのシナリオが直接読み込まれる - - 何も指定しなければ普通にシナリオ選択画面が立ち上がる -#### 2.2.実際にデバッグする -1. 適当にブレークとかを張る -1. デバッグを始める - - F5キー - - メニューバーのデバッグとテストの下あたりの開始ボタン(緑の三角形) -1. 張ったブレークで止まるか見てみる ## 依存環境 - AtsEx.CoreExtensions (1.0.0-rc9) - AtsEx.PluginHost (1.0.0-rc9) -(開発者向け) +### 開発者向け 間接参照を含めたすべての依存情報については、各プロジェクトのフォルダにある `packages.lock.json` をご確認ください。 From 79ed0acaf79d16a9e92053c7ab58392309ea4429 Mon Sep 17 00:00:00 2001 From: stop-pattern <40131396+stop-pattern@users.noreply.github.com> Date: Mon, 1 Jul 2024 23:56:36 +0900 Subject: [PATCH 7/9] Update reference package AtsEX to ver1.0-RC9 --- CommEx/CommEx.csproj | 4 ++-- CommEx/packages.lock.json | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CommEx/CommEx.csproj b/CommEx/CommEx.csproj index 46fc9af..a178a44 100644 --- a/CommEx/CommEx.csproj +++ b/CommEx/CommEx.csproj @@ -10,10 +10,10 @@ - + all - + all diff --git a/CommEx/packages.lock.json b/CommEx/packages.lock.json index 94714a0..983fb07 100644 --- a/CommEx/packages.lock.json +++ b/CommEx/packages.lock.json @@ -4,9 +4,9 @@ ".NETFramework,Version=v4.8": { "AtsEx.CoreExtensions": { "type": "Direct", - "requested": "[1.0.0-rc7, )", - "resolved": "1.0.0-rc7", - "contentHash": "wpQIS8smxANiPt4gBD0LpWa3408wfLVY1gRvJvWeV4OFuIJHXMaTwEZgtpa+UsTmKxfX4S4KbdCCg1xBCDmaWg==", + "requested": "[1.0.0-rc9, )", + "resolved": "1.0.0-rc9", + "contentHash": "b9KGmP9t37+L+9xt2NnI7a/mCh6i8A2Vodx6w/CkwT08bPqe9IsfCt/nSIT0Q8DghTU2nykSN/BBP1TCSH/0ng==", "dependencies": { "AtsEx.PluginHost": "1.0.0-rc1", "ObjectiveHarmonyPatch": "1.1.0" @@ -14,9 +14,9 @@ }, "AtsEx.PluginHost": { "type": "Direct", - "requested": "[1.0.0-rc8, )", - "resolved": "1.0.0-rc8", - "contentHash": "W/1suCpKZ0y7E6dl2Y1iY10kJ5D9KD1m3XUWiz3Z1H5NHFcJU32Hz2ON+So9iDUCSIVG0C06RfbsHCpY9x4dvw==", + "requested": "[1.0.0-rc9, )", + "resolved": "1.0.0-rc9", + "contentHash": "UjhPUohYL8hiMCwvJGQ0IZ5ALcgesonhTGMPO9f2ZjbOMLyHtIdPZj3yeqWUxfX4RqkgKwRidvw9G9OQo61BQA==", "dependencies": { "SlimDX": "4.0.13.44", "UnembeddedResources": "1.0.0" From 7a01396e1bd91db194942ff894665b5088bccefe Mon Sep 17 00:00:00 2001 From: stop-pattern <40131396+stop-pattern@users.noreply.github.com> Date: Tue, 2 Jul 2024 00:10:16 +0900 Subject: [PATCH 8/9] add launchsettings to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8a30d25..2e25d7c 100644 --- a/.gitignore +++ b/.gitignore @@ -383,6 +383,7 @@ FodyWeavers.xsd !.vscode/launch.json !.vscode/extensions.json *.code-workspace +/CommEx/Properties/launchSettings.json # Local History for Visual Studio Code .history/ From 2d84e5dc99666aed6bcf48efc2947216ee289d36 Mon Sep 17 00:00:00 2001 From: stop-pattern <40131396+stop-pattern@users.noreply.github.com> Date: Tue, 2 Jul 2024 00:34:22 +0900 Subject: [PATCH 9/9] Add on/off toggle --- CommEx/Serial/Main.cs | 21 +++++++++++++++++++-- CommEx/Udp/Main.cs | 30 ++++++++++++++++++------------ 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/CommEx/Serial/Main.cs b/CommEx/Serial/Main.cs index 689aa95..18d3516 100644 --- a/CommEx/Serial/Main.cs +++ b/CommEx/Serial/Main.cs @@ -15,8 +15,26 @@ namespace CommEx.Serial /// Plugin() の第二引数でこのプラグインが必要とするAtsEX本体の最低バージョンを指定(オプション) /// [Plugin(PluginType.Extension)] - internal class Serial : AssemblyPluginBase, IExtension + [Togglable] + internal class Serial : AssemblyPluginBase, ITogglableExtension, IExtension { + /// + public override string Title { get; } = nameof(Serial); + /// + public override string Description { get; } = "シリアル通信"; + + /// + /// プラグインの有効・無効状態 + /// + private bool status = true; + + /// + public bool IsEnabled + { + get { return status; } + set { status = value; } + } + /// /// プラグインが読み込まれた時に呼ばれる /// 初期化を実装する @@ -34,7 +52,6 @@ public Serial(PluginBuilder builder) : base(builder) /// private void Extensions_AllExtensionsLoaded(object sender, EventArgs e) { - throw new NotImplementedException(); } /// diff --git a/CommEx/Udp/Main.cs b/CommEx/Udp/Main.cs index e521183..ce54c5f 100644 --- a/CommEx/Udp/Main.cs +++ b/CommEx/Udp/Main.cs @@ -15,26 +15,33 @@ namespace CommEx.Udp /// Plugin() の第二引数でこのプラグインが必要とするAtsEX本体の最低バージョンを指定(オプション) /// [Plugin(PluginType.Extension)] - internal class Udp : AssemblyPluginBase, IExtension + [Togglable] + internal class Udp : AssemblyPluginBase, ITogglableExtension, IExtension { + /// + public override string Title { get; } = nameof(Udp); + /// + public override string Description { get; } = "UDP"; + /// - /// プラグインが読み込まれた時に呼ばれる - /// 初期化を実装する + /// プラグインの有効・無効状態 /// - /// - public Udp(PluginBuilder builder) : base(builder) + private bool status = false; + + /// + public bool IsEnabled { - Extensions.AllExtensionsLoaded += Extensions_AllExtensionsLoaded; + get { return status; } + set { status = value; } } /// - /// 全ての AtsEX 拡張機能が読み込まれ、AtsEx.PluginHost.Plugins.Extensions プロパティが取得可能になると発生 + /// プラグインが読み込まれた時に呼ばれる + /// 初期化を実装する /// - /// - /// - private void Extensions_AllExtensionsLoaded(object sender, EventArgs e) + /// + public Udp(PluginBuilder builder) : base(builder) { - throw new NotImplementedException(); } /// @@ -43,7 +50,6 @@ private void Extensions_AllExtensionsLoaded(object sender, EventArgs e) /// public override void Dispose() { - Extensions.AllExtensionsLoaded -= Extensions_AllExtensionsLoaded; } ///