Minecraft 1.14.4 Forge Mod의 작성 그 3 【무기능 아이템의 추가】

소개



크래프트의 소재가 되는 무기능 아이템을 추가해 봅니다.


참고
Minecraft Modding Tutorial for MC 1.14/1.14.3 - Basic Items

💻 개발 환경



여기서 환경은 다음과 같이 합니다.
  • Windows 10
  • JDK 8u211
  • Minecraft 1.14.4
  • Minecraft Forge 1.14.4 (28.1.0)
  • IntelliJ IDEA 2019.1.4

  • 패키지 만들기



    아이템의 선언은 메인 클래스외의 클래스로 하려고 합니다.
    앞으로 블록을 선언하기도 하기 때문에, 그들을 정리하는 패키지를 작성해 둡니다.

    또한 항목을 추가할 때 필요한 lang , models/item , textures/items 폴더도 만들어 둡니다.
    폴더명의 단수, 복수형에는 주의해 주세요.
    └─src
        └─main
            ├─java
            │  └─jp
            │      └─yuyu
            │          └─biwako_mod
            │              │  BiwakoMod.java
            │              │
            │              └─*lists
            │                      *ItemList.java
            │
            └─resources
                │  logo.png
                │  pack.mcmeta
                │
                ├─assets
                │  └─biwako_mod
                │      ├─*lang
                │      ├─*models
                │      │  └─*item
                │      └─*textures
                │          └─*items
                └─META-INF
                        mods.toml
    

    항목 선언



    만든 list 폴더에 ItemList.java를 만들고 항목 선언만 설명합니다.
    비와코 잉곳, 약어 琵ンゴット를 추가하려고합니다. (나니 솔레)

    ItemList.java
    package jp.yuyu.biwako_mod.lists;
    
    import net.minecraft.item.Item;
    
    public class ItemList {
        public static Item BiwakoIngot;
    }
    

    아이템 등록



    우선, RegistryEvents 클래스내에 아이템의 등록용 메소드를 기술합니다.
    그 중에서 Item 클래스의 인스턴스를 만들고 등록합니다.group(ItemGroup.MISC) 에서 광고 소재 탭 지정,setRegistryName(new ResourceLocation(MOD_ID, "biwako_ingot")) 에서 항목 ID 이름을 지정합니다.
    아이템 ID명의 알파벳은 모두 소문자가 아니면 Forge가 에러를 토합니다

    BiwakoMod.java
        @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
        public static class RegistryEvents {
            @SubscribeEvent
            public static void onItemsRegistry(final RegistryEvent.Register<Item> itemRegistryEvent) {
                LOGGER.info("HELLO from Register Item");
                itemRegistryEvent.getRegistry().registerAll(
                        ItemList.BiwakoIngot = new Item(new Item.Properties().group(ItemGroup.MISC))
                                .setRegistryName(new ResourceLocation(MOD_ID, "biwako_ingot"))
                );
           }
    
            @SubscribeEvent
            public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
                LOGGER.info("HELLO from Register Block");
            }
        }
    

    번역 파일


    アイテムID名 에 대한 아이템명을 언어별로 기술해 둡니다.
    일본어용 파일명은 ja_jp.json , 영어(US)는 en_us.json 라는 규칙이 있습니다.

    파일을 src/main/resources/assets/biwako_mod/lang 폴더에 만듭니다.

    쓰는 방법은 item.MOD_ID.アイテムID名": "アイテム名" 라는 형태.

    en_us.json
    {
        "item.biwako_mod.biwako_ingot":  "Biwako Ingot"
    }
    

    ko_kr.json
    {
        "item.biwako_mod.biwako_ingot":  "琵ンゴット"
    }
    

    모델 파일



    텍스처를 적용하는 방법을 모델 파일에 지정합니다.
    json 파일은 src/main/resources/assets/biwako_mod/models/item 폴더에setRegistryNameで登録した名前.json 의 형태로 배치합니다.

    제 경우에는 biwako_ingot.json 를 배치합니다.
    대부분의 경우, 변경하는 것은 layer0 의 값만으로, MOD_ID:items/TEXTURE_FILE_NAME 의 형태로 씁니다.
    TEXTURE_FILE_NAMEbiwako_ingot.png 라는 이미지를 준비했다면,
    확장자 이외의 부분의 biwako_ingot 가 됩니다.

    biwako_ingot.json
    {
        "parent": "item/generated",
        "textures": {
            "layer0": "biwako_mod:items/biwako_ingot"
        }
    }
    

    텍스처 파일



    텍스처 파일은 src/main/resources/assets/biwako_mod/textures/items 폴더에 배치됩니다.
    제 경우에는 biwako_ingot.png 를 배치합니다.


                ├─assets
                │  └─biwako_mod
                │      ├─lang
                │      │      en_us.json
                │      │      ja_jp.json
                │      │
                │      ├─models
                │      │  └─item
                │      │          biwako_ingot.json
                │      │
                │      └─textures
                │          └─items
                │                  biwako_ingot.png
    

    Minecraft 시작



    영어





    일본어





    Github 에서 프로젝트를 게시하고 있습니다.

    좋은 웹페이지 즐겨찾기