Tags
Creators
Details
Licensed MIT
Published 3 months ago
Updated last month
All versions
0.2.0
Beta
0.2.0 (FABRIC 1.20.1)2 months ago 30
Compatibility
Minecraft: Java Edition
1.20.1
Platform
Fabric
Supported environments
Client and server
Required content
Any compatible version
Any compatible version
Changes
AE2 Crafting Priority 0.2.0-beta.1 (Fabric 1.20.1)
AE2(Applied Energistics 2)の自動クラフトに、ジョブ単位の実行優先度を追加するアドオンMODです。今回のBeta版では、他MODから優先度制御と連携できる公開APIを新規に追加しました。
今回の変更点(0.2.0-beta.1): 他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版のため、今後のマイナーバージョンで破壊的変更が入る可能性があります
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:vWmY8UFd:SKBLg685"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:vWmY8UFd:SKBLg685"
}

