Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- pastebin get -f vCVSNzcP McWiMa
- local computer = require("computer")
- local event = require("event")
- local component=require ("component")
- local gpu=component.gpu
- local transposer=component.transposer
- local screen=component.screen
- local screenX, screenY, Ebene, Summe, DrawerSeite, EmeraldSeite
- local Menus={}
- local Bestellung={}
- local Menge={}
- local wkX=46 -- welcome x-coord
- local Preise={
- ["Corned Beef Breakfast"]={13,32,2},
- ["Korean Dinner"]={12,29,2},
- ["Thankful Dinner"]={12,29,2},
- ["Meat Feast Pizza"]={12,29,2},
- ["Southern Style Breakfast"]={10,24,2}
- }
- local GP={0.07,0.03,0.5}
- function hinterGrund()
- gpu.setBackground(0x002288)
- gpu.setForeground(0xAAFF00)
- gpu.fill(1, 1, 96, 30, " ")
- gpu.fill(2, 3, 94, 1, "X")
- gpu.fill(2, 29, 94, 1, "X")
- gpu.fill(2, 3, 1, 26, "X")
- gpu.fill(95, 3, 1, 26, "X")
- gpu.fill(48, 4, 1, 25, "|")
- gpu.setForeground(0xEEAA55)
- gpu.set(42,2," McWiMa ")
- gpu.setBackground(0xAAAABB)
- gpu.set(94,1," x ")
- end
- function willkommen()
- gpu.setBackground(0x002288)
- gpu.setForeground(0xEEAA55)
- gpu.fill(wkX, 30, 7, 1, " ")
- wkX=wkX-1
- if wkX<-6 then wkX=96 end
- gpu.set(wkX,30,"welcome")
- end
- function startSeite()
- gpu.setBackground(0x008800)
- gpu.setForeground(0xAADDFF)
- local Zeile=5
- local Spalte=0
- for Seite=0,5 do
- local isInterface=transposer.getInventoryName(Seite)
- if isInterface and string.match(isInterface,"drawer") then DrawerSeite=Seite
- elseif isInterface and string.match(isInterface,"interface") then
- for Slot=1, transposer.getInventorySize(Seite) do
- local Essen=transposer.getStackInSlot(Seite,Slot)
- if Essen and string.match(Essen.label,"Emerald") then EmeraldSeite=Seite
- elseif Essen and not string.match(Essen.label,"Emerald") then
- gpu.fill(4+Spalte*44, Zeile, 43, 2, " ")
- gpu.set(5+Spalte*44, Zeile, Essen.label)
- table.insert(Menus, Essen.label)
- local Preis=Preise[Essen.label][1]*GP[1]+Preise[Essen.label][2]*GP[2]+Preise[Essen.label][3]*GP[3]
- gpu.set(41+Spalte*44,Zeile+1,tostring(math.floor((Preis)*10)/10).." €")
- Zeile=Zeile+3
- if Zeile>27 then Spalte=1 Zeile=5 end
- end end end end end
- function touchKoor(_,_,x,y)
- screenX=x
- screenY=y
- if screenX>93 and screenY<=1 then unterBrochen() print("true") end
- if Ebene==1 then selectMenu()
- elseif Ebene==2 then selectNumber()
- end
- end
- function selectMenu()
- for i=1, math.min(8, #Menus) do
- if screenY>4+3*(i-1) and screenY<=6+3*(i-1) then
- for a=0,1 do
- if screenX>=4+a*46 and screenX<=46+a*46 and i<= #Menus-a*8 then
- table.insert(Bestellung, Menus[i+a*8])
- Menge[#Bestellung]=1
- gpu.setBackground(0x002288)
- gpu.fill(4, 5, 44, 22, " ")
- gpu.fill(50, 5, 44, 22, " ")
- Ebene=2
- selectNumberSeite()
- end end end end
- end
- function selectNumberSeite()
- gpu.setBackground(0xAAAABB)
- gpu.setForeground(0xDD0000)
- gpu.set(12,16," -- ") gpu.set(17,16," - ")
- gpu.setForeground(0x008800)
- gpu.set(24,16," + ") gpu.set(28,16," ++ ")
- gpu.setForeground(0x660000)
- for i=1,3 do
- gpu.fill(52,i*6,40,3," ")
- if i==1 then gpu.set(62,7,"Bestellung ergänzen")
- elseif i==2 then gpu.set(61,13,"Bestellung abbrechen")
- elseif i==3 then gpu.set(64,19,"jetzt bezahlen")
- end end
- gpu.setForeground(0xAAEEFF)
- gpu.setBackground(0x002288)
- gpu.set(4,10,Bestellung[#Bestellung].." :")
- gpu.set(4,13,"Bitte, geben Sie die Menge ein...")
- gpu.set(21,16,"01")
- end
- function selectNumber()
- if screenY>15 and screenY<=16 then
- if screenX>11 and screenX<=15 then Menge[#Menge]=Menge[#Menge]-10
- elseif screenX>16 and screenX<=19 then Menge[#Menge]=Menge[#Menge]-1
- elseif screenX>23 and screenX<=26 then Menge[#Menge]=Menge[#Menge]+1
- elseif screenX>27 and screenX<=31 then Menge[#Menge]=Menge[#Menge]+10
- end
- if Menge[#Menge]>32 then Menge[#Menge]=32
- elseif Menge[#Menge]<1 then Menge[#Menge]=1
- end
- gpu.setForeground(0xAAEEFF)
- if Menge[#Menge]>9 then gpu.set(21,16, tostring(Menge[#Menge]))
- else gpu.set(21,16, "0"..tostring(Menge[#Menge])) end
- end
- if screenX>51 and screenX<=92 then
- if screenY>5 and screenY<=8 then
- elseif screenY>11 and screenY<=14 then
- elseif screenY>17 and screenY<=20 then
- Ebene=3
- Summe=0
- gpu.setBackground(0x002288)
- gpu.fill(4, 5, 44, 22, " ")
- gpu.fill(50, 5, 44, 22, " ")
- for i=1,#Bestellung do
- gpu.set(4,10+2*i,Menge[i].."x "..Bestellung[i].." :")
- local Preis=math.floor((Preise[Bestellung[i]][1]*GP[1]+Preise[Bestellung[i]][2]*GP[2]+Preise[Bestellung[i]][3]*GP[3])*10*Menge[i])/10
- Summe=Summe+Preis
- local pY=0
- if Preis>=10 then pY=1 elseif Preis>=100 then pY=2 end
- if math.floor(Preis)== math.ceil(Preis) then Preis=tostring(Preis)..",0" end
- gpu.set(41-pY,10+2*i,tostring(Preis).." €")
- end
- gpu.set(60,20,tostring(Summe).. " €")
- end end end
- function Bezahlung()
- if Summe== 0 then
- for a=1, #Bestellung do
- for Seite=0,5 do
- local isInterface=transposer.getInventoryName(Seite)
- if isInterface and string.match(isInterface,"interface") then
- for Slot=1, transposer.getInventorySize(Seite) do
- local Essen=transposer.getStackInSlot(Seite,Slot)
- if Essen and Essen.label==Bestellung[a] then
- if transposer.getSlotStackSize(Seite,Slot)>=Menge[a] then
- if transposer.transferItem(Seite,DrawerSeite,Menge[a],Slot) then Menge[a]=0 end
- else
- Menge[a]=Menge[a]-transposer.getSlotStackSize(Seite,Slot)
- if not transposer.transferItem(Seite,DrawerSeite,transposer.getSlotStackSize(Seite,Slot),Slot) then
- Menge[a]=Menge[a]+transposer.getSlotStackSize(Seite,Slot) end
- end
- end
- end
- end
- end
- end
- elseif Summe>0 then
- for b =1, transposer.getInventorySize(DrawerSeite) do
- local Geld=transposer.getStackInSlot(DrawerSeite,b)
- if Geld and Geld.label=="Emerald" then
- Summe=Summe-Geld.size
- while transposer.transferItem(DrawerSeite,EmeraldSeite,Geld.size,b,1) do end
- elseif Geld and Geld.label=="Emerald Nugget" then
- Summe=Summe-Geld.size/10
- while transposer.transferItem(DrawerSeite,EmeraldSeite,Geld.size,b,2) do end
- end
- end
- elseif Summe<0 then
- local c=math.min(transposer.getSlotStackSize(EmeraldSeite,1)-1,0-math.ceil(Summe))
- Summe=Summe+c
- transposer.transferItem(EmeraldSeite,DrawerSeite,c,1)
- transposer.transferItem(EmeraldSeite,DrawerSeite,(math.ceil(Summe)-Summe)*10,2)
- Summe=math.ceil(Summe)
- end
- gpu.set(60,20,tostring(Summe).. " €")
- end
- function unterBrochen()
- --event.ignore("interrupted",unterBrochen)
- os.exit()
- event.ignore("touch",touchKoor)
- computer.shutdown(true)
- end
- local w, h = component.screen.getAspectRatio() -- check 3x2 screen
- if w~=3 or h~=2 or gpu.maxDepth()<8 then
- print("Sorry, this Programm works only on 3x2 Tier 3 Screen!")
- os.sleep(5)
- os.exit() end
- gpu.setResolution(96,30)
- screen.setTouchModeInverted(true) -- shift+right-click to enter
- hinterGrund()
- startSeite()
- event.listen("touch",touchKoor)
- event.listen("interrupted",unterBrochen)
- Ebene=1
- while true do
- willkommen()
- if Ebene==3 then Bezahlung() end
- os.sleep(0.2)
- --touchKoor(event.pull("touch"))
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement