Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- port = 31415
- term.clear()
- read = io.read()
- -- read = 0
- if read == "run" then
- start = 1
- sleep(5)
- else
- start = 0
- end
- xp = "left" -- x+
- xm = "right" -- x-
- zp = "front" -- z+
- zm = "back" -- z-
- term.clear()
- print(start)
- thrust = peripheral.wrap("redstone_relay_1")
- inter = peripheral.wrap("redstone_relay_2")
- function up(analog) -- Функция двигателей подъёма
- thrust.setAnalogOutput("front", analog)
- thrust.setAnalogOutput("back", analog)
- thrust.setAnalogOutput("right", analog)
- thrust.setAnalogOutput("left", analog)
- end
- function down(bool) -- Функция двигателей возврата
- rs.setOutput("front", bool)
- rs.setOutput("back", bool)
- end
- function gyro(bool) -- Функция гироскопа
- rs.setOutput("top", bool)
- end
- function dock(bool) -- Функция отстыковки
- inter.setOutput("top", bool)
- end
- function opt() -- Функция оптического датчика
- return thrust.getAnalogInput("bottom")
- end
- function move(side, side2) -- Функция движения
- a = thrust.getAnalogOutput(side)
- b = thrust.getAnalogOutput(side2)
- thrust.setAnalogOutput(side, a - 2)
- thrust.setAnalogOutput(side2, b + 2)
- end
- function tele(mes)
- local modem = peripheral.wrap("right")
- local pos = ship.getWorldspacePosition()
- local vel = ship.getVelocity()
- local rot = ship.getEulerAnglesXYZ()
- local time = os.time("utc")+3
- local send = {pos = pos, vel = vel, rot = rot, mes = mes, time = time}
- modem.transmit(port, port, send)
- print(mes)
- end
- -- Отключаем выводы
- dock(false)
- up(0)
- down(false)
- gyro(false)
- tele("podgotovka")
- if start == 1 then
- local pos = ship.getWorldspacePosition()
- local y = pos.y - 2
- -- Включаем гироскоп и двигатели на подъём
- gyro(true)
- sleep(2)
- up(15)
- tele("vzlet")
- -- Ждём высоту
- while pos.y < 240 do
- pos = ship.getWorldspacePosition()
- sleep(0.5)
- tele("vzlet")
- end
- -- Включаем отстыковка и двигатели на возврат
- tele("otstikovka")
- dock(true)
- down(true)
- -- Отключаем двигатели на подъём
- up(0)
- -- Ждём остановки
- local vel = ship.getVelocity()
- while vel.y > 1 do
- vel = ship.getVelocity()
- sleep(0.5)
- end
- -- Отключаем двигатели на возврат
- down(false)
- dock(false)
- tele("padenie")
- sleep(1)
- -- Посадка
- local g = 0
- while opt() < 2 do
- -- Поддержка скорости
- sleep(0.05)
- vel = ship.getVelocity()
- if vel.y < -10 then
- up(7)
- else
- up(4)
- end
- sleep(0.45)
- tele("posadka 1")
- -- Наводка
- if g < 3 then
- move(xm,xp)
- move (zm, zp)
- elseif g == 6 then
- move(xp,xm)
- move(zp,zm)
- end
- g = g + 1
- end
- up(15)
- sleep(0.3)
- up(0)
- local t = 0
- while opt() < 15 and t < 30 do
- t = t + 0.5
- -- Поддержка скорости 2
- tele("posadka 2")
- vel = ship.getVelocity()
- if vel.y < -3 then
- up(5)
- else
- up(4)
- end
- sleep(0.5)
- end
- up(0)
- local pos = ship.getWorldspacePosition()
- sleep(5)
- gyro(false)
- tele("Uspeh!")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement