我的世界1.20.1forge模组开发(8)——自定义实体、AI

在第五节我们讲了怎么新建一个实体,但是那是最基本的教程,这期我们来讲讲怎么新建一个雪怪类继承自monster类,然后有一些自定义的行为AI。

和第五期不同的是,构造函数必须这么写:

    public SnowMonster(EntityType<? extends Monster> type, Level level) {
        super(type, level);
    }

生物属性

    public static AttributeSupplier.Builder createAttributes() {
        return Monster.createMonsterAttributes()
                .add(Attributes.MAX_HEALTH, 50.0)
                .add(Attributes.MOVEMENT_SPEED, 0.25)
                .add(Attributes.ATTACK_DAMAGE, 2.0)
                .add(Attributes.FOLLOW_RANGE, 5.0);
    }

代码解释: 

这段代码是一个静态方法,返回一个AttributeSupplier.Builder对象。该方法首先调用Monster.createMonsterAttribute

在《我的世界》(Minecraft)1.20.1版本中使用Forge模组开发时,自定义一本模型书以及添加Geckolib动画通常需要一定的编程知识,特别是对 Forge Modding API 和 Minecraft 的Item、Block系统有深入理解。 首先,你需要创建一个新的Book Item: ```java // 定义自定义书籍类 public class CustomBook extends Book { private String openAnimation = "your_open_animation"; private String closeAnimation = "your_close_animation"; // 构造函数可以包含动画数据 public CustomBook(Material material, int damage) { super(material, new ItemStack(this, 1, damage)); } @Override protected void registerModel() { // 注册模型 ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(Registry.ITEMS.get登记ID(this), "inventory")); } // 定义方法播放动画 public void playAnimation(String animationName) { if (animationName.equals(openAnimation)) { // 使用Geckolib或者其他支持的API播放open动画 Geckolib.playAnimation(animationName); } else if (animationName.equals(closeAnimation)) { // 播放close动画 Geckolib.playAnimation(animationName); } } } ``` 为了实现在打开书本时播放`openAnimation`,关闭书本时播放`closeAnimation`,你可以在相关的事件处理器如右键点击或特定交互触发时调用`playAnimation`方法: ```java @SubscribeEvent public void onPlayerInteract(PlayerInteractEvent event) { if (event.getAction().equals(Action.RIGHT_CLICK_AIR) && event.getItemStack().getItem() instanceof CustomBook) { CustomBook book = (CustomBook) event.getItemStack().getItem(); book.playAnimation(event.getAction() == Action.RIGHT_CLICK_BLOCK ? openAnimation : closeAnimation); } } ``` 请注意,以上代码示例并未实际提供Geckolib的详细导入和使用,因为这取决于你是否已经在项目中集成并正确配置了它。Geckolib是一个用于在游戏中添加动画的库,你需要按照其官方文档来引入和使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lemon_sjdk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值