Updated interactions + fixes to them

This commit is contained in:
2025-11-13 14:11:44 +01:00
parent 4a2630ce07
commit bdfd7d142c
20 changed files with 4568 additions and 2772 deletions
@@ -1,14 +1,14 @@
<ModelBehaviors>
<Template Name="MD11_Cabin_Lighting">
<DefaultTemplateParameters>
<NODE_ID />
<VAR_NAME />
<INDEX />
<UNITS />
<NODE_ID/>
<VAR_NAME/>
<INDEX/>
<UNITS/>
<INTENSITY>3.0</INTENSITY>
</DefaultTemplateParameters>
<Component ID="MD11_Cabin_Light_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Part_ID" />
<UseTemplate Name="ASOBO_GT_Part_ID"/>
<Material>
<EmissiveFactor>
<Parameter>
@@ -19,10 +19,10 @@
</Material>
</Component>
</Template>
<Template Name="MD11_Cabin_Seatbelt_Viz">
<Template Name = "MD11_Cabin_Seatbelt_Viz">
<DefaultTemplateParameters>
<NODE_ID />
<NODE_ID/>
</DefaultTemplateParameters>
<Component ID="MD11_Cabin_Seatbelt_Viz_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
@@ -30,10 +30,10 @@
</UseTemplate>
</Component>
</Template>
<Template Name="MD11_Cabin_NoSmoking_Viz">
<Template Name = "MD11_Cabin_NoSmoking_Viz">
<DefaultTemplateParameters>
<NODE_ID />
<NODE_ID/>
</DefaultTemplateParameters>
<Component ID="MD11_Cabin_NoSmoking_Viz_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
@@ -41,10 +41,10 @@
</UseTemplate>
</Component>
</Template>
<Template Name="MD11_Cabin_Oxygen_Masks_Viz">
<Template Name = "MD11_Cabin_Oxygen_Masks_Viz">
<DefaultTemplateParameters>
<NODE_ID />
<NODE_ID/>
</DefaultTemplateParameters>
<Component ID="MD11_Cabin_Oxy_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
@@ -52,10 +52,10 @@
</UseTemplate>
</Component>
</Template>
<Template Name="MD11_Cabin_Power_Viz">
<Template Name = "MD11_Cabin_Power_Viz">
<DefaultTemplateParameters>
<NODE_ID />
<NODE_ID/>
</DefaultTemplateParameters>
<Component ID="MD11_Cab_Power_Viz_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
@@ -63,10 +63,9 @@
</UseTemplate>
</Component>
</Template>
<!-- NOTE: 103FIX - Flipped, no arrows, add cursor -->
<Template Name="MD11_Cabin_WindowBlinds">
<Template Name = "MD11_Cabin_WindowBlinds">
<DefaultTemplateParameters>
<NODE_ID />
<NODE_ID/>
</DefaultTemplateParameters>
<Component ID="#ANIM_NAME#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Anim_Code">
@@ -85,7 +84,10 @@
</UseTemplate>
</Component>
</Template>
<Template Name="MD11_TrayTable">
<Template Name= "MD11_TrayTable">
<DefaultTemplateParameters>
<NODE_ID/>
</DefaultTemplateParameters>
<Parameters Type="Default">
<ANIM_LENGTH>30</ANIM_LENGTH>
</Parameters>
@@ -125,12 +127,10 @@
</UseTemplate>
</Component>
</Template>
<!-- NOTE: 103FIX - Add NODE_ID -->
<Template Name="MD11_Overhead_Bin">
<Template Name = "MD11_Bin">
<Parameters Type="Default">
<ANIM_LENGTH>10</ANIM_LENGTH>
<ANIM_LAG>10</ANIM_LAG>
<NODE_ID />
</Parameters>
<Component ID="#ANIM_NAME#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Anim_Code">
@@ -153,8 +153,7 @@
</UseTemplate>
<UseTemplate Name="ASOBO_GT_Interaction_LeftSingle_Code">
<LEFT_SINGLE_CODE>
(L:MD11_CAB_LAV#ID#_LATCH, bool) ! if{ (L:MD11_CAB_LAV#ID#_DOOR) !
(&gt;L:MD11_CAB_LAV#ID#_DOOR) }
(L:MD11_CAB_LAV#ID#_LATCH, bool) ! if{ (L:MD11_CAB_LAV#ID#_DOOR) ! (&gt;L:MD11_CAB_LAV#ID#_DOOR) }
</LEFT_SINGLE_CODE>
</UseTemplate>
</Component>
@@ -187,7 +186,7 @@
<UseTemplate Name="ASOBO_GT_Interaction_LeftSingle_Code">
<LEFT_SINGLE_CODE>
(L:MD11_CAB_LAV#ID#_DOOR, bool) ! if{
(L:MD11_CAB_LAV#ID#_LATCH) ! (&gt;L:MD11_CAB_LAV#ID#_LATCH)
(L:MD11_CAB_LAV#ID#_LATCH) ! (&gt;L:MD11_CAB_LAV#ID#_LATCH)
}
</LEFT_SINGLE_CODE>
@@ -196,12 +195,11 @@
</Template>
<Template Name="MD11_Cabin_Lavatory_Occupied_Sign">
<DefaultTemplateParameters>
<NODE_ID />
<NODE_ID/>
</DefaultTemplateParameters>
<Component ID="MD11_Cabin_Lavatory_Occupied_Sign_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(L:MD11_CAB_LAV#ID#_LATCH, bool) (A:CABIN_SEATBELTS_ALERT_SWITCH,
bool) |</VISIBILITY_CODE>
<VISIBILITY_CODE>(L:MD11_CAB_LAV#ID#_LATCH, bool) (A:CABIN_SEATBELTS_ALERT_SWITCH, bool) |</VISIBILITY_CODE>
</UseTemplate>
</Component>
</Template>
@@ -315,7 +315,346 @@
</UseTemplate>
</Template>
<!-- NOTE: 103FIX - Modified version: Changed lock mode leave event to be on release of the click event -->
<!-- NOTE: Modified version: Flipped from X to Y axis -->
<Template Name="MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle">
<Parameters Type="Default">
<CURSOR_UP>UpArrow</CURSOR_UP>
<CURSOR_DOWN>DownArrow</CURSOR_DOWN>
<CENTER_RADIUS>0.004</CENTER_RADIUS>
<DOWN_TIME_BEFORE_REPEAT>0.5</DOWN_TIME_BEFORE_REPEAT>
<HELPID />
<TOOLTIPID />
<CENTER_CURSOR>Hand</CENTER_CURSOR>
<THRESHOLD_X_INPUT>0.2</THRESHOLD_X_INPUT>
<THRESHOLD_X_MOUSE>0.01</THRESHOLD_X_MOUSE>
<THRESHOLD_Y_INPUT>0.05</THRESHOLD_Y_INPUT>
<THRESHOLD_Y_MOUSE>0.025</THRESHOLD_Y_MOUSE>
<LEFT_LEAVE_CODE />
<Condition Check="LEFT_LEAVE_CODE">
<True>
<LEFT_LEAVE_CODE_OUTER />
<LEFT_LEAVE_CODE_INNER>#LEFT_LEAVE_CODE#</LEFT_LEAVE_CODE_INNER>
</True>
<False>
<LEFT_LEAVE_CODE_OUTER />
<LEFT_LEAVE_CODE_INNER />
</False>
</Condition>
<Condition Check="LEFT_SINGLE_CODE">
<True>
<LEFT_SINGLE_CODE_OUTER />
<LEFT_SINGLE_CODE_INNER>#LEFT_SINGLE_CODE#</LEFT_SINGLE_CODE_INNER>
</True>
<False>
<LEFT_SINGLE_CODE_OUTER />
<LEFT_SINGLE_CODE_INNER />
</False>
</Condition>
<UPDATE_FREQUENCY>10</UPDATE_FREQUENCY>
<UPARROW_DRAG_IM />
<DOWNARROW_DRAG_IM />
<LEFTARROW_DRAG_IM />
<RIGHTARROW_DRAG_IM />
<CURSOR_CENTER_DRAG_IM />
<CURSOR_DRAG_IM>Grab</CURSOR_DRAG_IM>
<Condition NotEmpty="CLOCKWISE_CODE">
<True>
<CLOCKWISE_CODE_DEFAULT_IM>#CLOCKWISE_CODE#</CLOCKWISE_CODE_DEFAULT_IM>
<CLOCKWISE_CODE_DRAG_IM>#CLOCKWISE_CODE#</CLOCKWISE_CODE_DRAG_IM>
</True>
<False>
<CLOCKWISE_CODE_DEFAULT_IM />
<CLOCKWISE_CODE_DRAG_IM />
</False>
</Condition>
<Condition NotEmpty="ANTICLOCKWISE_CODE">
<True>
<ANTICLOCKWISE_CODE_DEFAULT_IM>#ANTICLOCKWISE_CODE#</ANTICLOCKWISE_CODE_DEFAULT_IM>
<ANTICLOCKWISE_CODE_DRAG_IM>#ANTICLOCKWISE_CODE#</ANTICLOCKWISE_CODE_DRAG_IM>
</True>
<False>
<ANTICLOCKWISE_CODE_DEFAULT_IM />
<ANTICLOCKWISE_CODE_DRAG_IM />
</False>
</Condition>
<Condition Valid="NO_PUSH_PULL_LOCK">
<True>
<RESET_LOCK />
<UPDATE_LAST_PUSH_TIME />
<UPDATE_LAST_PULL_TIME />
<CAN_BE_PUSHED>1</CAN_BE_PUSHED>
<CAN_BE_PULLED>1</CAN_BE_PULLED>
<LOCK_PUSH />
<LOCK_PULL />
<RESET_PUSH />
<RESET_PULL />
</True>
<False>
<PUSH_RESET_DELAY>0.15</PUSH_RESET_DELAY>
<PULL_RESET_DELAY>0.15</PULL_RESET_DELAY>
<RESET_LOCK>
(O:_PushLocked) if{ 0 (&gt;O:_PushLocked) }
(O:_PullLocked) if{ 0 (&gt;O:_PullLocked) }
</RESET_LOCK>
<UPDATE_LAST_PUSH_TIME>
(M:InputType) 1 == if{
(E:SIMULATION TIME, second) (&gt;O:_LastPushTime)
}
</UPDATE_LAST_PUSH_TIME>
<UPDATE_LAST_PULL_TIME>
(M:InputType) 1 == if{
(E:SIMULATION TIME, second) (&gt;O:_LastPullTime)
}
</UPDATE_LAST_PULL_TIME>
<CAN_BE_PUSHED>(O:_PushLocked) ! @IsUsingRelativePos and</CAN_BE_PUSHED>
<CAN_BE_PULLED>(O:_PullLocked) ! @IsUsingRelativePos and</CAN_BE_PULLED>
<LOCK_PUSH>1 (&gt;O:_PushLocked)</LOCK_PUSH>
<LOCK_PULL>1 (&gt;O:_PullLocked)</LOCK_PULL>
<RESET_PUSH>(O:_PushLocked) if{ 0 (&gt;O:_PushLocked) }</RESET_PUSH>
<RESET_PULL>(O:_PullLocked) if{ 0 (&gt;O:_PullLocked) }</RESET_PULL>
</False>
</Condition>
<ON_DOWN_EVENT />
<ON_UP_EVENT />
<ADDITIONAL_EVENT_HANDLING />
<ON_BEFORE_DELTA_X_THRESHOLD_TEST />
<ON_BEFORE_DELTA_Y_THRESHOLD_TEST />
<PRE_DRAG_UPDATE />
<POST_DRAG_UPDATE />
<ALWAYS_USE_ANIM_LAG>False</ALWAYS_USE_ANIM_LAG>
<LOCKABLE_HANDLE_CODE_UP />
<NO_LOCK_HANDLE_CODE_UP />
<LOCKABLE_HANDLE_CODE_DN />
<NO_LOCK_HANDLE_CODE_DN />
</Parameters>
<Parameters Type="Override">
<THRESHOLD_X>#THRESHOLD_X_INPUT# #THRESHOLD_X_MOUSE# (M:InputType) 1 == ?</THRESHOLD_X>
<THRESHOLD_Y>#THRESHOLD_Y_INPUT# #THRESHOLD_Y_MOUSE# (M:InputType) 1 == ?</THRESHOLD_Y>
<Condition Valid="INVERT_AXIS_CODE">
<True>
<Condition NotEmpty="CODE_UP">
<False>
<CODE_UP>#ANTICLOCKWISE_CODE_DRAG_IM#</CODE_UP>
</False>
</Condition>
<Condition NotEmpty="CODE_DN">
<False>
<CODE_DN>#CLOCKWISE_CODE_DRAG_IM#</CODE_DN>
</False>
</Condition>
<Condition NotEmpty="CODE_LEFT">
<False>
<CODE_LEFT>#LEFT_SINGLE_CODE#</CODE_LEFT>
</False>
</Condition>
<Condition NotEmpty="CODE_RIGHT">
<False>
<CODE_RIGHT>#LEFT_LEAVE_CODE#</CODE_RIGHT>
</False>
</Condition>
</True>
<False>
<Condition NotEmpty="CODE_UP">
<False>
<CODE_UP>#LEFT_SINGLE_CODE#</CODE_UP>
</False>
</Condition>
<Condition NotEmpty="CODE_DN">
<False>
<CODE_DN>#LEFT_LEAVE_CODE#</CODE_DN>
</False>
</Condition>
<Condition NotEmpty="CODE_LEFT">
<False>
<CODE_LEFT>#ANTICLOCKWISE_CODE_DRAG_IM#</CODE_LEFT>
</False>
</Condition>
<Condition NotEmpty="CODE_RIGHT">
<False>
<CODE_RIGHT>#CLOCKWISE_CODE_DRAG_IM#</CODE_RIGHT>
</False>
</Condition>
</False>
</Condition>
<Condition NotEmpty="UPDATE_DEFAULT_IM">
<False>
<UPDATE_DEFAULT_IM>
(O:_MouseDownRelativePosY) 0 &gt; if{ #CLOCKWISE_CODE_DEFAULT_IM# } els{
(O:_MouseDownRelativePosY) 0 &lt; if{ #ANTICLOCKWISE_CODE_DEFAULT_IM# } }
</UPDATE_DEFAULT_IM>
</False>
</Condition>
</Parameters>
<Parameters Type="Default">
<LOCKABLE_EVENT_PRIMARY>LeftSingle</LOCKABLE_EVENT_PRIMARY>
<LOCKABLE_EVENT_SECONDARY>RightSingle</LOCKABLE_EVENT_SECONDARY>
<NO_LOCK_EVENT_PRIMARY>RightSingle</NO_LOCK_EVENT_PRIMARY>
<NO_LOCK_EVENT_SECONDARY>MiddleSingle</NO_LOCK_EVENT_SECONDARY>
</Parameters>
<Parameters Type="Override">
<Condition NotEmpty="CODE_UP">
<LOCKABLE_HANDLE_CODE_UP>(M:Event) &apos;#LOCKABLE_EVENT_PRIMARY#&apos; scmi 0 == if{
#CODE_UP# quit }</LOCKABLE_HANDLE_CODE_UP>
<NO_LOCK_HANDLE_CODE_UP>(M:Event) &apos;#NO_LOCK_EVENT_PRIMARY#&apos; scmi 0 == if{
#CODE_UP# quit }</NO_LOCK_HANDLE_CODE_UP>
</Condition>
<Condition NotEmpty="CODE_DN">
<LOCKABLE_HANDLE_CODE_DN>(M:Event) &apos;#LOCKABLE_EVENT_SECONDARY#&apos; scmi 0 == if{
#CODE_DN# quit }</LOCKABLE_HANDLE_CODE_DN>
<NO_LOCK_HANDLE_CODE_DN>(M:Event) &apos;#NO_LOCK_EVENT_SECONDARY#&apos; scmi 0 == if{
#CODE_DN# quit }</NO_LOCK_HANDLE_CODE_DN>
</Condition>
</Parameters>
<Parameters Type="Default">
<LOCKABLE_INPUTS_HANDLING>
#LOCKABLE_HANDLE_CODE_UP#
#LOCKABLE_HANDLE_CODE_DN#
</LOCKABLE_INPUTS_HANDLING>
<NO_LOCK_INPUTS_HANDLING>
#NO_LOCK_HANDLE_CODE_UP#
#NO_LOCK_HANDLE_CODE_DN#
</NO_LOCK_INPUTS_HANDLING>
</Parameters>
<Parameters Type="Default">
<IM_DRAG_ADDITIONAL_EVENT_HANDLING>
(M:InputType) 1 == if{
#LOCKABLE_INPUTS_HANDLING#
} els{
#NO_LOCK_INPUTS_HANDLING#
}
</IM_DRAG_ADDITIONAL_EVENT_HANDLING>
<MOUSEFLAGS_DEFAULT_IM>LeftSingle+LeftRelease+WheelUp+WheelDown+Lock+Unlock</MOUSEFLAGS_DEFAULT_IM>
<MOUSEFLAGS_DRAG_IM>MiddleSingle+RightSingle+LeftAll+Wheel+Lock+Unlock</MOUSEFLAGS_DRAG_IM>
</Parameters>
<Update Frequency="#UPDATE_FREQUENCY#" InteractionModel="Default">
(O:XMLVAR_Interacting_RepeatTime) (E:SIMULATION TIME, seconds) &lt; if{
#UPDATE_DEFAULT_IM#
}
</Update>
<Condition Valid="NO_PUSH_PULL_LOCK">
<False>
<Update Frequency="#UPDATE_FREQUENCY#" InteractionModel="Drag">
(O:_PushLocked) (O:_LastPushTime) 0 &gt; and if{
(E:SIMULATION TIME, second) (O:_LastPushTime) - #PUSH_RESET_DELAY# &gt; if{
0 (&gt;O:_PushLocked)
0 (&gt;O:_LastPushTime)
}
}
(O:_PullLocked) (O:_LastPullTime) 0 &gt; and if{
(E:SIMULATION TIME, second) (O:_LastPullTime) - #PULL_RESET_DELAY# &gt; if{
0 (&gt;O:_PullLocked)
0 (&gt;O:_LastPullTime)
}
}
</Update>
</False>
</Condition>
<UseTemplate Name="ASOBO_GT_MouseRect">
<UPARROW>#CURSOR_UP#</UPARROW>
<DOWNARROW>#CURSOR_DOWN#</DOWNARROW>
<CALLBACKCODE_DEFAULT_IM>
(M:Event) &apos;WheelUp&apos; scmi 0 == if{ #CLOCKWISE_CODE_DEFAULT_IM# } els{
(M:Event) &apos;WheelDown&apos; scmi 0 == if{ #ANTICLOCKWISE_CODE_DEFAULT_IM# } els{
(M:Event) &apos;LeftSingle&apos; scmi 0 == if{
(M:RelativeY) abs #CENTER_RADIUS# &gt; if{
0 (&gt;O:_ButtonPressed)
(M:RelativeY) (&gt;O:_MouseDownRelativePosY)
(E:SIMULATION TIME, seconds) #DOWN_TIME_BEFORE_REPEAT# +
(&gt;O:XMLVAR_Interacting_RepeatTime)
#UPDATE_DEFAULT_IM#
#LEFT_SINGLE_CODE_OUTER#
} els{
0 (&gt;O:_MouseDownRelativePosY)
1 (&gt;O:_ButtonPressed)
#LEFT_SINGLE_CODE_INNER#
}
} els{
(M:Event) &apos;LeftRelease&apos; scmi 0 == if{
(O:_MouseDownRelativePosY) 0 != if{ #LEFT_LEAVE_CODE_OUTER# }
(O:_ButtonPressed) if{ #LEFT_LEAVE_CODE_INNER# }
0 (&gt;O:_MouseDownRelativePosY)
0 (&gt;O:_ButtonPressed)
}
} } }
</CALLBACKCODE_DEFAULT_IM>
<CALLBACKCODE_DRAG_IM>
#ADDITIONAL_EVENT_HANDLING#
#IM_DRAG_ADDITIONAL_EVENT_HANDLING#
(M:Event) &apos;WheelUp&apos; scmi 0 == if{ #CLOCKWISE_CODE_DRAG_IM# } els{
(M:Event) &apos;WheelDown&apos; scmi 0 == if{ #ANTICLOCKWISE_CODE_DRAG_IM# } els{
(M:Event) &apos;Lock&apos; scmi 0 == if{
(M:RelativeX) (&gt;O:_LastX)
(M:RelativeY) (&gt;O:_LastY)
#ON_DOWN_EVENT#
} els{
(M:Event) &apos;Unlock&apos; scmi 0 == if{
0 (&gt;O:_LastX)
0 (&gt;O:_LastY)
#RESET_LOCK#
#ON_UP_EVENT#
} els{
(M:Event) &apos;LeftDrag&apos; scmi 0 == if{
#PRE_DRAG_UPDATE#
(M:RelativeY) (O:_LastY) - sp0
#THRESHOLD_Y# (&gt;O:_InputThresholdY)
#ON_BEFORE_DELTA_Y_THRESHOLD_TEST#
l0 abs (O:_InputThresholdY) &gt; if{
l0 (O:_InputThresholdY) / abs flr sp1
l0 (O:_InputThresholdY) % abs sp2
:1 (* for loop *)
l1 0 &lt;= if{ g2 }
l1 -- sp1
l0 0 &gt; if{
#CODE_RIGHT#
} els{
#CODE_LEFT#
}
g1
:2
l0 0 &gt; if{
(M:RelativeY) l2 - (&gt;O:_LastY)
} els{
(M:RelativeY) l2 + (&gt;O:_LastY)
}
}
(M:RelativeX) (O:_LastX) - sp0
#THRESHOLD_X# (&gt;O:_InputThresholdX)
#ON_BEFORE_DELTA_X_THRESHOLD_TEST#
l0 abs (O:_InputThresholdX) &gt; if{
l0 (O:_InputThresholdX) / abs flr sp1
l0 (O:_InputThresholdX) % abs sp2
:3 (* for loop *)
l1 0 &lt;= if{ g4 }
l1 -- sp1
l0 0 &gt; if{
#UPDATE_LAST_PUSH_TIME#
#CAN_BE_PUSHED# if{
#LOCK_PUSH#
#CODE_UP#
}
#RESET_PULL#
} els{
#UPDATE_LAST_PULL_TIME#
#CAN_BE_PULLED# if{
#LOCK_PULL#
#CODE_DN#
}
#RESET_PUSH#
}
g3
:4
l0 0 &gt; if{
(M:RelativeX) l2 - (&gt;O:_LastX)
} els{
(M:RelativeX) l2 + (&gt;O:_LastX)
}
}
#POST_DRAG_UPDATE#
} } } } }
quit
</CALLBACKCODE_DRAG_IM>
</UseTemplate>
</Template>
<Template Name="MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle">
<Parameters Type="Default">
<CURSOR_LEFT>TurnLeft</CURSOR_LEFT>
@@ -655,8 +994,6 @@
</CALLBACKCODE_DRAG_IM>
</UseTemplate>
</Template>
<!-- NOTE: 103FIX - Modified version: Flipped from X to Y axis, name changed -->
<Template Name="MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle_Y">
<Parameters Type="Default">
<CURSOR_UP>UpArrow</CURSOR_UP>
@@ -1,5 +1,5 @@
<ModelBehaviors>
<Include RelativeFile="Custom_ASOBO.xml" />
<Include RelativeFile="Custom_ASOBO.xml"/>
<Template Name="MD11_Yoke_Toggle">
<Component ID="#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Interaction_LeftSingle_Code">
@@ -17,15 +17,13 @@
<THRESHOLD_MOUSE>0.075</THRESHOLD_MOUSE>
</Parameters>
<Component ID="#NODE_ID#" Node="#NODE_ID#">
<Animation Name="#LEVER_ANIM_NAME#" Length="#LEVER_ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Animation Name="#LEVER_ANIM_NAME#" Length="#LEVER_ANIM_LENGTH#" Type="Sim" TypeParam="AutoPlay">
<Parameter>
<Code>(L:#LEVER_ANIM_VAR#)</Code>
<Lag>#LEVER_ANIM_LAG#</Lag>
</Parameter>
</Animation>
<Animation Name="#LATCH_ANIM_NAME#" Length="#LATCH_ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Animation Name="#LATCH_ANIM_NAME#" Length="#LATCH_ANIM_LENGTH#" Type="Sim" TypeParam="AutoPlay">
<Parameter>
<Code>(L:#LATCH_ANIM_VAR#) 2 *</Code>
<Lag>#LATCH_ANIM_LAG#</Lag>
@@ -70,25 +68,25 @@
<CallbackCode>
<IMCodeInstances>
<IMDefault>
90 (L:#SECOND_VAR_X_NAME#) - (&gt;O:MAX)
(M:Event) 'LeftDrag' scmi 0 == if{
(L:#VAR_X_NAME#) (M:DragPercent) 100 * (L:#VAR_X_NAME#) - + (&gt;O:NEW)
(O:NEW) (O:MAX) &lt; if{
90 (L:#SECOND_VAR_X_NAME#) - (&gt;O:MAX)
(M:Event) 'LeftDrag' scmi 0 == if{
(L:#VAR_X_NAME#) (M:DragPercent) 100 * (L:#VAR_X_NAME#) - + (&gt;O:NEW)
(O:NEW) (O:MAX) &lt; if{
(O:NEW) (&gt;L:#VAR_X_NAME#)
}
}
</IMDefault>
}
}
</IMDefault>
<IMDrag>
90 (L:#SECOND_VAR_X_NAME#) - (&gt;O:MAX)
(M:Event) 'LeftDrag' scmi 0 == if{
(L:#VAR_X_NAME#) (M:DragPercent) 100 * (L:#VAR_X_NAME#) - + (&gt;O:NEW)
(O:NEW) (O:MAX) &lt; if{
90 (L:#SECOND_VAR_X_NAME#) - (&gt;O:MAX)
(M:Event) 'LeftDrag' scmi 0 == if{
(L:#VAR_X_NAME#) (M:DragPercent) 100 * (L:#VAR_X_NAME#) - + (&gt;O:NEW)
(O:NEW) (O:MAX) &lt; if{
(O:NEW) (&gt;L:#VAR_X_NAME#)
}
}
</IMDrag>
}
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_X_NAME#</DragAnimName>
@@ -126,17 +124,17 @@
<CallbackCode>
<IMCodeInstances>
<IMDefault>
(M:Event) 'LeftDrag' scmi 0 == if{
(L:#VAR_Y_NAME#) (M:DragPercent) #ANIM_LENGTH# * (L:#VAR_Y_NAME#) - +
(&gt;L:#VAR_Y_NAME#)
}
</IMDefault>
(M:Event) 'LeftDrag' scmi 0 == if{
(L:#VAR_Y_NAME#) (M:DragPercent) #ANIM_LENGTH# * (L:#VAR_Y_NAME#) - +
(&gt;L:#VAR_Y_NAME#)
}
</IMDefault>
<IMDrag>
(M:Event) 'LeftDrag' scmi 0 == if{
(L:#VAR_Y_NAME#) (M:DragPercent) #ANIM_LENGTH# * (L:#VAR_Y_NAME#) - +
(&gt;L:#VAR_Y_NAME#)
}
</IMDrag>
(M:Event) 'LeftDrag' scmi 0 == if{
(L:#VAR_Y_NAME#) (M:DragPercent) #ANIM_LENGTH# * (L:#VAR_Y_NAME#) - +
(&gt;L:#VAR_Y_NAME#)
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_Y_NAME#</DragAnimName>
@@ -163,10 +161,8 @@
<MOUSEFLAGS_DRAG_IM>LeftSingle</MOUSEFLAGS_DRAG_IM>
<CURSOR_DEFAULT_IM>Hand</CURSOR_DEFAULT_IM>
<CURSOR_DRAG_IM>Hand</CURSOR_DRAG_IM>
<CALLBACKCODE_DEFAULT_IM>(M:Event) &apos;LeftSingle&apos; scmi 0 == if{ #LEFT_BUTTON_DOWN#
(&gt;L:CEVENT) }</CALLBACKCODE_DEFAULT_IM>
<CALLBACKCODE_DRAG_IM>(M:Event) &apos;LeftSingle&apos; scmi 0 == if{ #LEFT_BUTTON_DOWN#
(&gt;L:CEVENT) }</CALLBACKCODE_DRAG_IM>
<CALLBACKCODE_DEFAULT_IM>(M:Event) &apos;LeftSingle&apos; scmi 0 == if{ #LEFT_BUTTON_DOWN# (&gt;L:CEVENT) }</CALLBACKCODE_DEFAULT_IM>
<CALLBACKCODE_DRAG_IM>(M:Event) &apos;LeftSingle&apos; scmi 0 == if{ #LEFT_BUTTON_DOWN# (&gt;L:CEVENT) }</CALLBACKCODE_DRAG_IM>
</UseTemplate>
</Component>
</Template>
@@ -183,7 +179,7 @@
</Condition>
</Parameters>
<Component ID="MD11_Annunciator_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Part_ID" />
<UseTemplate Name="ASOBO_GT_Part_ID"/>
<Material>
<EmissiveFactor>
<Parameter>
@@ -234,15 +230,13 @@
<THRESHOLD_X_MOUSE>0.075</THRESHOLD_X_MOUSE>
</Parameters>
<Component ID="#NODE_ID#" Node="#NODE_ID#">
<Animation Name="#ANIM_NAME_ROTATION#" Length="#TURN_ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Animation Name="#ANIM_NAME_ROTATION#" Length="#TURN_ANIM_LENGTH#" Type="Sim" TypeParam="AutoPlay">
<Parameter>
<Code>(L:#ANIM_NAME_ROTATION#) 5 *</Code>
<Lag>#TURN_ANIM_LAG#</Lag>
</Parameter>
</Animation>
<Animation Name="#ANIM_NAME_PUSHPULL#" Length="#PULL_ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Animation Name="#ANIM_NAME_PUSHPULL#" Length="#PULL_ANIM_LENGTH#" Type="Sim" TypeParam="AutoPlay">
<Parameter>
<Code>(L:#ANIM_NAME_PUSHPULL#) 5 *</Code>
<Lag>#PULL_ANIM_LAG#</Lag>
@@ -327,64 +321,64 @@
<CallbackCode>
<IMCodeInstances>
<IMDefault>
(M:Event) 'LeftSingle' scmi 0 == if{
(M:Relative#AXIS#) 0 &gt; if{
#INC_CODE#
}
(M:Relative#AXIS#) 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>
(M:Event) 'LeftSingle' scmi 0 == if{
(M:Relative#AXIS#) 0 &gt; if{
#INC_CODE#
}
(M:Relative#AXIS#) 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{
(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{
#INC_CODE#
1 (&gt;O:IsThresholdExceeded)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(O:DragChange) -#DRAG_THRESHOLD# &lt;= if{
}
(O:DragChange) -#DRAG_THRESHOLD# &lt;= if{
#DEC_CODE#
1 (&gt;O:IsThresholdExceeded) (E:SIMULATION TIME, seconds)
(&gt;O:UpdateTime)
}
}
}
</IMDrag>
}
}
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_NAME#</DragAnimName>
@@ -396,13 +390,13 @@
</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>
(O:HasReleased) if{
(E:SIMULATION TIME, seconds) (O:UpdateTime) - #RESET_DELAY# &gt; if{
#REL_CODE#
0 (&gt;O:HasReleased)
}
}
</Update>
</Component>
</Template>
<Template Name="MD11_Animation">
@@ -476,12 +470,12 @@
</UseTemplate>
</Component>
</Template>
<!-- NOTE: 103Fix - Move ANIM_WRAP into knob animation, it broke the button animation-->
<Template Name="Invernyx_MD11_Knob_Push">
<Parameters Type="Default">
<ANIM_LENGTH_KNOB>72</ANIM_LENGTH_KNOB>
<ANIM_LENGTH_PUSH>10</ANIM_LENGTH_PUSH>
<ANIM_LAG>0</ANIM_LAG>
<ANIM_WRAP>True</ANIM_WRAP>
</Parameters>
<Component ID="#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Anim_Code">
@@ -496,7 +490,6 @@
<ANIM_CODE>#ANIM_CODE_PUSH#</ANIM_CODE>
<ANIM_LENGTH>#ANIM_LENGTH_PUSH#</ANIM_LENGTH>
</UseTemplate>
<!-- NOTE: 103FIX - Change to MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle -->
<UseTemplate Name="MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle">
<LEFT_SINGLE_CODE>#LEFT_BUTTON_DOWN# (&gt;L:CEVENT)</LEFT_SINGLE_CODE>
<LEFT_LEAVE_CODE>#LEFT_BUTTON_UP# (&gt;L:CEVENT)</LEFT_LEAVE_CODE>
@@ -555,7 +548,6 @@
<ANIM_CODE>(L:#ANIM_NAME_PUSH#) 10 *</ANIM_CODE>
<ANIM_LENGTH>#ANIM_LENGTH_PUSH#</ANIM_LENGTH>
</UseTemplate>
<!-- NOTE: 103FIX - Switch to MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle -->
<UseTemplate Name="MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle">
<LEFT_SINGLE_CODE>#LEFT_BUTTON_DOWN# (&gt;L:CEVENT)</LEFT_SINGLE_CODE>
<CLOCKWISE_CODE>#WHEEL_UP# (&gt;L:CEVENT)</CLOCKWISE_CODE>
@@ -576,7 +568,7 @@
</Condition>
</Parameters>
<Component ID="MD11_Annunciator_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Part_ID" />
<UseTemplate Name="ASOBO_GT_Part_ID"/>
<Material>
<EmissiveFactor>
<Parameter>
@@ -663,7 +655,7 @@
</Condition>
</Parameters>
<Component ID="MD11_Annunciator_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Part_ID" />
<UseTemplate Name="ASOBO_GT_Part_ID"/>
<Visibility>
<Parameter>
<Code>(L:#VIS_VAR#, bool)</Code>
@@ -683,19 +675,97 @@
<Parameters Type="Default">
<ANIM_LENGTH>10</ANIM_LENGTH>
<ANIM_LAG>100</ANIM_LAG>
<NUM_STATES>2</NUM_STATES>
<ANIM_SCALAR>10</ANIM_SCALAR>
<DRAG_THRESHOLD>3</DRAG_THRESHOLD>
<AXIS>Y</AXIS>
<SWITCH_DIRECTION>Vertical</SWITCH_DIRECTION>
</Parameters>
<Parameters Type="Override">
<Condition Check="INVERT_CLICK">
<True>
<DEC_EVENT_ID>#RIGHT_BUTTON_DOWN#</DEC_EVENT_ID>
<INC_EVENT_ID>#LEFT_BUTTON_DOWN#</INC_EVENT_ID>
</True>
<False>
<DEC_EVENT_ID>#LEFT_BUTTON_DOWN#</DEC_EVENT_ID>
<INC_EVENT_ID>#RIGHT_BUTTON_DOWN#</INC_EVENT_ID>
</False>
</Condition>
</Parameters>
<Component ID="#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_CODE>(L:#ANIM_NAME#, enum) #ANIM_SCALAR# *</ANIM_CODE>
</UseTemplate>
<UseTemplate Name="ASOBO_GT_Interaction_LeftSingle_MultiStates">
<CODE_DOWN>#LEFT_BUTTON_DOWN# (&gt;L:CEVENT)</CODE_DOWN>
<CODE_UP>#RIGHT_BUTTON_DOWN# (&gt;L:CEVENT)</CODE_UP>
</UseTemplate>
<MouseRect>
<IMCursorsInstances>
<IMDefault>
<CursorUp>UpArrow</CursorUp>
<CursorDown>DownArrow</CursorDown>
<Cursor>Dynamic</Cursor>
</IMDefault>
<IMDrag>
<CursorUp>UpArrow</CursorUp>
<CursorDown>DownArrow</CursorDown>
<Cursor>Dynamic</Cursor>
</IMDrag>
</IMCursorsInstances>
<IMMouseFlagsInstances>
<IMDefault>LeftSingle+LeftRelease+WheelUp+WheelDown</IMDefault>
<IMDrag>Lock+Unlock+LeftDrag+Wheel+LeftSingle</IMDrag>
</IMMouseFlagsInstances>
<HighlightNodeId>#NODE_ID#</HighlightNodeId>
<CallbackCode>
<IMCodeInstances>
<IMDefault>
(M:Event) 'LeftSingle' scmi 0 == if{ (M:Relative#AXIS#) 0 &gt; if{ #INC_EVENT_ID# (&gt;L:CEVENT) }
(M:Relative#AXIS#) 0 &lt; if{ #DEC_EVENT_ID# (&gt;L:CEVENT) } }
(M:Event) 'WheelUp' scmi 0 == if{ #INC_EVENT_ID# (&gt;L:CEVENT) }
(M:Event) 'WheelDown' scmi 0 == if{ #DEC_EVENT_ID# (&gt;L:CEVENT) }
</IMDefault>
<IMDrag>
(M:Event) 'WheelUp' scmi 0 == if{ #INC_EVENT_ID# (&gt;L:CEVENT) }
(M:Event) 'WheelDown' scmi 0 == if{ #DEC_EVENT_ID# (&gt;L:CEVENT) }
(M:Event) 'Lock' scmi 0 == if{ (L:#ANIM_NAME#) 2 / (&gt;O:InitialPosition) }
(M:Event) 'LeftSingle' scmi 0 == if{ (M:Relative#AXIS#) 0 &gt; if{ #INC_EVENT_ID# (&gt;L:CEVENT) }
(M:Relative#AXIS#) 0 &lt; if{ #DEC_EVENT_ID# (&gt;L:CEVENT) } }
(M:Event) 'Unlock' scmi 0 == if{ 0 (&gt;O:IsThresholdExceeded) }
(M:Event) 'LeftDrag' scmi 0 == if{
(M:Relative#AXIS#) (O:_Last#AXIS#) - sp0
#DRAG_THRESHOLD# (&gt;O:_InputThreshold)
l0 abs (O:_InputThreshold) &gt; if{
l0 (O:_InputThreshold) / abs flr sp1
l0 (O:_InputThreshold) % abs sp2
:1 (* for loop *)
l1 0 &lt;= if{ g2 }
l1 -- sp1
l0 0 &gt; if{
#INC_EVENT_ID# (&gt;L:CEVENT)
} els{
#DEC_EVENT_ID# (&gt;L:CEVENT)
}
g1
:2
l0 0 &gt; if{
(M:Relative#AXIS#) l2 - (&gt;O:_Last#AXIS#)
} els{
(M:Relative#AXIS#) l2 + (&gt;O:_Last#AXIS#)
}
}
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_NAME#</DragAnimName>
<DragNodeId>#NODE_ID#</DragNodeId>
<DragAnimSynced>True</DragAnimSynced>
<DragUseAnimLag>True</DragUseAnimLag>
<DragAxis>#AXIS#</DragAxis>
<DragFlagsLockable>LeftDrag+RightDrag+MiddleDrag</DragFlagsLockable>
</CallbackCode>
</MouseRect>
</Component>
</Template>
<!-- NOTE: 103FIX - Change to MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle_Y -->
<Template Name="Invernyx_MD11_SpoilerLever">
<Parameters Type="Default">
<LEVER_ANIM_LENGTH>100</LEVER_ANIM_LENGTH>
@@ -709,8 +779,7 @@
<CENTER_RADIUS>0.008</CENTER_RADIUS>
</Parameters>
<Component ID="#NODE_ID#" Node="#NODE_ID#">
<Animation Name="#LEVER_ANIM_NAME#" Length="#LEVER_ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Animation Name="#LEVER_ANIM_NAME#" Length="#LEVER_ANIM_LENGTH#" Type="Sim" TypeParam="AutoPlay">
<Parameter>
<Code>(L:#LEVER_ANIM_VAR#) 2 *</Code>
<Lag>#LEVER_ANIM_LAG#</Lag>
@@ -722,15 +791,14 @@
<Lag>#PULL_ANIM_LAG#</Lag>
</Parameter>
</Animation>
<Animation Name="#LATCH_ANIM_NAME#" Length="#LATCH_ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Animation Name="#LATCH_ANIM_NAME#" Length="#LATCH_ANIM_LENGTH#" Type="Sim" TypeParam="AutoPlay">
<Parameter>
<Code>(L:#LATCH_ANIM_VAR#) 2 *</Code>
<Lag>#LATCH_ANIM_LAG#</Lag>
</Parameter>
</Animation>
<UseTemplate Name="MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle_Y">
<INVERT_AXIS_CODE />
<INVERT_AXIS_CODE/>
<CLOCKWISE_CODE>(L:#PULL_ANIM_VAR#) 0 == if{ #WHEEL_UP# (&gt;L:CEVENT) }</CLOCKWISE_CODE>
<ANTICLOCKWISE_CODE>(L:#PULL_ANIM_VAR#) 0 == if{ #WHEEL_DOWN# (&gt;L:CEVENT) }</ANTICLOCKWISE_CODE>
<LEFT_SINGLE_CODE>(L:#LEVER_ANIM_VAR#) 1 != if{ #LEFT_BUTTON_DOWN# (&gt;L:CEVENT) }</LEFT_SINGLE_CODE>
@@ -815,7 +883,7 @@
</Condition>
<ANIM_LENGTH>#ANIM_LENGTH_KNOB#</ANIM_LENGTH>
<ROTATION_SPEED>10</ROTATION_SPEED>
<EXTRA_INTERACTION />
<EXTRA_INTERACTION/>
<CLOCKWISE_CONDITION> 1 </CLOCKWISE_CONDITION>
<ANTICLOCKWISE_CONDITION> 1 </ANTICLOCKWISE_CONDITION>
<ANIM_WRAP>True</ANIM_WRAP>
@@ -891,64 +959,64 @@
<CallbackCode>
<IMCodeInstances>
<IMDefault>
(M:Event) &apos;LeftSingle&apos; scmi 0 == if{
(M:Event) &apos;LeftSingle&apos; scmi 0 == if{
(M:RelativeY) 0 &gt; if{
#INC_CODE#
#INC_CODE#
}
(M:RelativeY) 0 &lt; if{
#DEC_CODE#
#DEC_CODE#
}
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) &apos;LeftRelease&apos; scmi 0 == if{
}
(M:Event) &apos;LeftRelease&apos; scmi 0 == if{
1 (&gt;O:HasReleased)
}
(M:Event) &apos;WheelUp&apos; scmi 0 == if{
}
(M:Event) &apos;WheelUp&apos; scmi 0 == if{
#INC_CODE#
1 (&gt;O:HasReleased)
(E:SIMULATION TIME,seconds) (&gt;O:UpdateTime)
}
(M:Event) &apos;WheelDown&apos; scmi 0 == if{
}
(M:Event) &apos;WheelDown&apos; scmi 0 == if{
#DEC_CODE#
1 (&gt;O:HasReleased)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
</IMDefault>
}
</IMDefault>
<IMDrag>
(M:Event) &apos;WheelUp&apos; scmi 0 == if{
(M:Event) &apos;WheelUp&apos; scmi 0 == if{
#INC_CODE#
1 (&gt;O:HasReleased)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) &apos;WheelDown&apos; scmi 0 == if{
}
(M:Event) &apos;WheelDown&apos; scmi 0 == if{
#DEC_CODE#
1 (&gt;O:HasReleased)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(M:Event) &apos;Lock&apos; scmi 0 == if{
}
(M:Event) &apos;Lock&apos; scmi 0 == if{
(L:#VAR_NAME#) 2 / (&gt;O:InitialPosition)
}
(M:Event) &apos;Unlock&apos; scmi 0 == if{
}
(M:Event) &apos;Unlock&apos; scmi 0 == if{
1 (&gt;O:HasReleased)
0 (&gt;O:IsThresholdExceeded)
}
(M:Event) &apos;LeftDrag&apos; scmi 0 == if{
}
(M:Event) &apos;LeftDrag&apos; 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)
(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)
}
}
(O:DragChange) -#DRAG_THRESHOLD# &lt;= if{
#INC_CODE#
1 (&gt;O:IsThresholdExceeded) (E:SIMULATION TIME, seconds)
(&gt;O:UpdateTime)
}
}
}
</IMDrag>
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_NAME#</DragAnimName>
@@ -960,23 +1028,23 @@
</CallbackCode>
</MouseRect>
<Update InteractionModel="All" Frequency="5">
(O:HasReleased) if{
(O:HasReleased) if{
(E:SIMULATION TIME, seconds) (O:UpdateTime) - #RESET_DELAY# &gt; if{
#REL_CODE#
0 (&gt;O:HasReleased)
#REL_CODE#
0 (&gt;O:HasReleased)
}
}
</Update>
}
</Update>
</Component>
</Template>
<Template Name="MD11_IntegralLighting_Template">
<DefaultTemplateParameters>
<NODE_ID />
<VAR_NAME />
<NODE_ID/>
<VAR_NAME/>
<INTENSITY>0.3</INTENSITY>
</DefaultTemplateParameters>
<Component ID="MD11_IntegralLighting_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Part_ID" />
<UseTemplate Name="ASOBO_GT_Part_ID"/>
<Material>
<EmissiveFactor>
<Parameter>
@@ -989,14 +1057,14 @@
</Template>
<Template Name="MD11_Floodlight_bulbs">
<DefaultTemplateParameters>
<NODE_ID />
<VAR_NAME />
<INDEX />
<UNITS />
<NODE_ID/>
<VAR_NAME/>
<INDEX/>
<UNITS/>
<INTENSITY>3.0</INTENSITY>
</DefaultTemplateParameters>
<Component ID="MD11_Flood_#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Part_ID" />
<UseTemplate Name="ASOBO_GT_Part_ID"/>
<Material>
<EmissiveFactor>
<Parameter>
@@ -1007,4 +1075,4 @@
</Material>
</Component>
</Template>
</ModelBehaviors>
</ModelBehaviors>