20 KiB
3.2
2025.1.10:版本号(V3.2 BE1.20.50)包括Mod PC包,手机测试版启动器,和服务器引擎。
示例Demo:前往此处下载
一、更新时间表
- 在2024年12月11日上线3.2第一个Beta版。
- 在2024年12月26日上线3.2第二个Beta版。
- 在2025年1月7日上线3.2稳定版。
- 在2025年1月10日,全渠道将更新3.2版本玩家包体,玩家将陆续更新到3.2版本,请开发者合理安排更新节奏。
二、重要功能更新
- 新增自定义指令接口,方便开发者和玩家使用指令调整模组功能。同时支持监听全局指令,支持实体发起指令。
- 支持动态获取、创建、删除某个实体的行为包组件,可用于更精细地获取实体属性、控制实体行为,详见GetComponents系列接口。
- 横屏商业化接口更新,支持手机端玩家在局内跳转到组件详情页或开发者主页,可用于组件宣传、组件联动、前置组件等场景。
- 新增实体单例渲染接口,可单独操纵某个实体的渲染,详见AddTextureToOneActor系列接口。
- 后处理支持自定义外置纹理,可用于实现光怪陆离的后处理效果,详情参考文档自定义后处理。
- 新增全局实体和特效功能,此类实体和特效不会因为距离过远超出视野而消失,可用于制作boss和大型装饰品(例如主城的传送门)。
- 新增实用性接口和事件,如:类似望远镜的拉近视野接口,可用于枪械瞄准镜效果;玩家动作事件和跳跃事件,可用于动作优化类模组;客户端渲染帧事件,按照屏幕帧率高频调用。
- 优化部分接口和事件,使其更具备实用性,如:支持molang缩写,双端BlockUseEvent支持获取点击比例位置等。详见下方更新日志。
- 原版UI接口适配微软新触控,接口特性存在一定调整,请开发者注意适配。
- 为了同步微软注册方式,我们隐藏了register_to_create_menu字段,并将其默认值改为true。请使用新版的category字段,详见自定义物品和自定义方块。
- 由于微软在1.20.50版本将方块状态的facing_direction变更为cardinal_direction,所以原版实际使用facing_direction的四面向方块(如箱子类,熔炉类)的aux和实际朝向的对应关系被修改,如您此前利用方块调色板或者GetBlockNew记录了方块数据,在3.2直接按照原数据放出方块将出现部分方块朝向错乱,需要自行适配。现在GetBlockStates接口会返回新的cardinal_direction,而SetBlockStates会继续兼容旧版facing_direction一段时间。
-
facing_direction和cardinal_direction的aux对应关系如下:
朝向 facing_direction cardinal_direction 北面 2 2 南面 3 0 西面 4 1 东面 5 3 -
受到影响的方块如下:
名称 方块id 箱子 chest 末影箱 ender_chest 陷阱箱 trapped_chest 切石机 stonecutter_block 熔炉 furnace 高炉 blast_furnace 烟熏炉 smoker 燃烧的熔炉 lit_furnace 燃烧的高炉 lit_blast_furnace 燃烧的烟熏炉 lit_smoker -
微软在1.20.50继续修改了部分方块ID,如石头、混凝土等,详见3.2版本物品id变更,相关链接请参阅基岩版扁平化,请开发者注意适配。
三、API更新
- 新增
-
新增getEntitiesOrBlockFromRay(客户端), 客户端新增获取与射线相交的实体和方块接口
-
新增GetBlockTags(服务端), 获取方块tags
-
新增SetBlockEntityData(服务端), 设置方块(包括自定义方块)的数据
-
新增GetEntitiesBySelector(服务端), 根据目标选择器获取实体id列表
-
新增AddActorComponent(服务端), 给指定实体自定义添加实体Component
-
新增RemoveActorComponent(服务端), 删除指定实体的指定Component
-
新增GetComponents(服务端), 获取指定实体的生效Components
-
新增SetPistonMaxInteractionCount(服务端), 设置活塞/粘性活塞最多推动的方块数量
-
新增GetPistonMaxInteractionCount(服务端), 获取活塞/粘性活塞最多推动的方块数量
-
新增GetPistonMaxInteractionCount(客户端), 获取活塞/粘性活塞最多推动的方块数量
-
新增GetItemTags(服务端), 获取物品tags
-
新增GetItemInfoByBlockName(服务端), 通过方块名称及aux值获取物品信息
-
新增GetPlayerDestroyTotalTime(服务端), 获取玩家破坏方块需要的时间,受玩家状态(急迫、潮涌、挖掘疲劳)和手持物及手持物附魔(效率)影响
-
新增AddAnimationControllerToOneActor(客户端), 增加单个生物渲染动画控制器
-
新增RemoveAnimationControllerForOneActor(客户端), 移除单个生物渲染动画控制器
-
新增AddRenderMaterialToOneActor(客户端), 增加单个生物的渲染材质
-
新增AddRenderControllerToOneActor(客户端), 增加单个生物的渲染控制器
-
新增RemoveRenderControllerForOneActor(客户端), 删除单个生物的渲染控制器
-
新增AddGeometryToOneActor(客户端), 增加单个生物渲染几何体
-
新增RemoveGeometryForOneActor(客户端), 删除单个生物的渲染几何体
-
新增AddTextureToOneActor(客户端), 增加单个生物的渲染贴图
-
新增RemoveTextureForOneActor(客户端), 删除单个生物的渲染贴图
-
新增AddParticleEffectToOneActor(客户端), 增加单个生物特效资源
-
新增AddSoundEffectToOneActor(客户端), 增加单个生物的音效资源
-
新增AddScriptAnimateToOneActor(客户端), 在单个生物的客户端实体定义(minecraft:client_entity)json中的scripts/animate节点添加动画/动画控制器
-
新增AddAnimationToOneActor(客户端), 增加单个生物渲染动画
-
新增SetActorBlockGeometryScale(客户端), 设置实体的方块几何体模型的缩放倍率。
-
新增GetActorBlockGeometryScale(客户端), 获取实体的方块几何体模型的缩放倍率。
-
新增SetGlobal(客户端), 设置序列帧是否是全局的
-
新增CanSee(客户端), 添加对象是否可看见目标的客户端接口
-
新增GetItemTags(客户端), 获取物品tags
-
新增SetCompassTarget(客户端), 设置指南针的朝向位置
-
新增SetCompassEntity(客户端), 设置指南针朝向的实体
-
新增OpenResourceCenterDetailWindow(客户端), 打开网易资源中心组件详情界面
-
新增OpenDeveloperHomeWindow(客户端), 打开网易资源中心开发者主页
-
新增SetControlMode(客户端), 设置控制模式
-
新增SetControlModeLock(客户端), 设置控制模式是否可以被改变
-
新增SetGlobal(客户端), 设置粒子发射器是否为全局粒子发射器
-
新增GetPlayerDestroyTotalTime(客户端), 获取玩家破坏方块需要的时间,受玩家状态(急迫、潮涌、挖掘疲劳)和手持物及手持物附魔(效率)影响
-
新增SetPlayerFovScale(客户端), 新增设置fov倍率功能
-
新增AddEntityMarker(客户端), 增加实体位置标记
-
新增AddEntityTextMarker(客户端), 增加实体文本标记
-
新增AddStaticMarker(客户端), 增加地图上静态位置的标记
-
新增AddStaticTextMarker(客户端), 增加地图上静态文本的标记
-
新增RemoveEntityMarker(客户端), 删除实体位置标记
-
新增RemoveEntityTextMarker(客户端), 删除实体文本标记
-
新增RemoveStaticMarker(客户端), 删除静态位置标记
-
新增RemoveStaticTextMarker(客户端), 删除静态文本标记
-
新增RepaintMiniMap(客户端), 重新绘制小地图
-
新增GlobalCommandServerEvent(服务端), 服务端全局命令事件
-
新增CustomCommandTriggerServerEvent(服务端), 新增自定义命令触发事件
-
新增OnPlayerActionServerEvent(服务端), 玩家动作事件
-
新增GameRenderTickEvent(客户端), 客户端渲染帧开始时触发
-
新增OnLocalPlayerStartJumpClientEvent(客户端), 玩家开始跳跃事件
-
新增OnLocalPlayerActionClientEvent(客户端), 玩家动作事件
-
新增PlayerActionType, 玩家动作枚举
- 调整
-
调整getEntitiesOrBlockFromRay(服务端), isThrouth拼写错误,调整为isThrough,通过关键词isThrouth = True调用的方法还会再兼容一段时间
-
调整HideWalkGui(客户端), 新触控接入后原移动按钮已移除,现在该接口控制新触控跑/走按钮
-
调整HideSwimGui(客户端), 调整描述,仅影响十字键操作下的浮潜按钮,摇杆模式上浮=跳跃,下潜=潜行,需要通过HideJumpGui和HideSneakGui来隐藏
-
调整SetCrossHair(客户端), 适配新触控
-
调整CreateEngineEntityByNBT(服务端), 新增isGlobal参数,可创建全局实体,不受视野范围限制
-
调整CreateEngineEntityByTypeStr(服务端), 新增isGlobal参数,可创建全局实体,不受视野范围限制
-
调整SetAttrMaxValue(服务端), 支持设置伤害吸收
-
调整SetEntityOnFire(服务端), 当传入参数seconds小于等于0时,将让着火的实体灭火
-
调整RegisterBlockPatterns(服务端), 支持具体方块匹配/通配,namespace:name:aux_value,当aux_value不填或者填*时为通配,如果有具体aux_value时只匹配特定方块
-
调整GetBlockBasicInfo(服务端), 支持返回minecraft:tags
-
调整GetDestroyTotalTime(服务端), 增加可选挖掘参数
-
调整SetCommand(服务端), 支持任意实体entityId
-
调整GetItemBasicInfo(服务端), 支持返回minecraft:tags
-
调整SetItemTierSpeed(服务端), 补充文档,提示开发者可以从物品的userData中获取挖掘速度
-
调整GetDestroyTotalTime(客户端), 增加可选挖掘参数
-
调整GetItemBasicInfo(客户端), 支持返回minecraft:tags
-
调整CreateBindEntityNew(客户端), 支持传入空字符串时,绑定到实体根骨骼上
-
调整BindEntity(客户端), 支持传入空字符串时,绑定到实体根骨骼上
-
调整AddPostProcess(客户端), index缺省或负值现在会默认添加到最后
-
调整Register(客户端), 支持molang变量缩写
-
调整UnRegister(客户端), 支持molang变量缩写
-
调整Set(客户端), 支持molang变量缩写
-
调整Get(客户端), 支持molang变量缩写
-
调整GetMolangValue(客户端), 支持molang变量缩写
-
调整RenderEntity(客户端), 支持设置x轴、z轴初始旋转
-
调整RenderSkeletonModel(客户端), 支持设置x轴、z轴初始旋转
-
调整RenderBlockGeometryModel(客户端), 支持设置x轴、z轴初始旋转
-
调整ServerBlockUseEvent(服务端), 新增clickX,clickY,clickZ参数,可获取点击点的比例位置
-
调整PlayerPickupArrowServerEvent(服务端), 调整文档,补充说明抛射物也受此接口监听
-
调整PlaceNeteaseStructureFeatureEvent(服务端), structureName参数可修改
-
调整ClientBlockUseEvent(客户端), 新增clickX,clickY,clickZ参数,可获取点击点的比例位置
-
调整GyroSensorChangedClientEvent(客户端), 新增orientation表示当前屏幕朝向
-
调整OptionId, 移除旧版十字键操作
-
调整OriginGUIName, 移除移动状态按钮,新触控有对应的加速按钮和潜行按钮,增加新触控跳跃/潜行枚举
- 废弃(将在未来不可用)
-
废弃ChangeWalkState,对应按钮已移除,后续不再维护,相关需求可用setSprinting/setSneaking/ChangeSneakState实现
-
废弃GetWalkState,对应按钮已移除,后续不再维护,相关需求可用isSprinting/isSneaking实现
-
废弃SetPlayerRideEntity,请使用SetRiderRideEntity
-
废弃AddEntityMarker,推荐使用UI面向对象miniMapUIControl.AddEntityMarker接口
-
废弃RemoveEntityMarker,推荐使用UI面向对象miniMapUIControl.RemoveEntityMarker接口
-
废弃AddStaticMarker,推荐使用UI面向对象miniMapUIControl.AddStaticMarker接口
-
废弃RemoveStaticMarker,推荐使用UI面向对象miniMapUIControl.RemoveStaticMarker接口
-
废弃ZoomIn,推荐使用UI面向对象miniMapUIControl.ZoomIn接口
-
废弃ZoomOut,推荐使用UI面向对象miniMapUIControl.ZoomOut接口
-
废弃ZoomReset,推荐使用UI面向对象miniMapUIControl.ZoomReset接口
-
废弃SetHighestY,推荐使用UI面向对象minimapUIControl.SetHighestY接口
-
废弃AddEntityTextMarker,推荐使用UI面向对象miniMapUIControl.AddEntityTextMarker接口
-
废弃RemoveEntityTextMarker,推荐使用UI面向对象miniMapUIControl.RemoveEntityTextMarker接口
-
废弃AddStaticTextMarker,推荐使用UI面向对象miniMapUIControl.AddStaticTextMarker接口
-
废弃RemoveStaticTextMarker,推荐使用UI面向对象miniMapUIControl.RemoveStaticTextMarker接口