Advertisement
jaklsfjlsak

自制语音激光制导v2 3-18-25

Mar 18th, 2025 (edited)
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local ship = peripheral.find("warpdriveShipCore")
  2. local miningLaser = peripheral.find("warpdriveMiningLaser")
  3. local chat = peripheral.find("warpdriveVirtualAssistant")
  4.  
  5. --Define Name
  6. chat.name("[name")
  7.  
  8.           ship_front, ship_right, ship_up = ship.dim_positive()
  9.           ship_back, ship_left, ship_down = ship.dim_negative()
  10.           ship_isInHyper = ship.isInHyperspace()
  11.           ship_movement = { ship.movement() }
  12.           ship_rotationSteps = ship.rotationSteps()
  13.  
  14.  
  15.  
  16. print("Post Way Point in Chat to Jump Ship and Aligning the Mining Laser")
  17.  
  18. while true do
  19.  
  20.     sleep(0.08)
  21.     local state = 0
  22.     local CMD = 0
  23.   state, CMD = chat.pullLastCommand()
  24.     string = string.lower(CMD)
  25.  
  26.       -- Match and extract X and Z
  27.  local x_value, y_value, z_value = string:match("x:(%d+),%s*y:(%d+),%s*z:(%d+)")
  28.        
  29.     if state then
  30.            
  31.         --lastLx, lastLy, lastLz = tonumber(x_value), tonumber(y_value), tonumber(z_value)
  32.         --print("Jumpinig to X:" .. tonumber(x_value) .. ", Z:" .. tonumber(z_value))
  33.        
  34.         local rx, ry, rz = ship.getOrientation()
  35.         minForwardBack = math.abs(ship_front+ship_back+1)
  36.         minLeftRight = math.abs(ship_left+ship_right+1)
  37.         local mx, my, mz = miningLaser.getLocalPosition()
  38.             dx = x_value-mx
  39.             dz = z_value-mz
  40.        
  41.         forwardBackMov = 0
  42.         leftRightMov = 0
  43.  
  44.         if rx == 1 then
  45.             forwardBackMov = dx
  46.             leftRightMov = dz
  47.         elseif rx == -1 then
  48.             forwardBackMov = -dx
  49.             leftRightMov = -dz
  50.         elseif rz == 1 then
  51.             forwardBackMov = dz
  52.             leftRightMov = -dx
  53.         elseif rz == -1 then
  54.             forwardBackMov = -dz
  55.             leftRightMov = dx
  56.         end
  57.  
  58.         if math.abs(forwardBackMov) < minForwardBack and math.abs(leftRightMov) < minLeftRight then
  59.             print("The movement is too small!")
  60.         else
  61.    
  62.  
  63.         leftRightMov = leftRightMov*1
  64.             ship.movement(forwardBackMov, 0, leftRightMov)
  65.             ship.rotationSteps(0)
  66.             ship.command("MANUAL", true)
  67.  
  68.         end
  69.     end
  70. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement