开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

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

还是p*** 该用户已被删除
 发表于 2023-11-27 00:22:15 来自手机|显示全部楼层|阅读模式 IP:山东省
前言[/Size]
[spoiler]此生不悔入mc,来世还做方块人
在我的世界里,方块无处不在。而方块也有不同的类型,但如果你需要或想要自制一个方块,可以观看此贴[/spoiler]
1.预习[/Size]
你可以点这下载示意模组与源代码压缩包
,让你更快明白此教程。同时,往下滑到底找到第一张图片,里面的思维导图能让你明白
模组结构。
2.框架[/Size]
1.创建两个文件夹,名字尽量是英文,能让自己知道哪个文件夹是资源包行为包就行。
2.依赖项。在资源包行为包文件夹里都有一个清单文件manifest.json。下面是代码

  1. {
  2. "format_version": 2,
  3. "header": {
  4.    "description": "",
  5.    "name": "",
  6.    "uuid":"",
  7.    "version": [1, 0, 0],
  8.    "min_engine_version": [1, 16, 0]
  9.   },
  10. "modules": [
  11.    {
  12.      "description": "",
  13.      "type": "",
  14.      "uuid": "",
  15.      "version": [1, 0, 0]
  16.    }
  17. ]
  18. }
复制代码

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
在下面写入以下代码

  1. {
  2.   "resource_pack_name": "vanilla",
  3.   "texture_name": "atlas.terrain",
  4.   "padding": 8,
  5.   "num_mip_levels": 4,
  6.   "texture_data": {
  7.     "pa_kulipafangkuai": {
  8.       "textures": [
  9.         "textures/blocks/文件名"
  10.       ]
  11.     }
  12.   }
  13. }
复制代码

2.在textures里在创建一个blocks文件夹,blocks文件夹里面定义了新增方块的贴图。而文件名必须和terrain_texture.json里的文件名一样,记住不用扩展名。pa_kulipafankuai可以改
但之后大部分文件(夹)名字都有这个
3.text里创建en_US.lang
在里面写入以下代码

  1. tile.pa:kulipafangkuai.name=苦力怕方块
  2. tile.pa:kulipafangkuai=苦力怕方块
复制代码

其中pa:kulipafangkuai是物品id。这个也可以改。但之后要用到此物品id的代码都必须一致。
苦力怕方块 这五个文字当然也是可以改的。
3.回到资源包根目录。创建blocks.json
键入以下代码

  1. {
  2.   "pa:kulipafangkuai": {
  3.     "textures": "pa_kulipafangkuai",
  4.     "sound": "stone"
  5.   },
  6.   "format_version": [
  7.     1,
  8.     1,
  9.     0
  10.   ]
  11. }
复制代码

