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

Criado em 22 dez. 2018  ·  15Comentários  ·  Fonte: FabricMC/yarn

Container implica inventário. É muito fácil confundir essa classe com uma coisa apenas de inventário, mas:

  • ele carrega informações numéricas não de inventário, como o progresso do forno ou da máquina
  • é usado até para sincronizar informações não muito numéricas, como efeitos de beacon
  • ele contém o syncId que é usado para gerenciar as informações entregues pelo pacote personalizado
  • ele gerencia cliques de botão, como em EnchantingTableContainer
  • Slots e botões têm localizações x/y. Isso também faz o Container funcionar como uma descrição estrutural do gui.

Então o nome Container nunca funcionou para mim. Tendo tudo isso em mente, SharedGuiState pode não ser o melhor nome aqui. É difícil nomear smurf todas as instâncias específicas. Para torná-lo um nome de pacote melhor, talvez net.minecraft.guistate.GuiState. Mas acho que se conseguirmos chegar a um bom consenso sobre o propósito do objeto, podemos encontrar um ajuste muito melhor.

Comentários muito úteis

Concordo que Container deve ir, não importa qual seja a substituição, porque faz muito pouco sentido e certamente não seria nomeado Container em yarn se não fosse por voldemap.

Eu acho que o Menu é bom e o GuiState é menos bom, mas suportável. Eu diria que o nome não deve ter mais de 10 caracteres, pois será usado com bastante frequência

Todos 15 comentários

então UiData ou UserInterfaceData?

SyncedGui ?

@therealfarfetchd disse que é importante que não seja um gui normal, então talvez SyncedInterface ou algo assim

19w02a Mojang diz "createMenu"

Do canal #yarn no discord:

  • alguns de nós odeiam o menu de nomes, cheira a entalhe e é vago
  • debatendo coisas como ServerUi/ClientUi, Gui/GuiState
  • asie sugere que vamos K-ON!

Eu sinto que talvez precisemos ir para Menu/Screen , por causa da política de usar nomes Mojang onde os conhecemos.

Eu diria "não mude um nome ruim para um nome pior", mesmo que seja um Mojang.

O principal problema com Container é que é voldename, então é IMO pior que o nome Mojang, pois pode nos causar problemas.

Concordo que Container deve ir, não importa qual seja a substituição, porque faz muito pouco sentido e certamente não seria nomeado Container em yarn se não fosse por voldemap.

Eu acho que o Menu é bom e o GuiState é menos bom, mas suportável. Eu diria que o nome não deve ter mais de 10 caracteres, pois será usado com bastante frequência

Acho que GuiState não é o nome mais bonito de se ver, mas é o que melhor exibe sua função. Outra opção semelhante é o GuiController, faz sentido se você olhar como uma espécie de padrão MVC (Inventory = model, Gui = View, Container = Controller), mas é um pouco mais longo que o GuiState.

Deve ser ScreenState ou ScreenController agora que Gui foi renomeado.

Eu amo tudo sobre isso, exceto que é longo. Terminaríamos não apenas com CartographyTableScreenController , mas também com DoubleLockableScreenController e NameableScreenControllerProvider . É excepcionalmente claro embora.

Eu sinto que o Controller é muito genérico para ter em um motor de jogo por si só, mas neste caso não colide com nada. Além disso, o pacote pode ser usado para torná-lo mais específico. Que tal tê-lo no pacote net.minecraft.screen.controller?

O controle é ótimo 👍

Embora eu ainda ache que Controller é o nome mais preciso, #846 tem razões muito convincentes para adoção.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Juuxel picture Juuxel  ·  5Comentários

Runemoro picture Runemoro  ·  4Comentários

Draylar picture Draylar  ·  6Comentários

Boundarybreaker picture Boundarybreaker  ·  3Comentários

liach picture liach  ·  4Comentários