Minecraft mod制作简易教程(四)——创建一个方块


方块的许多性质都可以和物品如法炮制,关于简单方块这里不加赘述

一、注册一个方块

当我们注册一个方块的时候,我们还会同时注册一个物品,对,就是玩家手里拿的其实是一个ItemBlock。我们需要这样实现:
BlockLoader.java(部分):

@SubscribeEvent
public static void registerBlocks(RegistryEvent.Register< Block> event) {
for(Block block : blocks){
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block),0,new ModelResourceLocation(block.getRegistryName(), “inventory”));
event.getRegistry().register(block);
}
}
@SubscribeEvent
public static void registerItems(RegistryEvent.Register< Item> event) {
for(Block block : blocks){
Item itemBlock = new ItemBlock(block).setRegistryName(block.getRegistryName());
ModelLoader.setCustomModelResourceLocation(itemBlock,0,new ModelResourceLocation(block.getRegistryName(), “inventory”));
event.getRegistry().register(itemBlock);
}
}

可以看到先注册了方块本身,再注册了对应的方块物品。

二、方块的材质与方块状态(初级)

关于模型与方块状态更多更全的教程请前往 https://minecraft-zh.gamepedia.com/模型 了解更多,本贴主要用于入门。
一个物品对应一个json文件,而一个方块需要至少三个。这里以方块Cracked Stone为例,首先是表示方块状态。

什么是方块状态

举例而言,放置一个火把,它可能竖直插在地上,也肯斜插在四个面上,一共有5种状态。一般的方块只有一种状态,可以这样写:
src\main\resources\assets\realmining\blockstates\cracked_stone.json:

{
“variants”: {
“normal”:
{ “model”: “realmining:cracked_stone” }
]
}
}

"model"句指定了这种状态对应的方块模型,对应的文件是:
src\main\resources\assets\realmining\models\block\cracked_stone.json:

{
“parent”: “block/cube_all”,
“textures”: {
“all”: “realmining:blocks/cracked_stone”
}
}

"parent"语句表示这个方块模型继承了cube_all,其主要作用是规定了自动生成物品方块材质的视角;“all”语句定义了方块的六个面都是src\main\resources\assets\realmining\textures\blocks\cracked_stone.png
我们还需要定义它对应的方块物品的模型
src\main\resources\assets\realmining\models\item\cracked_stone.json::

{
“parent”: “realmining:block/cracked_stone”,
“display”: {
“thirdperson”: {
“rotation”: [ 10, -45, 170 ],
“translation”: [ 0, 1.5, -2.75 ],
“scale”: [ 0.375, 0.375, 0.375 ]
}
}
}

其中parent表示这个物品模型由models\block\cracked_stone.json制作而来。

三、方块的材质与方块状态(中级)

我们打开游戏,发现所有的cracked stone都千篇一律,我们希望加入随机性。我们看一下src\main\resources\assets\realmining\blockstates\cracked_stone.json,发现其中有“variants”(变种)选项。参考草方块的blockstate:

{
“variants”: {
“snowy=false”: [
{ “model”: “grass_normal” },
{ “model”: “grass_normal”, “y”: 90 },
{ “model”: “grass_normal”, “y”: 180 },
{ “model”: “grass_normal”, “y”: 270 }
],
“snowy=true”: { “model”: “grass_snowed” }
}
}

其中"y": 90 表示旋转90度,即加载的每一个草方块都是四种旋转状态中随机的一种。但是我想加入更丰富的纹理,我做了四种材质,希望以随机的方式出现。所以我们需要这样修改代码:
src\main\resources\assets\realmining\models\block\cracked_stone.json:

{
“variants”: {
“normal”: [
{ “model”: “realmining:cracked_stone_1” },
{ “model”: “realmining:cracked_stone_2” },
{ “model”: “realmining:cracked_stone_3” },
{ “model”: “realmining:cracked_stone_4” }
]
}
}

然后我要分别写四个block model文件,分别对应四个材质文件。我们还需要指定item model对应哪一个block model
上一张效果图:

四、方块的材质与方块状态(高级)

如果你翻看了wiki中有关模型的介绍,你会了解到模型是由一个或多个长方体组合而成的,每一个都是一个element
现在我要做一个石子方块,由大量的石子(扁平的小长方体)构成
这段代码构建了一个小立方体:

“elements”:[
{
“from”: [ 1, 0, 0 ],
“to”: [ 3, 1, 2 ],
“faces”: {
“up”: { “uv”: [ 0, 0, 2, 2 ], “texture”: “#stones” },
“down”: { “uv”: [ 2, 2, 0, 0 ], “texture”: “#stones” , “cullface”: “down” },
“north”: { “uv”: [ 2, 1, 0, 0 ], “texture”: “#stones” },
“south”: { “uv”: [ 0, 1, 2, 2 ], “texture”: “#stones” },
“west”: { “uv”: [ 1, 0, 2, 2 ], “texture”: “#stones” },
“east”: { “uv”: [ 0, 0, 1, 2 ], “texture”: “#stones” }
}]

其中各个语句的含义详见wiki。事实上,由于一共要做31个element,手输太慢,我不得不写了一个小程序帮我输出代码。
同时我们的blockstate是这样的:

{
“variants”: {
“normal”: [
{ “model”: “realmining:stones” },
{ “model”: “realmining:stones”, “y”: 90 },
{ “model”: “realmining:stones”, “y”: 180 },
{ “model”: “realmining:stones”, “y”: 270 }
]
}
}

这样我们就有了四种方向的石子。
打开游戏看看效果吧(这能大幅增加游戏卡顿!):
上一篇:Minecraft mod制作简易教程(三)——创建一个物品
https://blog.csdn.net/lyh20000420/article/details/83659172
下一篇:Minecraft mod制作简易教程(五)——本地化和国际化
https://blog.csdn.net/lyh20000420/article/details/83683966
回到目录:https://blog.csdn.net/lyh20000420/article/details/83659423

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作一个 Minecraft Mod 需要一些基本的编程知识和一些工具。以下是制作 Minecraft Mod 的基本步骤: 1. 下载并安装 Java 开发工具包(JDK):在你的计算机上安装 JDK,确保使用的是适合你操作系统的版本。 2. 下载并安装 Minecraft Forge:Minecraft Forge 是一个用于创建和加载 Mod 的工具。在官方网站(https://files.minecraftforge.net/)上下载适合你 Minecraft 版本的 Forge 安装程序,并按照其指南进行安装。 3. 创建一个新的 Mod 项目:使用 IDE(集成开发环境)如 Eclipse 或 IntelliJ IDEA 创建一个新的 Java 项目。 4. 添加 Minecraft Forge 到项目:将下载的 Minecraft Forge 的库文件添加到项目的构建路径中。 5. 编写 Mod 代码:使用 Java 编写你的 Mod 代码。你可以使用 Minecraft Forge 提供的 API 来添加新的方块、物品、生物、合成配方等。 6. 编译和导出 Mod:将你的代码编译为可执行的 Mod 文件。这通常是一个 JAR 文件。 7. 将 Mod 安装到 Minecraft:将生成的 Mod 文件复制到你的 Minecraft 安装目录下的 "mods" 文件夹中。 8. 启动 Minecraft 并测试 Mod:启动 Minecraft 游戏,确保你的 Mod 能够正常加载和运行。 请注意,这只是制作 Minecraft Mod 的基本步骤。具体的细节和功能取决于你想要创建的 Mod 的复杂程度和要实现的特定功能。你可能需要进一步学习 Minecraft Forge 的文档和其他教程来深入了解如何开发特定类型的 Mod

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值