pa:kulipafangkuai是物品id。textures就是贴图名。sound是破坏方块的声音。这里的stone是石头声音。可以改,例如grass是草方块的声音,glass是玻璃声音,sand是沙子声音。
4.清单文件(manifest.json)见上面。
到这里,资源包已经做完了
4.行为包[/Size]
1.在行为包文件夹里的blocks文件夹新建文件名.json(名字具体是资源包2.那个地方)在里面写入以下代码

  1. {
  2.   "format_version": "1.16.100",
  3.   "minecraft:block": {
  4.     "description": {
  5.       "identifier": "pa:kulipafangkuai",
  6.       "category": "Nature"
  7.     },
  8.     "components": {
  9.       "minecraft:loot": "loot_tables/blocks/pa_kulipafangkuai.json",
  10.       "minecraft:destroy_time": 0.5,
  11.       "minecraft:friction": 0.7,
  12.       "minecraft:map_color": "#FFFFFF",
  13.       "minecraft:explosion_resistance": 45.0,
  14.       "minecraft:flammable": {
  15.         "flame_odds": 0.1,
  16.         "burn_odds": 0.1
  17.       },
  18.       "minecraft:block_light_absorption": 0.0,
  19.       "minecraft:block_light_emission": 0.6,
  20.       "minecraft:on_player_destroyed": {
  21.         "event": "remove:block",
  22.         "target": "self"
  23.       },
  24.       "minecraft:material_instances": {
  25.         "*": {
  26.           "texture": "pa:kulipafangkuai",
  27.           "render_method": "blend"
  28.         }
  29.       },
  30.       "minecraft:on_step_on": {
  31.         "event": "step:on",
  32.         "target": "self"
  33.       },
  34.       "minecraft:on_step_off": {
  35.         "event": "step:off",
  36.         "target": "self"
  37.       },
  38.       "minecraft:on_placed": {
  39.         "event": "size:block",
  40.         "target": "self"
  41.       },
  42.       "minecraft:random_ticking": {
  43.         "on_tick": {
  44.           "event": "random:tick",
  45.           "target": "self"
  46.         }
  47.       },
  48.       "minecraft:on_fall_on": {
  49.         "event": "fall:on",
  50.         "target": "self"
  51.       },
  52.       "minecraft:ticking": {
  53.         "looping": true,
  54.         "range": [
  55.           10,
  56.           10
  57.         ],
  58.         "on_tick": {
  59.           "event": "on_tick",
  60.           "target": "self"
  61.         }
  62.       },
  63.       "minecraft:creative_category": {
  64.         "category": "nature"
  65.       }
  66.     },
  67.     "events": {
  68.       "remove:block": {},
  69.       "size:block": {},
  70.       "step:on": {},
  71.       "step:off": {},
  72.       "on_tick": {},
  73.       "random:tick": {},
  74.       "fall:on": {}
  75.     },
  76.     "permutations": [
  77.       {
  78.         "condition": "query.block_property('block:rotation') == 2",
  79.         "components": {
  80.           "minecraft:rotation": [
  81.             0,
  82.             0,
  83.             0
  84.           ]
  85.         }
  86.       },
  87.       {
  88.         "condition": "query.block_property('block:rotation') == 3",
  89.         "components": {
  90.           "minecraft:rotation": [
  91.             0,
  92.             -180,
  93.             0
  94.           ]
  95.         }
  96.       },
  97.       {
  98.         "condition": "query.block_property('block:rotation') == 4",
  99.         "components": {
  100.           "minecraft:rotation": [
  101.             0,
  102.             90,
  103.             0
  104.           ]
  105.         }
  106.       },
  107.       {
  108.         "condition": "query.block_property('block:rotation') == 5",
  109.         "components": {
  110.           "minecraft:rotation": [
  111.             0,
  112.             -90,
  113.             0
  114.           ]
  115.         }
  116.       }
  117.     ]
  118.   }
  119. }
复制代码

这个慢慢讲。这个文件定义了新增方块的属性。
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。里面的文件就是这个文件,下面是代码

  1. {
  2.   "pools": []
  3. }
复制代码

你不用管为什么它内容怎么少,我只是教大家如何自制一个基础方块。
3.回到行为包根目录,打开recipes文件夹,创建文件名.json 3.2有讲解。在里面写入以下代码

  1. {
  2.   "format_version": "1.12",
  3.   "minecraft:recipe_shaped": {
  4.     "description": {
  5.       "identifier": "kulipafangkuai_fd8fc41a"
  6.     },
  7.     "tags": [
  8.       "crafting_table"
  9.     ],
  10.     "pattern": [
  11.       "B"
  12.     ],
  13.     "key": {
  14.       "B": {
  15.         "item": "minecraft:apple",
  16.         "data": 0
  17.       }
  18.     },
  19.     "result": {
  20.       "item": "pa:kulipafangkuai",
  21.       "count": 1
  22.     }
  23.   }
  24. }
复制代码

这个是该方块的合成配方文件。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个小时才做完)
本次教程就结束了,希望看了此教程的你大受启发。
至于吃货世界模组吗...马上更新!
作者:溢溢
minecraft new block of addon.jpg
苦力怕论坛,感谢有您~
还是p*** 该用户已被删除
 楼主|  发表于 2023-11-27 00:25:32 来自手机|显示全部楼层 IP:山东省
这里说一下,不知道我怎么排班的。大家按照我给大家提供的演示源代码和本教程一起食用
2#2023-11-27 00:25:32回复收起回复
苦力怕论坛,感谢有您~
 发表于 2023-11-27 09:13:37|显示全部楼层 IP:北京
qwq,我配置环境的时候用了魔法,配置mc的下载源码也没有成功,这是为什么
3#2023-11-27 09:13:37回复收起回复
苦力怕论坛,感谢有您~
 发表于 2023-11-27 20:19:50 来自手机|显示全部楼层 IP:广东省
能不能教做光影
4#2023-11-27 20:19:50回复收起回复
苦力怕论坛,感谢有您~
还是p*** 该用户已被删除
 楼主|  发表于 2023-11-27 21:13:34 来自手机|显示全部楼层 IP:山东省
三月的太阳 发表于 2023-11-27 20:19
能不能教做光影

作者不会
5#2023-11-27 21:13:34回复收起回复
苦力怕论坛,感谢有您~

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供支持 | GMT+8, 2024-11-24 19:17

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号-3