开启辅助访问      

站内搜索

搜索
热搜: 下载 1.19 1.20

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

[BE教程] 附加包教程:11.方块(二)

发表于 2023-1-12 11:12:08 来自手机 | 显示全部楼层 |阅读模式 IP:山西省
本帖最后由 Cat_Anchor 于 2024-5-3 17:56 编辑

前言

上期,我们成功向附加包中添加了方块,了解了方块组件。这一期,我们将类比学习物品组件地学习方块组件。不同的是,我将把方块组件分类讲解。
组件列表
visual_item_config(非正式名称)
这个组件定义了方块在物品栏中的外观是物品图标还是用方块渲染表示。


geometry
这个组件可以决定方块的模型(形状)、骨骼可见性(模型的一部分是否可见)和剔除面设置。
模型存储在资源包根目录下的models文件夹下的blocks文件夹下,后缀是.json。
剔除面设置存储在资源包根目录下的block_culling文件夹下的culling.json文件中。
下面是代码。


如果使用半透明或透明纹理,那部分纹理在游戏内默认显示黑色。可以更改渲染方法来解决这个问题。
material_instances
这个组件指定了一个方块的纹理、渲染方法、渲染面等等设置。
这个组件与minecraft:geometry一起用时可以修改纹理,但单独用时不能修改纹理,只能指定渲染方法等。
如果与定义模型的组件连用,blocks.json中指定的纹理会被这里指定的纹理覆盖,也就是说,这个方块在blocks.json中的texture字段会被忽略。


接下来是1.19.80.20新增的组件。
transformation
这个组件用于平移、旋转或缩放方块。必须与minecraft:geometry组件一起使用。平移、旋转或缩放之后的模型还是有以前的限制(例如模型的最大尺寸是30*30,立方体不能超过这个限制等)。
当这个组件与模型minecraft:geometry.full_block(默认方块模型)连用时,不能使用平移或缩放字段,仅能以90度为单位进行旋转。


接下来讲地图颜色。
map_color
有这个组件的方块摆在地上,显示在地图里时会显示给出的颜色值。如果没有这个组件,会显示为透明。(就是显示这个方块下面的方块的地图颜色。)


下面是两个“箱”组件,一个指定了判定箱,另一个指定了碰撞箱。
selection_box
指定方块的判定箱,就是你必须瞄准方块的哪里才能打到方块。


collision_box
指定方块的碰撞箱,就是你可以碰到方块的哪里。


接下来是3个“能否被破坏”,一个是被挖掘,一个是被爆炸,一个是被燃烧。
destructible_by_mining
指定方块能否被挖掘破坏,以及挖掘时间。


destructible_by_explosion
指定方块能否被爆炸破坏和方块的爆炸抗性。


flammable
指定方块能否被烧毁,以及燃烧可能性和烧毁可能性。


接下来是一些杂项的组件。
friction
指定方块的摩擦力。


placement_filter
指定方块可以被放在哪里。


loot
指定方块的掉落物。


接下来是两个“光”,一个是发光量,一个是吸光量。
light_emission

方块的发光量。


light_dampening
方块的吸光量。


还有最后一个。
crafting_table
指定方块拥有工作台的能力。


接下来是各种触发器组件,它们负责在某些条件下触发事件。所有的触发器组件都拥有"condition": ""(指定条件,填写Molang表达式)、"event": ""(指定要触发的事件,填写事件名称)和"target": ""(指定目标,填写self或other)键值对。以下将不对这些字段作出解释。

当实体摔落到方块上时触发事件:
  1. "minecraft:on_fall_on": { //注:这个组件必须用在一个至少有4个像素高的方块上才能生效。
  2.   "min_fall_distance": 0, //指定最小摔落距离。小于这个距离将不会触发事件。
  3.   "condition": "q.is_sneaking",
  4.   "event": "test",
  5.   "target": "self"
  6. }
复制代码
当玩家右键点击方块时触发事件:
  1. "minecraft:on_interact": {
  2.   "condition": "q.is_sneaking",
  3.   "event": "test",
  4.   "target": "self"
  5. }
