THR LEVER

This commit is contained in:
2025-01-24 21:59:02 +01:00
parent b7aa6f0329
commit 48c2c05aea
6 changed files with 355 additions and 318 deletions
@@ -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>
@@ -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>
@@ -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>