Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //partial firmware testing
- set x to target:heading.
- lock p to 11.
- lock steering to heading(x,p).
- set steeringmanager:rollcontrolanglerange to 180.
- lock ralt to altitude - ship:geoposition:terrainheight.
- set vectors to ship:partsdubbedpattern("vector").
- set nukes to ship:partsdubbedpattern("nuc").
- set turbos to ship:partsdubbedpattern("turbofan").
- set servos to ship:modulesnamed("ModuleRoboticRotationServo").
- for rap in ship:partsdubbedpattern("rapier") turbos:add(rap).
- set rotormods to ship:modulesnamed("ModuleRoboticServoRotor").
- function SetEngines {
- parameter targetMode to "Activate Engine".
- parameter engines to ship:partsdubbedpattern("vector").
- for engine in engines {
- if engine:hasmodule("ModuleEnginesFx") set m to engine:getmodule("ModuleEnginesFx").
- if engine:hasmodule("ModuleEngines") set m to engine:getmodule("ModuleEngines").
- if m:hasaction(targetMode) m:doaction(targetMode, true).
- }
- }
- function shutoff {
- parameter engines to ship:partsdubbedpattern("vector").
- SetEngines("Shutdown Engine", engines).
- }
- function startup {
- parameter engines to ship:partsdubbedpattern("vector").
- SetEngines("Activate Engine", engines).
- }
- function ThrustLimit {
- parameter targetEngines.
- parameter targetThrust.
- for eng in targetEngines set eng:thrustlimit to targetThrust.
- }
- function SetAngle {
- parameter targetangle.
- for s in servos if s:hasfield("target angle") s:setfield("target angle", targetangle).
- }
- function powerlandatmo {
- set navmode to "surface".
- props off.
- lock steering to srfprograde.
- set x to body:geopositionof(srfprograde:vector):heading.
- set p to 0.
- ship:partsdubbedpattern("cockpit")[0]:controlfrom().
- shutoff(ship:engines).
- thrustlimit(vectors, 0).
- startup(vectors).
- lock throttle to 1.
- set landing to true.
- on time:seconds {
- set vthrottle to 100*(-verticalspeed-1)-sqrt(2*max(1,(max(0.1,vdot(up:vector,vectors[0]:facing:vector))* availablethrust*0.75)/mass-body:mu/(body:radius^2))*max(altitude-geoposition:terrainheight-100+verticalspeed*0.5,0.1)).
- thrustlimit(vectors, vthrottle).
- print (" Thrust Limit:" + round(vthrottle)):padright(terminal:width) at (0,0).
- set vangle to max(-45,min(45,-groundspeed*vdot(ship:facing:vector, velocity:surface))).
- setangle(vangle).
- print (" Angle:" + round(vangle)):padright(terminal:width) at (0,1).
- print ("Alt above Ground:" + round(altitude - ship:geoposition:terrainheight)):padright(terminal:width) at (0,2).
- return landing.
- }
- when airspeed < 10 then {
- lock steering to heading(x,p).
- gear on.
- brakes on.
- }
- when ship:verticalspeed > 0 and altitude - ship:geoposition:terrainheight < 1000 and groundspeed < 10 then
- {
- lock throttle to 0.
- set landing to false.
- }
- }
- function info {
- parameter message.
- parameter withtime to true.
- set logmessage to "".
- if withtime {
- set logmessage to round(missionTime,1):ToString():padleft(6) + ": ".
- }
- set logmessage to logmessage + message.
- print logmessage.
- }
- gear on.
- brakes on.
- lock throttle to (120-airspeed)/10.
- when ralt < 100 then powerlandatmo().
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement