25/07/17 21:57:49.42 BQA9x4Yr.net
Potionのデータ構造を見直したついでに、MODでユーザーが新規ポーションを追加できるようにしてみた
需要があるか分からないが(無い)、以下コード込みで手順を公開
まずMod製作用に公開するAPI(DLL)を用意
URLリンク(imgur.com)
全てinterfaceで定義して、ゲーム本体のクラスには直接アクセスしない方式にした
が、全部(または一部)publicにして本体を参照するやり方が簡単でいいかもしれない……次回作はそうしようかしら(10年後)
Mod(DLL)のコード
URLリンク(imgur.com)
上のAPIを使って新規ポーションの実装とDLL読み込み時の初期化処理(インスタンス受け取り)を行う
今回は「エリ草ー」(Potionじゃないし)と「ヤバい薬」(飲むと死ぬ)を実装
世界観ぶち壊しだけどModならまあええやろ(自作自壊派)
本体側のMod呼び出しクラス
URLリンク(imgur.com)
Modsフォルダー内の.dllを検索して、初期化(必要なインスタンスの引き渡し)とIPotionの登録を行う
現状では初期化処理を必ずMOD側で記述してもらう必要があり、この辺はまだまだ検討の余地がありそう
その他、IPotionをDictionaryに登録するクラスを作ったり、IPotionをPotionに変換するラッパーを作ったり、
必要なら不確定名を割り振ったり、登録情報を元に実際にPotionをゲームに登場させるメソッドを作ったりで、
実際のところAPIやModを作るよりこれらの方が大変だったが、長くなるので割愛
興味ある人がいたら公開しますよ!(いない)