Savage_Me55iah

CC_API_buttonmanip

Jul 19th, 2017
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.71 KB | None | 0 0
  1. --Script by Savage_Me55iah of CraftAU.com.au--
  2.  
  3. --Other Savage_Me55iah scripts @ http://pastebin.com/u/Savage_Me55iah
  4.  
  5. --INSTRUCTIONS ON USE--
  6. --Instruction video on http://youtube.com/savagemessiah5
  7.  
  8. --Contact Savage_Me55iah @ CraftAU.com.au or http://www.computercraft.info/forums2/ with suggestions/fixes/bugs
  9.  
  10. local scriptName = "buttonmanip"
  11. fileDetail = fileDetail or {}
  12. fileDetail[scriptName] = {["version"] = 0.1, ["pastebin"] = "qtD3jeMK"}
  13.  
  14. local tArgs = {...}
  15. if tArgs[1] == "update" then
  16.     print("UPDATING") shell.run("pastebin get "..fileDetail[scriptName].pastebin.." "..scriptName.."_update")
  17.     if fs.exists(scriptName.."_update") then fs.remove(shell.getRunningProgram()) fs.copy(scriptName.."_update", shell.getRunningProgram()) fs.remove(scriptName.."_update") print("UPDATE SUCCESS") else print("UPDATE FAILED") end
  18. end
  19.  
  20. -----------------------------------------------------------------------------------------------------------
  21. -- Variables --
  22. -----------------------------------------------------------------------------------------------------------
  23.  
  24. buttonList = {}
  25. local functionNum = "0"
  26.  
  27. -----------------------------------------------------------------------------------------------------------
  28. -- API Functions --
  29. -----------------------------------------------------------------------------------------------------------
  30.  
  31. -- buttonmanip.add(functionNum, <window>, <name>, <displayName>, <textColor>, <BackgroundColor>, <number>, <number>, <function>, paramArg) -- [1] returns function ran correctly [2] returns nil
  32. --
  33. function add(param_functionNum, paramWindow, paramName, paramText, paramTColor, paramBColor, paramX, paramY, paramFunc, paramArg)
  34.     local result, functionNum = {false}, param_functionNum.."/007"
  35.     if booleanmanip.massCheck(functionNum, "and", {booleanmanip.variableCheck(functionNum, {"string"}, {paramWindow, paramName, paramText})[2], booleanmanip.variableCheck(functionNum, {"number"}, {paramX, paramY})[2], booleanmanip.check(functionNum, paramFunc)[1], booleanmanip.check(functionNum, paramArg)[1]})[2] then
  36.         buttonList[paramWindow] = booleanmanip.quickChoice(functionNum, booleanmanip.check(functionNum, buttonList[paramWindow])[1], buttonList[paramWindow], {})[2]
  37.         result, buttonList[paramWindow][paramName] = true, {["text"] = paramText, ["textColor"] = paramTColor, ["BackGroundColor"] = paramBColor, ["x"] = paramX, ["y"] = paramY, ["func"] = paramFunc, ["arg"] = paramArg}
  38.     else
  39.         logger.logger(functionNum, {"Function Error, Expected: buttonAdd(functionNum, <window>, <name>, <displayName>, <textColor>, <BackgroundColor>, <number>, <number>, <function>, paramArg)"}, 2, " ")
  40.     end
  41.     return result
  42. end
  43.  
  44. -- buttonmanip.Remove(functionNum, <window>, <name>) -- [1] returns function ran correctly [2] returns nil
  45. --
  46. function Remove(param_functionNum, paramWindow, paramName)
  47.     local result, functionNum = {false}, param_functionNum.."/007"
  48.     if booleanmanip.variableCheck(functionNum, {"string"}, {paramWindow, paramName})[2] then
  49.         result, buttonList[paramWindow][paramName] = true, nil
  50.     else
  51.         logger.logger(functionNum, {"Function Error, Expected: buttonRemove(functionNum, <window>, <name>)"}, 2, " ")
  52.     end
  53. end
  54.  
  55. function generate(param_functionNum, paramWindow, paramName)
  56.     local result, functionNum = {false}, param_functionNum.."/007"
  57.     if booleanmanip.check(functionNum, buttonList[paramWindow][paramName])[1] then
  58.         tempList = buttonList[paramWindow][paramName]
  59.         term.setCursorPos(tempList["x"], tempList["y"])
  60.         term.setTextColor(tempList["textColor"])
  61.         term.setBackgroundColor(tempList["BackGroundColor"])
  62.         term.write(tempList["text"])
  63.         term.setTextColor(colors.white)
  64.         term.setBackgroundColor(colors.black)
  65.         term.setCursorPos(1, 1)
  66.         result[1] = true
  67.     else
  68.         logger.logger(functionNum, {"Function Error, Expected: buttonmanip.generate(functionNum, <window>, <name>)"}, 1, " ")
  69.     end
  70.     return result
  71. end
  72.  
  73. function generateWindow(param_functionNum, paramWindow)
  74.     local result, functionNum = {false}, param_functionNum.."/007"
  75.     if booleanmanip.check(functionNum, buttonList[paramWindow])[1] then
  76.         result[1] = true
  77.         for a,b in pairs(buttonList[paramWindow]) do
  78.             result[1] = booleanmanip.quickChoice(functionNum, generate(functionNum, paramWindow, a)[1], result[1], false)[2]
  79.         end
  80.     else
  81.         logger.logger(functionNum, {"Function Error, Expected: buttonmanip.generate(functionNum, <window>, <name>)"}, 1, " ")
  82.     end
  83.     return result
  84. end
  85.  
  86. -- buttonmanip.scan(functionNum, <window>, <x>, <y>) -- [1] returns function ran correctly [2] returns nil
  87. --
  88. function scan(param_functionNum, param_window, param_x, param_y)
  89.     local result, functionNum = {false}, param_functionNum.."/007"
  90.     if booleanmanip.variableCheck(functionNum, {"string"}, {param_window})[2] and booleanmanip.variableCheck(functionNum, {"number"}, {param_x, param_y})[2] then
  91.         if booleanmanip.check(functionNum, buttonList[param_window])[1] then
  92.             for a,b in pairs(buttonList[param_window]) do
  93.                 if booleanmanip.tolerance(functionNum, "relative", buttonList[param_window][a]["x"], param_x, string.len(buttonList[param_window][a]["text"]), 0)[2] and param_y == buttonList[param_window][a]["y"] then
  94.                     buttonList[param_window][a]["func"](functionNum, buttonList[param_window][a]["arg"])
  95.                     result = {true}
  96.                 end
  97.             end
  98.         else
  99.             logger.logger(functionNum, {"Variable Error, Window doesn't exist"}, 1, " ")
  100.         end
  101.     else
  102.         logger.logger(functionNum, {"Function Error, Expected: buttonmanip.generate(functionNum, <window>, <name>)"}, 1, " ")
  103.     end
  104.     return result
  105. end
  106.    
  107.  
  108. -----------------------------------------------------------------------------------------------------------
  109. -- Old Functions --
  110. -------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment