Minecraft Fabric 教程 #2 添加物品


首發於Enaium的個人博客


創建物品

public class ExampleMod implements ModInitializer
{
    private static final Item END_HEART = new Item(new Item.Settings().group(ItemGroup.COMBAT).maxCount(32));
    [...]
}

ItemGroup.COMBAT //分類為COMBAT

maxCount(32) //一組最大堆疊數 一組最大只能疊32個物品

注冊物品

    public class ExampleMod implements ModInitializer
    {
        private static final Item END_HEART = new Item(new Item.Settings().group(ItemGroup.COMBAT).maxCount(32));
     
        @Override
        public void onInitialize()
        {
            Registry.register(Registry.ITEM, new Identifier("endarmor", "end_heart"), END_HEART);
        } 
    }

Registry.ITEM //類別是物品

new Identifier("endarmor", "end_heart") //第一個參數是MOD ID 第二個參數是 物品的名字

END_HEART //要注冊的物品的變量名

運行看看

發現是一個紫色方塊 而且 名字是 item.endarmor.end_heart 紫色方塊是沒用紋理(材質)

接下來要添加紋理
需要的文件

Item model: .../resources/assets/endarmor/models/item/end_heart.json
Item texture: .../resources/assets/endarmor/textures/item/end_heart.png

end_heart.json 內容

{
  "parent": "item/generated",
  "textures": {
    "layer0": "endarmor:item/end_heart"
  }
}

end_heart.png 就是紋理

end_heart.png

2-1

創建物品類

    public EndHeart(Settings settings) {
        super(settings);
    }

這是一個使用物品然后發出聲音的例子

public class FabricItem extends Item
{
    public FabricItem(Settings settings)
    {
        super(settings);
    }
 
    @Override
    public TypedActionResult<ItemStack> use(World world, PlayerEntity playerEntity, Hand hand)
    {
        playerEntity.playSound(SoundEvents.BLOCK_WOOL_BREAK, 1.0F, 1.0F);
        return new TypedActionResult<>(ActionResult.SUCCESS, playerEntity.getStackInHand(hand));
    }
}

替換

private static final EndHeart END_HEART = new EndHeart(new Item.Settings().group(ItemGroup.COMBAT).maxCount(32));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM