Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --AutoCraft
- --Miner8149
- --THIS IS A WORK IN PROGRESS FOR COMPUTERCRAFT 1.7.10
- --local craftsActive = false --getCrafting
- os.loadAPI("button")
- local config = {} --pullConfig()
- local keys = {}
- local monitorSide = "top"
- local chestSide = "back"
- local interfaceSide = "bottom"
- local progActive = true -- needs to get from file
- local functionName = mainScreen
- local param = ""
- interface = peripheral.wrap(interfaceSide)
- c = peripheral.wrap(chestSide)
- m = peripheral.wrap(monitorSide)
- m.clear()
- m.setCursorPos(1, 1)
- m.setTextScale(0.5)
- local xMax, yMax = m.getSize()
- local centerLeft = tonumber(string.format("%d", xMax/2.0))
- local leftAlign = tonumber(string.format("%d", centerLeft/2.0))
- local listMax = tonumber(string.format("%d", ((yMax-9)/4.0)))
- --funtion to add to table
- --funtion to remove from table
- --tracking how big list is actively
- --config[items["display_name"]]= { Fingerprint = items}
- --config[items["display_name"]]["Availiable"] = (interface.getItemDetail(config[items["display_name"]]["Fingerprint"],false))["qty"]
- --*****************************************************************
- --*****************************************************************
- function refresh() --refresh variables and clear screen for new print
- m.clear()
- m.setCursorPos(1, 1)
- m.setTextScale(0.5)
- button.clearTable()
- xMax, yMax = m.getSize()
- centerLeft = tonumber(string.format("%d", xMax/2.0))
- leftAlign = tonumber(string.format("%d", centerLeft/2.0))
- listMax = tonumber(string.format("%d", ((yMax-9)/4.0)))
- end
- --*****************************************************************
- function get_Keys() -- gets keys from config table
- local n = 0
- for k, v in pairs(config) do
- n=n+1
- keys[n] = k
- end
- table.sort(keys)
- end
- --*****************************************************************
- function get_amounts()
- --gets amounts of items for disignated crafting list
- end
- --*****************************************************************
- function getCrafting()-- determines if anything is crafting
- local array = {}
- array = interface.getCraftingCPUs()
- for _xx, _yy in pairs(array) do
- if (array[_xx]["busy"] == true) then
- return true
- end
- end
- return false
- end
- --*****************************************************************
- function makeCrafts() -- request crafts for the first 8 things that are low
- print("making crafts")
- end
- --*****************************************************************
- function pullConfig() --load config into table
- local file = fs.open(configAuto,"r")
- local data = file.readAll()
- file.close()
- return textutils.unserialize(data)
- end
- --*****************************************************************
- function saveConfig() --Save config table to file
- local file = fs.open(configAuto,"w")
- file.write(textutils.serialize(config))
- file.close()
- end
- --*****************************************************************
- function printLines()
- get_Keys()
- local inc = 0
- local yLine = 7
- for xk in keys do
- if((inc < listMax) and (yMax>22)) then
- m.setCursorPos(2, yLine+(inc*3))
- m.write(xk)
- m.setCursorPos(xMax-22, yLine+(inc*3))
- m.write("0000")
- m.setCursorPos(xMax-17, yLine+(inc*3))
- m.write("/")
- m.setCursorPos(xMax-15, yLine+(inc*3))
- m.write("1111")
- button.setTable("editList"..tostring(inc), "Edit", editNumbers, xk, xMax-7, xMax-1, yLine+(inc*3)-1, yLine+(inc*3)+1)
- inc=inc+1
- else
- break
- end
- end
- print(listMax)
- end
- --*****************************************************************
- function mainScreen() -- main screen
- refresh()
- functionName = mainScreen
- param = ""
- button.setTable("Power", "On/Off", shutdown, "", xMax-8, xMax-1, 2, 4)
- button.setButton("Power", progActive)
- button.setTable("Edit", "Edit", addANDRemoveScreen, "", 2, 7, yMax-3, yMax-1)
- button.setTable("Up", " /\\ ", up, "", centerLeft, centerLeft+3, 2, 4)
- button.setTable("Down", " \\/ ", down, "", centerLeft, centerLeft+3, yMax-3, yMax-1)
- printLines()
- button.screen()
- end
- --*****************************************************************
- function addANDRemoveScreen() -- screen for editing list
- refresh()
- functionName = addANDRemoveScreen
- param = ""
- button.setTable("Up", " /\\ ", up, "", centerLeft-1, centerLeft+3, 2, 4)
- button.setTable("Down", " \\/ ", down, "", centerLeft-1, centerLeft+3, yMax-3, yMax-1)
- button.setTable("Add", "Add", addNew, "", 2, 6, yMax-3, yMax-1)
- button.setTable("Done", "Done", mainScreen, "", xMax-8, xMax-1, yMax-3, yMax-1)
- printLines()
- button.screen()
- end
- --*****************************************************************
- function addNew()
- button.flash("Add")
- refresh()
- functionName = addNew
- param = ""
- if(yMax>25) then
- button.setTable("plusOne", " +1 ", plus1, config[itemKey]["Target"], centerLeft-17, centerLeft-11, yMax-14, yMax-12)
- button.setTable("plusTen", "+10", plus10, config[itemKey]["Target"], centerLeft-9, centerLeft-4, yMax-14, yMax-12)
- button.setTable("plus100", "+100", plus100, config[itemKey]["Target"], centerLeft-2, centerLeft+3, yMax-14, yMax-12)
- button.setTable("plusOneK", "+1K", plus1K, config[itemKey]["Target"], centerLeft+5, centerLeft+9, yMax-14, yMax-12)
- button.setTable("plusTenK", "+10K", plus10K, config[itemKey]["Target"], centerLeft+11, centerLeft+17, yMax-14, yMax-12)
- --
- button.setTable("minusOne", " -1 ", minus1, config[itemKey]["Target"], centerLeft-17, centerLeft-11, yMax-8, yMax-6)
- button.setTable("minusTen", "-10", minus10, config[itemKey]["Target"], centerLeft-9, centerLeft-4, yMax-8, yMax-6)
- button.setTable("minus100", "-100", minus100, config[itemKey]["Target"], centerLeft-2, centerLeft+3, yMax-8, yMax-6)
- button.setTable("minusOneK", "-1k", minus1K, config[itemKey]["Target"], centerLeft+5, centerLeft+9, yMax-8, yMax-6)
- button.setTable("minusTenK", "-10k", minus10K, config[itemKey]["Target"], centerLeft+11, centerLeft+17, yMax-8, yMax-6)
- end
- button.setTable("Save", "Save", save, "", centerLeft-2, centerLeft+3, yMax-3, yMax-1)
- button.setTable("Cancel", "Cancel", cancel, "", xMax-9, xMax-1, yMax-3, yMax-1) -- cancel button
- end
- --*****************************************************************
- function editNumbers(itemKey) -- can add or subtract from numbers here
- -- display item name at top, with curent amount, and Target
- --config[itemKey]["Target"]
- refresh()
- functionName = editNumbers
- param = ""
- m.setCursorPos(1, 1)
- m.write(itemKey)
- m.setCursorPos(1, 2)
- m.write(config[itemKey]["Availiable"])
- m.setCursorPos(1, 3)
- m.write(config[itemKey]["Target"])
- if(yMax>25) then
- button.setTable("plusOne", " +1 ", plus1, config[itemKey]["Target"], centerLeft-17, centerLeft-11, yMax-14, yMax-12)
- button.setTable("plusTen", "+10", plus10, config[itemKey]["Target"], centerLeft-9, centerLeft-4, yMax-14, yMax-12)
- button.setTable("plus100", "+100", plus100, config[itemKey]["Target"], centerLeft-2, centerLeft+3, yMax-14, yMax-12)
- button.setTable("plusOneK", "+1K", plus1K, config[itemKey]["Target"], centerLeft+5, centerLeft+9, yMax-14, yMax-12)
- button.setTable("plusTenK", "+10K", plus10K, config[itemKey]["Target"], centerLeft+11, centerLeft+17, yMax-14, yMax-12)
- --
- button.setTable("minusOne", " -1 ", minus1, config[itemKey]["Target"], centerLeft-17, centerLeft-11, yMax-8, yMax-6)
- button.setTable("minusTen", "-10", minus10, config[itemKey]["Target"], centerLeft-9, centerLeft-4, yMax-8, yMax-6)
- button.setTable("minus100", "-100", minus100, config[itemKey]["Target"], centerLeft-2, centerLeft+3, yMax-8, yMax-6)
- button.setTable("minusOneK", "-1k", minus1K, config[itemKey]["Target"], centerLeft+5, centerLeft+9, yMax-8, yMax-6)
- button.setTable("minusTenK", "-10k", minus10K, config[itemKey]["Target"], centerLeft+11, centerLeft+17, yMax-8, yMax-6)
- end
- button.setTable("Save", "Save", save, "", centerLeft-2, centerLeft+3, yMax-3, yMax-1)
- button.setTable("Cancel", "Cancel", cancel, "", xMax-9, xMax-1, yMax-3, yMax-1) -- cancel button
- button.screen()
- end
- --*****************************************************************
- function cancel()
- button.flash("Cancel")
- mainScreen()
- end
- --*****************************************************************
- function save()
- button.flash("Save")
- mainScreen()
- end
- --*****************************************************************
- function plus1(var)
- button.flash("plusOne")
- var=var+1
- end
- --*****************************************************************
- function plus10(var)
- button.flash("plusTen")
- var=var+10
- end
- --*****************************************************************
- function plus100(var)
- button.flash("plus100")
- var=var+100
- end
- --*****************************************************************
- function plus1K(var)
- button.flash("plusOneK")
- var=var+1000
- end
- --*****************************************************************
- function plus10K(var)
- button.flash("plusTenK")
- var=var+10000
- end
- --*****************************************************************
- function minus1(var)
- button.flash("minusOne")
- var=var-1
- end
- --*****************************************************************
- function minus10(var)
- button.flash("minusTen")
- var=var-10
- end
- --*****************************************************************
- function minus100(var)
- button.flash("minus100")
- var=var-100
- end
- --*****************************************************************
- function minus1K(var)
- button.flash("minus1K")
- var=var-1000
- end
- --*****************************************************************
- function minus10K(var)
- button.flash("minus10K")
- var=var-10000
- end
- --*****************************************************************
- function shutdown()
- progActive = not progActive
- button.setButton("Power", progActive)
- if(progActive) then
- print("ON")
- else
- print("OFF")
- end
- end
- --*****************************************************************
- function up()
- print("Up")
- button.flash("Up")
- end
- --*****************************************************************
- function down()
- print("Down")
- button.flash("Down")
- end
- --*****************************************************************
- function addItem()
- print("Adding")
- button.flash("Add")
- end
- --*****************************************************************
- function main()
- local event, side, xCoord, yCoord
- timerCode = os.startTimer(1)
- repeat
- event, side, xCoord, yCoord = os.pullEvent()
- until event ~= "timer" or timerCode == side
- if (event == "timer") then
- if(param == "") then
- (functionName)()
- else
- (functionName)(param)
- end
- if (progActive == true) then
- --code
- if (getCrafting() == false) then
- makeCrafts()
- else
- print("Crafting CPUs are making something")
- end
- else
- print("Inactive")
- end
- elseif (event == "monitor_touch") then
- print(event)
- button.checkxy(xCoord, yCoord)
- end
- end
- --*****************************************************************
- mainScreen()
- while true do main() end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement