拡張機能 - stop-pattern/BveExCsTemplate GitHub Wiki

概要

本項ではAtsEXのプラグインのうち拡張機能を扱う
拡張機能は公式によると次のように説明されている

拡張機能は、他の2種類のプラグインとは異なり読み込まれている車両、路線に関わらず常に読み込まれる仕様のプラグインです。
形としては入力デバイスプラグインに近いと言えます。

このことからも、常に読み込まれる必要のある機能の実装や、使用頻度が高く必要に応じて参照する機能の実装などに向いているとわかる

コードでの実装

拡張機能を実装する場合には、拡張機能であるという情報をAtsEx側に伝達するため次の設定が必要となる

  • プラグインのメインクラスにPluginType(PluginType.Extension)属性を付与
  • PluginBase抽象クラスを継承
    • 基本的にPluginBaseから派生したAssemblyPluginBase抽象クラスを継承
  • IExtensionインターフェースを実装
  • TickExtensionTickResultを返す

この時の最小構成を下に引用して示す

[PluginType(PluginType.Extension)]
internal class ExtensionMain : AssemblyPluginBase, IExtension
{
    public ExtensionMain(PluginBuilder builder) : base(builder)
    {
    }

    public override void Dispose()
    {
    }

    public override void Tick(TimeSpan elapsed)
    {
        return new ExtensionTickResult();
    }
}

Bveへの導入

配置場所

AtsExの導入場所にあるExtensionsフォルダの中にプラグインを配置する
デフォルト: C:\Users\Public\Documents\AtsEx\1.0\Extensions

参照設定

常に読み込まれるため、参照するために特別な設定は必要ない

読み込まれ方

拡張機能はBveの起動と同時にAtsEXから呼ばれ、終了時に開放される

参考文献・引用元