NeoForge-1.20.4Mod开发教程之食物

本篇教程参考为Flandre芙兰NeoForge1.20.4Mod开发的视频,这篇教程是我边学边总结的,与其说是教程更像我的学习笔记,如有不清楚的地方,大家可以在评论区提问。在我力所能及的范围内,我都会解答的。

创建Cheery类

public class Cheery extends Item {
     public Cheery() {
         super(new Properties().food(FOOD_PROPERTIES));
    }
 ​
     private static final FoodProperties FOOD_PROPERTIES =new FoodProperties.Builder()
            .saturationMod(2)//饱和度
            .nutrition(4)//营养值
            .effect(()-> new MobEffectInstance(MobEffects.MOVEMENT_SPEED,10*20,1),1)//给予玩家10秒速度1增益,10*20的20是指20tick。第一个1是效果增强一级,第二个1指效果生效概率
            .build();
 }

数据生成的写法

this.basicItem(ModItems.CHEERY.get());

类介绍

FoodProperties类

FoodProperties 是 Minecraft 中用于定义食物的属性的类,包含食物的营养值、饱腹度、附加效果等。通过这个类,你可以自定义食物在食用时的行为,例如恢复生命、增加饱腹度、触发特殊效果等。

下面是类中的五个属性

nutrition:食物的营养值,决定食物恢复多少饥饿值

saturationModifier:食物的饱和度

isMeat:布尔值,表示食物是不是肉类

canAlwaysEat:布尔值,表示食物在饥饿条满的情况下是否可以食用

fastFood:布尔值,表示食物是否可以快速食用

effects:列表,包含食物给予玩家的效果

Builder

BuilderFoodPropertics.Builder 是一个内部静态类,用于构建FoodProperties实例。它提供了一系列的链式方法来设置食物的属性。 nutrition(int pNutrition):设置食物的营养值

saturationMod(float pSaturationModifier):设置食物的饱和度修改值

meat():将食物设置为肉类。 alwaysEat():设置玩家总是可以食用该食物

fast:设置食物为快速食用

effect(java.util.function.Supplier effectin, float probability):添加食物可能给予玩家的效果及其概率

effect(MobEffectlnstance pEffect, float pProbability):已弃用的方法,用于添加食物可能给予玩家的效果及其概率

build():使用设置的食物属性创建并返回一个FoodProperties实例

© 版权声明
THE END
喜欢就支持一下吧
点赞4赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容