Files
2025-03-20 11:52:46 +08:00

2.5 KiB
Raw Permalink Blame History

title, mentions
title mentions
命名空间
SirLich
MedicalJewel105

命名空间

命名空间是用于标识内容归属的标识符。你可以将它们理解为文件夹。命名空间有助于避免命名冲突的产生。

在附加包创作中,命名空间本质上可以看作是"冒号左侧的部分"。例如在minecraft:zombie中,minecraft就是命名空间。其通用格式为命名空间:名称

举个具体例子说明命名空间的重要性:假设你创建了一个新生物并命名为minecraft:shark却不知道应该为自定义内容使用自己的命名空间。一年后Mojang决定在游戏中加入鲨鱼此时就会出现两个minecraft:shark的定义,导致命名冲突,你的附加包将无法正常运行。

如果你当初使用你的命名空间:shark,就不会发生这种冲突。

如何选择命名空间

合适的命名空间应当具有个人独特性。类似mobcarscontentcustom这样的通用词是糟糕的命名空间选择,因为其他开发者可能会使用相同的名称。

合适的命名空间应当简短。你将会频繁使用你的命名空间,因此越简短越好。类似george_carlin_the_comedian这样的长命名空间就不太合适。

对于个人项目建议使用玩家ID的简化版本商业项目则建议使用公司名称的合适变体。

优秀示例:

  • gcarlin
  • sirlich
  • cubeworld
  • bworks

切勿使用minecraftminecon作为命名空间除非修改原版文件。这不仅是个糟糕的主意而且Minecraft保留了这些命名空间的使用权实际也无法生效。

命名空间的使用场景

简而言之,应当尽可能多地使用命名空间。

基础原则:为游戏添加自定义实体时必须使用命名空间。sirlich:shark的命名方式远优于shark

在组件和事件的命名中也应使用命名空间。就像Mojang使用minecraft:pig_saddled那样,你应该使用命名空间:我的生物事件命名空间:我的组件组的格式。

在动画控制器、渲染控制器和动画的命名中也推荐使用命名空间。例如:controller.animation.命名空间.实体名称.动作的格式优于controller.animation.我的动作

无需使用命名空间的场景

实际文件结构不需要包含命名空间。animations/命名空间/我的实体/animation的路径结构反而会比animations/我的实体/animation更易造成混淆。