>  기사  >  Minecraft 구조가 기존 블록을 덮어씁니다 1.20

Minecraft 구조가 기존 블록을 덮어씁니다 1.20

PHPz
PHPz앞으로
2024-02-22 13:00:09749검색

PHP 편집기 Youzi가 가져온 Java 질문 및 답변 주제는 Minecraft의 기존 블록을 덮고 있는 구조에 대한 귀하의 질문에 자세히 답변해 드립니다. 게임에서 이 기능을 어떻게 효과적으로 조작하고 활용하느냐는 게임 경험과 플레이의 재미에 직접적인 영향을 미칩니다. 이 글의 해석과 지침을 통해 이 기술을 더 잘 익히고 게임에서 더 나은 결과와 경험을 얻는 데 도움이 되기를 바랍니다.

질문 내용

Minecraft Fabric에서 기존 블록과 해당 속성을 수정하는 방법을 온라인에서 찾으려고 노력했지만 찾을 수 있는 것은 새 블록을 만드는 방법뿐입니다. 내가 찾은 모든 버전은 1.20보다 낮습니다.

실제로 기존 블록 속성을 재정의하는 방법을 전혀 찾을 수 없습니다. 덮어쓰기도 작동하지 않습니다.

해결 방법

기본적으로 원하는 작업은 이미 등록된 blockminecraft 인스턴스를 다시 등록하는 것입니다. 하지만 이를 수행하는 방법을 아무도 문서화하지 않은 이유가 있습니다. 그러면 안 됩니다.

마인크래프트에서 청크를 다시 등록하면 특히 모드가 대규모 모드팩에서 사용되는 경우 이상한 문제가 발생할 수 있습니다. 이는 다른 모드 및 심지어 Minecraft 자체와의 호환성과 관련이 있습니다. 이것을 피하는 것이 좋습니다. 너무 많은 문제를 일으키지 않고 특정 블록의 동작을 변경할 수 있는 다른 솔루션도 12가지가 있습니다. 여기에는 다음이 포함되지만 이에 국한되지는 않습니다.

  • 마인크래프트에 내장된 태그 중 하나에 블록을 추가하기만 하면 됩니다. 자바 코드도 필요 없으며 패키지의 json 파일만 있으면 됩니다: https://www.php.cn/link/ff7cc29289db44861ce4b3e5e56fe234. 예를 들어, 이렇게 하면 돌을 삽으로 채굴할 수 있습니다.
  • Fabric API에서 제공하는 콜백 중 하나를 사용하여 처리하려는 특정 이벤트를 수신합니다. 예를 들어, 플레이어가 잔디 블록을 클릭하면 잔디 블록을 흙으로 바꿀 수 있습니다.
  • 블록의 사용자 정의 상태 속성 역할을 할 수 있는 소위 "확장 블록"을 생성합니다. 즉. 최대 연령에 minecraft:stone 一个 age 属性(无论出于何种原因可能有用),请将 minecraft:stone 视为 age=0 并使用 age 创建自定义块(例如 modid:ged_stone) zqb 属性从 1를 부여하려면 연령 범위를 확장하세요.

또 다른 보다 일반적인 접근 방식은 믹스인을 block 클래스 또는 적절한 하위 클래스로 구축하고 다음과 같은 작업을 수행하여 특정 블록(이 경우 돌)을 대상으로 하는 것입니다.

으아악

그러나 정말로 블록 인스턴스를 완전히 교체하고 싶다면 다음 제안을 따르세요. 믹스인 주입을 사용하여 registry.register 특정 블록 인스턴스를 사용자 정의 블록 인스턴스로 교체하세요.

으아악

하지만 다시 한번 이 해결 방법을 피하세요. 여기에 용이 있습니다.

이 글을 쓰는 시점에는 수정된 환경이 없기 때문에 코드 조각을 테스트하지 않았습니다. 작동하려면 조정이 필요할 수 있습니다. 또한 mojang의 공식 매핑을 사용했는데, Yarn 매핑을 사용하면 이름이 다를 수 있습니다. 예를 들어 resourcelocation 在 yarn 中被命名为 identifier.

이 정보가 도움이 되기를 바랍니다. 즐거운 코딩하세요!

위 내용은 Minecraft 구조가 기존 블록을 덮어씁니다 1.20의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제