Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for i in range(terminal:height-3) Print "":padright(terminal:width).
- //////////////////// VARS //////////////////
- set taralt to 100.
- set currheading to body:geopositionof(ship:facing:vector):heading.
- lock x to currheading.
- lock p to 15.
- lock throttle to 1.
- lock steering to heading(x,p).
- lock sl to 0.
- set steeringmanager:rollcontrolanglerange to 180.
- set servos to ship:modulesnamed("ModuleRoboticRotationServo").
- set proprad to 5.8.
- set rotormods to ship:modulesnamed("ModuleRoboticServoRotor").
- set rotors to list().
- for rm in rotormods {
- local rotor to lexicon().
- set rotor["part"] to rm:part.
- set rotor["mod"] to rm.
- set rotor["job"] to choose "push" if rm:part:parent:tag:contains("push") else "vtol".
- print "Found rotor module for job of " + rotor:job.
- set rotor["mode"] to "flight".
- set rotor["blades"] to list().
- for bm in rm:part:ModulesNamed("ModuleControlSurface") {
- local b to bm:part.
- local blade to lexicon().
- set blade["mod"] to bm.
- set blade["offset"] to vdot(-b:Facing:starvector, b:position - b:parent:position).
- set blade["proprad"] to proprad.
- set blade["angleratio"] to 2 * constant:pi * (blade:proprad + blade:offset)/60.
- bm:setfield("deploy", true).
- rotor["blades"]:add(blade).
- }
- rotors:add(rotor).
- }
- print "rotors setup".
- set deploycopy to 9.
- brakes on.
- gear on.
- set flightmode to "plane".
- function SetAngle {
- parameter targetangle.
- if flightmode = "debug" print targetangle at (0,0).
- for s in servos if s:hasfield("target angle") s:setfield("target angle", targetangle).
- }
- function save {
- print "waiting for valid save state".
- when (ship:Status = "Landed" or ship:status = "Splashed") and ship:velocity:surface:mag < 0.1 then {
- print "saving".
- kuniverse:quicksaveto(ship:name).
- print "saved to '" + ship:name + "'".
- }
- }
- lock torque to throttle * 100.
- lock deploy to 9.
- when true then {
- set torquecopy to torque.
- set deploycopy to deploy.
- for rotor in rotors {
- rotor:mod:setfield("torque limit(%)", torquecopy).
- for blade in rotor:blades {
- blade:mod:setfield("deploy angle", deploycopy).
- }
- }
- return true.
- }
- set loop to true. when true then { set dv to airspeed - oldairspeed. set oldairspeed to airspeed. }
- autoblade off. wait 0. autoblade on. set dvwiggle to 0.002. when abs(dv) < dvwiggle then { set deploy to deploy + 0.05. return autoblade. } when true then { set dv to airspeed - oldairspeed. set oldairspeed to airspeed. return true. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement