开启辅助访问     
收藏本站

站内搜索

搜索

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

[BE教程] 基岩技术教程:5.嵌套方块

 发表于 2024-8-17 07:29:55 来自手机|显示全部楼层|阅读模式 IP:山西省
本帖最后由 Cat_Anchor 于 2024-10-4 12:50 编辑

前言
众所周知,Java 版和基岩版实现含水方块的逻辑不一样。Java 版只有一个方块状态,而基岩版不同,基岩版的实现逻辑很“厉害”,可以用这个鲜为人知的特性做出奇怪的方块。至于基岩版到底是怎么实现含水方块的,请让我引入两个概念——“前景层”和“背景层”。
概念与性质
基岩版中,要实现方块的含水,需要让方块和水处于同一位置,我们称含水方块中的方块位于“前景层”,而水位于“背景层”。

实际上,引擎没有规定前景层和背景层的方块种类,也就是说,我们可以制作“含任何方块的任何方块”,比如含蜂蜜块的末地石、含紫水晶块的玻璃,等等。我把这类方块称为“嵌套方块”,它有以下性质:
  • 渲染方法相同时,首先渲染背景层方块,然后渲染前景层方块。
  • 渲染方法不同时,首先渲染使用 blend 渲染方法的方块,然后是 alpha_test,最后是 opaque,此时两个方块的阴影会叠加。
  • 与之互动时,体现前景层方块的性质。特别地,背景层的水可以灭火;前景层为空气时,背景层不渲染,体现背景层方块的性质。
  • (除爆炸外的)破坏时,首先破坏前景层方块,然后背景层方块成为前景层方块,最后背景层方块变为空气。
  • 被爆炸破坏时,前景层方块和背景层方块一起消失。
  • 如果前景层是液体方块,背景层是完整固体方块,液体方块不会流动,嵌套方块没有碰撞体积。液体流过这个方块时,它会被取代。
  • 获取
    可以通过移动中的方块放置嵌套方块,需要修改物品栏 NBT。以下是移动中的方块的物品数据,由 NBT 转为 JSON。制作时只需要把 NBT 格式做得与以下数据格式一样即可。
    1. 以下 JSON 描述了 ~local_player 根标签中的空名称对象中的 Inventory 数组中的任意一个对象。
    2. { //一个物品堆叠
    3.   "block": {
    4.     "name": "minecraft:movingBlock", //方块 ID
    5.     "states": {}, //方块状态
    6.     "version": 17879555 //数据版本,对应游戏版本
    7.   },
    8.   "count": 64, //物品堆叠的数量
    9.   "damage": 0, //物品的损害值
    10.   "name": "minecraft:movingBlock", //物品 ID
    11.   "slot": 0, //于物品栏的槽位索引
    12.   "wasPickedUp": false, //是否刚被捡起
    13.   "tag": {
    14.     "movingBlock": { //前景层
    15.       "name": "minecraft:glass", //方块 ID
    16.       "states": {}, //方块状态
    17.       "version": 17879555 //数据版本,对应游戏版本
    18.     },
    19.     "movingBlockExtra": { //背景层
    20.       "name": "minecraft:diamond_block", //方块 ID
    21.       "states": {}, //方块状态
    22.       "version": 17879555 //数据版本,对应游戏版本
    23.     }
    24.   } //含钻石块的玻璃
    25. }
    复制代码


    以下是移动的方块的完整物品数据,由 NBT 转为 JSON。

    以下是图片。(蜂蜜块是前景层,末地石是背景层。)
    (前景层是水或流动的水,背景层是荧石。如果不停放置,会制造“无源之水”,很难消除。)
    后记
    这一期,我们讲解了嵌套方块。


    苦力怕论坛,感谢有您~

    本版积分规则

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

    QQ群

    访问手机版

    访问手机版

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

    粤公网安备 44200002445329号 | 由 木韩网络 提供支持 | GMT+8, 2024-12-15 06:31

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

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