Minecraft: Java Edition 现在使用 SDL3
摘要
Minecraft Java Edition 快照 26.3 将窗口管理和输入从 GLFW 切换为 SDL3,同时还带来了其他技术变更和新功能。
暂无内容
查看缓存全文
缓存时间: 2026/07/20 09:47
# Minecraft 26.3 Snapshot 4
来源:https://www.minecraft.net/en-us/article/minecraft-26-3-snapshot-4
快照周二快乐……还是周四?没错,你没看错!由于瑞典已进入度假旺季,快照可能不会按常规时间发布。
在今天的快照中,我们将窗口管理、输入和平台集成所用的库从 GLFW 切换为 SDL3。
我们还为自定义熔炉燃料添加了新的物品组件,并对告示牌、世界生成和战利品表进行了多项技术性改动。
祝挖矿愉快!
## 已知问题
- 在 Windows 上使用独占全屏模式时,可能在特定情况下导致游戏崩溃,尤其是在多显示器环境中
- 在 Wayland 上进入独占全屏模式会导致游戏崩溃
## 新特性
- 旁观模式下的玩家现在可以激活传送门进行传送
## 改动
### 对方块、物品和实体的细微调整
- 犰狳在浸入液体时不再尝试蜷缩
### UI
- 移除了原始输入鼠标设置——游戏内操作时鼠标输入始终使用相对鼠标模式
- 按键绑定现在使用物理按键,而非依赖键盘布局的按键码
- 无边框全屏现为默认全屏模式
- 在无边框与独占全屏之间切换不再需要重启游戏
- macOS 不再支持独占全屏模式
- 最小窗口尺寸现为 320x240 像素
- 在 macOS 上,输入文本时长按按键会显示原生重音和候选弹窗
- 在 Linux 系统上,游戏现在会原生优先使用 Wayland(若可用)
#### 调试覆盖层
- 调试覆盖层现在支持与游戏其他部分独立的 GUI 缩放比例——可通过调试选项界面(F3+F6)自定义 - 默认比例为“自动”,尝试保持比正常比例更高的分辨率 - 另一选项为“不变”,与常规 GUI 缩放比例一致 - 其余选项与常规“GUI 缩放”相同,直接控制缩放比例
- 添加了“player_speed”调试条目,以格/刻为单位显示玩家速度
- 调试覆盖层现在显示显示器刷新率
### 创造模式物品栏
- 重新排列矿物物品和方块的顺序,使非层级原料排在前面,层级原料(用于合成装备)排在最后 - 原料 - 非层级矿物 - 未精炼的层级矿物 - 精炼的层级矿物 - 粒 - 锭 - 建筑方块 - 非层级矿物方块及变种 - 精炼的层级矿物方块及变种 - 铜方块系列 - 由于内容列表庞大,铜方块在“建筑方块”中继续被推至末尾
- 改进了自然方块标签的顺序,使每个组内部的内容按主世界→下界→末地的顺序依次排列,与其他标签保持一致
## 技术性改动
- 数据包版本现为 111.0
- 资源包版本现为 92.0
- 拥有专用注册表的战利品表类型现在支持注册表元素和标签引用 - 这意味着此类类型的大部分字段(之前只接受单一元素)现在可以接受命名空间 ID 或内联值;而之前接受列表的字段现在可以接受内联值、单个命名空间 ID、命名空间 ID 列表、内联值列表或带井号前缀的标签 ID - 受影响的类型: - minecraft:advancement - minecraft:item_modifier - minecraft:loot_table - minecraft:number_provider - minecraft:predicate - minecraft:recipe - minecraft:slot_source - 针对谓词、物品修饰器和插槽源的现有引用类型现已废弃并被移除
### 窗口和输入后端
- Minecraft 现在使用 SDL3 而非 GLFW 进行窗口管理、输入和平台集成
- 键盘输入现在使用 SDL 扫描码表示物理按键位置,使用 SDL 键码表示依赖布局的文本编辑快捷键
## 数据包版本 111.0
- 告示牌不再自动执行自定义文本中的点击事件
### 命令
#### spreadplayers 的修改
- 一个方块是否安全用于让玩家分散,现在由 `#entities_can_teleport_to_block` 标签控制
### 环境属性
#### 新增 minecraft:gameplay/natural_mob_spawns
- 定义环境属性源中的生物生成
- 在世界生成放置阶段,只有维度与生物群系会应用此环境属性
- 格式:包含以下字段的对象: - spawns_by_category - 生成类别到权重化生成数据列表的映射 - 生成数据格式:包含以下字段的对象: - type - 实体类型,要生成的实体 - count - 整数提供器,生成数量 - spawn_costs - 实体类型到包含以下字段的对象的映射: - energy_budget - 浮点数,每次生成允许的能量变化 - charge - 浮点数,现有生物吸引或排斥其他带电生物的程度
- 可用的属性修饰器: - overlay - 对于每个生物类别,若上层未包含该类别,则用上层的生成设置覆盖下层;合并每层的生成成本,若两者定义了相同的实体类型,则用上层的生成成本覆盖下层
- 默认值:空
#### 新增 minecraft:gameplay/creature_world_gen_spawn_probability
- 设置运行一个迭代的概率,在该迭代中,定义在 creature 生物类别中生成的生物会在世界生成期间出现
- 只有维度和生物群系会应用此环境属性
- 格式:范围 [0,1) 的浮点数
- 默认值:0.1
#### 修改 minecraft:visual/ambient_particles
- 现在支持在两个时间线关键帧之间进行插值(概率会交叉淡入淡出)
- 引入对新修饰器 append 的支持 - 与 override(完全替换粒子列表)不同,此修饰器将所有元素与下层连接起来
### 数据组件
#### 新增 minecraft:cooking_fuel
- 描述可作为熔炉、烟熏炉或高炉燃料的物品
- 格式:包含以下字段的对象 - burn_time - 命名空间 ID,指向 minecraft:number_provider 注册表中的元素,表示燃料燃烧的时长(单位:刻) - speed_multiplier - 命名空间 ID,指向 minecraft:number_provider 注册表中的元素,表示烹饪/冶炼的速度
#### 新增 minecraft:brewing_fuel
- 描述可作为酿造台燃料的物品
- 格式:包含以下字段的对象 - uses - 命名空间 ID,指向 minecraft:number_provider 注册表中的元素,表示燃料在被消耗前可进行酿造的次数 - speed_multiplier - 命名空间 ID,指向 minecraft:number_provider 注册表中的元素,表示酿造的速度
- 注意:`#brewing_fuel` 物品标签已被移除,不再用于注册新的酿造燃料
#### 新增 minecraft:sign_text_front 和 minecraft:sign_text_back
- 两个相同的组件,分别表示告示牌正面和背面的文本
- 内容会显示在物品提示中
- 格式与 minecraft:sign 和 minecraft:hanging_sign 方块实体的 front_text 和 back_text 字段相同,即: - messages - 文本组件列表 - filtered_messages - 可选的文本组件列表,若省略则设置为与 messages 相同的值 - messages 和 filtered_messages 必须具有相同数量的条目 - color - 可选染料颜色,默认:black - has_glowing_text - 可选布尔值,默认:false
#### 新增 minecraft:waxed
- 用于标记已被打蜡的方块内容
- 无字段
#### 新增 minecraft:cushion/color
- 当使用物品放置坐垫实体时应用
- 格式:16 种染料颜色之一
#### 新增 minecraft:villager_food
表示村民可以食用的物品。村民除了拾取 `#villager_picks_up` 标签中的物品外,还会拾取有此组件的物品。
- 格式:包含以下字段的对象 - nutrition - 正整数,表示物品被食用后为村民提供的饥饿值
#### 新增 minecraft:mob_visibility
表示具有相应 minecraft:equippable 组件的物品提供的可见性百分比,修改生物能检测实体的范围
- 格式:包含以下字段的对象 - targeting_entity - 实体 ID、命名空间实体 ID 列表或带井号前缀的实体标签,用于匹配 - visibility - 浮点数(介于 0.0 和 10.0 之间),0.0 将生物检测实体的范围减少至 2 格,10.0 则将检测范围扩大十倍 - 多个带有此组件的物品堆叠时,最大视野仍不超过 10.0
### 方块实体数据
#### 修改 minecraft:sign 和 minecraft:hanging_sign
- 默认情况下,告示牌文本中包含的命令和其他点击事件在点击方块时不再执行 - 此外,新放置告示牌上的文本组件默认不再解析 - 添加了一个新的布尔字段 allow_op_features(默认值为 false),用于恢复之前的行为 - 在此版本之前保存的世界中,带有 minecraft:block_entity_data 组件且包含告示牌数据的已放置告示牌和物品,其 allow_op_features 会设置为 true - 任何新创建的告示牌都需要显式设置该字段
- 修改了放置方块后打开告示牌编辑界面的规则: - 之前,除非成功应用了 minecraft:block_entity_data,否则界面会打开 - 现在,只有通过点击方块能正常打开时(即未打蜡且正面只有可编辑文本),界面才会打开
- 告示牌现在会接受并返回 minecraft:sign_text_front、minecraft:sign_text_back 和 minecraft:waxed 组件
#### 修改 minecraft:brewing_stand
以下字段现在存储为整数而非短整数:
- BrewTime 字段从短整数改为整数,表示当前酿造过程已进行的时间
- Fuel 字段从字节改为整数,表示剩余的燃料量
新增了以下字段:
- 添加了 total_brew_time 整数字段,表示当前酿造过程的总时长
- 添加了 total_fuel 整数字段,表示上次添加燃料时加入的燃料量
- 添加了 speed_multiplier 浮点数字段,用于加速或减速下一个酿造过程
#### 修改 minecraft:furnace、minecraft:smoker 和 minecraft:blast_furnace
以下字段现在存储为整数而非短整数:
- cooking_time_spent 字段从短整数改为整数,表示当前烹饪过程已进行的时间
- cooking_total_time 字段从短整数改为整数,表示当前烹饪过程的总时长
- lit_time_remaining 字段从短整数改为整数,表示剩余的燃烧时间
- lit_total_time 字段从短整数改为整数,表示上次添加燃料时加入的总燃烧时间
新增了以下字段:
- 添加了 speed_multiplier 浮点数字段,用于加速或减速下一个烹饪过程
### 进度
#### 奖励
- rewards 字段中的 loot 子字段现在接受 minecraft:loot_table 类型的内联值、单个命名空间 ID、命名空间 ID 列表、内联值列表或带井号前缀的标签 ID
#### 触发器
- 多个接受战利品条件列表的字段现在更加严格: - 之前,条件列表的功能等同于单个 minecraft:all_of 条件,现在该功能已被移除 - 此外,type 字段现在是必需的(之前默认为 minecraft:entity_properties)
- 某些字段之前只接受内联战利品条件,现在也接受 minecraft:predicate 的命名空间 ID
- player 字段(除 minecraft:impossible 外的所有触发器均可用)现在接受 minecraft:predicate 类型的内联值或命名空间 ID - 为避免重复,以下条目中不再提及该字段
##### 修改 minecraft:any_block_use 触发器
- location 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:bee_nest_destroyed
- block 字段已重命名为 blocks,现在接受 minecraft:block 类型的单个命名空间 ID、命名空间 ID 列表或带井号前缀的标签 ID
- 添加了 state 字段,用于匹配方块状态属性(格式与 minecraft:enter_block 相同)
##### 修改 minecraft:bred_animals 触发器
- child、parent 和 partner 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:brewed_potion 触发器
- potion 字段现在接受 minecraft:potion_contents 数据组件谓词
##### 修改 minecraft:cured_zombie_villager 触发器
- villager 和 zombie 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:default_block_use 触发器
- location 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:effects_changed 触发器
- source 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:enter_block
- block 字段已重命名为 blocks,现在接受 minecraft:block 类型的单个命名空间 ID、命名空间 ID 列表或带井号前缀的标签 ID
##### 修改 minecraft:fall_after_explosion 触发器
- cause 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:fishing_rod_hooked 触发器
- entity 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:placed_block 触发器
- location 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:item_used_on_block 触发器
- location 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:allay_drop_item_on_block 触发器
- location 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:player_killed_entity 触发器
- entity 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
- killing_blow.tags.id 字段现在接受 minecraft:damage_type 类型的单个命名空间 ID、命名空间 ID 列表或带井号前缀的标签 ID
##### 修改 minecraft:entity_killed_player 触发器
- entity 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
- killing_blow.tags.id 字段现在接受 minecraft:damage_type 类型的单个命名空间 ID、命名空间 ID 列表或带井号前缀的标签 ID
##### 修改 minecraft:kill_mob_near_sculk_catalyst 触发器
- entity 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
- killing_blow.tags.id 字段现在接受 minecraft:damage_type 类型的单个命名空间 ID、命名空间 ID 列表或带井号前缀的标签 ID
##### 修改 minecraft:lightning_strike 触发器
- bystander 和 lightning 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:player_generates_container_loot 触发器
- loot_table 字段已重命名为 loot_tables,现在接受 minecraft:loot_table 类型的单个命名空间 ID、命名空间 ID 列表、内联值列表或带井号前缀的标签 ID - 如果使用标签或列表,当任何列出的战利品表生成时,触发器将运行
##### 修改 minecraft:thrown_item_picked_up_by_player 触发器
- entity 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:thrown_item_picked_up_by_entity 触发器
- entity 字段现在接受 minecraft:predicate 类型的内联值或命名空间 ID
##### 修改 minecraft:player 触发器(原文此处不完整,推测为 player_killed_entity 等类似,但根据原文保留)
——由于原文在 "Changed minecraft:playe" 处截断,后续内容缺失。但根据上下文,应为某个触发器。建议补充:假设为 "player_killed_entity" 的修改与上文类似。实际上原文在 "Changed minecraft:playe" 处结束,可能是 "player_killed_entity" 或 "player_killed_entity" 的重复,但为了准确,按照原文输出 "playe"。但作为翻译,应保留原样?原文在列表最后一项为 "Changed minecraft:playe",可能是不完整的 "player"。我将在翻译中保留 "playe" 作为原文,但建议修正。根据常见情况,可能是 "player" 相关的触发器。但为了忠实原文,我直接保留 "playe" 并按照原文格式输出。实际上,在英文原文中,该列表以 "Changed minecraft:playe" 结束,可能是个笔误。在翻译中,我们按原文输出,但为了清晰,可以注明。按照指令,只翻译原文内容,所以保留 "playe"。不过,为了符合中文阅读习惯,我会将其视为 "player" 的截断,并翻译为 "player" 相关内容?不,直接按原文 "playe" 输出。但最好检查一下原文:在英文中,最后一行是 "Changed minecraft:playe" 没有更多内容。所以在翻译中,我直接写 "修改 minecraft:playe 触发器" 并保留后续空白。但用户提供的原文是 "Changed minecraft:playe" 后面没有内容,可能是个错误。我会在翻译中保留这个不完整的条目,并保持原样。
但用户消息最后是 "Changed minecraft:playe",没有结尾。我将在翻译中同样截断。不过,作为专业翻译,可以适当补全?但指令要求只翻译给定的内容,不要添加或删除。所以保留原样。
最终,翻译应结束于 "修改 minecraft:playe 触发器" 并停止。
注意:原文在最后一行 "##### Changed minecraft:playe" 之后没有后续内容。所以翻译也到此为止。
##### 修改 minecraft:playe 触发器
相似文章
Minecraft: Java Edition 26.2,首个支持Vulkan 1.2的版本
Minecraft Java Edition 26.2引入了混沌立方体更新,包含硫磺立方体生物、硫磺洞穴生物群系、新方块、音乐、好友列表,以及实验性的Vulkan 1.2渲染支持。
《我的世界》中的 Wayland 合成器
一个在《我的世界》中实现完整 Wayland 合成器的模组,允许用户在游戏内启动和管理 Firefox、GIMP、VLC 等窗口。仅限 Linux。
在Minecraft中作为模组实现的Wayland合成器
一个在游戏内实现了功能完整的Wayland合成器的Minecraft模组,允许用户在Minecraft世界中运行和管理应用程序。仅支持Linux。
SteamOS Linux 3.8 稳定版发布
SteamOS 3.8 已作为稳定更新发布,为 Valve 的 Steam Deck 手持游戏设备带来了改进。
像1993年那样制作图形
一位开发者详细介绍了如何构建《Catlantean 3D》——一款采用1993年时代图形技术(256色、320x240分辨率、手工制作资产、无人工智能)的第一人称射击游戏,计划在Steam上发布,重点讲解调色板渲染和资产创建。