クラフトゲーム開発(物流システムの実装に着手)
ホームエリアでアイテムを運搬する物流システムを実装していきます。
物流システムで行うこと
探索エリアで素材を集めてきた自キャラが帰還ポイントわきのチェストに素材をまとめて格納すると、クラフトで必要になる素材を各 NPC が取りに来るあたりの実装です。
- 運送クラスがどこに何を運ぶかを管理する。
- NPC が運搬タスクを受け取る。
- NPC が運搬を行う: 運搬元まで移動、運搬先に移動
- NPC が運搬タスクを受け取る。
くらいです。
先に NPC をゲーム内でどう管理するかを具体的に決めた方がいい気もしましたが、素材の運搬は必須タスクなので細かいことを考えずに必須要素を実装していきます。
実装すること
運搬タスクの管理
最終的には部屋において、そこにあるクラフト台が作れるものを部屋のチェストが要求した場合にはクラフトさせる仕組みにしますが、とりあえずはチェストごとに運搬タスクを管理する仕組みにします。
NPC の状態遷移
とりあえず Idle, Transport だけを実装します。
アイテム運搬
運搬の経路もとりあえず壁を考慮せずに目的地まで直線経路で移動すればいいことにします。経路探索とグリッドに沿った移動は後でやります。
実装したこと
NPC がチェストから別のチェストにアイテム運搬するまで実装したかったのですが、チェスト、部屋、運搬、フィールドとかのクラスを実装してたら作業量が多くなったので、実際に動くのは次回の記事でやります。
↓今回の作業で変更したファイルとか
まとめと今後の予定
今回はアイテムの運搬をどうするか考えて実装を開始しました。次回までには何かしら動くようにしたいです。がんばります。