
低代码代码生成桌面应用游戏开发【免费下载链接】MCreatorMCreator is an open-source software used to make Minecraft Java Edition mods, Minecraft Bedrock Edition Add-Ons, resource packs, and data packs using an intuitive easy-to-learn interface or with an integrated code editor. It is used worldwide by Minecraft players, aspiring mod developers, for education, online classes, and STEM workshops.项目地址https://gitcode.com/gh_mirrors/mc/MCreator点击查看免费下载导读「水下方块」Underwater Block是 MCreator 群系Biome编辑器中控制海底地表材质的核心参数它决定海洋、湖泊、河流等水域底部的方块。本指南基于 MCreator 官方帮助文档underwater_block.md并结合仓库源码说明该参数的作用、留空时的默认回退行为、从编辑器到世界生成器的底层实现链路以及为什么复杂方块会拖慢世界生成和游戏运行帮助你配置出既美观又高性能的自定义群系。参数定位群系编辑器中的「水下的方块」在 MCreator 的群系编辑界面中该参数位于「生成属性」区域显示为「水下的方块」与「地面的方块」ground block和「地下的方块」underground block并列。它使用方块选择器MCItemHolder选择单个方块帮助按钮关联的帮助条目正是biome/underwater_block界面实现BiomeGUI.java帮助挂载BiomeGUI.java中文界面文案见 texts_zh_CN.propertieselementgui.biome.underwater_block参数的核心语义在帮助文档中定义得非常明确该参数指定水下生成的方块。大多数原版群系使用泥土Dirt或沙砾Gravel作为水下方块。例如海洋群系的海底往往是沙砾河流群系的海底往往是泥土或沙砾这正是本参数的典型用途——让水域底部与岸上的地表材质区分开形成更自然的群系外观。数据模型中的对应字段群系元素的数据模型在 Biome.java 中定义为可空字段Nullable public MItemBlock underwaterBlock;与之配套的还有groundBlock地面方块默认草方块与undergroundBlock地下方块默认泥土Blocks.DIRT#0三者共同构成群系地表的三层结构。关键行为留空时的默认回退帮助文档指出水下方块可以留空。留空时MCreator 会回退使用「地下的方块」作为水下方块这一逻辑由 Biome.java 中的getUnderwaterBlock()方法实现public MItemBlock getUnderwaterBlock() { if (underwaterBlock null || underwaterBlock.isEmpty()) return undergroundBlock; return underwaterBlock; }也就是说设置了水下方块→ 水域底部使用该方块未设置留空→ 自动使用「地下的方块」填充水域底部。编辑器端还有一个默认值细节新建群系非编辑模式时MCreator 会自动把水下方块预填为沙砾Blocks.GRAVEL见 BiomeGUI.java。因此在大多数情况下你无需手动修改只需在需要自定义海底材质如珊瑚砂、黏土、专属的 mod 方块时才显式设置。注Bedrock 版群系Add-On 表面生成器同样有对应的「水下方块」选项其帮助条目为bebiome/underwater_block见 BEBiomeGUI.java行为语义一致。底层原理水下方块是如何被生成的理解了 UI 行为后再看生成链路可以确认该参数的真实影响范围。以 NeoForge 1.21.1 生成器为例水下方块被注入到世界生成的 SurfaceRules表面规则中实现位于 elementinits/biomes.java.ftlprivate static SurfaceRules.RuleSource preliminarySurfaceRule(ResourceKeyBiome biomeKey, BlockState groundBlock, BlockState undergroundBlock, BlockState underwaterBlock) { return SurfaceRules.ifTrue(SurfaceRules.isBiome(biomeKey), SurfaceRules.ifTrue(SurfaceRules.abovePreliminarySurface(), SurfaceRules.sequence( SurfaceRules.ifTrue(SurfaceRules.stoneDepthCheck(0, false, 0, CaveSurface.FLOOR), SurfaceRules.sequence( // 关键判断检测该地表位置是否邻接水 SurfaceRules.ifTrue(SurfaceRules.waterBlockCheck(-1, 0), SurfaceRules.state(groundBlock) // 水面上方露出水面的部分 → 地面方块 ), SurfaceRules.state(underwaterBlock) // 被水覆盖的部分 → 水下方块 ) ), SurfaceRules.ifTrue(SurfaceRules.stoneDepthCheck(0, true, 0, CaveSurface.FLOOR), SurfaceRules.state(undergroundBlock) // 更深处 → 地下方块 ) ) ) ); }可以看到生成器用waterBlockCheck(-1, 0)判断地表方块是否直接邻接水若邻接水则使用地面方块露出水面的部分否则使用水下方块沉浸在水下的部分。anySurfaceRule变体用于洞穴群系与下界群系采用相同的waterBlockCheck结构见 biomes.java.ftl。数据包生成器1.21.1则以 JSON 表面规则实现等价逻辑见 surface_builder.json.ftl{ type: minecraft:condition, if_true: { type: minecraft:water, offset: -1, surface_depth_multiplier: 0, add_stone_depth: false }, then_run: { type: minecraft:block, result_state: 水下方块 } }模板中underwaterBlockWithProperties默认回退为undergroundBlockWithProperties见宏定义第 36 行与第 44 行与 Java 端getUnderwaterBlock()的回退语义完全一致。而整套代码/JSON 的生成时机由 biome.definition.yaml 中的global_templates控制——只要工作区中存在设置为主世界/洞穴/下界生成的群系就会生成对应的JavaModNameBiomes.java初始化类。群系预览的一致性值得留意的是群系预览图同样由groundBlock、undergroundBlock等材质拼成generateModElementPicture()方法调用MinecraftImageGenerator.Preview.generateBiomePreviewPicture(...)见 Biome.java。水下方块主要影响的是实际世界生成中的海底材质而非预览图主体。为什么应避免复杂方块性能警告的底层解读帮助文档给出了一个强硬的建议清单要求避免将以下方块用作水下方块透明方块transparent blocks不是完整立方体的方块non-full-cube blocks如台阶、楼梯、栅栏带 Tile Entity方块实体、NBT 标签或自带物品栏的方块如箱子、熔炉、功能方块用作目标点target points的方块会 tick周期性更新的方块。帮助文档明确指出后果使用此类方块会导致世界生成缓慢并且在已加载的世界中可能造成严重卡顿lag。从实现角度可以解释这一警告的根源放置频率极高水下方块在每一个区块的水域地表处都会被大量放置。任何带 Tile Entity 的方块都会在每个实例上维护独立数据成千上万个实体方块箱体、NBT 数据会在区块加载与保存时产生巨大的序列化开销直接拖慢世界生成chunk generation与服务器 tick非完整方块与透明方块会破坏地表连续性、导致区块边界处出现可视瑕疵同时面剔除face culling失效会让渲染负担上升会 tick 的方块如红石元件、植物会在大面积海底持续执行更新逻辑造成已加载区块内的长期性能损耗——这正是文档所说「在已加载的世界中可观测到强卡顿」的来源。同理方向敏感的方块如朝向型方块在水下生成时还可能出现朝向不一致的视觉问题。因此水下方块应优先选择简单的完整方块full cube这也是原版群系普遍使用泥土、沙砾、石头等基础方块的原因。最佳实践小结默认方案不需要特殊海底外观时直接留空自动回退到地下方块或保留默认的沙砾自定义外观选择静态、无状态的完整方块——如原版沙砾、石头、黏土或你的 mod 中不带 Tile Entity 的固体方块避免方案透明方块、非完整方块、带 Tile Entity/NBT/物品栏的方块、目标点方块以及会 tick 的方块与地表搭配将水下方块与「地面的方块」「地下的方块」一并规划使岸边、水面、水底三层材质过渡自然验证效果生成/构建后进入游戏实地查看水域底部确认海底材质符合预期且区块加载流畅。通过理解这一参数在 Biome.java 的回退逻辑、在 biomes.java.ftl 与 surface_builder.json.ftl 中的生成实现你可以在自定义群系中自由塑造海底地貌同时避开世界生成性能陷阱。赞分享低代码代码生成桌面应用游戏开发【免费下载链接】MCreatorMCreator is an open-source software used to make Minecraft Java Edition mods, Minecraft Bedrock Edition Add-Ons, resource packs, and data packs using an intuitive easy-to-learn interface or with an integrated code editor. It is used worldwide by Minecraft players, aspiring mod developers, for education, online classes, and STEM workshops.项目地址https://gitcode.com/gh_mirrors/mc/MCreator点击查看免费下载相关推荐MCreator 生物群系地下方块Underground Block参数完全指南作用原理、配置建议与性能陷阱MCreator 生物群系地下方块Underground Block参数完全指南作用原理、配置建议与性能陷阱 导读 在 MCreator 的生物群系编辑器低代码代码生成桌面应用游戏开发MCreator 基岩版生物群系「水下方块」参数配置指南作用、默认行为与性能避坑MCreator 基岩版生物群系「水下方块」参数配置指南作用、默认行为与性能避坑 本指南面向使用 MCreator 制作 Minecraft Bedrock低代码代码生成桌面应用游戏开发MCreator 生物群系地面方块Ground Block参数详解选材规则、生成原理与性能优化MCreator 生物群系地面方块Ground Block参数详解选材规则、生成原理与性能优化 在 MCreator 的 Biome生物群系元素中低代码代码生成桌面应用游戏开发上一篇数据科学实战项目gh_mirrors/da/data-science-from-scratch部署与应用下一篇开源硬件监控工具 LibreHardwareMonitor从编译到远程 Web 监控的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考