Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- version = "Hivemind v0.0"
- devBuild = false
- -- Declare table to store system functions and system data within it
- local system = {["data"] = {}}
- system.getBasic = function()
- -- Universal system data
- system.data.version = version
- -- Check if advanced/basic
- if term.isColour() then system.data.grade = "Advanced"
- else system.data.grade = "Basic" end
- -- Check device type
- if peripheral.getType("back") == "neuralInterface" then system.data.type = "Neural"
- elseif turtle then system.data.type = "Turtle"
- else system.data.type = "Computer" end
- return {["version"] = system.data.version, ["grade"] = system.data.grade, ["type"] = system.data.type} end
- system.getPos = function()
- -- Check for GPS
- system.data.pos = {}
- system.data.pos["x"],system.data.pos["y"],system.data.pos["z"] = gps.locate()
- if not system.data.pos["x"] then system.data.pos = "Lost" end
- return system.data.pos end
- system.getPeriph = function()
- -- Check peripherals (+modules)
- system.data.peripherals = {}
- side = peripheral.getNames()
- for i = 1,#side do
- system.data.peripherals[side[i]] = peripheral.getType(side[i])
- end
- if peripheral.getType("back") == "neuralInterface" then
- if peripheral.wrap("back").listModules() then
- system.data.peripherals.modules = peripheral.wrap("back").listModules()
- end
- end
- return system.data.peripherals end
- system.getBearing = function()
- -- Check where turtle/mob is facing
- if turtle then
- if turtle.getFuelLevel() > 1 and system.data.pos["x"] then
- turns = 0
- for attempt = 1,4 do
- if not system.data.pos["bearing"] and turtle.forward() then
- local tmpX,tmpY,tmpZ = gps.locate()
- if tmpX then
- tmpX = tmpX - system.data.pos["x"]
- tmpZ = tmpZ - system.data.pos["z"]
- if tmpX ~= 0 then
- if tmpX > 0 then
- system.data.pos["bearing"] = "east"
- else
- system.data.pos["bearing"] = "west"
- end
- elseif tmpZ ~= 0 then
- if tmpZ > 0 then
- system.data.pos["bearing"] = "south"
- else
- system.data.pos["bearing"] = "north"
- end
- end
- end
- if not turtle.back() then
- system.data.pos["x"],system.data.pos["y"],system.data.pos["z"] = gps.locate()
- if not system.data.pos["x"] then system.data.pos = "Lost" end
- end
- end
- if not system.data.pos["bearing"] then
- turtle.turnLeft()
- turns = turns + 1
- else
- if turns == 3 then
- turtle.turnLeft()
- else
- for t = 1,turns do
- turtle.turnRight()
- end
- end
- break
- end
- end
- end
- elseif peripheral.getType("back") == "neuralInterface" then
- if peripheral.wrap("back").hasModule("plethora:sensor") and peripheral.wrap("back").hasModule("plethora:introspection") then
- system.data.pos["bearing"] = peripheral.wrap("back").getMetaOwner().yaw
- end
- end
- return system.data.pos["bearing"] end
- system.getFuel = function()
- -- Check turtle fuel level
- if turtle then
- system.data.fuel = turtle.getFuelLevel()
- end
- return system.data.fuel end
- system.getInv = function()
- -- Check turtle-inventory/interface-equipment
- if turtle then
- system.data.inventory = {}
- for i = 1,16 do
- if turtle.getItemDetail(i) then
- system.data.inventory[i] = {turtle.getItemDetail(i).count, turtle.getItemDetail(i).name}
- end
- end
- elseif peripheral.getType("back") == "neuralInterface" then
- if peripheral.wrap("back").hasModule("plethora:introspection") then
- system.data.inventory = {}
- for itemSlot,itemData in pairs(peripheral.wrap("back").getEquipment().list()) do
- system.data.inventory[itemSlot] = itemData.name
- end
- end
- end
- return system.data.inventory end
- system.setup = function()
- -- Create system data fil
- system.getBasic()
- system.getPos()
- system.getPeriph()
- system.getBearing()
- system.getFuel()
- system.getInv()
- --if not fs.exists("//system.txt") then
- file = fs.open("//system.txt","w")
- file.write(textutils.serialise(system.data))
- file.close()
- --else
- --oldData = fs.open("//system.txt","r").readAll()
- --end
- end
- system.netType = function(type)
- if not fs.exists("//system.txt") then
- system.setup()
- end
- file = fs.open("//system.txt","r")
- system = textutils.unserialise(file.readAll())
- file.close()
- system.data.netType = type
- end
- local network = {["data"] = {}}
- network.create = function()
- system.netType("Database")
- end
- network.delete = function()
- print("delete")
- end
- network.add = function()
- print("add")
- end
- network.remove = function()
- print("remove")
- end
- -- Allow access to functions
- return {
- system = system,
- network = network,
- }
Advertisement
Add Comment
Please, Sign In to add comment