Skip to content

Repository files navigation

Create: Selective Machinery

Minecraft 1.21.1/NeoForge 21.1.219/Create 6.0.10向けの小型アドオンです. Createの移動からくりを個体単位で制御する個別からくり操作盤と,フィルターに一致するブロックだけを破壊するフィルタードリルを追加します.

追加されるもの

個別からくり操作盤

Createの移動からくりActorを位置単位で最大64個まで登録し,登録した個体だけを停止・再開できます. メカニカルローラーだけでなく,Mechanical Drill,Deployer,Harvester,Portable Storage Interfaceなど,CreateのMovementBehaviourを持つActorを選択できます. 1台の操作盤へ異なる種類のActorを混在して登録できます.

実行時にはCreateのMovementBehaviour#canBeDisabledViaを確認します.Create自身がContraption Controlsから無効化できないものとして扱うActorは,本Modでも停止しません.Create標準のContraption Controlsそのものは選択対象外です.

  • 空手で操作盤を右クリックすると,登録済みActorの稼働状態を切り替えます.
  • 静止中はレッドストーン信号でも制御できます.信号ありで停止,信号なしで稼働です.
  • Create標準のContraption Controlsと併用できます.どちらか一方でも停止を要求していれば停止します.
  • 1台につき最大64個,操作盤から128ブロック以内を登録できます.
  • 列車では同一Carriage Contraption内のActorだけが実際の制御対象になります.

CreateレンチによるActor選択

選択にはCreate標準のWrenchを使用します.専用ツールは必要ありません.

  1. 列車または移動からくりを組み立てる前に,個別からくり操作盤を設置します.
  2. Createのレンチで操作盤を右クリックすると,そのレンチが選択モードになります.
  3. 同じレンチで制御したいCreate Actorを右クリックします.もう一度右クリックすると選択解除です.
  4. ローラー,ドリル,デプロイヤーなど異なる種類を同じ操作盤へ混在して登録できます.
  5. 選択モード中に同じ操作盤をもう一度右クリックすると選択モードを終了します.
  6. 操作盤をShift+右クリックすると,登録をすべて消去してその操作盤へ接続します.
  7. 車両を組み立て,移動中の操作盤を右クリックして登録ActorをON/OFFします.

選択モード中でも,MovementBehaviourを持たない通常ブロックへレンチを使った場合はCreate標準のレンチ動作へ処理を渡します.

選択モード中は,その操作盤に登録済みのActorが光る枠で強調表示されます.追加・解除は即座に表示へ反映されます.選択モードを終了すると表示は消えます.ワールド内のブロックにはエンチャントの輝きを付けられないため,Createがシャーシ範囲や接着選択の表示に使っているものと同じ強調表示を利用しています.

フィルタードリル

CreateのMechanical Drillを基にしたフィルター付きドリルです.フィルターとモードの組み合わせで破壊対象を決めます.固定設置した回転機械としても,列車・移動からくりのActorとしても動作します.

  • ブロックアイテムを直接指定すると,そのブロックがフィルター対象になります.
  • CreateのList Filterで複数種類のホワイトリスト/ブラックリストを使用できます.
  • CreateのAttribute Filterも使用できます.
  • 枠は2つ並びます.左がフィルター枠,右がフィルターモード枠です.
  • 4つの側面と,ドリル先端の反対側(シャフト側)の面に表示されます.ドリル先端の面には表示されません.移動からくりや列車ではドリルに回転力を繋ぐ必要がないため,ドリルを並べて側面が塞がっている場合もシャフト側の面から設定できます.
  • モード枠を右クリック長押しすると指定ブロックのみ破壊指定ブロック以外を破壊を切り替えられます.レンチは不要で,ブロックを持っていても操作できます.
  • フィルター未設定時は,どちらのモードでも通常のメカニカルドリルと同じくすべてを破壊します.
  • Create標準の破壊不能ブロック判定は維持します.
  • 回転負荷はMechanical Drillと同じ4 SU/RPMです.
  • Create標準のContraption Controlsと本Modの個別からくり操作盤から停止できます.

レジストリIDはcreate_selective_machinery:selective_drillです./giveやデータパックからはこのIDで参照します.

