还是pvp垃圾 发表于 2023-11-27 00:22:15

附加包教程 1.新增一个方块

前言
此生不悔入mc,来世还做方块人
在我的世界里,方块无处不在。而方块也有不同的类型,但如果你需要或想要自制一个方块,可以观看此贴
1.预习
你可以点这下载示意模组与源代码压缩包
,让你更快明白此教程。同时,往下滑到底找到第一张图片,里面的思维导图能让你明白
模组结构。
2.框架
1.创建两个文件夹,名字尽量是英文,能让自己知道哪个文件夹是资源包行为包就行。
2.依赖项。在资源包行为包文件夹里都有一个清单文件manifest.json。下面是代码

{
"format_version": 2,
"header": {
   "description": "",
   "name": "",
   "uuid":"",
   "version": ,
   "min_engine_version":
},
"modules": [
   {
   "description": "",
   "type": "",
   "uuid": "",
   "version":
   }
]
}

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.资源包
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.行为包
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。里面的文件就是这个文件,下面是代码

{
"pools": []
}

你不用管为什么它内容怎么少,我只是教大家如何自制一个基础方块。
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个小时才做完)
本次教程就结束了,希望看了此教程的你大受启发。
至于吃货世界模组吗...马上更新!
作者:溢溢

还是pvp垃圾 发表于 2023-11-27 00:25:32

这里说一下,不知道我怎么排班的。大家按照我给大家提供的演示源代码和本教程一起食用[哔哩_脱单][哔哩_脱单][哔哩_脱单]

zerooo~ 发表于 2023-11-27 09:13:37

qwq,我配置环境的时候用了魔法,配置mc的下载源码也没有成功,这是为什么

三月的太阳 发表于 2023-11-27 20:19:50

能不能教做光影[哔哩_脱单][哔哩_脱单][哔哩_脱单][哔哩_脱单]

还是pvp垃圾 发表于 2023-11-27 21:13:34

三月的太阳 发表于 2023-11-27 20:19
能不能教做光影

作者不会
页: [1]
查看完整版本: 附加包教程 1.新增一个方块