diff --git a/Nasal/save.nas b/Nasal/save.nas new file mode 100644 index 0000000..21bb5e8 --- /dev/null +++ b/Nasal/save.nas @@ -0,0 +1,124 @@ +# Followme e-tron save and resume by Marsdolphin c 2020 +# This saves and lets you resume the basic functions of the car. +# It will be under development for new features. + + +var save = func { + + var lat = getprop("/position/latitude-deg"); + setprop("/save/latitude-deg", lat); + + var lon = getprop("/position/longitude-deg"); + setprop("/save/longitude-deg", lon); + + var alt = getprop("/position/altitude-ft"); + setprop("/save/altitude-ft", alt); + + var heading = getprop("/orientation/heading-deg"); + setprop("/save/heading-deg", heading); + + var pitch = getprop("/orientation/pitch-deg"); + setprop("/save/pitch-deg", pitch); + + var roll = getprop("/orientation/roll-deg"); + setprop("/save/roll-deg", roll); + + + var left_indicator = getprop("/sim/model/lights/indicator-left/state"); + setprop("/save/l/indicator", left_indicator); + + var right_indicator = getprop("/sim/model/lights/indicator-right/state"); + setprop("/save/r/indicator", right_indicator); + + + var horn = getprop("/systems/horn"); + setprop("/save/horn", horn); + + + var mode = getprop("/controls/mode"); + setprop("/save/controls/mode", mode); + + var dir = getprop("/controls/direction"); + setprop("/save/controls/dir", dir); + + var aileron = getprop("/controls/flight/aileron"); + setprop("/save/controls/ail", aileron); + + var steering_wheel = getprop("/controls/steering_wheel"); + setprop("/save/controls/stw", steering_wheel); + + + var platename = getprop("/systems/plate/name"); + setprop("/save/plate_name", platename); + + var platefile = getprop("/systems/plate/file"); + setprop("/save/plate_file", platefile); + + + var interior = getprop("/systems/interior/type"); + setprop("/save/type/int", interior); + print("State saved"); +} + + +# Resume + + +var resume = func { + + var lat = getprop("/save/latitude-deg"); + setprop("/position/latitude-deg", lat); + + var lon = getprop("/save/longitude-deg"); + setprop("/position/longitude-deg", lon); + + var alt = getprop("/save/altitude-ft"); + setprop("/position/altitude-ft", alt); + + var heading = getprop("/save/heading-deg"); + setprop("/orientation/heading-deg", heading); + + var pitch = getprop("/save/pitch-deg"); + setprop("/orientation/pitch-deg", pitch); + + var roll = getprop("/save/roll-deg"); + setprop("/orientation/roll-deg", roll); + + + var left_indicator = getprop("/save/l/indicator"); + setprop("/sim/model/lights/indicator-left/state", left_indicator); + + var right_indicator = getprop("/save/r/indicator"); + setprop("/sim/model/lights/indicator-right/state", right_indicator); + + + var horn = getprop("/save/horn"); + setprop("/systems/horn", horn); + + + var mode = getprop("/save/controls/mode"); + setprop("/controls/mode", mode); + + var dir = getprop("/save/controls/dir"); + setprop("/controls/direction", dir); + + var aileron = getprop("/save/controls/ail"); + setprop("/controls/flight/aileron", aileron); + + var steering_wheel = getprop("/save/controls/stw"); + setprop("/controls/steering_wheel", steering_wheel); + + + + + var platename = getprop("/save/plate_name"); + setprop("/systems/plate/name", platename); + + var platefile = getprop("/save/plate_file"); + setprop("/systems/plate/file", platefile); + + + var interior = getprop("/save/type/int"); + setprop("/systems/interior/type", interior); + print("State resumed!"); +} diff --git a/followme_e-tron-set.xml b/followme_e-tron-set.xml index 51c30f5..b294635 100644 --- a/followme_e-tron-set.xml +++ b/followme_e-tron-set.xml @@ -477,6 +477,13 @@ <script>engine.stopEngine(engine.engine_1)</script> </binding> </item> + <item> + <label>Save/Resume</label> + <binding> + <command>dialog-show</command> + <dialog-name>save_dialog</dialog-name> + </binding> + </item> <item> <label>Toggle Parking Radar</label> <binding> @@ -835,6 +842,7 @@ <file>Aircraft/followme_e-tron/Nasal/plate.nas</file> <file>Aircraft/followme_e-tron/Nasal/steering.nas</file> <file>Aircraft/followme_e-tron/Nasal/radar.nas</file> + <file>Aircraft/followme_e-tron/Nasal/save.nas</file> </followme> <!--<screen> <file>Aircraft/followme_e-tron/Nasal/SmartScreen.nas</file> @@ -874,6 +882,9 @@ <dialogs> <file>Aircraft/followme_e-tron/gui/dialogs/config.nas</file> </dialogs> + <save> + <file>Aircraft/followme_e-tron/Nasal/save.nas</file> + </save> </nasal> </PropertyList> diff --git a/gui/dialogs/save.xml b/gui/dialogs/save.xml new file mode 100644 index 0000000..d4316be --- /dev/null +++ b/gui/dialogs/save.xml @@ -0,0 +1,72 @@ +<?xml version="1.0"?> + +<PropertyList> + + <name>save_dialog</name> + <layout>vbox</layout> + <resizable>false</resizable> + <modal>false</modal> + <draggable>true</draggable> + + + <group> + <layout>hbox</layout> + + <empty><stretch>true</stretch></empty> + <text> + <label>Save/Resume</label> + </text> + <empty><stretch>true</stretch></empty> + + <button> + <legend/> + <key>Esc</key> + <pref-width>32</pref-width> + <pref-height>16</pref-height> + <binding> + <command>dialog-close</command> + </binding> + </button> + </group> + <hrule/> + <button> + <halign>left</halign> + <legend>Save</legend> + <pref-width>100</pref-width> + <pref-height>28</pref-height> + <binding> + <command>nasal</command> + <script>followme.save()</script> + </binding> + <binding> + <command>nasal</command> + <script>save.save()</script> + </binding> + </button> + <button> + <halign>left</halign> + <legend>Resume</legend> + <pref-width>100</pref-width> + <pref-height>28</pref-height> + <binding> + <command>nasal</command> + <script>followme.resume()</script> + </binding> + <binding> + <command>nasal</command> + <script>save.resume()</script> + </binding> + <binding> + <command>property-assign</command> + <property>velocities/groundspeed-kt</property> + <value>0</value> + </binding> + <binding> + <command>property-assign</command> + <property>/position/altitude-agl-ft</property> + <value>0</value> + </binding> + </button> + + +</PropertyList> diff --git a/revision.txt b/revision.txt index c9834d4..fe7bc4c 100644 --- a/revision.txt +++ b/revision.txt @@ -1,2 +1,2 @@ -20200309 -001 \ No newline at end of file +202003 +409