<?xml version="1.0"?>

<!--
    This is the ki266 3d instrument.
    Modeled after King KI266 DME Indicator

    This instrument needs the file
    Aircraft/Instruments-3d/ki266/ki266.nas
    to be included in your -set.xml nasal section
    like this:

    <nasal>
      <YourAircraft>
        <file>Aircraft/Instruments-3d/ki266/ki266.nas</file>
      </YourAircraft>
    </nasal>

    and at least one instance of the ki266 class to be created
    in your aircraft nasal code like this:
    ki266.new(0); # for your first dme at /instrumentation/dme[0]
    ki266.new(1); # if you have another at /instrumentation/dme[1]
    Maintainer: Torsten Dreyer
-->

<PropertyList>

    <params>
        <in-range>instrumentation/dme[0]/in-range</in-range>
        <right-display>instrumentation/dme[0]/min-kts-display</right-display>
        <left-display>instrumentation/dme[0]/miles-display</left-display>
        <left-display-dot>instrumentation/dme[0]/left-dot</left-display-dot>
        <power-btn>instrumentation/dme[0]/power-btn</power-btn>
        <serviceable>instrumentation/dme[0]/serviceable</serviceable>
        <dimming>instrumentation/dme[0]/dimming-norm</dimming>
        <min-kts>instrumentation/dme[0]/switch-min-kts</min-kts>
        <electrical>systems/electrical/outputs/dme</electrical>
    </params>

    <path>ki266.ac</path>

    <effect>
        <inherits-from>../../../../Effects/interior/c172p-interior-radiance</inherits-from>
        <object-name>Indicators</object-name>
        <object-name>Miles</object-name>
        <object-name>Min</object-name>
        <object-name>Kts</object-name>
        <object-name>Left.Dot1</object-name>
        <object-name>Left.100</object-name>
        <object-name>Left.10</object-name>
        <object-name>Left.1</object-name>
        <object-name>Right.100</object-name>
        <object-name>Right.10</object-name>
        <object-name>Right.1</object-name>
    </effect>

    <effect>
        <inherits-from>../../../../Effects/interior/lm-ki266r</inherits-from>
        <object-name>SourceSelectorKnob</object-name>
        <object-name>PowerSwitch.Lever</object-name>
    </effect>

    <effect>
        <inherits-from>../../../../Effects/interior/lm-ki266</inherits-from>
        <object-name>on</object-name>
        <object-name>off</object-name>
        <object-name>Label3</object-name>
        <object-name>n1</object-name>
        <object-name>hld</object-name>
        <object-name>n2</object-name>
        <object-name>PowerSwitch.Base</object-name>
        <object-name>Background</object-name>
        <object-name>ModeSwitch</object-name>
        <object-name>Frame</object-name>
        <object-name>base</object-name>
    </effect>

    <!-- Turn it off, when u/s or switched off -->
    <animation>
        <type>select</type>
        <object-name>Indicators</object-name>
        <condition>
            <property>/sim/model/c172p/lighting/dme-power</property>
        </condition>
    </animation>

    <animation>
        <type>material</type>
        <object-name>Indicators</object-name>
        <condition>
            <and>
                <not>
                    <property>sim/rendering/rembrandt/enabled</property>
                </not>
                <greater-than>
                    <property>/sim/model/c172p/lighting/dme</property>
                    <value>0.0</value>
                </greater-than>
            </and>
        </condition>
        <emission>
            <red>1.0</red>
            <green>1.0</green>
            <blue>1.0</blue>
            <factor-prop>/sim/model/c172p/lighting/dme</factor-prop>
        </emission>
    </animation>

    <animation>
        <type>material</type>
        <object-name>ModeSwitch</object-name>
        <emission>
            <red>0.5</red>
            <green>0.1</green>
            <blue>0.00005</blue>
            <factor-prop>/sim/model/c172p/lighting/dme</factor-prop>
        </emission>
    </animation>

    <animation>
        <type>material</type>
        <object-name>Indicators</object-name>
        <emission>
            <red>-1.0</red>
            <green>-1.0</green>
            <blue>-1.0</blue>
            <factor-prop alias="../../../params/dimming"/>
            <offset>1</offset>
        </emission>
    </animation>

    <!-- The mode switch do display min/kts -->
    <animation>
        <type>select</type>
        <object-name>Min</object-name>
        <condition>
            <not>
                <property alias="../../../../params/min-kts"/>
            </not>
        </condition>
    </animation>

    <animation>
        <type>select</type>
        <object-name>Kts</object-name>
        <condition>
            <property alias="../../../params/min-kts"/>
        </condition>
    </animation>

    <animation>
        <type>translate</type>
        <object-name>ModeSwitch</object-name>
        <factor>-0.003</factor>
        <property alias="../../params/min-kts"/>
        <axis>
            <x>1.0</x>
            <y>0.0</y>
            <z>0.0</z>
        </axis>
    </animation>

    <animation>
        <type>pick</type>
        <object-name>ModeSwitch</object-name>
        <visible>true</visible>
        <action>
            <button>0</button>
            <repeatable>false</repeatable>
            <binding>
                <command>property-toggle</command>
                <property alias="../../../../params/min-kts"/>
            </binding>
            <binding>
                <command>nasal</command>
                <script>c172p.click("dme-mode")</script>
            </binding>
        </action>
        <hovered>
            <binding>
                <command>set-tooltip</command>
                <tooltip-id>min-kts</tooltip-id>
                <label>Mode: %s</label>
                <property alias="../../../../params/min-kts"/>
                <mapping>nasal</mapping>
                <script>
                  var m = arg[0];
                  if (m) return 'KTS';
                  return 'MIN';
                </script>
            </binding>
        </hovered>
    </animation>

    <!-- Distance display, allways on.
         Shows nn.n when distance is less than 100NM and
         shows nnn when distance is greater than or equal to 100NM
    -->
    <animation>
        <name>LeftDecimalDot</name>
        <type>select</type>
        <object-name>Left.Dot1</object-name>
        <condition>
            <property alias="../../../params/left-display-dot"/>
        </condition>
    </animation>

    <!-- Blank leading zeros -->
    <animation>
        <name>miles_100_blank</name>
        <type>select</type>
        <object-name>Left.100</object-name>
        <condition>
            <greater-than-equals>
                <property alias="../../../../params/left-display"/>
                <value>100.0</value>
            </greater-than-equals>
        </condition>
    </animation>

    <animation>
        <name>miles_10_blank</name>
        <type>select</type>
        <object-name>Left.10</object-name>
        <condition>
            <or>
                <greater-than-equals>
                    <property alias="../../../../../params/left-display"/>
                    <value>10.0</value>
                </greater-than-equals>
                <and>
                    <property alias="../../../../../params/left-display-dot"/>
                    <greater-than-equals>
                        <property alias="../../../../../../params/left-display"/>
                        <value>1.0</value>
                    </greater-than-equals>
                </and>
            </or>
        </condition>
    </animation>

    <animation>
        <name>miles_1_blank</name>
        <type>select</type>
        <object-name>Left.1</object-name>
        <condition>
            <greater-than-equals>
                <property alias="../../../../params/left-display"/>
                <value>1.0</value>
            </greater-than-equals>
        </condition>
    </animation>

    <!-- Left display, left digit -->
    <animation>
        <name>miles_100_lo</name>
        <type>textranslate</type>
        <object-name>Left.100</object-name>
        <property alias="../../params/left-display"/>
        <step>100</step>
        <factor>0.001</factor>
        <axis>
            <x>1</x>
            <y>0</y>
            <z>0</z>
        </axis>
    </animation>

    <!-- Left display, center digit -->
    <animation>
        <name>miles_10_lo</name>
        <type>textranslate</type>
        <object-name>Left.10</object-name>
        <property alias="../../params/left-display"/>
        <step>10</step>
        <factor>0.01</factor>
        <axis>
            <x>1</x>
            <y>0</y>
            <z>0</z>
        </axis>
    </animation>

    <!-- Left display, right digit -->
    <animation>
        <name>miles_1_lo</name>
        <type>textranslate</type>
        <object-name>Left.1</object-name>
        <property alias="../../params/left-display"/>
        <step>1</step>
        <factor>0.1</factor>
        <axis>
            <x>1</x>
            <y>0</y>
            <z>0</z>
        </axis>
    </animation>

    <!--
        Right display, showing either kts or min, handled by dme.nas
    -->
    <animation>
        <condition>
            <greater-than-equals>
                <property alias="../../../../params/right-display"/>
                <value>100</value>
            </greater-than-equals>
        </condition>
        <name>kts_100_select</name>
        <type>select</type>
        <object-name>Right.100</object-name>
    </animation>

    <animation>
        <condition>
            <greater-than-equals>
                <property alias="../../../../params/right-display"/>
                <value>10</value>
            </greater-than-equals>
        </condition>
        <name>kts_10_select</name>
        <type>select</type>
        <object-name>Right.10</object-name>
    </animation>

    <animation>
        <condition>
            <property alias="../../../params/in-range"/>
        </condition>
        <name>kts_1_select</name>
        <type>select</type>
        <object-name>Right.1</object-name>
    </animation>

    <animation>
        <name>kts_100</name>
        <type>textranslate</type>
        <object-name>Right.100</object-name>
        <property alias="../../params/right-display"/>
        <step>100</step>
        <factor>0.001</factor>
        <axis>
            <x>1</x>
            <y>0</y>
            <z>0</z>
        </axis>
    </animation>

    <animation>
        <name>kts_10</name>
        <type>textranslate</type>
        <object-name>Right.10</object-name>
        <property alias="../../params/right-display"/>
        <step>10</step>
        <factor>0.01</factor>
        <axis>
            <x>1</x>
            <y>0</y>
            <z>0</z>
        </axis>
    </animation>

    <animation>
        <name>kts_1</name>
        <type>textranslate</type>
        <object-name>Right.1</object-name>
        <property alias="../../params/right-display"/>
        <step>1</step>
        <factor>0.1</factor>
        <axis>
            <x>1</x>
            <y>0</y>
            <z>0</z>
        </axis>
    </animation>

    <!-- DME -->

    <!-- The power switch -->
    <animation>
        <type>rotate</type>
        <object-name>PowerSwitch.Lever</object-name>
        <property alias="../../params/power-btn"/>
        <factor>-60</factor>
        <axis>
            <x>0</x>
            <y>1</y>
            <z>0</z>
        </axis>
        <center>
            <x-m>-0.35496</x-m>
            <y-m> 0.08087</y-m>
            <z-m>-0.05437</z-m>
        </center>
    </animation>

    <animation>
        <type>pick</type>
        <object-name>PowerSwitch</object-name>
        <visible>true</visible>
        <action>
            <button>0</button>
            <repeatable>false</repeatable>
            <binding>
                <command>property-toggle</command>
                <property alias="../../../../params/power-btn"/>
            </binding>
            <binding>
                <command>nasal</command>
                <script>c172p.click("dme-power")</script>
            </binding>
        </action>
        <hovered>
            <binding>
                <command>set-tooltip</command>
                <tooltip-id>power-btn</tooltip-id>
                <label>DME: %s</label>
                <property alias="../../../../params/power-btn"/>
                <mapping>nasal</mapping>
                <script>
                  if(arg[0]) return 'ON';
                  return 'OFF';
                </script>
            </binding>
        </hovered>
    </animation>

    <!-- The source switch -->
    <animation>
        <type>knob</type>
        <object-name>SourceSelectorKnob</object-name>
        <property>instrumentation/dme/switch-position</property>
        <factor>-30</factor>
        <min-deg>-60</min-deg>
        <max-deg>0</max-deg>
        <offset-deg>30</offset-deg>
        <axis>
            <x>1</x>
            <y>0</y>
            <z>0</z>
        </axis>
        <center>
            <x-m>-0.35558</x-m>
            <y-m> 0.05483</y-m>
            <z-m>-0.05527</z-m>
        </center>
        <action>
            <binding>
                <command>property-adjust</command>
                <property>instrumentation/dme/switch-position</property>
                <factor>1</factor>
                <min>1</min>
                <max>3</max>
                <wrap>0</wrap>
            </binding>
            <binding>
                <condition>
                    <equals>
                        <property>instrumentation/dme/switch-position</property>
                        <value type="int">1</value>
                    </equals>
                </condition>
                <command>property-assign</command>
                <property>instrumentation/dme/frequencies/source</property>
                <value>instrumentation/nav[0]/frequencies/selected-mhz</value>
            </binding>
            <binding>
                <condition>
                    <equals>
                        <property>instrumentation/dme/switch-position</property>
                        <value type="int">2</value>
                    </equals>
                </condition>
                <command>property-assign</command>
                <property>instrumentation/dme/frequencies/source</property>
                <value>instrumentation/dme/frequencies/selected-mhz</value>
            </binding>
            <binding>
                <condition>
                    <equals>
                        <property>instrumentation/dme/switch-position</property>
                        <value type="int">3</value>
                    </equals>
                </condition>
                <command>property-assign</command>
                <property>instrumentation/dme/frequencies/source</property>
                <value>instrumentation/nav[1]/frequencies/selected-mhz</value>
            </binding>
            <binding>
                <command>nasal</command>
                <script>c172p.click("dme-source")</script>
            </binding>
        </action>
        <hovered>
            <binding>
                <command>set-tooltip</command>
                <tooltip-id>source-switch</tooltip-id>
                <label>DME Source: %s</label>
                <property>instrumentation/dme/switch-position</property>
                <mapping>nasal</mapping>
                <script>
                  var m = arg[0];
                  if (m == 1) return 'NAV1';
                  if (m == 3) return 'NAV2';
                  return 'HOLD';
                </script>
            </binding>
        </hovered>
    </animation>

    <animation>
        <type>material</type>
        <object-name>SourceSelectorKnob</object-name>
        <object-name>PowerSwitch.Lever</object-name>
        <object-name>on</object-name>
        <object-name>off</object-name>
        <object-name>Label3</object-name>
        <object-name>n1</object-name>
        <object-name>hld</object-name>
        <object-name>n2</object-name>
        <object-name>PowerSwitch.Base</object-name>
        <object-name>Background</object-name>
        <object-name>ModeSwitch</object-name>
        <object-name>Frame</object-name>
        <object-name>base</object-name>
        <condition>
            <not>
                <property>/sim/rendering/shaders/skydome</property>
            </not>
        </condition>
        <emission>
            <red-prop>/sim/model/c172p/lighting/rgb-ra-r-factor</red-prop>
            <green-prop>/sim/model/c172p/lighting/rgb-ra-g-factor</green-prop>
            <blue-prop>/sim/model/c172p/lighting/rgb-ra-b-factor</blue-prop>
        </emission>
    </animation>

    <animation>
        <type>material</type>
        <object-name>SourceSelectorKnob</object-name>
        <object-name>PowerSwitch.Lever</object-name>
        <object-name>on</object-name>
        <object-name>off</object-name>
        <object-name>Label3</object-name>
        <object-name>n1</object-name>
        <object-name>hld</object-name>
        <object-name>n2</object-name>
        <object-name>PowerSwitch.Base</object-name>
        <condition>
            <not>
                <property>/sim/rendering/shaders/skydome</property>
            </not>
        </condition>
        <emission>
            <red-prop>/sim/model/material/instruments/default-red-combined-factor</red-prop>
            <green-prop>/sim/model/material/instruments/default-green-combined-factor</green-prop>
            <blue-prop>/sim/model/material/instruments/default-blue-combined-factor</blue-prop>
        </emission>
    </animation>

</PropertyList>
