Fix outstanding + exp. vol knb emissive

This commit is contained in:
2025-11-13 16:40:39 +01:00
parent bdfd7d142c
commit 7fa6bc3a7d
21 changed files with 3575 additions and 3804 deletions
@@ -315,346 +315,7 @@
</UseTemplate>
</Template>
<!-- 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>
<!-- NOTE: 103FIX - Removed duplicate MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle -->
<Template Name="MD11_GT_Interaction_WheelAndContinuousLeft_LeftSingle">
<Parameters Type="Default">
<CURSOR_LEFT>TurnLeft</CURSOR_LEFT>
@@ -994,6 +655,7 @@
</CALLBACKCODE_DRAG_IM>
</UseTemplate>
</Template>
<!-- NOTE: Modified version: Flipped from X to Y axis -->
<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,13 +17,15 @@
<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>
@@ -68,25 +70,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>
@@ -124,17 +126,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>
@@ -161,8 +163,10 @@
<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>
@@ -179,7 +183,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>
@@ -230,13 +234,15 @@
<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>
@@ -321,64 +327,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>
@@ -390,12 +396,162 @@
</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)
}
}
(O:HasReleased) if{
(E:SIMULATION TIME, seconds) (O:UpdateTime) - #RESET_DELAY# &gt; if{
#REL_CODE#
0 (&gt;O:HasReleased)
}
}
</Update>
</Component>
</Template>
<!-- NOTE: 103FIX - Added for knobs -->
<Template Name="Invernyx_MD11_3Pos_Knob_Hold">
<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>
<SWITCH_DIRECTION>Vertical</SWITCH_DIRECTION>
<INC_CODE>#RIGHT_BUTTON_DOWN# (&gt;L:CEVENT)</INC_CODE>
<DEC_CODE>#LEFT_BUTTON_DOWN# (&gt;L:CEVENT)</DEC_CODE>
<REL_CODE>#LEFT_BUTTON_UP# (&gt;L:CEVENT)</REL_CODE>
</Parameters>
<Parameters Type="Override">
<Switch Param="SWITCH_DIRECTION">
<Case Value="Vertical">
<AXIS>Y</AXIS>
</Case>
<Case Value="Horizontal">
<AXIS>X</AXIS>
</Case>
</Switch>
<Condition Check="ANIM_NAME">
<False>
<ANIM_NAME>#NODE_ID#</ANIM_NAME>
</False>
</Condition>
<Condition Check="VAR_NAME">
<False>
<VAR_NAME>#NODE_ID#</VAR_NAME>
</False>
</Condition>
</Parameters>
<Component ID="#NODE_ID#" Node="#NODE_ID#">
<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_ID#) 5 *</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
</False>
</Condition>
<MouseRect>
<IMCursorsInstances>
<IMDefault>
<CursorLeft>TurnLeft</CursorLeft>
<CursorRight>TurnRight</CursorRight>
<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_ID#</HighlightNodeId>
<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>
<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{
#INC_CODE#
1 (&gt;O:IsThresholdExceeded)
(E:SIMULATION TIME, seconds) (&gt;O:UpdateTime)
}
(O:DragChange) -#DRAG_THRESHOLD# &lt;= if{
#DEC_CODE#
1 (&gt;O:IsThresholdExceeded) (E:SIMULATION TIME, seconds)
(&gt;O:UpdateTime)
}
}
}
</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>
<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>
@@ -529,12 +685,22 @@
</UseTemplate>
</Component>
</Template>
<!-- NOTE: EXP - Added light -->
<Template Name="Invernyx_MD11_Volume_Knob">
<Parameters Type="Default">
<ANIM_LENGTH_KNOB>10</ANIM_LENGTH_KNOB>
<ANIM_LENGTH_PUSH>10</ANIM_LENGTH_PUSH>
<ANIM_LAG>0</ANIM_LAG>
<ANIM_WRAP>False</ANIM_WRAP>
<VAR_NAME>MD11_LTS_BRT_DIM</VAR_NAME>
<INTENSITY>0.5</INTENSITY>
</Parameters>
<Parameters Type="Override">
<Condition Check="VIS_VAR">
<False>
<VIS_VAR>#NODE_ID#</VIS_VAR>
</False>
</Condition>
</Parameters>
<Component ID="#NODE_ID#" Node="#NODE_ID#">
<UseTemplate Name="ASOBO_GT_Anim_Code">
@@ -553,6 +719,14 @@
<CLOCKWISE_CODE>#WHEEL_UP# (&gt;L:CEVENT)</CLOCKWISE_CODE>
<ANTICLOCKWISE_CODE>#WHEEL_DOWN# (&gt;L:CEVENT)</ANTICLOCKWISE_CODE>
</UseTemplate>
<Material>
<EmissiveFactor>
<Parameter>
<Code>(L:#VAR_NAME#, percent over 100) 2.7 pow #INTENSITY# * (L:#VIS_VAR#) *</Code>
</Parameter>
<OverrideBaseEmissive>True</OverrideBaseEmissive>
</EmissiveFactor>
</Material>
</Component>
</Template>
<Template Name="Invernyx_MD11_Volume_Knob_Light">
@@ -568,7 +742,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>
@@ -595,6 +769,7 @@
</Visibility>
</Component>
</Template>
<!-- NOTE: 103FIX - Added code override -->
<Template Name="Invernyx_MD11_Knob_Template">
<Parameters Type="Default">
<THRESHOLD_MOUSE>0.01</THRESHOLD_MOUSE>
@@ -619,7 +794,14 @@
</False>
</Condition>
<ANIM_LENGTH>#ANIM_LENGTH#</ANIM_LENGTH>
<ANIM_CODE>(L:#NODE_ID#, enum) #ANIM_SCALAR# *</ANIM_CODE>
<Condition Check="ANIM_CODE">
<True>
<ANIM_CODE>#ANIM_CODE#</ANIM_CODE>
</True>
<False>
<ANIM_CODE>(L:#NODE_ID#, enum) #ANIM_SCALAR# *</ANIM_CODE>
</False>
</Condition>
</UseTemplate>
<UseTemplate Name="ASOBO_GT_Interaction_WheelAndContinuousLeft">
<CLOCKWISE_CODE>#WHEEL_UP# (&gt;L:CEVENT)</CLOCKWISE_CODE>
@@ -655,7 +837,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>
@@ -678,7 +860,7 @@
<ANIM_SCALAR>10</ANIM_SCALAR>
<DRAG_THRESHOLD>3</DRAG_THRESHOLD>
<AXIS>Y</AXIS>
<SWITCH_DIRECTION>Vertical</SWITCH_DIRECTION>
<SWITCH_DIRECTION>Vertical</SWITCH_DIRECTION>
</Parameters>
<Parameters Type="Override">
<Condition Check="INVERT_CLICK">
@@ -697,73 +879,75 @@
<ANIM_CODE>(L:#ANIM_NAME#, enum) #ANIM_SCALAR# *</ANIM_CODE>
</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>
<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>
<Template Name="Invernyx_MD11_SpoilerLever">
@@ -779,7 +963,8 @@
<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>
@@ -791,14 +976,15 @@
<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>
@@ -883,7 +1069,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>
@@ -959,64 +1145,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{
(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>
(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)
}
(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>
@@ -1028,23 +1214,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>
@@ -1057,14 +1243,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>
@@ -1075,4 +1261,4 @@
</Material>
</Component>
</Template>
</ModelBehaviors>
</ModelBehaviors>