Esta funcionalidade está em estado experimental, então você pode testá-la, fornecer feedback e ver o que estamos planejando. No momento, não é possível publicar um projeto que utilize o sistema de itens.
Lembre-se de que não garantimos a retrocompatibilidade de ativos criado em um estágio experimental, as APIs para essas funcionalidades podem sofrer alterações e podemos remover completamente funcionalidades experimentais ou uma funcionalidade específica a nosso critério. Confira a lista de problemas conhecidos antes de começar a trabalhar com a funcionalidade.
No sistema de Itens e Inventários Personalizados, um item_component torna-se uma classe que define o que é e o que não é um item. Para saber como adicionar um componente à sua entidade, consulte Como trabalhar com entidades e componentes.
As entidades serão consideradas itens apenas se tiverem um item_component. Sem um, as entidades não serão adicionadas aos inventários adequadamente, bem como a funcionalidade de itens e inventários personalizados pode ser interrompida.
Referências a um "item" fazem referência diretamente a uma entidade com um
item_component.As referências a "inventários" fazem referência diretamente a uma entidade com um
inventory_component.
Definição de classe
Anexar um item_component a uma entidade transforma a entidade em um item. Isso significa que pode ser adicionado a um inventário e manipulado por inventários. O item_component também contém as seguintes funcionalidades básicas:
Categorias— Uma matriz deitem_categoryque pode ser usada para classificar e configurar.Comportamento de empilhamento de itens:
StackSize— Um inteiro que transmite quantos desses itens estão empilhados.MaxStackSize— Quantos itens podem ser mesclados ou empilhados antes que uma nova pilha deva ser criada. O padrão é nenhum máximo (por exemplo, empilhamento infinito).Assine
ChangeStackSizeEventpara monitorar alterações de pilha.MergeableItemComponentClassesé uma matriz que pode conter subclasses de Oitem_component. Assim, qualquer entidade com uma subclasse dentro da matriz se pode mesclar com essa entidade para formar uma pilha.
O componente também contém funções auxiliares, como
GetParentInventory()eIsEquipped().
Mais funcionalidades podem ser dadas a um item com componentes adicionais que expõem diferentes funcionalidades e jogabilidade básica do Fortnite. Você também pode escrever seus próprios componentes Verse personalizados. Para obter mais informações, confira a referência da API item_component na API do Verse.
Consulte Componentes para obter uma lista completa de componentes de itens e inventários personalizados.
Exemplo
Componentes de item são exigidos pelas entidades para funcionar como itens. O Editor de Estruturas Pré-fabricadas tem propriedades editáveis limitadas, então, para aproveitar ao máximo o componente, você precisará usar Verse.
using { /Fortnite.com/Devices }
using { /Verse.org/SceneGraph }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Itemization }
# Helper function that gets the first descendant inventory component from an agent.
# This will be the root inventory.
GetAgentInventory(Agent:agent)<decides><transacts>:inventory_component=
TargetInventory := (for (I : Agent.FindDescendantComponents(inventory_component)) { I })[0]
Funcionalidades podem ser facilmente adicionadas a itens criando uma subclasse de item_component. Pode servir para modificar as propriedades básicas ou para adicionar novas funções e campos específicos à sua experiência.
custom_item_component := class(item_component) :
# We could populate the Categories array with Fortnite and/or custom item categories.
Categories<override>:[]item_category = array{}
# By adding itself to the MergeableItemComponentClasses, it allows entities with this item_component to merge in inventories.
MergeableItemComponentClasses<override>:[]castable_subtype(item_component) = array{custom_item_component}
Aqui, você pode ver um item pré-fabricado usando o custom_item_component mostrado acima. O item é coletado, e um novo ressurge. Você pode ver o comportamento de empilhamento no inventário.