Context Menu
Comment étendre et utiliser le menu contextuel de Sandbox.
Le menu contextuel est un menu à l'intérieur du mode de jeu Sandbox qui fournit des paramètres d'exécution tels que le réglage de la lumière du soleil ou le respawning. Il est accédé par la touche C
par défaut et est activé/éteint en appuyant dessus.
Il est possible d'ajouter/supprimer des paramètres du menu contextuel directement via Lua !
tip
Vous pouvez voir le code source du menu contextuel dans le dépôt GitHub de Sandbox.
Ajouter de nouvelles entrées
-- Adds new items to the Context Menu
---@param id string Unique ID used to identify this category
---@param title string Category title
---@param items table Table of items
function ContextMenu.AddItem(id, title, items)
The items
parameter is a list of tables with the format for each type
:
checkbox
{
id = "id-of-item",
type = "checkbox",
label = "my check box",
callback_event = "ContextMenu_MyCheckboxSelected"
},
range
{
id = "id-of-item",
type = "range",
label = "slide me!",
callback_event = "ContextMenu_MyRangeChanged"
min = 0,
max = 1440,
value = 720,
auto_update_label = false,
},
button
{
id = "id-of-item",
type = "button",
label = "press me",
callback_event = "ContextMenu_MyButtonPressed"
},
select_image
{
id = "id-of-item",
type = "select_image",
label = "select the image",
callback_event = "SelectBalloonAsset",
selected = "id-opt-1",
options = {
{ id = "id-opt-01", name = "Opt 01", image = "package://your-package/01.jpg" },
{ id = "id-opt-02", name = "Opt 02", image = "package://your-package/02.jpg" },
}
}
select
{
id = "id-de-lelement",
type = "select",
label = "sélectionner l'option",
callback_event = "SelectDropDownOption",
selected = "id-opt-1",
options = {
{ id = "id-opt-01", name = "Opt 01" },
{ id = "id-opt-02", name = "Opt 02" },
}
}
color
{
id = "id-of-item",
type = "color",
label = "selec the color",
callback_event = "ContextMenu_MyButtonPressed",
value = Color.RED:ToHex(false)
},
Supprimer des entrées
-- Supprime les éléments du Menu Contextuel
---@param id string Identifiant unique utilisé pour identifier cette catégorie
function ContextMenu.RemoveItems(id)
Examples
You can find examples and how it works deeply at the ContexMenu.lua file.
Also, you can see a working example of dynamically adding an entry to the Context Menu in the BallonGun.