跳转至

Namespaces


标题:命名空间 提及: - SirLich - MedicalJewel105 描述:命名空间是标识内容所有权的标识符,它们有助于避免命名冲突的发生。


命名空间是标识内容所有权的标识符。你可以将它们视为文件夹。命名空间有助于避免命名冲突的发生。

在附加包创建中,命名空间本质上可以被视为“冒号左侧的部分”。例如,minecraftminecraft:zombie 的命名空间。其一般形式为 namespace:name

为了具体说明命名空间为何有用,假设你创建了一个新的生物。你将其命名为 minecraft:shark,而不知道你应该为自定义内容创建自己的命名空间。明年,Mojang 决定将鲨鱼添加到游戏中!现在就出现了命名冲突,因为存在两个 minecraft:shark 的定义。你的附加包将会崩溃。

如果你使用的是 your_namespace:shark,则不会发生命名冲突。

选择命名空间

合适的命名空间是独特的。像 mobcarscontentcustom 这样的命名空间是不好的选择,因为其他开发者可能会与你使用相同的命名空间。

合适的命名空间应该简短。你将会频繁使用你的命名空间,因此越短越好。george_carlin_the_comedian 由于这个原因将是一个糟糕的命名空间。

对于个人项目,我建议使用你玩家名称的简便版本,而对于商业项目,我建议使用公司名称的合适版本。

一些好的示例:

  • gcarlin
  • sirlich
  • cubeworld
  • bworks

切勿使用 minecraftminecon 作为命名空间,除非编辑原版文件。这不仅是个糟糕的主意,而且 Minecraft 保留了这些命名空间,甚至无法使用。

在哪里使用命名空间?

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

首先,当向游戏添加自定义实体时,你应该使用命名空间。

sirlich:sharkshark 更好。

你还应该在组件和事件中使用命名空间。就像 Mojang 使用 minecraft:pig_saddled 一样,你应该使用 namespace:my_mob_eventnamespace:my_component_group

在动画控制器、渲染控制器和动画中也应该使用命名空间。

例如:controller.animation.namespace.entity_name.actioncontroller.animation.my_action 更好。

不要在何处使用命名空间。

实际的文件结构不需要命名空间。

animations/namespace/my_entity/animationanimations/my_entity/animation 更令人困惑。