THR LEVER

This commit is contained in:
Kilian Hofmann 2025-01-24 21:59:02 +01:00
parent b7aa6f0329
commit 48c2c05aea
6 changed files with 355 additions and 318 deletions

View File

@ -619,7 +619,8 @@
<ANIM_LENGTH>50</ANIM_LENGTH>
<ANIM_LAG>500</ANIM_LAG>
<RESET_DELAY>0.15</RESET_DELAY>
<DRAG_THRESHOLD>0.35</DRAG_THRESHOLD>
<DRAG_THRESHOLD>0.0150</DRAG_THRESHOLD>
<NUM_POS>50</NUM_POS>
</Parameters>
<Parameters Type="Override">
<Condition Check="ANIM_NAME">
@ -648,12 +649,17 @@
<Animation Name="#ANIM_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>(L:#NODE_NAME#) 5 *</Code>
<Code>(L:#NODE_NAME#) #ANIM_LENGTH# #NUM_POS# 1 - / *</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
</False>
</Condition>
<Condition Check="START_POS">
<False>
<START_POS>0</START_POS>
</False>
</Condition>
<MouseRect>
<IMCursorsInstances>
<IMDefault>
@ -675,54 +681,59 @@
<CallbackCode>
<IMCodeInstances>
<IMDefault>
(M:Event) 'LeftSingle' scmi 0 == if{
(M:RelativeX) 0 &gt; if{
#INC_CODE#
}
(M:RelativeX) 0 &lt; if{
#DEC_CODE#
}
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'WheelUp' scmi 0 == if{
#INC_CODE#
(E:SIMULATION TIME,seconds) (&gt;O:UpdateTime)
}
(M:Event) 'WheelDown' scmi 0 == if{
#DEC_CODE#
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
(M:Event) 'LeftSingle' scmi 0 ==
if{
(M:RelativeY) 0 &gt;
(L:#NODE_NAME#) #NUM_POS# 1 - &lt;
&amp;&amp;
if{ #INC_CODE# }
(M:RelativeY) 0 &lt;
(L:#NODE_NAME#) 0 &gt;
&amp;&amp;
if{ #DEC_CODE# }
}
(M:Event) 'WheelUp' scmi 0 ==
(L:#NODE_NAME#) #NUM_POS# 1 - &lt;
&amp;&amp;
if{ #INC_CODE# }
(M:Event) 'WheelDown' scmi 0 ==
(L:#NODE_NAME#) 0 &gt;
&amp;&amp;
if{ #DEC_CODE# }
</IMDefault>
<IMDrag>
(M:Event) 'WheelUp' scmi 0 == if{
(M:Event) 'WheelUp' scmi 0 ==
(L:#NODE_NAME#) #NUM_POS# 1 - &lt;
&amp;&amp; if{
#INC_CODE#
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'WheelDown' scmi 0 == if{
(M:Event) 'WheelDown' scmi 0 ==
(L:#NODE_NAME#) 0 &gt;
&amp;&amp; if{
#DEC_CODE#
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'Lock' scmi 0 == if{
(L:#VAR_NAME#) 2 / (&gt;O:InitialPosition)
}
(M:Event) 'Unlock' scmi 0 == if{
0 (&gt;O:IsThresholdExceeded)
(M:RelativeY) (&gt;O:InitialPosition)
}
(M:Event) 'LeftDrag' scmi 0 == if{
(O:IsThresholdExceeded) ! if{
(M:DragPercent)
(O:InitialPosition) - (&gt;O:DragChange)
(O:DragChange) #DRAG_THRESHOLD# &gt;= if{
(M:RelativeY) (O:PreviousPosition) &gt; if{
(M:RelativeY) (O:InitialPosition) - #DRAG_THRESHOLD# &gt;
(L:#NODE_NAME#) #NUM_POS# 1 - &lt;
&amp;&amp;
if{
#INC_CODE#
1 (&gt;O:IsThresholdExceeded)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
(M:RelativeY) (&gt;O:InitialPosition)
}
(O:DragChange) -#DRAG_THRESHOLD# &lt;= if{
} els{
(O:InitialPosition) (M:RelativeY) - abs #DRAG_THRESHOLD# &gt;
(L:#NODE_NAME#) 0 &gt;
&amp;&amp;
if{
#DEC_CODE#
1 (&gt;O:IsThresholdExceeded) (E:SIMULATION TIME, seconds)
(&gt;O:UpdateTime)
(M:RelativeY) (&gt;O:InitialPosition)
}
}
(M:RelativeY) (&gt;O:PreviousPosition)
}
</IMDrag>
</IMCodeInstances>
@ -731,7 +742,7 @@
<DragNodeId>#NODE_NAME#</DragNodeId>
<DragAnimSynced>True</DragAnimSynced>
<DragUseAnimLag>True</DragUseAnimLag>
<DragAxis>X</DragAxis>
<DragAxis>Y</DragAxis>
<DragFlagsLockable>LeftDrag+RightDrag+MiddleDrag</DragFlagsLockable>
</CallbackCode>
</MouseRect>

View File

@ -100,7 +100,7 @@
</Template>
<Template Name="MD11_APU_Fire_Handle">
<Parameters type="Default">
<Parameters Type="Default">
<TURN_ANIM_LENGTH>10</TURN_ANIM_LENGTH>
<TURN_ANIM_LAG>100</TURN_ANIM_LAG>
<PULL_ANIM_LENGTH>10</PULL_ANIM_LENGTH>
@ -130,7 +130,7 @@
</Template>
<Template Name="MD11_ENG_Fire_Handle">
<Parameters type="Default">
<Parameters Type="Default">
<TURN_ANIM_LENGTH>10</TURN_ANIM_LENGTH>
<TURN_ANIM_LAG>100</TURN_ANIM_LAG>
<PULL_ANIM_LENGTH>10</PULL_ANIM_LENGTH>
@ -159,4 +159,43 @@
</UseTemplate>
</Component>
</Template>
<Template Name="MD11_Throttle_Lever">
<Parameters Type="Default">
<ANIM_LENGTH_THR>100</ANIM_LENGTH_THR>
<ANIM_LAG_THR>1000</ANIM_LAG_THR>
<ANIM_LENGTH_REV>100</ANIM_LENGTH_REV>
<ANIM_LAG_REV>1000</ANIM_LAG_REV>
<THRESHOLD_X_INPUT>0.2</THRESHOLD_X_INPUT>
<THRESHOLD_X_MOUSE>0.075</THRESHOLD_X_MOUSE>
</Parameters>
<Component ID="#NODE_NAME_THR#" Node="#NODE_NAME_THR#">
<UseTemplate Name="ASOBO_GT_Lever_DraggingYAxis_Code">
<ANIM_NAME>#ANIM_NAME_THR#</ANIM_NAME>
<ANIM_CODE>#ANIM_CODE_THR#</ANIM_CODE>
<ANIM_LAG>#ANIM_LAG_THR#</ANIM_LAG>
<ANIM_LENGTH>#ANIM_LENGTH_THR#</ANIM_LENGTH>
<POSITION_TYPE>L</POSITION_TYPE>
<POSITION_VAR>#POSITION_VAR_THR#</POSITION_VAR>
<UP_CODE />
<DOWN_CODE />
</UseTemplate>
</Component>
<UseTemplate Name="MD11_Animation">
<NODE_NAME>#NODE_NAME_REV#</NODE_NAME>
<ANIM_NAME>#ANIM_NAME_REV#</ANIM_NAME>
<ANIM_CODE>#ANIM_CODE_REV#</ANIM_CODE>
</UseTemplate>
<!-- NOTE: The WASM fights against being able to manipulate the handle with mouse -->
<!--
<UseTemplate Name="ASOBO_GT_Lever_DraggingYAxis_Code">
<ANIM_NAME>#ANIM_NAME_REV#</ANIM_NAME>
<ANIM_CODE>#ANIM_CODE_REV#</ANIM_CODE>
<ANIM_LAG>#ANIM_LAG_REV#</ANIM_LAG>
<ANIM_LENGTH>#ANIM_LENGTH_REV#</ANIM_LENGTH>
<POSITION_TYPE>L</POSITION_TYPE>
<POSITION_VAR>#POSITION_VAR_REV#</POSITION_VAR>
</UseTemplate>
-->
</Template>
</ModelBehaviors>

View File

@ -414,4 +414,144 @@
</Update>
</Component>
</Template>
<Template Name="MD11_Long_Trim_Switch">
<Parameters Type="Default">
<ANIM_LENGTH>10</ANIM_LENGTH>
<ANIM_LAG>100</ANIM_LAG>
<RESET_DELAY>0.15</RESET_DELAY>
<DRAG_THRESHOLD>0.35</DRAG_THRESHOLD>
</Parameters>
<Parameters Type="Override">
<Condition Check="ANIM_NAME">
<False>
<ANIM_NAME>#NODE_NAME#</ANIM_NAME>
</False>
</Condition>
<Condition Check="VAR_NAME">
<False>
<VAR_NAME>#NODE_NAME#</VAR_NAME>
</False>
</Condition>
</Parameters>
<Component ID="#NODE_NAME#" Node="#NODE_NAME#">
<Condition Check="ANIM_CODE">
<True>
<Animation Name="#ANIM_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>#ANIM_CODE#</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
</True>
<False>
<Animation Name="#ANIM_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>(L:#NODE_NAME#) 5 *</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
</False>
</Condition>
<MouseRect>
<IMCursorsInstances>
<IMDefault>
<CursorUp>UpArrow</CursorUp>
<CursorDown>DownArrow</CursorDown>
<Cursor>Dynamic</Cursor>
</IMDefault>
<IMDrag>
<Cursor>Grab</Cursor>
</IMDrag>
</IMCursorsInstances>
<IMMouseFlagsInstances>
<IMDefault>LeftSingle+LeftRelease+WheelUp+WheelDown</IMDefault>
<IMDrag>Lock+Unlock+LeftDrag+Wheel</IMDrag>
</IMMouseFlagsInstances>
<Lock>True</Lock>
<LockFlagsTemporary>LeftSingle</LockFlagsTemporary>
<HighlightNodeId>#NODE_NAME#</HighlightNodeId>
<CallbackCode>
<IMCodeInstances>
<IMDefault>
(M:Event) 'LeftSingle' scmi 0 == if{
(M:RelativeY) 0 &gt; if{
#INC_CODE#
}
(M:RelativeY) 0 &lt; if{
#DEC_CODE#
}
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'LeftRelease' scmi 0 == if{
1 (&gt;O:HasReleased)
}
(M:Event) 'WheelUp' scmi 0 == if{
#INC_CODE#
1 (&gt;O:HasReleased)
(E:SIMULATION TIME,seconds) (&gt;O:UpdateTime)
}
(M:Event) 'WheelDown' scmi 0 == if{
#DEC_CODE#
1 (&gt;O:HasReleased)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
</IMDefault>
<IMDrag>
(M:Event) 'WheelUp' scmi 0 == if{
#INC_CODE#
1(&gt;O:HasReleased)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'WheelDown' scmi 0 == if{
#DEC_CODE#
1 (&gt;O:HasReleased)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) 'Lock' scmi 0 == if{
(L:#VAR_NAME#) 2 / (&gt;O:InitialPosition)
}
(M:Event) 'Unlock' scmi 0 == if{
1 (&gt;O:HasReleased)
0 (&gt;O:IsThresholdExceeded)
}
(M:Event) 'LeftDrag' scmi 0 == if{
(O:IsThresholdExceeded) ! if{
(M:DragPercent)
(O:InitialPosition) - (&gt;O:DragChange)
(O:DragChange) #DRAG_THRESHOLD# &gt;= if{
#DEC_CODE#
1 (&gt;O:IsThresholdExceeded)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(O:DragChange) -#DRAG_THRESHOLD# &lt;= if{
#INC_CODE#
1 (&gt;O:IsThresholdExceeded) (E:SIMULATION TIME, seconds)
(&gt;O:UpdateTime)
}
}
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_NAME#</DragAnimName>
<DragNodeId>#NODE_NAME#</DragNodeId>
<DragAnimSynced>True</DragAnimSynced>
<DragUseAnimLag>True</DragUseAnimLag>
<DragAxis>Y</DragAxis>
<DragFlagsLockable>LeftDrag+RightDrag+MiddleDrag</DragFlagsLockable>
</CallbackCode>
</MouseRect>
<Update InteractionModel="All" Frequency="5">
(O:HasReleased) if{
(E:SIMULATION TIME, seconds) (O:UpdateTime) - #RESET_DELAY# &gt; if{
#REL_CODE#
0 (&gt;O:HasReleased)
}
}
</Update>
</Component>
</Template>
</ModelBehaviors>

View File

@ -4200,136 +4200,6 @@
<!-- GSX END -->
<!-- THR QUAD START -->
<PartInfo>
<Name>MD11_THR_L_ATS_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_L_ATS_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77844 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 77845 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_R_ATS_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_R_ATS_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77846 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 77847 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_GEAR_HORN_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_GEAR_HORN_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77849 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 77850 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_GA_BT</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_GA_BT, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE+LEFTRELEASE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77851 (&gt;L:CEVENT) } (M:Event)
&apos;LeftRelease&apos; scmp 0 == if{ 77852 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_L_RNG</Name>
<AnimLength>100</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_L_RNG, enum) 0.909090909090909 *</Code>
<Lag>1000</Lag>
</Parameter>
</Animation>
</PartInfo>
<PartInfo>
<Name>MD11_THR_C_RNG</Name>
<AnimLength>100</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_C_RNG, enum) 0.909090909090909 *</Code>
<Lag>1000</Lag>
</Parameter>
</Animation>
</PartInfo>
<PartInfo>
<Name>MD11_THR_R_RNG</Name>
<AnimLength>100</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_R_RNG, enum) 0.909090909090909 *</Code>
<Lag>1000</Lag>
</Parameter>
</Animation>
</PartInfo>
<PartInfo>
<Name>MD11_THR_L_REV_RNG</Name>
<AnimLength>100</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_L_REV_RNG, enum) 0.909090909090909 *</Code>
<Lag>1000</Lag>
</Parameter>
</Animation>
</PartInfo>
<PartInfo>
<Name>MD11_THR_C_REV_RNG</Name>
<AnimLength>100</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_C_REV_RNG, enum) 0.909090909090909 *</Code>
<Lag>1000</Lag>
</Parameter>
</Animation>
</PartInfo>
<PartInfo>
<Name>MD11_THR_R_REV_RNG</Name>
<AnimLength>100</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_R_REV_RNG, enum) 0.909090909090909 *</Code>
<Lag>1000</Lag>
</Parameter>
</Animation>
</PartInfo>
<PartInfo>
<Name>MD11_SPDBRK_RNG</Name>
<AnimLength>100</AnimLength>
@ -4339,7 +4209,6 @@
<Lag>1000</Lag>
</Parameter>
</Animation>
</PartInfo>
<PartInfo>
<Name>MD11_SPDBRK_LATCH</Name>
@ -4350,8 +4219,25 @@
<Lag>100</Lag>
</Parameter>
</Animation>
</PartInfo>
<PartInfo>
<Name>MD11_SPDBRK_HANDLE</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_SPDBRK_HANDLE, enum) 5 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>Hand</Cursor>
<MouseFlags>LEFTSINGLE+WHEELUP+WHEELDOWN</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77829 (&gt;L:CEVENT) } (M:Event)
&apos;WheelUp&apos; scmp 0 == if{ 77853 (&gt;L:CEVENT) } (M:Event) &apos;WheelDown&apos;
scmp 0 == if{ 77828 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_FLAP_LATCH</Name>
<AnimLength>10</AnimLength>
@ -4377,7 +4263,6 @@
<Lag>1000</Lag>
</Parameter>
</Animation>
</PartInfo>
<PartInfo>
<Name>MD11_DIALAFLAP_IND_RNG</Name>
@ -4388,7 +4273,6 @@
<Lag>1000</Lag>
</Parameter>
</Animation>
</PartInfo>
<PartInfo>
<Name>MD11_DIALAFLAP_WHEEL_RNG</Name>
@ -4406,150 +4290,6 @@
&apos;WheelDown&apos; scmp 0 == if{ 77833 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_SPDBRK_HANDLE</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_SPDBRK_HANDLE, enum) 5 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>Hand</Cursor>
<MouseFlags>LEFTSINGLE+WHEELUP+WHEELDOWN</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77829 (&gt;L:CEVENT) } (M:Event)
&apos;WheelUp&apos; scmp 0 == if{ 77853 (&gt;L:CEVENT) } (M:Event) &apos;WheelDown&apos;
scmp 0 == if{ 77828 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_L_FUEL_SW</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_L_FUEL_SW, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77834 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_C_FUEL_SW</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_C_FUEL_SW, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77835 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_R_FUEL_SW</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_R_FUEL_SW, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77836 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_L_START_SW</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_L_START_SW, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77837 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_C_START_SW</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_C_START_SW, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77838 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_R_START_SW</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_R_START_SW, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77839 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_LONG_TRIM_SW</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_LONG_TRIM_SW, enum) 5 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>GRAB</Cursor>
<MouseFlags>LeftDrag+LeftSingle+MoveRepeat+Move+LeftRelease+Leave</MouseFlags>
<CallbackCode>(M:Event) 'LeftSingle' scmi 0 == if{ (M:Y) (&gt;L:LastPos) 1 (&gt;L:MOUSEDOWN) }
(M:Event) 'Move' scmi 0 == if{
(L:MOUSEDOWN) 0 &gt; if{
(M:Y) (L:LastPos) - 1 &gt; if{ 77840 (&gt;L:CEVENT) 0 (&gt;L:MOUSEDOWN) }
(M:Y) (L:LastPos) - -1 &lt; if{ 77842 (&gt;L:CEVENT) 0 (&gt;L:MOUSEDOWN) } }
}
(M:Event) 'LeftRelease' scmi 0 == if{ 77841 (&gt;L:CEVENT) 0 (&gt;L:MOUSEDOWN) }
(M:Event) 'Leave' scmi 0 == if{ 77841 (&gt;L:CEVENT) 0 (&gt;L:MOUSEDOWN) }</CallbackCode>
</MouseRect>
</PartInfo>
<PartInfo>
<Name>MD11_THR_PARK_LVR</Name>
<AnimLength>10</AnimLength>
<Animation>
<Parameter>
<Code>(L:MD11_THR_PARK_LVR, enum) 10 *</Code>
<Lag>100</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>HAND</Cursor>
<MouseFlags>LEFTSINGLE</MouseFlags>
<CallbackCode>(M:Event) &apos;LeftSingle&apos; scmp 0 == if{ 77848 (&gt;L:CEVENT) }</CallbackCode>
</MouseRect>
</PartInfo>
<!-- THR QUAD END -->
<!-- FIXME: PAX COUNT; PAX START -->

View File

@ -343,7 +343,7 @@
<!-- NOTE: Added bound check so as to not overdrive the trim-->
<UseTemplate Name="MD11_Rudder_Trim_Knob">
<NODE_NAME>MD11_PED_RUD_TRIM_SW</NODE_NAME>
<ANIM_CODE>2 (L:MD11_PED_RUD_TRIM_SW) -</ANIM_CODE>
<ANIM_CODE>50 (L:MD11_PED_RUD_TRIM_SW) 25 * -</ANIM_CODE>
<INC_CODE>(L:MD11_PED_RUD_TRIM_SW) 50 &lt; if{ 69848 (&gt;L:CEVENT) }</INC_CODE>
<DEC_CODE>(L:MD11_PED_RUD_TRIM_SW) 0 &gt; if{ 69850 (&gt;L:CEVENT) }</DEC_CODE>
<REL_CODE>69849 (&gt;L:CEVENT)</REL_CODE>

View File

@ -1,6 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<ModelBehaviors>
<Template Name="MD11_THR">
<!-- THR LEVER BUTTONS START -->
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_THR_L_ATS_BT</NODE_NAME>
<CODE_PRESS>77844 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>77845 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<!-- NOTE: Button animation missing in model -->
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_THR_R_ATS_BT</NODE_NAME>
<CODE_PRESS>77846 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>77847 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_THR_GA_BT</NODE_NAME>
<CODE_PRESS>77851 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>77852 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<!-- THR LEVER BUTTONS END -->
<!-- GEAR HORN BUTTON START -->
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_THR_GEAR_HORN_BT</NODE_NAME>
<CODE_PRESS>77849 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>77850 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<!-- GEAR HORN BUTTON END -->
<!-- FUEL SWITCHES START -->
<UseTemplate Name="MD11_2Pos_Switch">
<NODE_NAME>MD11_THR_L_FUEL_SW</NODE_NAME>
<CODE>77834 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_2Pos_Switch">
<NODE_NAME>MD11_THR_C_FUEL_SW</NODE_NAME>
<CODE>77835 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_2Pos_Switch">
<NODE_NAME>MD11_THR_R_FUEL_SW</NODE_NAME>
<CODE>77836 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<!-- FUEL SWITCHES END -->
<!-- START SWITCHES START -->
<UseTemplate Name="MD11_2Pos_Switch">
<NODE_NAME>MD11_THR_L_START_SW</NODE_NAME>
<CODE>77837 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_2Pos_Switch">
<NODE_NAME>MD11_THR_C_START_SW</NODE_NAME>
<CODE>77838 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_2Pos_Switch">
<NODE_NAME>MD11_THR_R_START_SW</NODE_NAME>
<CODE>77839 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<!-- START SWITCHES END -->
<!-- LONG TRIM START -->
<UseTemplate Name="MD11_Long_Trim_Switch">
<NODE_NAME>MD11_THR_LONG_TRIM_SW</NODE_NAME>
<INC_CODE>77840 (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>77842 (&gt;L:CEVENT)</DEC_CODE>
<REL_CODE>77841 (&gt;L:CEVENT)</REL_CODE>
</UseTemplate>
<!-- LONG TRIM END -->
<!-- PARK BRAKE START -->
<UseTemplate Name="MD11_2Pos_Switch">
<NODE_NAME>MD11_THR_PARK_LVR</NODE_NAME>
<CODE>77848 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<!-- PARK BRAKE END -->
<!-- THROTTLE LEVERS START -->
<!-- NOTE: Node names extracted from blender -->
<UseTemplate Name="MD11_Throttle_Lever">
<NODE_NAME_THR>THR_L</NODE_NAME_THR>
<ANIM_NAME_THR>MD11_THR_L_RNG</ANIM_NAME_THR>
<ANIM_CODE_THR>(L:MD11_THR_L_RNG) 0.909090909090909 *</ANIM_CODE_THR>
<POSITION_VAR_THR>MD11_THR_L_RNG</POSITION_VAR_THR>
<NODE_NAME_REV>rev_handle_l</NODE_NAME_REV>
<ANIM_NAME_REV>MD11_THR_L_REV_RNG</ANIM_NAME_REV>
<ANIM_CODE_REV>(L:MD11_THR_L_REV_RNG) 0.909090909090909 *</ANIM_CODE_REV>
<POSITION_VAR_REV>MD11_THR_L_REV_RNG</POSITION_VAR_REV>
</UseTemplate>
<!-- NOTE: Node names extracted from blender -->
<UseTemplate Name="MD11_Throttle_Lever">
<NODE_NAME_THR>THR_C</NODE_NAME_THR>
<ANIM_NAME_THR>MD11_THR_C_RNG</ANIM_NAME_THR>
<ANIM_CODE_THR>(L:MD11_THR_C_RNG) 0.909090909090909 *</ANIM_CODE_THR>
<POSITION_VAR_THR>MD11_THR_C_RNG</POSITION_VAR_THR>
<NODE_NAME_REV>rev_handle_c</NODE_NAME_REV>
<ANIM_NAME_REV>MD11_THR_C_REV_RNG</ANIM_NAME_REV>
<ANIM_CODE_REV>(L:MD11_THR_C_REV_RNG) 0.909090909090909 *</ANIM_CODE_REV>
<POSITION_VAR_REV>MD11_THR_C_REV_RNG</POSITION_VAR_REV>
</UseTemplate>
<!-- NOTE: Node names extracted from blender -->
<UseTemplate Name="MD11_Throttle_Lever">
<NODE_NAME_THR>THR_R</NODE_NAME_THR>
<ANIM_NAME_THR>MD11_THR_R_RNG</ANIM_NAME_THR>
<ANIM_CODE_THR>(L:MD11_THR_R_RNG) 0.909090909090909 *</ANIM_CODE_THR>
<POSITION_VAR_THR>MD11_THR_R_RNG</POSITION_VAR_THR>
<NODE_NAME_REV>rev_handle_r</NODE_NAME_REV>
<ANIM_NAME_REV>MD11_THR_R_REV_RNG</ANIM_NAME_REV>
<ANIM_CODE_REV>(L:MD11_THR_R_REV_RNG) 0.909090909090909 *</ANIM_CODE_REV>
<POSITION_VAR_REV>MD11_THR_R_REV_RNG</POSITION_VAR_REV>
</UseTemplate>
<!-- THROTTLE LEVERS END-->
</Template>
</ModelBehaviors>