Minecraft 1.16.5mod开发 (2.总线概念和第一个物品)

总线

        在编写代码之前,介绍一下事件系统。

所谓事件就是我们游戏中所作出的动作、附魔、达成条件替换、特殊效果等一系列都属于事件,但是我们所编写的事件系统不是Minecraft自带的,是Forge实现的。

如果要详细了解可以查看Boson 1.16其中还牵扯总线的概念与事件处理器。

在编写事件时有两种方式 一种是实例方式,一种是静态的方式。

public class MyForgeEventHandler {
    @SubscribeEvent
    public void pickupItem(EntityItemPickupEvent event) {
        System.out.println("666!");
    }
}

@SubscribeEvent注解,这个注解的作用就是标记下方的pickupItem 方法是一个事件处理器

所监听的事件是由其中的参数控制

EntityItemPickupEvent,说明监听的是实体捡起物品这个事件。

当然写完只会还需要注册到总线中(Forge总线和Mod总线)

Forge总线负责的就是除了生命周期事件外的所有事件

命令:MinecraftForge.EVENT_BUS.register()

Mod总线主要负责游戏的生命周期事件,也就是初始化过程的事件

命令:FMLJavaModLoadingContext.get().getModEventBus().register()

所以这个例子我们就要注册到Forge总线中(可以在初始建立的java类中写入,直接当成所有总线的类)

FMLJavaModLoadingContext.get().getModEventBus().register()

如果都采取实例方法的注册会变得非常麻烦,这时就可以使用Forge提供的静态方法

在类上加入

@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)注解

其中最后的MOD为Mod总线 Forge为Forge总线。

题外话:我们可以把modid封装在使用时直接调用

@Mod(类名.MODID)
public class 类名{
    public static final String MODID = "自己的MODID";
}

将自己的modid封装一下在调用的时候直接调用类

物品

        明确具体步骤 创建自己物品的类继承原版中的物品--》》实例化物品--》》注册物品

1.首先创建两个平级的包 存放我们的物品等和总线各种实例化(名字看自己)

这里就用我自己的来进行介绍    在common中再次创建item包存放我们所有item类后创建咱们的一个物品类并且让这个类继承原版的Item

public class testItem extends Item {
    public testItem(Properties p_i48487_1_) {
        super(p_i48487_1_);
    }
}

非常EZ,然后我们要重写一下这个构造方法(也可以在实例时写入属于的位置和属性)

public class testItem extends Item {
    public testItem() {
        super(new Properties().group(ItemGroup.MATERIALS));
    }
}

 其中Properties方法就是确定这个物品的属性和属于创造中的哪一个物品栏(MATERIALS就是杂物的意思)

之后,我们去实例和注册这个物品

在core包中 建立init包存放我们的注册和实例 建立ItemInit类

public class ItemInit {
    //注册对象
    public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, BlitzMod.MODID);
    public static final RegistryObject<testItem> TEST_ITEM = ITEMS.register("test_item", testItem::new);
}

第一句就是注册我们这个类中的全部内容

DeferredRegister<Item>这个泛型表明我们需要注册的东西是物品

DeferredRegister.create(ForgeRegistries.ITEMS, BlitzMod.MOD_ID)创建了一个实例,这个类里有两个参数ForgeRegistries.ITEMS代表了我们要注册的是物品,第二个参数填入的应该是你的modId

第二句就是实例化我们的物品

也是通过RegistryObject<testItem>泛型 其中存放我们的物品 其中参数第一个为【注册名】,第二个为【注册对象的实例】 具体为什么只能用小写看文献就对了^^具体我也不清楚。

这样我们就完成了实例和注册,就差最后的实现声明。

上文提到过注册总线 我们已经将实例与注册准备好接下来就是将它放入我们的MOD总线中

public BlitzMod(){
    ItemInit.ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus());
}

(写到Mod注解下类的实例方法中)。

此时我们开启游戏

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Minecraft 1.16.5 模组开发需要使用 Minecraft Forge 来进行。Forge 是一个 Minecraft 游戏引擎的模组加载器,可以帮助开发者在游戏中添加新的物品、方块、生物等内容。要使用 Forge 开发模组,需要了解 Java 编程语言,并且要下载 Forge 的开发工具(包括 Forge 的安装程序和样例代码)。开发完成后,可以将模组发布到 Minecraft 模组网站上,供其他玩家下载和使用。 ### 回答2: Minecraft是一款驰名世界的沙盒游戏,而模组是为了丰富游戏内容而产生的。在1.16.5版本中,模组开发者可以借助许多已有的API来快速创建自己的模组。 首先,1.16.5版本加入了很多新特性,如新的生物、新的方块等等,模组开发者可以充分利用这些新特性来增加游戏的趣味性。例如,可以添加新的生物,创造新的剧情,让玩家们更有代入感。 其次,Minecraft 1.16.5提供了许多API给模组开发者使用,协助他们快速制作模组。比如说,模组开发者可以使用SpongeAPI来创建新的方块和物品,并且可以添加新的动画和粒子效果等,让游戏更加生动有趣。 最后,模组的开发需要一定的编程基础,开发者需要掌握Java语言Minecraft API和模组API等知识,以便在代码层面上实现模组和游戏的无缝结合。同时,模组开发过程中需要注重游戏的稳定性,保证模组运行不会影响游戏的正常运行。 总之,Minecraft 1.16.5模组开发是一个挑战和乐趣并存的过程,只有具备一定相关知识和经验的开发者才能顺利完成。但是,对于喜欢创造和探索的玩家来说,模组开发也是一项极具意义的工作。 ### 回答3: Minecraft是一款备受欢迎的沙盒游戏,为了让玩家们更好地玩耍,游戏开发者提供了一些简单的功能,如基本方块和物品,但这远远不够激动人心。为了让游戏更有趣,玩家们可以使用模组,这些模组可以添加新的方块、武器、生物等等,这样就可以使游戏变得更加丰富多彩,也能满足不同的玩家需求。 对于当前最新的Minecraft 1.16.5版本,模组开发者需要先了解模组的基础知识。首先,模组是用Java编写的,并且需要与Minecraft游戏的Java代码进行交互。因此,开发者需要熟悉Java编程语言,并掌握如何使用Java开发工具,如Eclipse或IntelliJ IDEA。 其次,开发者需要了解Minecraft游戏代码的结构和API(Application Programming Interface)的使用。Minecraft提供了一组API,即Minecraft Forge,其中包括用于新物品、方块、生物、技能等的修改API,以及用于添加自定义游戏逻辑或玩家交互的事件API。开发者需要熟悉这些API的使用和结构,以便在模组开发过程中使用它们。 第三,开发者需要有良好的设计思路和实现能力。他们需要为自己的模组设计合理的玩法,考虑玩家的需求和玩法体验,同时也要注意与其他模组的兼容性和与Minecraft游戏的整体和谐性。 最后,在完成模组开发后,开发者需要对模组进行测试和调试,以确保模组的稳定性和能够良好地与其他模组或Minecraft游戏兼容。 总之,Minecraft模组开发需要开发者拥有良好的Java编程基础、对Minecraft游戏代码结构和API的了解,以及良好的设计思路和实现能力,它是一项非常有趣的任务,可以满足玩家们的不同需求,同时也为Minecraft游戏增加了更多的乐趣。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值