Aller au contenu
Tous les guides

Le menu avec prix et icônes

Nous allons ici construire un menu contenant permettant d’afficher des prix.

Construction#

Commençons par créer la fonction qui englobera la création du menu pour le joueur :

C#
public void CreatePanel(Player player) { }

Nous allons dans cet exemple afficher les informations de l’objet n°1 :

C#
Item item = Nova.man.item.GetItem(1);

Nous pouvons désormais appeler le constructeur en utilisant le type TabPrice :

C#
UIPanel pricePanel = new UIPanel("Menu avec prix", UIPanel.PanelType.TabPrice);

Nous pouvons déjà ajouter un bouton Fermer avec la méthode AddButton() qui fermera le menu que nous intitulerons panel :

C#
pricePanel.AddButton("Fermer", (panel) =>
{
    player.ClosePanel(panel);
});

Et un bouton Valider qui exécutera le code associé à l’onglet sélectionné :

C#
pricePanel.AddButton("Valider", (panel) =>
{
    panel.SelectTab();
});

Nous allons désormais ajouter les informations de notre item dans un onglet dédié avec la méthode AddTabLine() :

Champs Correspondance
Titre Steak
Prix 10€
Icône L’icône du steak
Action Affiche dans la console Item sélectionné et l’id du steak

Attention

Les noms des items doivent êtres traduits dans la langue du joueur grâce à la fonction player.NewTranslate()

C#
pricePanel.AddTabLine(player.NewTranslate("Items", item.itemName), 10 + "€", Nova.man.newIcons.IndexOf(item.Icon), (panel) =>
{
    Debug.Log("Item selectionné : " + item.id);
});

Il ne nous reste plus qu’à afficher le menu au joueur avec la méthode ShowPanelUI() :

C#
player.ShowPanelUI(pricePanel);

Résultat#

Le code complet#

C#
public void CreatePanel(Player player)
{
    Item item = Nova.man.item.GetItem(1);

    UIPanel pricePanel = new UIPanel("Menu avec prix", UIPanel.PanelType.TabPrice);

    pricePanel.AddButton("Fermer", (panel) =>
    {
        player.ClosePanel(panel);
    });

    pricePanel.AddButton("Valider", (panel) =>
    {
        panel.SelectTab();
    });

    pricePanel.AddTabLine(player.NewTranslate("Items", item.itemName), 10 + "€", Nova.man.newIcons.IndexOf(item.Icon), (panel) =>
    {
        Debug.Log("Item selectionné : " + item.id);
    });

    player.ShowPanelUI(pricePanel);
}

Une version simplifiée#

C#
public void CreatePanel(Player player)
{
    Item item = Nova.man.item.GetItem(1);

    UIPanel pricePanel = new UIPanel("Menu avec prix", UIPanel.PanelType.TabPrice)
    .AddButton("Fermer", (panel) =>
    {
        player.ClosePanel(panel);
    })
    .AddButton("Valider", (panel) =>
    {
        panel.SelectTab();
    })
    .AddTabLine(player.NewTranslate("Items", item.itemName), 10 + "€", Nova.man.newIcons.IndexOf(item.Icon), (panel) =>
    {
        Debug.Log("Item selectionné : " + item.id);
    });

    player.ShowPanelUI(pricePanel);
}