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 :
public void CreatePanel(Player player) { }Nous allons dans cet exemple afficher les informations de l’objet n°1 :
Item item = Nova.man.item.GetItem(1);Nous pouvons désormais appeler le constructeur en utilisant le type TabPrice :
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 :
pricePanel.AddButton("Fermer", (panel) =>
{
player.ClosePanel(panel);
});Et un bouton Valider qui exécutera le code associé à l’onglet sélectionné :
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()
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() :
player.ShowPanelUI(pricePanel);Résultat#
Le code complet#
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#
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);
}