Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

將非方塊自訂物品改到其他物品上 #442

Open
bill96012 opened this issue Aug 22, 2024 · 0 comments
Open

將非方塊自訂物品改到其他物品上 #442

bill96012 opened this issue Aug 22, 2024 · 0 comments

Comments

@bill96012
Copy link
Member

TL;DR

自訂物品目前綁在方塊物品上,導致主副手物品的方塊互動行為受到限制,也讓物品模型無法使用半透明材質。這個issue主張應將非方塊自訂物品獨自改放到其他非方塊物品上,提供參考的物品是試煉鑰匙不祥試煉鑰匙或是備案的回生羅盤


WHY?

當時重構自訂物品時順便解決的「基底物品」問題#372,使自訂物品受限於方塊物品的方塊互動行為,導致非方塊自訂物品與原版遊戲中非方塊物品的互動行為不符,還另外造成物品模型無法使用半透明材質的問題。

主副手方塊互動行為

在原版遊戲中,玩家的主和副雙手同時或分別持有方塊物品或非方塊物品並與方塊互動時的行為有所不同,以下透過說明原版遊戲內(1.21.1)的測試來實際感受所謂差異:

  • 當主副手都持 非方塊物品 ,假設主手持斧頭且副手持雪球。對原木方塊使用物品,主手的斧頭動作並用於剝皮,而副手沒有動作;再對泥土方塊使用物品,主手不動作,而副手的雪球動作並擲出。
    • 雙手交換後再次進行測試。在兩項測試中,主手的雪球都動作並擲出,而副手都沒有動作。
  • 當主手持 非方塊物品 且副手持 方塊物品 ,假設主手持斧頭且副手持石磚。在方塊可以被放置的情況下對泥土方塊使用物品,主手沒有動作,而副手的石磚被放置;再試方塊無法被放置的情況下對泥土方塊使用物品,主手沒有動作,而副手也沒有動作。
    • 將兩項測試裡的泥土方塊改為原木方塊後再次進行測試。在兩項測試中,主手的斧頭都動作並用於剝皮,而副手都沒有動作。
  • 當主手持 方塊物品 且副手持 非方塊物品 ,假設主手持石磚且副手持斧頭。在方塊可以被放置的情況下對原木方塊使用物品,主手的石磚被放置,而副手沒有動作;再試方塊無法被放置的情況下對泥土方塊使用物品,主手的石磚沒有被放置,而副手的斧頭也沒有動作。
  • 當主副手都持 方塊物品 ,假設主手持石磚且副手持線。在主副手方塊可以被放置的情況下對泥土方塊使用物品,主手的石磚被放置,而副手沒有動作;再試主手方塊無法被放置的情況下對泥土方塊使用物品,主手的石磚沒有被放置,而副手的線也沒有動作。

從上面說明的測試裡觀察到:

  1. 主手持 非方塊物品 不動作時,可能會使副手動作;
  2. 主手持 方塊物品 不動作時,不會使副手動作。

結論是這兩種物品在主副手上的方塊互動行為不相同,無論其原因或意義為何。
而這就是現在非方塊自訂物品存在的問題。主手的扳手無論有沒有「使用」基底物品的指令方塊,也沒有辦法讓副手的翹棍去拆除,因為主手的方塊物品不會再讓副手可以使用。

HOW?

新增並修改使其互動行為接近原版遊戲的魔法也許可行,但這裡想提出簡單合理且更有可能長久持續的方法。

讓方塊自訂物品維持指令方塊為基底物品,以保證它們可以繼續符合原版遊戲的互動行為。
將非方塊自訂物品的基底物品改用非方塊物品,CustomModelData可以照搬不動,但最重要的問題「用哪個物品」?

這些是篩選基底物品的條件:

  1. 不被原版遊戲體驗的任何方式被消耗或改造(例如:合成、熔爐冶煉、鐵砧或砂輪修復、鍛造台升級)。
  2. 物品本身沒有任何互動功能或生存模式下無法互動。退而求其次,不容易觸發玩家揮手動作或可以由伺服器端阻止揮手。
  3. 可以堆疊。
  4. 不是方塊物品。

看得出來指令方塊依然是目前為止最接近完美的「生存模式下的無用物品」,而且就是完美的方塊自訂物品的基底。好在新物品的出現和物品資料的改動讓這件事還有點機會。

試煉鑰匙/不祥試煉鑰匙

1.21版新增的物品,從試煉中獲得後,與寶庫方塊互動後消耗鑰匙並獲得獎勵。
重點在於寶庫的解鎖條件是由寶庫方塊的資料決定,而不是寫死必須使用試煉鑰匙。也就是說鑰匙本身其實是為了有而有的,它本身並沒有任何功能。如果採用,還是需要解決自訂物品的鑰匙會被拿去和自然生成的寶庫互動的問題。

回生羅盤

1.19版新增的物品,合成獲得,指針會指向玩家最後一次死亡的位置。
如果採用,玩家只要沒有正在使用伺服器資源包就能觀察到羅盤的結果。除此之外沒有其他功能或明顯需要被額外處理的問題。

Item Components

物品資料在1.20.5版被強化,結論來說能使某些原來無從改動的特性變得可改,並且客戶端可以正常地和被改變的物品互動。
只說重點,物品堆疊上限可以透過修改component中的值來改變,使得某些物品就算在正常情況下無法堆疊也能變得可以。這樣即使未來還需要找其他物品也不需要考慮堆疊條件。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant