php小編柚子帶來的java問答專題將為您詳細解答Minecraft中關於結構覆蓋現有塊的問題。在遊戲中,如何有效地操作和利用這項功能,將直接影響遊戲體驗和玩法樂趣。透過本文的解讀與指導,希望能幫助您更能掌握這項技巧,從而在遊戲中取得更好的成績和體驗。
問題內容
我一直在嘗試在線尋找一種方法來修改 Minecraft Fabric 中的現有區塊及其屬性,但我所能找到的只是如何建立新區塊。 我找到的任何版本都低於 1.20。
我實際上根本找不到覆蓋現有區塊屬性的方法。覆蓋也不起作用
解決方法
您本質上想要做的是重新註冊 minecraft 已經註冊的 block
實例。但沒有人記錄如何做到這一點是有原因的:你不應該。
在 minecraft 中重新註冊區塊可能會導致奇怪的問題,尤其是當您的模組將在大型模組包中使用時。這與其他模組甚至《我的世界》本身的兼容性有關。您最好希望避免這種情況。還有十幾種其他解決方案可以改變特定區塊的行為,而不會造成太多問題。它們包括但不限於:
- 只需將您的方塊添加到minecraft 的內建標籤之一- 您甚至不需要java 程式碼,只需要資料包中的json 檔案:https://www.php.cn/link/ff7cc29289db44861ce4b3e5e56fe234 。例如,這可以使石頭可以用鏟子開採。
- 使用 fabric api 提供的回呼之一來偵聽您想要處理的某些事件。例如,當玩家點擊它時,它可以將草塊變成泥土。
- 建立一個所謂的“擴充塊”,它可以充當區塊的自訂狀態屬性。 ie。如果您想給
minecraft:stone
一個age
屬性(無論出於何種原因可能有用),請將minecraft:stone
視為age =0
並使用age
建立自訂區塊(例如modid:ged_stone
) zqb 屬性從1
到任何最大年齡擴大年齡範圍。
另一種更通用的方法是將mixin 建置到block
類別或適當的子類別中,並執行類似以下操作來定位特定區塊(在本例中為石頭):
block self = (block) (object) this; if (builtinregistries.block.getkey(self).equals(new resourcelocation("stone"))) { // do something only if this block is stone }
但是,如果您真的真的想完全取代區塊實例,這裡有一個建議:使用 mixin 注入 registry.register
,用自訂區塊實例取代特定區塊實例:
@Mixin(Registry.class) public class RegistryMixin { @Inject( // You may need to specify the correct signature after the method // name because there are two `register` methods. method="register", at=@At("HEAD"), cancelable=true ) // Note that this is a generic method, in Mixin you'll have to use // Object to replace type parameters private static void onRegister(Registry reg, ResourceLocation id, Object value, CallbackInfoReturnable<Object> cir) { if (reg != BuiltInRegistries.BLOCK) return; if (!id.toString().equals("minecraft:stone")) return; // Now that you've filtered out the minecraft:stone block, // you can re-register it Block myCustomBlock = new Block(.......); ((WritableRegistry) reg).register(id, myCustomBlock); cir.setReturnValue(myCustomBlock); } }
但再次嘗試避免這種解決方案。這裡有龍。
請注意,我尚未測試任何程式碼片段,因為在撰寫本文時我手邊沒有修改環境。它可能需要調整才能工作。
另外,我使用了 mojang 的官方映射,如果您使用 yarn 映射,名稱可能會有所不同。例如,resourcelocation
在 yarn 中被命名為 identifier
。
我希望這有幫助。快樂編碼!
以上是Minecraft 結構覆蓋現有塊 1.20的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。