フィルタードリルの使い方

  1. フィルタードリルを設置し,後部シャフトへ回転力を接続します.
  2. ドリル先端以外の面へ照準を合わせます.左にフィルター枠,右にモード枠が表示されます.
  3. 対象にしたいブロックのアイテム,設定済みList Filter,またはAttribute Filterを持ってフィルター枠を右クリックします.
  4. モード枠を右クリック長押しして,指定ブロックのみ破壊指定ブロック以外を破壊を選びます.
  5. フィルターを外す場合は空手でフィルター枠を右クリックします.未設定に戻ると,どちらのモードでもすべてを破壊します.
  6. 列車や移動からくりで使う場合は,フィルターとモードを設定してから組み立てます.

直接ブロックを指定した場合はBlockStateを対応するブロックアイテムへ変換して判定するため,向き・含水・成長段階などのBlockStateプロパティまでは区別しません.対応するアイテムを持たないブロックは直接指定できません.

フィルターモード

モード フィルター設定あり フィルター未設定
指定ブロックのみ破壊 一致するブロックだけ破壊 すべて破壊
指定ブロック以外を破壊 一致しないブロックを破壊 すべて破壊

フィルター未設定は「絞り込みなし」として扱うため,どちらのモードでも通常のメカニカルドリルと同じ挙動になります.

指定ブロック以外を破壊では,対応するアイテムを持たないブロックも破壊対象になります.フィルターに載せられないブロックは除外指定できないためです.指定ブロックのみ破壊では逆に,そうしたブロックは破壊しません.

どちらのモードでもCreate標準の破壊不能ブロック判定は維持します.モードは組み立て前に設定してください.固定設置・移動からくり・列車の衝突事前判定すべてに同じモードが適用されます.

破壊対象外のブロックは破壊しません.列車や移動からくりがそのブロックを物理的に通過できることを保証する機能ではないため,進路を塞ぐ破壊対象外の固体ブロックでは通常どおり衝突または停止する可能性があります.

クリエイティブタブ

Create: Selective Machinery専用タブを追加します.本Modが追加するアイテムは次の2つです.

  • 個別からくり操作盤
  • フィルタードリル

レシピ

  • 個別からくり操作盤:CreateのContraption Controlsを基礎に作成します.
  • フィルタードリル:Mechanical Drill,Brass Sheet,Electron Tubeから作成します.

正確な配置はsrc/main/resources/data/create_selective_machinery/recipe/内のJSONを参照してください.

対象バージョン

Minecraft: 1.21.1
NeoForge: 21.1.219以降の21.1系
Create: 6.0.10 build 280以上,6.1.0未満
Java: 21
Mod: 1.3.0

導入

  1. Minecraft 1.21.1とNeoForge 21.1.219以降の21.1系を用意します.
  2. Create 6.0.10をmodsフォルダへ入れます.FlywheelとPonderはCreateのJARへ同梱されているため,個別に導入する必要はありません.
  3. 本ModのJARを同じmodsフォルダへ入れます.

Createが見つからない場合,本Modは依存関係の不足として読み込まれません.マルチプレイではサーバーとクライアントの両方へ導入してください.

ビルド

JDK 21を使用します.Gradle Wrapperを同梱しているため,clone後に次を実行します.

Linux/macOS:

./gradlew build

Windows:

.\gradlew.bat build

出力JARは次です.

build/libs/create_selective_machinery-1.3.0+mc1.21.1.jar

静的整合性検査だけを実行する場合は次です.

python3 scripts/validate_source.py

GitHub Actionsでは静的検査の後に実際のGradleビルドを行います.

実装上の互換性

個別操作盤の選択座標は操作盤の向きを基準に保存するため,操作盤とActorを一緒に水平方向へ回転して再配置しても関係を維持します.

実行時の個別停止はAbstractContraptionEntity#tickActorsへ統合し,Create標準の種類別停止状態と位置別停止状態をOR合成します.フィルタードリルの移動時判定はContraptionCollider#isCollidingWithWorldの地形衝突事前判定にも適用します.Createレンチへの選択機能はWrenchItem#useOnの先頭で,本Modが処理する場合だけ横取りします.

ライセンス

本リポジトリのコードはApache License 2.0です.詳細はLICENSEを参照してください.Create由来コード・設計の帰属についてはNOTICEを参照してください.Createのアセットファイルは本リポジトリへ再配布せず,インストール済みCreateのリソースIDを参照します.

About

Create addon for Minecraft 1.21.1: individually targeted contraption controls and a filter-driven Selective Drill

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages