Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Credits = 0
- local Status = false
- local Hopper
- local Store_Box
- local Despenser
- local Ticket_Data = {}
- local Door
- local Display
- local BankDetails = {0,{"user","amount","action","reason"}}--net,format
- local Charge = -1
- local Currency = {{"createdeco:brass_coin",64},{"createdeco:iron_coin",16},{"createdeco:copper_coin",1}}
- function Setup()
- local file = fs.open("settings.txt","w")
- local a, b, c, d
- Hopper = "top"
- Store_Box = "bottom"
- Door = "back"
- Display = "left"
- Despenser = "right"
- local Check = peripheral.wrap(Hopper)
- local AllPass = true
- for i = 1, Check.size() do
- local Slot = Check.getItemDetail(i)
- if Slot ~= nil then Ticket_Data[#Ticket_Data+1] = {Slot.nbt,AllPass} if AllPass == true then AllPass = false end end
- end
- file.write(textutils.serialize({Hopper,Store_Box,Door,Display,Depsenser,Ticket_Data,BankDetails,Charge}))
- file.close()
- os.shutdown()
- end
- function boot()
- local file = fs.open("settings.txt","r")
- local Data = textutils.unserialize(file.readAll())
- Hopper,Store_Box,Door,Display,Pass,Ticket_Data,BankDetails,Charge= Data[1], Data[2], Data[3], Data[4], Data[5], Data[6], Data[7], Data[8]
- file.close()
- Status = redstone.getInput("front")
- if Status == false then UI("closed") os.shutdown() else Main() end
- end
- function UI(screen)
- local Monitor = peripheral.wrap(Display)
- Monitor.clear()
- Monitor.setCursorPos(1,1)
- if screen == "home" then
- Monitor.write("Insert")
- Monitor.setCursorPos(1,2)
- Monitor.write("Card")
- if Charge ~= -1 and Charge ~= 0 then Monitor.setCursorPos(1,3) Monitor.write("or cash") Monitor.setCursorPos(1,4) Monitor.write("Pay:$"..Charge) Monitor.setCursorPos(1,5) Monitor.write("C:$"..Credits) end
- elseif screen == "pass" then
- Monitor.write("ENTER")
- elseif screen == "closed" then
- Monitor.write("CLOSED")
- end
- end
- function Main()
- local Deposit = peripheral.wrap(Hopper)
- local Store = peripheral.wrap(Store_Box)
- local Return = peripheral.wrap(Despenser)
- while Status == true do
- local Pass = false
- local Slot = Deposit.getItemDetail(1)
- UI("home")
- if Slot ~= nil then
- if Slot.name == "minecraft:paper" then
- for i = 1, #Ticket_Data do
- if Ticket_Data[i][1] == Slot.nbt then
- Pass = true
- if Ticket Data[i][2] == true then
- Deposit.pushItem(Despenser,i)
- redstone.setOutput(Despenser,true)
- os.sleep(2)
- redstone.setOutput(Despenser,false)
- else
- Deposit.pushItem(Store_Box,i)
- end
- end
- end
- elseif Charge ~= -1 and Charge ~= 0 then
- for i = 1, #Currency do
- if Slot.name == Currency[i][1] then
- Credits = Credits + Currency[i][2] * Slot.count
- end
- end
- if Credits >= Charge then Credits = 0 Pass = true end
- else
- --bank check
- end
- if Pass == true then
- UI("pass")
- redstone.setOutput(Door,true)
- os.sleep(2)
- redstone.setOutput(Door,false)
- end
- end
- end
- if fs.exists("settings.txt") then boot() else Setup() end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement