マッププラグイン - stop-pattern/BveExCsTemplate GitHub Wiki
概要
本項ではAtsEXのプラグインのうちマッププラグインを扱う
マッププラグインは公式によると次のように説明されている
マッププラグインは、路線データに同梱するプラグインです。
通常のBVEでは提供されていない、新しい形のプラグインになります。
このことからも、ストラクチャーや他列車などのマップにかかわる機能の実装に向いているとわかる
コードでの実装
マッププラグインを実装する場合には、マッププラグインであるという情報をAtsEx側に伝達するため次の設定が必要となる
- プラグインのメインクラスに
PluginType(PluginType.MapPlugin)
属性を付与 PluginBase
抽象クラスを継承- 基本的に
PluginBase
から派生したAssemblyPluginBase
抽象クラスを継承
- 基本的に
Tick
でMapPluginTickResult
を返す
この時の最小構成を下に引用して示す
[PluginType(PluginType.MapPlugin)]
internal class PluginMain : AssemblyPluginBase
{
public PluginMain(PluginBuilder builder) : base(builder)
{
}
public override void Dispose()
{
}
public override void Tick(TimeSpan elapsed)
{
return new MapPluginTickResult();
}
}
Bveへの導入
配置場所
マップアドオンの中にプラグインを配置する
ディレクトリ構成例:
Scenarios
├ MyScenario.txt
└ MyMaps
└ SampleMap
├ MapPlugins
│ ├ **プラグイン**
│ ├ OtherPlugin.dll
│ └ ...
├ MapPluginUsing.xml
├ Image.jpg
├ Map.txt
├ Signals.csv
├ Sounds.csv
├ Sounds3D.csv
├ Stations.csv
└ Structures.csv
参照設定
マップアドオンからAtsEXのマッププラグインを参照するためには、マップファイルの加工に加え設定ファイルの追加が必要である
設定ファイルの追加をはじめとする参照のための設定は次のとおりである
設定ファイル
設定ファイルを作成しプラグインの情報を記入する
MapPluginUsing.xml(例):
<?xml version="1.0" encoding="utf-8" ?>
<AtsExPluginUsing xmlns="http://automatic9045.github.io/ns/xmlschemas/AtsExPluginUsingXmlSchema.xsd">
<Assembly Path="MapPlugins\**プラグイン**" />
<Assembly Path="MapPlugins\OtherPlugin.dll" />
</AtsExPluginUsing>
Mapファイルから参照
Bve側にプラグインを使用することを教える必要があるため、その設定を行う
Map.txt(例):
BveTs Map 2.02:utf-8
// AtsEX
include '<AtsEx::USEATSEX>'; // AtsEXのプラグインを使うという宣言
include '<AtsEx::READDEPTH>1'; // AtsEXのプラグインを探すディレクトリの深さ
include '<AtsEx::MapPluginUsing>MapPluginUsing.xml'; // 使うプラグインの情報を伝えるファイルの位置
Structure.Load('Structures.txt');
Signal.Load('Signals.csv');
Sound.Load('Sounds_e.txt');
Sound3D.Load('Sounds3D.txt');
Station.Load('Stations.csv');
0;
...
読み込まれ方
マッププラグインはAtsEXの車両プラグインと同様にシナリオ読み込み時にAtsEXから呼ばれ、シナリオ終了時に開放される