ホームページ  >  記事  >  Minecraft の構造が既存のブロックを上書きする 1.20

Minecraft の構造が既存のブロックを上書きする 1.20

PHPz
PHPz転載
2024-02-22 13:00:09738ブラウズ

php エディターの Youzi が提供する Java Q&A トピックでは、Minecraft の既存のブロックを覆う構造に関する質問に対する詳細な回答が得られます。ゲームにおいては、この機能をいかに効果的に操作・活用できるかが、ゲーム体験やプレイの楽しさに直結します。この記事の解釈とガイダンスを通じて、このテクニックをよりよく習得し、ゲームでより良い結果と経験を達成するのに役立つことを願っています。

質問内容

Minecraft Fabricで既存のブロックとそのプロパティを変更する方法をネットで探しているのですが、新しいブロックを作成する方法しか見つかりません。 私が見つけたバージョンはすべて 1.20 未満です。

実際には、既存のブロック プロパティをオーバーライドする方法がまったく見つかりません。上書きも機能しません。

回避策

あなたが本質的にやりたいことは、すでに登録されているminecraftのblockインスタンスを再登録することです。しかし、これを行う方法を誰も文書化していないのには理由があります。そうすべきではありません

Minecraft でチャンクを再登録すると、特に MOD が大規模な MODPack で使用される場合、奇妙な問題が発生する可能性があります。これは他の MOD や Minecraft 自体との互換性にも関係します。これは避けたほうが良いでしょう。あまり問題を引き起こすことなく特定のブロックの動作を変更できるソリューションは他にも多数あります。これらには以下が含まれますが、これらに限定されません:

  • minecraft の組み込みタグの 1 つにブロックを追加するだけです。Java コードも必要なく、パッケージの json ファイルだけが必要です: https://www.php.cn/link/ff7cc29289db44861ce4b3e5e56fe234 。これにより、たとえばシャベルで石を採掘できるようになります。
  • ファブリック API によって提供されるコールバックの 1 つを使用して、処理する特定のイベントをリッスンします。たとえば、プレイヤーが草ブロックをクリックすると、草ブロックを土に変えることができます。
  • ブロックのカスタム状態属性として機能する、いわゆる「拡張ブロック」を作成します。つまり。 minecraft:stoneage 属性 (何らかの理由で役立つ可能性があります) を与えたい場合は、minecraft:stoneage =0 として扱います。 そして、age を使用してカスタム ブロック (例: modid:ged_stone) を作成します。zqb 属性は、年齢範囲を 1 から任意の最大年齢まで拡張します。

もう 1 つのより一般的なアプローチは、ミックスインを block クラスまたは適切なサブクラスに構築し、次のようなことを実行して特定のブロック (この場合は石) をターゲットにすることです。

リーリー

ただし、ブロック インスタンスを本当に完全に置き換えたい場合は、次の提案があります。ミックスイン インジェクション registry.register を使用して、特定のブロック インスタンスをカスタム ブロック インスタンスに置き換えます。 リーリー

ただし、この解決策も避けてください。ここにはドラゴンがいます。

この記事の執筆時点では変更された環境が手元になかったため、コード スニペットはテストしていないことに注意してください。動作するには調整が必要な場合があります。 また、mojang の公式マッピングを使用しましたが、yarn マッピングを使用する場合は、名前が異なる可能性があります。たとえば、

resourcelocation は、yarn では identifier という名前になります。

これがお役に立てば幸いです。コーディングを楽しんでください!

以上がMinecraft の構造が既存のブロックを上書きする 1.20の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。