93 lines
2.2 KiB
Lua
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
|