0.2.0 (FABRIC 1.20.1)
Curse Maven Snippet
What's new
AE2 Crafting Priority 0.2.0 (Fabric 1.20.1)
AE2(Applied Energistics 2)の自動クラフトに、ジョブ単位の実行優先度を追加するアドオンMODです。今回のBeta版では、他MODから優先度制御と連携できる公開APIを新規に追加しました。
今回の変更点(0.2.0): 他MOD連携用の公開APIを追加
パッケージ com.yuuhamu.ae2craftpriority.api として、他MODから優先度制御と連携できる公開APIを新規に追加しました。
CraftPriorityApi(静的ファサード): 優先度の取得・設定、CPUの列挙、優先度変更イベントの購読などをまとめて提供します。getPriority/getStoredPriority/getEffectivePriority: 保存されている優先度と、他MOD由来の補正を反映した実効優先度を分けて取得setPriority(サーバースレッド専用): 優先度を直接設定withPriority(int)→PriorityScope、runWithPriority/callWithPriority: クラフトジョブ投入時に一時的な優先度を適用するスコープAPI(AutoCloseable・ネスト可)registerResolver(PriorityResolver, order): 保存値やAPI設定値を書き換えずに、他MOD(例: AE2PriorityRequester)が基準優先度を加算・補正できるフックregisterAdapter(PriorityAdapter): AE2純正以外のクラフトCPUクラスタ型をこのMODの優先度制御に対応させるための拡張ポイント(汎用API、詳細下記)addPriorityChangeListener/removePriorityChangeListener: 優先度変更(GUI操作・API経由・ジョブ投入・ジョブ完了リセット・NBTロード等)を検知するイベント購読(PriorityChangeEvent)getCpusByPriority(grid)/snapshot(grid): グリッド内CPUの優先度順一覧・読み取り専用スナップショット(CpuSnapshot)取得isSupported/apiVersion()/MOD_ID等のユーティリティ
PriorityAdapter:markDirty/listCpus/isBusy/getNameのデフォルトメソッドを追加し、サードパーティMODが独自のCPUクラスタ型をこのMODへ統合しやすくしました。- API設計方針: (1) AE2・Minecraft固有の型を一切露出させず
Object型のみで受け渡しするため、apiパッケージはForge 1.12.2〜NeoForge 1.21.1まで全ブランチでバイト同一のソースを共有可能、(2) Java 8構文のみで実装、(3)「保存された優先度」と「実効優先度」を明確に分離、(4) 副作用を伴うAPIはサーバースレッド専用でfail-closed設計、(5) 未対応環境でも例外を投げず安全に機能を無効化します。
主な機能(継続)
- AE2純正の「優先度」画面から、クラフトジョブごとに優先度(数値が高いほど優先)を設定可能
- 設定方法は3通り: クラフト開始時 / Crafting CPU画面 / 端末の「クラフト状況」タブ
- 優先度はジョブ単位。タスク終了時に自動的に0へリセット
- Fabric API 0.88.1+1.20.1に固定(AE2 15.4.10との互換性のため)
既知の制限
- AdvancedAEはFabric版が存在しないため非対応(
PriorityAdapter拡張は他MOD向けの汎用APIとして提供) - 実際のクラフトジョブでの優先度制御そのもの(多数ジョブが競合する状況での動作)は、引き続き検証中です(Betaチャンネル)
- 公開APIはBeta版のため、今後のマイナーバージョンで破壊的変更が入る可能性があります
This mod has no additional files

