forked from Simnation/Main
100 lines
3.1 KiB
Lua
100 lines
3.1 KiB
Lua
ketchup = false
|
|
dish = "Banana"
|
|
quantity = 1
|
|
_menuPool = MenuPool.New()
|
|
mainMenu = UIMenu.New("Native UI", "~b~NATIVEUI SHOWCASE")
|
|
_menuPool:Add(mainMenu)
|
|
|
|
function ShowNotification(text)
|
|
SetNotificationTextEntry("STRING")
|
|
AddTextComponentString(text)
|
|
DrawNotification(false, false)
|
|
end
|
|
|
|
function AddMenuKetchup(menu)
|
|
local newitem = UIMenuCheckboxItem.New("Add ketchup?", ketchup, "Do you wish to add ketchup?")
|
|
menu:AddItem(newitem)
|
|
menu.OnCheckboxChange = function(sender, item, checked_)
|
|
if item == newitem then
|
|
ketchup = checked_
|
|
ShowNotification("~r~Ketchup status: ~b~"..tostring(ketchup))
|
|
end
|
|
end
|
|
end
|
|
|
|
function AddMenuFoods(menu)
|
|
local foods = {
|
|
"Banana",
|
|
"Apple",
|
|
"Pizza",
|
|
"Quartilicious",
|
|
"Steak",
|
|
0xF00D,
|
|
}
|
|
local newitem = UIMenuListItem.New("Food", foods, 1)
|
|
menu:AddItem(newitem)
|
|
menu.OnListChange = function(sender, item, index)
|
|
if item == newitem then
|
|
dish = item:IndexToItem(index)
|
|
ShowNotification("Preparing ~b~" .. dish .. "~w~...")
|
|
end
|
|
end
|
|
end
|
|
|
|
function AddMenuFoodCount(menu)
|
|
local amount = {}
|
|
for i = 1, 100 do amount[i] = i end
|
|
local newitem = UIMenuSliderItem.New("Quantity", amount, 1, false)
|
|
menu:AddItem(newitem)
|
|
menu.OnSliderChange = function(sender, item, index)
|
|
if item == newitem then
|
|
quantity = item:IndexToItem(index)
|
|
ShowNotification("Preparing ~r~" .. quantity .. " ~b~" .. dish .. "(s)~w~...")
|
|
end
|
|
end
|
|
end
|
|
|
|
function AddMenuCook(menu)
|
|
local newitem = UIMenuItem.New("Cook!", "Cook the dish with the appropriate ingredients and ketchup.")
|
|
newitem:SetLeftBadge(BadgeStyle.Star)
|
|
newitem:SetRightBadge(BadgeStyle.Tick)
|
|
menu:AddItem(newitem)
|
|
menu.OnItemSelect = function(sender, item, index)
|
|
if item == newitem then
|
|
local string = "You have ordered ~r~" .. quantity .. " ~b~"..dish.."(s)~w~ ~r~with~w~ ketchup."
|
|
if not ketchup then
|
|
string = "You have ordered ~r~" .. quantity .. " ~b~"..dish.."(s)~w~ ~r~without~w~ ketchup."
|
|
end
|
|
ShowNotification(string)
|
|
end
|
|
end
|
|
menu.OnIndexChange = function(sender, index)
|
|
if sender.Items[index] == newitem then
|
|
newitem:SetLeftBadge(BadgeStyle.None)
|
|
end
|
|
end
|
|
end
|
|
|
|
function AddMenuAnotherMenu(menu)
|
|
local submenu = _menuPool:AddSubMenu(menu, "Another Menu")
|
|
for i = 1, 20, 1 do
|
|
submenu:AddItem(UIMenuItem.New("PageFiller", "Sample description that takes more than one line. Moreso, it takes way more than two lines since it's so long. Wow, check out this length!"))
|
|
end
|
|
end
|
|
|
|
AddMenuKetchup(mainMenu)
|
|
AddMenuFoods(mainMenu)
|
|
AddMenuFoodCount(mainMenu)
|
|
AddMenuCook(mainMenu)
|
|
AddMenuAnotherMenu(mainMenu)
|
|
_menuPool:RefreshIndex()
|
|
|
|
Citizen.CreateThread(function()
|
|
while true do
|
|
Citizen.Wait(0)
|
|
_menuPool:ProcessMenus()
|
|
if IsControlJustPressed(1, 51) then
|
|
mainMenu:Visible(not mainMenu:Visible())
|
|
end
|
|
end
|
|
end)
|