Yarn: net.minecraft.container.Container -> SharedGuiState?

创建于 2018-12-22  ·  15评论  ·  资料来源: FabricMC/yarn

容器意味着库存。 很容易将这个类误认为是仅存货的东西,但是:

  • 它携带非库存数字信息,例如熔炉或机器进度
  • 它甚至用于同步非数字信息,例如信标效果
  • 它包含用于管理自定义数据包传递信息的 syncId
  • 它管理按钮点击,例如 EnchantingTableContainer
  • 插槽和按钮具有 x/y 位置。 这也使得 Container 可以作为 gui 的结构描述。

所以Container这个名字从来没有真正适合我。 记住这一切,SharedGuiState 可能不是这里最好的名字。 很难为所有特定实例命名。 为了使它成为一个更好的包名,也许用 net.minecraft.guistate.GuiState 代替。 但我认为,如果我们能够就对象的用途达成良好共识,我们就能找到更合适的对象。

最有用的评论

我同意无论替换什么都应该使用 Container,因为它没有什么意义,如果不是 voldemap,它肯定不会在 yarn 中命名为 Container。

我认为 Menu 很好,而 GuiState 不太好但可以忍受。 我会说名称不应超过 10 个字符,因为它会经常使用

所有15条评论

那么是 UiData 还是 UserInterfaceData?

SyncedGui ?

@therealfarfetchd说它不是普通的 gui 很重要,所以可能是SyncedInterface之类的

19w02a Mojang 说“createMenu”

来自 discord 中的#yarn 频道:

  • 我们中的一些人讨厌名称菜单,它散发着档次的味道并且含糊不清
  • 辩论诸如 ServerUi/ClientUi、Gui/GuiState 之类的事情
  • asie 建议我们去 K-ON!

我觉得我们最终可能需要转到Menu/Screen ,因为我们知道使用 Mojang 名称的政策。

我会说“不要把坏名字改成更坏的名字”,即使它是 Mojang 的名字。

Container的主要问题是它是 voldename,所以它比 Mojang 名称更糟糕,因为它可能会给我们带来麻烦。

我同意无论替换什么都应该使用 Container,因为它没有什么意义,如果不是 voldemap,它肯定不会在 yarn 中命名为 Container。

我认为 Menu 很好,而 GuiState 不太好但可以忍受。 我会说名称不应超过 10 个字符,因为它会经常使用

我认为 GuiState 不是最好看的名字,但它是最能展示其功能的名字。 另一个类似的选项是 GuiController,如果您将其视为一种 MVC 模式(Inventory = model,Gui = View,Container = Controller),它是有意义的,但它比 GuiState 长一点。

现在应该是 ScreenState 或 ScreenController ,因为 Gui 已被重命名。

我喜欢这一切,除了它很长。 我们不仅会使用CartographyTableScreenController ,还会使用DoubleLockableScreenControllerNameableScreenControllerProvider 。 不过异常清晰

我觉得控制器太通用了,不能单独存在于游戏引擎中,但在这种情况下,它不会与任何东西发生冲突。 此外,该包可用于使其更具体。 将它放在 net.minecraft.screen.controller 包中怎么样?

控制器很棒👍

虽然我仍然认为 Controller 是最准确的名称,但 #846 具有非常令人信服的采用理由。

此页面是否有帮助?
0 / 5 - 0 等级