User Tools

Site Tools


Sidebar

설치

기초

고급

아이템

블록과 블록 엔티티

액채

엔티티

세계 생성

레시피 타입

기타

이벤트

믹스인

다이네믹 데이터 생성

Minecraft 1.15 튜토리얼

Minecraft 1.14 튜토리얼

기록

ko_kr:tutorial:terms

코딩 규칙과 용어 배우기

Fabric 모딩을 시작하기 전에, 앞으로 나올 용어들에 대해 이해할 필요가 있습니다. 패키지 구조, modid의 명명 등 기본적인 규칙을 알아두는 것 또한 좋습니다. 시작하기에 앞서 이 것들을 알게되면 튜토리얼을 이해하고 필요할 때 더 나은 질문을 할 수 있도록 도와줄 겁니다.

Mod ID

문서에서 Mod ID, 혹은 코드 내부에 modid라는 용어가 자주 언급될 겁니다. Mod ID는 “모드 식별자”를 의미하며, 여러분의 모드를 다른 모드들과 구분하는 문자열입니다. Mod ID는 일반적으로 같은 이름의 identifier namespaces와 연관되어 있습니다. 때문에, 같은 규칙을 따라야합니다. Mod ID는 알파벳 소문자a-z, 숫자0-9, 특수문자 _-로만 이름 지어야 합니다. 예를 들어, 마인크래프트는 기본적으로 minecraft라는 이름을 사용합니다. 추가로, Mod ID는 적어도 두 글자 이상이어야 합니다.

Mod ID는 모드 이름을 짧고 간단하게 바꾼 것이지만, 쉽게 알아볼 수 있어야하고 다른 모드들과 겹쳐서는 안 됩니다. “My Project–“라는 프로젝트는 myproject. my_project로 이름 붙일 수 있습니다. 일부 경우 my-project라고 이름 붙일 수도 있겠지만, 대쉬(-)를 Mod ID에 포함시키는 것은 별로 추천드리지 않습니다.[예시 필요] 모드는 아이템과 블럭을 Mod ID를 registry namespace로 활용해 등록할 것입니다.

초보자를 위한 튜토리얼에는 아이템이나 블럭을 등록하기 위해 modid라는 변수명을 사용할 것이고, 이들을 템플릿으로 활용해도 좋습니다. 테스트를 위해서라면 바꾸지 않아도 좋지만, 여러분들이 만든 모드를 배포하고자 할 때는 이 Mod ID를 바꿔야한다는 걸 잊지 마세요.

태그

태그는 블럭, 아이템, 액체와 같이 비슷한 속성을 가진 것들의 그룹입니다. 예를 들어, minecraft:saplings는 모든 종류의 묘목을 포함합니다. 여러분들의 모드에 어떤 태그가 들어가야할 지 알고 싶다면, 여기를 참조하세요.

태그의 종류에 대해 알아보고 싶다면 마인크래프트 위키를 참조하세요.

Entry Points(main 함수)와 초기화(Initializers)

Fabric Loader는 fabric.mod.json을 통해 모드를 탐지하고 실행시킵니다.

어떤 모드든, ModInitializer, ClientInitializer, ServerInitializer 중 적어도 하나의 Initializer 클래스를 포함해야합니다. 이 인터페이스들은 net.fabricmc.api 패키지에 있습니다. Initializer들을 변경하거나 추가하고자 하면, fabric.mod.json을 수정해야 합니다. 해당 파일에서 entrypoint 부분을 찾은 뒤, 원하시는 대로 수정하시면 됩니다. main 부분은 모드 Initializer를, client 부분은 클라이언트 모드 Initializer를, server 부분은 서버 모드 Initializer를 적으면 됩니다.

{
  [...]
  "entrypoints": {
    "main": [
      "net.fabricmc.ExampleMod"
    ],
    "client": [
      "net.fabricmc.ExampleClientMod"
    ]
  }
  [...]
}

모드 Initializer 인터페이스를 상속 받으면, onInitializing() 메소드를 선언해야 합니다.(클라이언트의 경우 onInitializeClient(), 서버의 경우 onInitializeServer()) 그 메소드 내부에 여러분의 코드를 적으면 됩니다.

또한, initializers라는 부분도 있습니다.

Maven Group & 패키지 명

Oracle's Java documetation에 따르면, 그것들은 모두 클래스 이름이나 인터페이스 이름과 겹쳐서는 안 되며, 소문자로 적혀야만 합니다. 여러분의 도메인 이름을 거꾸로 한 것이 주로 사용됩니다. 예를 들어, 패키지명을 com.github.myusername로 명명할 수 있습니다. 자세한 사항은 https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html 을 참조하세요.

ko_kr/tutorial/terms.txt · Last modified: 2022/01/09 11:31 (external edit)