前言[/Size]
[spoiler]此生不悔入mc,来世还做方块人
在我的世界里,方块无处不在。而方块也有不同的类型,但如果你需要或想要自制一个方块,可以观看此贴[/spoiler] 1.预习[/Size]
你可以点这下载示意模组与源代码压缩包 ,让你更快明白此教程。同时,往下滑到底找到第一张图片,里面的思维导图能让你明白
模组结构。 2.框架[/Size]
1.创建两个文件夹,名字尽量是英文,能让自己知道哪个文件夹是资源包行为包就行。
2.依赖项。在资源包行为包文件夹里都有一个清单文件manifest.json。下面是代码
- {
- "format_version": 2,
- "header": {
- "description": "",
- "name": "",
- "uuid":"",
- "version": [1, 0, 0],
- "min_engine_version": [1, 16, 0]
- },
- "modules": [
- {
- "description": "",
- "type": "",
- "uuid": "",
- "version": [1, 0, 0]
- }
- ]
- }
复制代码
description是介绍,name是模组名,type中如果是资源包的清单文件,就是resources,行为包的就是data。uuid可以从https://www.uuidgenerator.net/下载
要想构成依赖项,资源包上面的uuid要和行为包下面的uuid相同,资源包下面的uuid要与行为包上面的uuid相同。
3.资源包文件夹里创建 textures text blocks.json manifest.json pack_icon.png。
4.在行为包文件夹里创建blocks loot_tables recipes manifest.json pack_icon.png。 3.资源包[/Size]
1.textures文件夹创建terrain_texture.json
在下面写入以下代码
- {
- "resource_pack_name": "vanilla",
- "texture_name": "atlas.terrain",
- "padding": 8,
- "num_mip_levels": 4,
- "texture_data": {
- "pa_kulipafangkuai": {
- "textures": [
- "textures/blocks/文件名"
- ]
- }
- }
- }
复制代码
2.在textures里在创建一个blocks文件夹,blocks文件夹里面定义了新增方块的贴图。而文件名必须和terrain_texture.json里的文件名一样,记住不用扩展名。pa_kulipafankuai可以改
但之后大部分文件(夹)名字都有这个
3.text里创建en_US.lang
在里面写入以下代码
- tile.pa:kulipafangkuai.name=苦力怕方块
- tile.pa:kulipafangkuai=苦力怕方块
复制代码
其中pa:kulipafangkuai是物品id。这个也可以改。但之后要用到此物品id的代码都必须一致。
苦力怕方块 这五个文字当然也是可以改的。
3.回到资源包根目录。创建blocks.json
键入以下代码
- {
- "pa:kulipafangkuai": {
- "textures": "pa_kulipafangkuai",
- "sound": "stone"
- },
- "format_version": [
- 1,
- 1,
- 0
- ]
- }
复制代码
pa:kulipafangkuai是物品id。textures就是贴图名。sound是破坏方块的声音。这里的stone是石头声音。可以改,例如grass是草方块的声音,glass是玻璃声音,sand是沙子声音。
4.清单文件(manifest.json)见上面。
到这里,资源包已经做完了 4.行为包[/Size]
1.在行为包文件夹里的blocks文件夹新建文件名.json(名字具体是资源包2.那个地方)在里面写入以下代码
- {
- "format_version": "1.16.100",
- "minecraft:block": {
- "description": {
- "identifier": "pa:kulipafangkuai",
- "category": "Nature"
- },
- "components": {
- "minecraft:loot": "loot_tables/blocks/pa_kulipafangkuai.json",
- "minecraft:destroy_time": 0.5,
- "minecraft:friction": 0.7,
- "minecraft:map_color": "#FFFFFF",
- "minecraft:explosion_resistance": 45.0,
- "minecraft:flammable": {
- "flame_odds": 0.1,
- "burn_odds": 0.1
- },
- "minecraft:block_light_absorption": 0.0,
- "minecraft:block_light_emission": 0.6,
- "minecraft:on_player_destroyed": {
- "event": "remove:block",
- "target": "self"
- },
- "minecraft:material_instances": {
- "*": {
- "texture": "pa:kulipafangkuai",
- "render_method": "blend"
- }
- },
- "minecraft:on_step_on": {
- "event": "step:on",
- "target": "self"
- },
- "minecraft:on_step_off": {
- "event": "step:off",
- "target": "self"
- },
- "minecraft:on_placed": {
- "event": "size:block",
- "target": "self"
- },
- "minecraft:random_ticking": {
- "on_tick": {
- "event": "random:tick",
- "target": "self"
- }
- },
- "minecraft:on_fall_on": {
- "event": "fall:on",
- "target": "self"
- },
- "minecraft:ticking": {
- "looping": true,
- "range": [
- 10,
- 10
- ],
- "on_tick": {
- "event": "on_tick",
- "target": "self"
- }
- },
- "minecraft:creative_category": {
- "category": "nature"
- }
- },
- "events": {
- "remove:block": {},
- "size:block": {},
- "step:on": {},
- "step:off": {},
- "on_tick": {},
- "random:tick": {},
- "fall:on": {}
- },
- "permutations": [
- {
- "condition": "query.block_property('block:rotation') == 2",
- "components": {
- "minecraft:rotation": [
- 0,
- 0,
- 0
- ]
- }
- },
- {
- "condition": "query.block_property('block:rotation') == 3",
- "components": {
- "minecraft:rotation": [
- 0,
- -180,
- 0
- ]
- }
- },
- {
- "condition": "query.block_property('block:rotation') == 4",
- "components": {
- "minecraft:rotation": [
- 0,
- 90,
- 0
- ]
- }
- },
- {
- "condition": "query.block_property('block:rotation') == 5",
- "components": {
- "minecraft:rotation": [
- 0,
- -90,
- 0
- ]
- }
- }
- ]
- }
- }
复制代码
这个慢慢讲。这个文件定义了新增方块的属性。
identifier是物品id。minecraft:loot等会讲。minecraft:friction是摩擦经过的时间。minecraft:map_color是在地图上显示的颜色
minecraft:explosion_resistance是抗暴性
minecraft:flammable中 flame_odds和burn_odds意思差不多,是可以被火烧多少时间
minecraft:block_light_absorption是透光性
minecraft:block_light_emission发光亮度
2.行为包文件夹根目录里的loot_tables里增加一个blocks文件夹,里面创建一个文件名.json
文件名在3.2有讲解。这个文件是刚才没有讲的
minecraft:loot。里面的文件就是这个文件,下面是代码
你不用管为什么它内容怎么少,我只是教大家如何自制一个基础方块。
3.回到行为包根目录,打开recipes文件夹,创建文件名.json 3.2有讲解。在里面写入以下代码
- {
- "format_version": "1.12",
- "minecraft:recipe_shaped": {
- "description": {
- "identifier": "kulipafangkuai_fd8fc41a"
- },
- "tags": [
- "crafting_table"
- ],
- "pattern": [
- "B"
- ],
- "key": {
- "B": {
- "item": "minecraft:apple",
- "data": 0
- }
- },
- "result": {
- "item": "pa:kulipafangkuai",
- "count": 1
- }
- }
- }
复制代码
这个是该方块的合成配方文件。pattern是工作台里的排序。是以下的格式,对应这工作台的九个格子
" x x x"
" x x x"
" x x x"
如果合成配方只有一种配料,那么写一个大写字母A 代替x,同时其他x不显示。如果一行都没有字母,不写这一行。
key是指上面的大写字母对应这什么,在上面代码中,B 对应这 item的 苹果物品id。如果想自己制作,适当改。
result 里的 count 是输出的数量。假如我创建一个合成表,或上面的合成表。一个苹果可以合成count对应数量的苦力怕方块。
manifest.json见前面.
最后一步 打包导入游戏
找到资源包文件夹和行为包文件夹。将这两个文件夹压缩成.zip,之后把扩展名改为.mcaddon
随后请在mt管理器打开它(当然可能你就是在mt管理器上做的。)点击它,用Minecraft打开。打开游戏,创建新世界。加上模组,一个资源包一个行为包。最重要的一步,在实验性游戏内容打开假日创造者内容,不然加载不出来!
(本教程用了1.5个小时才做完)
本次教程就结束了,希望看了此教程的你大受启发。
至于吃货世界模组吗...马上更新!
作者:溢溢
|