复制代码
当方块被放置时触发事件:
  1. "minecraft:on_placed": {
  2.   "condition": "q.is_sneaking",
  3.   "event": "test",
  4.   "target": "self"
  5. }
复制代码
当方块被玩家放置时触发事件:
  1. "minecraft:on_player_placing": {
  2.   "condition": "q.is_sneaking",
  3.   "event": "test",
  4.   "target": "self"
  5. }
复制代码
当方块被玩家破坏时触发事件(创造模式破坏不算数):
  1. "minecraft:on_player_destroyed": {
  2.   "condition": "q.is_sneaking",
  3.   "event": "test",
  4.   "target": "self"
  5. }
复制代码
当实体从方块上走开时触发事件:
  1. "minecraft:on_step_off": { //注:这个组件必须用在一个至少有4个像素高的方块上才能生效。
  2.   "condition": "q.is_sneaking",
  3.   "event": "test",
  4.   "target": "self"
  5. }
复制代码
当实体走上方块时触发事件:
  1. "minecraft:on_step_on": { //注:这个组件必须用在一个至少有4个像素高的方块上才能生效。
  2.   "condition": "q.is_sneaking",
  3.   "event": "test",
  4.   "target": "self"
  5. }
复制代码
还有两个特别的组件,分别是minecraft:random_ticking和minecraft:queued_ticking。这两个组件用于周期性地触发事件,前者基于随机刻,后者基于计划刻。
minecraft:random_ticking的代码如下。
  1. "minecraft:random_ticking": {
  2.   "on_tick": {
  3.     "event": "update" //事件名称
  4.   }
  5. }
复制代码
minecraft:queued_ticking的代码如下。
  1. "minecraft:queued_ticking": {
  2.   "interval_range": [ //范围,单位是刻。设置成一样的会导致固定在这个时间触发事件,设置成不一样的会导致在范围内随机选择时长,然后触发事件。
  3.     10, //0.5秒
  4.     30 //1.5秒
  5.   ],
  6.   "looping": true, //是否循环触发,默认为true(循环)。设置为false后不会循环。
  7.   "on_tick": {
  8.     "event": "update" //事件名称
  9.   }
  10. }
复制代码


以上就是所有可用的组件了。有可能会有遗漏,我会尽力补充。也可以给方块添加标签,标签和组件同级。标签应该是下面这样的。
  1. "tag:标签名字": {} //这里的标签名字最好使用命名空间ID。
复制代码

标签似乎没有现成的用途。
自定义方块的标签会被原版物品忽略。
添加特定的标签可能可以给这个方块一些原版方块拥有的功能,然而不确定这样的标签的存在。
目前还没有已知办法给自定义方块加上合成标签,使其被配方文档中的{"tag":"..."}识别。
总结

这一期,我把所有方块组件罗列了一遍。下一期,我们不讲方块事件,而是先把模型讲了,因为这篇教程里多次提到了模型。下下期讲战利品表,然后再讲方块事件。


第十期 第十一期 第十二期

评分

参与人数 1铁粒 +40 收起 理由
很话痨的小黑子 + 40 苦力怕论坛感谢有你~

查看全部评分

苦力怕论坛,感谢有您~
回复

使用道具 举报

发表于 2023-1-12 14:44:44 来自手机 | 显示全部楼层 IP:广东省
感谢苦力怕论坛
2# 2023-1-12 14:44:44 回复 收起回复
苦力怕论坛,感谢有您~
回复 支持

使用道具 举报

发表于 2023-1-12 19:22:14 来自手机 | 显示全部楼层 IP:湖北省
这里错了
IMG_20230112_192145.jpg
3# 2023-1-12 19:22:14 回复 收起回复
苦力怕论坛,感谢有您~
回复 支持 1

使用道具 举报

 楼主| 发表于 2023-1-12 19:43:28 来自手机 | 显示全部楼层 IP:山西省
阿巴无影 发表于 2023-1-12 19:22
这里错了

感谢反馈,已改正
4# 2023-1-12 19:43:28 回复 收起回复
苦力怕论坛,感谢有您~
回复 支持

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

QQ群

访问手机版

访问手机版

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

粤公网安备 44200002445329号 | 由 木韩网络 提供云服务 | GMT+8, 2024-5-14 14:43

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

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