メインコンテンツにスキップ

ModUtil とイベント

Elin のイベントは BaseModManager.SubscribeEvent<T>(EventId, Action<T>) で登録できます。一部のイベントにはアトリビュートも用意されており、自動的に購読させることが可能です。

Mod

  • EVENT.ModsActivated

パラメータなし。すべての Mod パッケージが有効化された後に発行されます。

GameIO セーブ/ロード

  • EVENT.PreLoad[ElinPreLoad]
  • EVENT.PostLoad[ElinPostLoad]
  • EVENT.NewGame[ElinPostLoad] // <- 同じアトリビュート
  • EVENT.PreSave[ElinPreSave]
  • EVENT.PostSave[ElinPostSave]

パラメータ:GameIOContext

  • [ElinGameIOProperty("chunkName")]

静的プロパティに付けると、指定したチャンク名でセーブデータへ自動的に保存・読み込みされます。対象のプロパティには静的な getter と setter の両方が必要です。チャンク名は宣言した型ごとのスコープなので、別々のクラスがどちらも "my_data" を使っても衝突しません。

推奨されるのは、mod が保存するデータをひとつのシリアライズ可能なクラスにまとめ、null 許容の静的インスタンスだけを公開する形です:

cs
public class MySaveData {
	public int Counter;

	[ElinGameIOProperty("my_data")]
	public static MySaveData? Singleton { get; set; }
}

ゲームシステム

  • EVENT.CharaCreated[ElinCharaOnCreate]
  • EVENT.ThingCreated[ElinThingOnCreate]

パラメータ:Chara または Thing

  • EVENT.ActPerformed[ElinActPerform]

パラメータ:実行され終えた Act

  • EVENT.FeatApply

パラメータ:EVENT.ElinFeatApplyEventArgsfeatownerhint)。Feat が適用される際に発行されます。

  • EVENT.ReligionImporting

パラメータ:登録中の List<Religion>

  • ModUtil.AddContextMenuEntry[ElinContextMenuEntry]

アトリビュートのパラメータ:string langEntry, string langDisplay = "" 手動 API:ModUtil.AddContextMenuEntry(Action onClick, string menuEntry, string displayName = "")SubGroup/ModButton1 のようなコンテキストメニュー項目を登録します。

  • EVENT.PreSceneInit[ElinPreSceneInit]
  • EVENT.PostSceneInit[ElinPostSceneInit]

パラメータ:Scene.Mode

ソースデータ

  • EVENT.SourceImporting
  • EVENT.SourceImported

パラメータなし。ソースシートのインポート前 / 後に発行されます。

  • EVENT.SourceLangSet

パラメータ:string langCode

ドラマ

  • [ElinDramaActionInvoke]
  • [ElinDramaActionParser]

Drama API を参照してください。

This project is an unofficial documentation site and is not affiliated with, endorsed by, or associated with Elin or Lafrontier / Noa. All trademarks are the property of their respective owners.