Larvix

testing

Jan 7th, 2024 (edited)
788
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.54 KB | None | 0 0
  1. version = "Hivemind v0.0"
  2. devBuild = false
  3.  
  4. -- Declare table to store system functions and system data within it
  5. local system = {["data"] = {}}
  6.  
  7. system.getBasic = function()
  8.  -- Universal system data
  9.     system.data.version = version
  10.  
  11.  -- Check if advanced/basic
  12.     if term.isColour() then system.data.grade = "Advanced"
  13.     else system.data.grade = "Basic" end
  14.  
  15.  -- Check device type
  16.     if peripheral.getType("back") == "neuralInterface" then system.data.type = "Neural"
  17.     elseif turtle then system.data.type = "Turtle"
  18.     else system.data.type = "Computer" end
  19. return {["version"] = system.data.version, ["grade"] = system.data.grade, ["type"] = system.data.type} end
  20.  
  21. system.getPos = function()
  22.  -- Check for GPS
  23.     system.data.pos = {}
  24.     system.data.pos["x"],system.data.pos["y"],system.data.pos["z"] = gps.locate()
  25.     if not system.data.pos["x"] then system.data.pos = "Lost" end
  26. return system.data.pos end
  27.  
  28. system.getPeriph = function()
  29.  -- Check peripherals (+modules)
  30.     system.data.peripherals = {}
  31.     side = peripheral.getNames()
  32.     for i = 1,#side do
  33.         system.data.peripherals[side[i]] = peripheral.getType(side[i])
  34.     end
  35.  
  36.     if peripheral.getType("back") == "neuralInterface" then
  37.         if peripheral.wrap("back").listModules() then
  38.             system.data.peripherals.modules = peripheral.wrap("back").listModules()
  39.         end
  40.     end
  41. return system.data.peripherals end
  42.  
  43.  
  44. system.getBearing = function()
  45.  -- Check where turtle/mob is facing
  46.     if turtle then
  47.         if turtle.getFuelLevel() > 1 and system.data.pos["x"] then
  48.             turns = 0
  49.             for attempt = 1,4 do
  50.                 if not system.data.pos["bearing"] and turtle.forward() then
  51.                     local tmpX,tmpY,tmpZ = gps.locate()
  52.                     if tmpX then
  53.                         tmpX = tmpX - system.data.pos["x"]
  54.                         tmpZ = tmpZ - system.data.pos["z"]
  55.                         if tmpX ~= 0 then
  56.                             if tmpX > 0 then
  57.                                 system.data.pos["bearing"] = "east"
  58.                             else
  59.                                 system.data.pos["bearing"] = "west"
  60.                             end
  61.                         elseif tmpZ ~= 0 then
  62.                             if tmpZ > 0 then
  63.                                 system.data.pos["bearing"] = "south"
  64.                             else
  65.                                 system.data.pos["bearing"] = "north"
  66.                             end
  67.                         end
  68.                     end
  69.                     if not turtle.back() then
  70.                         system.data.pos["x"],system.data.pos["y"],system.data.pos["z"] = gps.locate()
  71.                         if not system.data.pos["x"] then system.data.pos = "Lost" end
  72.                     end
  73.                 end
  74.                 if not system.data.pos["bearing"] then
  75.                     turtle.turnLeft()
  76.                     turns = turns + 1
  77.                 else
  78.                     if turns == 3 then
  79.                         turtle.turnLeft()
  80.                     else
  81.                         for t = 1,turns do
  82.                             turtle.turnRight()
  83.                         end
  84.                     end
  85.                     break
  86.                 end
  87.             end
  88.         end
  89.  
  90.     elseif peripheral.getType("back") == "neuralInterface" then
  91.         if peripheral.wrap("back").hasModule("plethora:sensor") and peripheral.wrap("back").hasModule("plethora:introspection") then
  92.             system.data.pos["bearing"] = peripheral.wrap("back").getMetaOwner().yaw
  93.         end
  94.     end
  95. return system.data.pos["bearing"] end
  96.  
  97. system.getFuel = function()
  98.  -- Check turtle fuel level
  99.     if turtle then
  100.         system.data.fuel = turtle.getFuelLevel()
  101.     end
  102. return system.data.fuel end
  103.  
  104. system.getInv = function()
  105. -- Check turtle-inventory/interface-equipment
  106.     if turtle then
  107.         system.data.inventory = {}
  108.         for i = 1,16 do
  109.             if turtle.getItemDetail(i) then
  110.                 system.data.inventory[i] = {turtle.getItemDetail(i).count, turtle.getItemDetail(i).name}
  111.             end
  112.         end
  113.  
  114.     elseif peripheral.getType("back") == "neuralInterface" then
  115.         if peripheral.wrap("back").hasModule("plethora:introspection") then
  116.             system.data.inventory = {}
  117.             for itemSlot,itemData in pairs(peripheral.wrap("back").getEquipment().list()) do
  118.                 system.data.inventory[itemSlot] = itemData.name
  119.             end
  120.         end
  121.     end
  122. return system.data.inventory end
  123.  
  124. system.setup = function()
  125. -- Create system data fil
  126.     system.getBasic()
  127.     system.getPos()
  128.     system.getPeriph()
  129.     system.getBearing()
  130.     system.getFuel()
  131.     system.getInv()
  132.     --if not fs.exists("//system.txt") then
  133.         file = fs.open("//system.txt","w")
  134.         file.write(textutils.serialise(system.data))
  135.         file.close()
  136.     --else
  137.         --oldData = fs.open("//system.txt","r").readAll()
  138.     --end
  139. end
  140.  
  141. system.netType = function(type)
  142.     if not fs.exists("//system.txt") then
  143.         system.setup()
  144.     end
  145.     file = fs.open("//system.txt","r")
  146.     system = textutils.unserialise(file.readAll())
  147.     file.close()
  148.     system.data.netType = type
  149. end
  150.  
  151. local network = {["data"] = {}}
  152.  
  153. network.create = function()
  154.     system.netType("Database")
  155. end
  156.  
  157. network.delete = function()
  158.     print("delete")
  159. end
  160.  
  161. network.add = function()
  162.     print("add")
  163. end
  164.  
  165. network.remove = function()
  166.     print("remove")
  167. end
  168.  
  169. -- Allow access to functions
  170. return {
  171. system = system,
  172. network = network,
  173. }
Advertisement
Add Comment
Please, Sign In to add comment