Passer au contenu principal
Version: bleeding-edge 🩸

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.