Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Script by Savage_Me55iah of CraftAU.com.au--
- --Other Savage_Me55iah scripts @ http://pastebin.com/u/Savage_Me55iah
- --INSTRUCTIONS ON USE--
- --Instruction video on http://youtube.com/savagemessiah5
- --Contact Savage_Me55iah @ CraftAU.com.au or http://www.computercraft.info/forums2/ with suggestions/fixes/bugs
- local scriptName = "tablemanip"
- fileDetail = fileDetail or {}
- fileDetail[scriptName] = {["version"] = 0.1, ["pastebin"] = "1FxrRa1w"}
- local tArgs = {...}
- if tArgs[1] == "update" then
- print("UPDATING") shell.run("pastebin get "..fileDetail[scriptName].pastebin.." "..scriptName.."_update")
- 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
- end
- -----------------------------------------------------------------------------------------------------------
- -- Variables --
- -----------------------------------------------------------------------------------------------------------
- local datastore = "Datastore/"
- -----------------------------------------------------------------------------------------------------------
- -- API Functions --
- -----------------------------------------------------------------------------------------------------------
- -- table = tablemanip.Shift(functionNum, up/down, table) -- [1] returns function ran correctly [2] returns result
- -- will shift an numerical table, up > down
- function Shift(param_functionNum, param_function, param_table)
- local result, functionNum = {false, false}, param_functionNum.."/007"
- local tempTable = {}
- if booleanmanip.variableCheck(functionNum, {"string"}, {param_function})[2] and booleanmanip.variableCheck(functionNum, {"table"}, {param_table})[2] then
- result, tempTable = {true, {}}, table.sort(param_table)
- for a,b in pairs(tempTable) do
- if type(a) == "number" and param_function == "up" then
- table.insert(result[2], a + 1, b)
- elseif type(a) == "number" and param_function == "down" then
- table.insert(result[2], a - 1, b)
- else
- table.insert(result[2], a, b)
- end end
- else
- logger.logger(functionNum, {"Function Error, Expected: table = tablemanip.Shift(functionNum, up/down, table)"}, 2, " ")
- end
- return result
- end
- -- table = tablemanip.import(tableName) -- [1] returns function ran correctly [2] returns result
- -- returns table from an external/previously exported table
- function import(param_functionNum, param_tableName)
- local result, functionNum = {false}, param_functionNum.."/007"
- if booleanmanip.variableCheck(functionNum, {"string"}, {param_tableName})[2] then
- if fs.exists(datastore..param_tableName) then
- local file = fs.open(datastore..param_tableName, 'r')
- result = {true, textutils.unserialize(file:readAll())}
- file:close()
- else
- result[1] = true
- end
- else
- logger.logger(functionNum, {"Function Error, Expected: table = tablemanip.import(tableName)"}, 1, " ")
- end
- return result
- end
- -- tablemanip.export(param_tableName, table) -- [1] returns function ran correctly [2] returns result
- -- returns boolean, exports to the datastore directory
- function export(param_functionNum, param_tableName, param_table)
- local result, functionNum = {false, false}, param_functionNum.."/007"
- if booleanmanip.variableCheck(functionNum, {"string"}, {param_tableName})[2] and booleanmanip.variableCheck(functionNum, {"table"}, {param_table})[2] then
- result[1] = logger.saveToFile(functionNum, datastore..param_tableName, 'w', textutils.serialize(param_table))[1]
- else
- logger.logger(functionNum, {"Function Error, Expected: tablemanip.export(param_tableName, table)"}, 1, " ")
- end
- return result
- end
- -----------------------------------------------------------------------------------------------------------
- -- Old Functions --
- -----------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment