Minecraft 1.14.4 Forge Mod의 작성 그 4 【블록의 추가】

소개



블록을 추가해 봅니다.


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

💻 개발 환경



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

  • 블록 선언



    이전과 마찬가지로 list 폴더에 BlockList.java를 만들고 블록 선언만 설명합니다.
    비와코 블록, 약어 비와 자물쇠를 추가하려고합니다. (나니 솔레)

    BiwakoBlock.java
    package jp.yuyu.biwako_mod.lists;
    
    import net.minecraft.block.Block;
    
    public class BlockList {
        public static Block BiwakoBlock;
    }
    

    블록 등록



    블록의 등록과 동시에 파라미터의 지정도 실시합니다.
    이번 블록에는 Material.IRON 를 지정합니다만, 이것은
  • 매핑의 색상 (MaterialColor.IRON)
  • 파괴에 도구가 필요

  • 가 지정된 Material입니다. 다른 속성이 있으며,
  • 블록이 불타는지 여부
  • 블록이 피스톤 등으로 눌릴 수 있는지 여부
  • 블록이 눈이나 잎처럼 반투명한지

  • 등을 지정한 Material을 자작할 수도 있습니다.

    자세한 것은 Basic blocks - Minecraft Modding Wiki ,net.minecraft.block.material.Material.java 에 쓰여져 있습니다.
    hardness 는 채굴 시 블록의 경도, Resistance 는 블록의 폭발 저항입니다.lightValue는 0이 아닌 때 광원으로 작동한다. 아마 값의 범위는 0~15일 것이다.sound 는 블록 파괴시에 재생되는 소리를 지정할 수 있다.

    BiwakoMod.java
            @SubscribeEvent
            public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
                LOGGER.info("HELLO from Register Block");
                blockRegistryEvent.getRegistry().registerAll(
                        BlockList.BiwakoBlock = new Block(Block.Properties.create(Material.IRON)
                                .hardnessAndResistance(2.0f, 3.0f)
                                .lightValue(5)
                                .sound(SoundType.METAL))
                                .setRegistryName(new ResourceLocation(MOD_ID, "biwako_block"))
                );
            }
    

    항목 선언



    블록은 블록으로 존재하는 것은 당연하지만 아이템으로도 존재하기 때문에
    마찬가지로 등록해야 합니다.

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

    아이템 등록



    블록의 경우 BlockItem 클래스의 인스턴스를 등록합니다.
    인수는 해당 블록 유형의 멤버인 광고 소재 탭의 속성을 전달합니다.

    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")),
                        ItemList.BiwakoBlock = new BlockItem(BlockList.BiwakoBlock, new Item.Properties().group(ItemGroup.MISC))
                                .setRegistryName(BlockList.BiwakoBlock.getRegistryName())
                );
            }
    

    자원



    블록의 경우 세 개의 json 파일을 작성해야합니다.
    이번에는 처음이므로 기본적인 텍스처 블록을 추가합니다.

    폴더 만들기



    다음 세 개의 폴더를 만듭니다./src/main/resources/assets/biwako_mod/blockstates/src/main/resources/assets/biwako_mod/models/block/src/main/resources/assets/biwako_mod/textures/blocks
            └─resources
                │  logo.png
                │  pack.mcmeta
                │
                ├─assets
                │  └─biwako_mod
                │      ├─*blockstates
                │      │      biwako_block.json
                │      │
                │      ├─lang
                │      │      en_us.json
                │      │      ja_jp.json
                │      │
                │      ├─models
                │      │  ├─*block
                │      │  │      biwako_block_model.json
                │      │  │
                │      │  └─item
                │      │          biwako_block.json
                │      │          biwako_ingot.json
                │      │
                │      └─textures
                │          ├─*blocks
                │          │      biwako_block.png
                │          │
                │          └─items
                │                  biwako_ingot.png
    

    블록 모델



    블록의 외형.
    비콘과 같은 복잡한 텍스처도 블록 모델에서 설정하는 것 같습니다.
    RS 램프와 같이 점멸하는 블록은, 점등시와 소등시의 model을 각각 따로 준비해,
    다음 블록 상태에서 상태와 블록 모델을 지정하여 구현합니다.

    이번은 전면 같은 텍스처의 블록으로 합니다.

    텍스처의 배치 장소는/src/main/resources/assets/biwako_mod/textures/blocks/biwako_block.png입니다.



    json 파일은/src/main/resources/assets/biwako_mod/models/block/biwako_block_model.json입니다.

    biwako_block_model.json
    {
        "parent":"block/cube_all",
        "textures":{"all":"biwako_mod:blocks/biwako_block"}
    }
    

    block states



    블록 상태에 맞게 블록 모델을 지정합니다.
    이번은 상태가 1개 밖에 없는 블록으로 하기 때문에, 공란으로 해 둡니다.

    지정하는 모델은 위의 블록 모델에서 만든 json 파일의 이름입니다.

    json 파일은/src/main/resources/assets/biwako_mod/blockstates/biwako_block.json에 배치합니다.

    biwako_block.json
    {
        "variants": {
            "": { "model": "biwako_mod:block/biwako_block_model" }
        }
    }
    

    아이템 모델



    마지막으로 항목의 모델을 설정합니다.
    블록의 모델과 같기 때문에, 그것 (json 파일명)을 지정합니다.

    json 파일은/src/main/resources/assets/biwako_mod/models/item/biwako_block.json에 배치합니다.

    biwako_block.json
    {
        "parent":"biwako_mod:block/biwako_block_model"
    }
    

    번역 파일



    en_us.json
    {
        "item.biwako_mod.biwako_ingot":  "Biwako Ingot",
        "block.biwako_mod.biwako_block": "Biwako Block"
    }
    

    ko_kr.json
    {
        "item.biwako_mod.biwako_ingot": "琵ンゴット",
        "block.biwako_mod.biwako_block": "琵ロック"
    }
    

    Minecraft 시작





    조금 빛나는 것을 알 수 있습니다.

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

    좋은 웹페이지 즐겨찾기