trainworld_computercraft/computer/20/menu.lua
2025-06-01 02:23:34 +02:00

93 lines
2.2 KiB
Lua

gui = require("gridgui")
ccstrings = require("cc.strings")
local burger_storage = peripheral.wrap("minecraft:chest_0")
local menu_options = {
hamburger = {
id = "hamburger",
name = "Steamed Hams",
description = "normal boring burger, required to be on the menu for legal reasons",
price = 13.12,
},
the_slab = {
id = "the_slab",
name = "The Slab",
description = "Carefully curated human meat (for humans)",
price = 0.31,
},
mega_mega_stack = {
id = "mega_mega_stack",
name = "Mega Mega Stack",
description = "WOW",
price = 1,
},
pickle = {
id = "pickle",
name = "Just Pickles",
description = "Soft on the outside crunchy on the inside",
price = 70,
},
sour_cream = {
id = "sour_cream",
name = "Sour cream in a cone",
price = 50,
description = "Aged sour cream left out to aerate for 30 hours",
}
}
local menu_layout = {
{ menu_options.the_slab, menu_options.hamburger },
{ menu_options.mega_mega_stack, menu_options.pickle },
{ menu_options.sour_cream },
{ "checkout", "clear" }
}
local in_checkout = false
local basket = {}
function draw_menu_item(menu_item, x, y, width, height)
if type(menu_item) == "table" then
writeAt(menu_item.name, x + 1, y + 1)
writeAt(" $" .. tostring(menu_item.price), x + 1, y + 2)
for i, line in pairs(ccstrings.wrap(menu_item.description, width - 1)) do
writeAt(line, x + 1, y + 2 + i)
end
elseif menu_item == "checkout" then
writeAt("checkout (" .. #basket .. " items)", x + 1, y + 1)
elseif menu_item == "clear" then
writeAt("clear", x + 1, y + 1)
end
end
function menu_gui()
gui.setLayout(menu_layout, { 25, 24 }, { 6, 6, 6, 2 })
while true do
term.clear()
term.setCursorPos(1, 1)
if in_checkout then
print("checkout:")
gui.draw(30,3, function(i,x,y) writeAt(i,x+2,y+2) end)
gui.handleInput(function (c)
end)
else
print("Welcome to Spudsy's!")
print("menu:")
gui.draw(0, 2, draw_menu_item)
gui.handleInput(
function(button)
if button.id then
table.insert(basket, button.id)
elseif button == "cancel" then
basket = {}
elseif button == "checkout" then
in_checkout = true
gui.setLayout({{1,2,3},{4,5,6},{9,8,7},{".",0}}, {4,4,4}, {4,4,4,4})
end
end
)
end
end
end