メインコンテンツまでスキップ

SDK API概要

MCE SDK は、ゲームコードからエンジンを操作するためのクリーンで安定したパブリックAPIサーフェスを提供します。すべての SDK インターフェースは OpenMon.MCE.SDK 名前空間にあります。

設計原則

  • インターフェースベース:すべてのパブリックAPIは具象クラスではなくインターフェースとして公開されます。これにより、コードを壊すことなく実装を進化させることができます。
  • 読み取り重視:ほとんどの SDK メソッドは読み取り専用のクエリです。変更はエンジンの内部システム(CommandGraph、Inspector など)を通じて行われます。
  • イベント駆動:主要な状態変化は C# イベントを通じて通知されます。
  • Zenject 注入[Inject] 属性を通じて SDK インターフェースにアクセスします。

エントリポイント

メインのエントリポイントは IMonsterCaptureEngine です:

[Inject] private IMonsterCaptureEngine engine;

このインターフェースからすべてのサブシステムにアクセスします:

プロパティインターフェース目的
engine.DatabaseIMonsterDatabaseモンスター、技、アイテム、タイプの照会
engine.BattleIBattleSystemバトル状態とイベント
engine.PlayerIPlayerDataプレイヤーの手持ち、お金、名前、バッジ
engine.SaveSystemISaveSystemセーブ/ロード操作
engine.Versionstringエンジンバージョン文字列

クイック例

using OpenMon.MCE.SDK;
using Zenject;

public class GameDashboard : MonoBehaviour
{
[Inject] private IMonsterCaptureEngine engine;

private void Start()
{
// データベースを照会
var allMonsters = engine.Database.GetAllMonsters();
Debug.Log($"Database has {allMonsters.Count} monster species");

// プレイヤー状態をチェック
Debug.Log($"Player: {engine.Player.PlayerName}");
Debug.Log($"Team size: {engine.Player.PlayerRoster.Count}");
Debug.Log($"Money: {engine.Player.Money}");
Debug.Log($"Badges: {engine.Player.BadgeCount}");

// バトルイベントをリスン
engine.Battle.OnBattleStarted += () => Debug.Log("Battle!");
engine.Battle.OnBattleEnded += (won) => Debug.Log($"Won: {won}");

// セーブ/ロード
if (engine.SaveSystem.HasSaveData(0))
Debug.Log("Save slot 0 has data");
}
}

各インターフェースの詳細なドキュメントは個別のAPIページをご覧ください。