# Generic.xml [[Go back to index]](..\..\Template_Explorer.html) Asobo\(Inputs\)Generic.xml -------------------------- Source XML <ModelBehaviors> <!-- \#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\# --> <!-- \#\#\#\# GenericInputEvents \[GIE\] \#\#\# --> <!-- \#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\# --> <!-- extend ASOBO\_GIE adding animation handling --> <InputEvent ID="ASOBO\_GIE\_Anim\_Handling"> <Presets> <Switch> <Case NotEmpty="BTN\_ID"> <Extend Target="ASOBO\_GIE"> <Parameters Type="Override"> <INPUT\_EVENT\_TYPE>INTEGER</INPUT\_EVENT\_TYPE> <IE\_NAME>\#BTN\_ID\#</IE\_NAME> </Parameters> <Parameters Type="Default"> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE/> <NUM\_STATES>2</NUM\_STATES> <ANIM>DEFAULT</ANIM> <ANIM\_VAR>\_ButtonAnimVar</ANIM\_VAR> <ANIM\_VAR\_TYPE>O</ANIM\_VAR\_TYPE> </Parameters> <Parameters Type="Default"> <Condition> <Test> <Greater> <Number>\#NUM\_STATES\#</Number> <Number>2</Number> </Greater> </Test> <True> <SWITCH\_DIRECTION>Vertical</SWITCH\_DIRECTION> </True> </Condition> </Parameters> <Parameters Type="Override"> <Switch Param="ANIM"> <Case Value="DEFAULT"> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE>\#ON\_STATE\_CHANGED\_EXTERNAL\_CODE\# 1 (>\#ANIM\_VAR\_TYPE\#:\#ANIM\_VAR\#)</ON\_STATE\_CHANGED\_EXTERNAL\_CODE> </Case> <Case Value="HOLD"> <Switch Param="ADDITIONAL\_EVENT\_TYPE"> <Case Value="PUSH\_PULL"> <Switch Param="EVENT\_TYPE"> <Case Value="PUSH"> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE>1 (>O:IsPushed) (E:SIMULATION TIME, second) (>O:\_LastPushTime) (O:IsPulled) if{ 0 (>O:IsPulled) }</ON\_STATE\_CHANGED\_EXTERNAL\_CODE> </Case> <Case Value="PULL"> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE>1 (>O:IsPulled) (E:SIMULATION TIME, second) (>O:\_LastPullTime) (O:IsPushed) if{ 0 (>O:IsPushed) }</ON\_STATE\_CHANGED\_EXTERNAL\_CODE> </Case> </Switch> </Case> <Default> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE>\#ON\_STATE\_CHANGED\_EXTERNAL\_CODE\# 100 (>\#ANIM\_VAR\_TYPE\#:\#ANIM\_VAR\#)</ON\_STATE\_CHANGED\_EXTERNAL\_CODE> </Default> </Switch> </Case> </Switch> </Parameters> </Extend> </Case> <Case NotEmpty="KNOB\_ID"> <Extend Target="ASOBO\_GIE"> <Parameters Type="Override"> <INPUT\_EVENT\_TYPE>FLOAT</INPUT\_EVENT\_TYPE> <IE\_NAME>\#KNOB\_ID\#</IE\_NAME> <INTERACTION\_TYPE>Knob</INTERACTION\_TYPE> </Parameters> <Parameters Type="Default"> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE/> <ROTATION\_SPEED>10</ROTATION\_SPEED> <ANIM\_VAR>\_KnobAnimVar</ANIM\_VAR> <ANIM\_VAR\_TYPE>O</ANIM\_VAR\_TYPE> </Parameters> <Parameters Type="Override"> <Condition Valid="NO\_ANIM\_VAR\_UPDATE"> <False> <Condition NotEmpty="GET\_STATE\_EXTERNAL"> <True> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE>\#ON\_STATE\_CHANGED\_EXTERNAL\_CODE\# (O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position) 3.6 \* dnor (>\#ANIM\_VAR\_TYPE\#:\#ANIM\_VAR\#)</ON\_STATE\_CHANGED\_EXTERNAL\_CODE> </True> <False> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE>\#ON\_STATE\_CHANGED\_EXTERNAL\_CODE\# (\#ANIM\_VAR\_TYPE\#:\#ANIM\_VAR\#) \#ROTATION\_SPEED\# p0 \* + dnor (>\#ANIM\_VAR\_TYPE\#:\#ANIM\_VAR\#)</ON\_STATE\_CHANGED\_EXTERNAL\_CODE> </False> </Condition> </False> </Condition> </Parameters> </Extend> </Case> <Case NotEmpty="LEVER\_ID"> <Extend Target="ASOBO\_GIE"> <Parameters Type="Override"> <INPUT\_EVENT\_TYPE>FLOAT</INPUT\_EVENT\_TYPE> <IE\_NAME>\#LEVER\_ID\#</IE\_NAME> <INTERACTION\_TYPE>Lever</INTERACTION\_TYPE> </Parameters> <Parameters Type="Default"> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE/> <ROTATION\_SPEED>10</ROTATION\_SPEED> <ANIM\_VAR>\_LeverAnimVar</ANIM\_VAR> <ANIM\_VAR\_TYPE>O</ANIM\_VAR\_TYPE> </Parameters> <Parameters Type="Override"> <Condition Valid="NO\_ANIM\_VAR\_UPDATE"> <False> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE>\#ON\_STATE\_CHANGED\_EXTERNAL\_CODE\# (O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position) (>\#ANIM\_VAR\_TYPE\#:\#ANIM\_VAR\#)</ON\_STATE\_CHANGED\_EXTERNAL\_CODE> </False> </Condition> </Parameters> </Extend> </Case> </Switch> </Presets> </InputEvent> <!-- Setup some parameters for most common uses (extending ASOBO\_GIE\_Base) --> <InputEvent ID="ASOBO\_GIE"> <Presets> <Switch Param="INPUT\_EVENT\_TYPE"> <!-- Finite and relatively small numbers of states --> <Case Value="INTEGER"> <Extend Target="ASOBO\_GIE\_Base"> <Parameters Type="Default"> <NUM\_STATES>2</NUM\_STATES> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE/> <GET\_STATE\_EXTERNAL/> <SET\_STATE\_EXTERNAL/> <INC\_ARG\_COUNT>1</INC\_ARG\_COUNT> <DEC\_ARG\_COUNT>1</DEC\_ARG\_COUNT> <SET\_ARG\_COUNT>1</SET\_ARG\_COUNT> </Parameters> <Parameters Type="Override"> <UseParametersFn Name="Compute\_First\_Available\_Bindings"> </UseParametersFn> </Parameters> <Parameters Type="Default"> <Condition Check="NUM\_STATES" Match="2"> <True> <TT\_VALUE\_ONOFF\_IS\_DYNAMIC>True</TT\_VALUE\_ONOFF\_IS\_DYNAMIC> <STR\_STATE\_OFF>Off</STR\_STATE\_OFF> <STR\_STATE\_ON>On</STR\_STATE\_ON> <TT\_VALUE\_OFF>@TT\_Off</TT\_VALUE\_OFF> <TT\_VALUE\_ON>@TT\_On</TT\_VALUE\_ON> <SIM\_STATE\_IS\_ON\_EXTERNAL>l0</SIM\_STATE\_IS\_ON\_EXTERNAL> <TT\_INTERACTION>PRIMARY\_DOWN</TT\_INTERACTION> <TT\_INTERACTION\_LOCKABLE>LOCK</TT\_INTERACTION\_LOCKABLE> <VALUE\_UNITS>Bool</VALUE\_UNITS> <Condition NotEmpty="SET\_STATE\_OFF"> <SET\_STATE\_0>\#SET\_STATE\_OFF\#</SET\_STATE\_0> </Condition> <Condition NotEmpty="SET\_STATE\_ON"> <SET\_STATE\_1>\#SET\_STATE\_ON\#</SET\_STATE\_1> </Condition> </True> <False> <VALUE\_UNITS>Number</VALUE\_UNITS> <Switch Param="SWITCH\_DIRECTION"> <Case Value="Horizontal"> <TT\_INTERACTION>PRIMARY\_DOWN+X\_AXIS</TT\_INTERACTION> <TT\_INTERACTION\_LOCKABLE>X\_AXIS</TT\_INTERACTION\_LOCKABLE> </Case> <Case Value="Vertical"> <TT\_INTERACTION>PRIMARY\_DOWN+Y\_AXIS</TT\_INTERACTION> <TT\_INTERACTION\_LOCKABLE>Y\_AXIS</TT\_INTERACTION\_LOCKABLE> </Case> </Switch> </False> </Condition> <Switch Param="SWITCH\_DIRECTION"> <Case Value="Horizontal"> <TT\_ICON>MOVE\_X</TT\_ICON> </Case> <Case Value="Vertical"> <TT\_ICON>MOVE\_Y</TT\_ICON> </Case> <Default> <TT\_ICON>Push</TT\_ICON> </Default> </Switch> </Parameters> <Parameters Type="Override"> <MAX\_POSITION Process="Int">\#NUM\_STATES\# 1 -</MAX\_POSITION> <GET\_STATE>\#GET\_STATE\_EXTERNAL\#</GET\_STATE> </Parameters> <Parameters Type="Default"> <Condition NotEmpty="GET\_STATE"> <True> <Loop> <Setup> <Param>SEL\_ID</Param> <From>0</From> <Inc>1</Inc> <To>\#NUM\_STATES\#</To> <While> <Arg Check="SET\_STATE\_\#SEL\_ID\#"/> </While> </Setup> <Do> <Parameters Type="Default" Lifetime="Loop"> <SET\_STATE\_T>(O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position) s0</SET\_STATE\_T> </Parameters> <Parameters Type="Override"> <SET\_STATE\_ID Process="Param">SET\_STATE\_\#SEL\_ID\#</SET\_STATE\_ID> </Parameters> <Parameters Type="Override" Lifetime="Loop"> <SET\_STATE\_T>\#SET\_STATE\_T\# l0 \#SEL\_ID\# == if{ \#SET\_STATE\_ID\# g1 }</SET\_STATE\_T> </Parameters> </Do> <Then> <Condition Valid="SET\_STATE\_T"> <True> <SET\_STATE>\#SET\_STATE\_T\# :1</SET\_STATE> </True> <False> <SET\_STATE>\#SET\_STATE\_EXTERNAL\#</SET\_STATE> </False> </Condition> </Then> </Loop> <Condition Check="NUM\_STATES" Match="2"> <True> <ENUM\_VAL\_TO\_POS\_EXTERNAL>1 0 \#SIM\_STATE\_IS\_ON\_EXTERNAL\# ?</ENUM\_VAL\_TO\_POS\_EXTERNAL> </True> <False> <ENUM\_VAL\_TO\_POS\_EXTERNAL/> </False> </Condition> <TT\_VALUE\_IS\_DYNAMIC>True</TT\_VALUE\_IS\_DYNAMIC> </True> <False> <SET\_STATE>\#SET\_STATE\_EXTERNAL\#</SET\_STATE> <NO\_TT\_VALUE>True</NO\_TT\_VALUE> <TT\_VALUE\_IS\_DYNAMIC>False</TT\_VALUE\_IS\_DYNAMIC> </False> </Condition> <Condition NotEmpty="TT\_DESCRIPTION\_ID"> <Condition NotEmpty="TT\_DESCRIPTION\_INDEX"> <True> <TT\_DESCRIPTION>\#TT\_DESCRIPTION\_INDEX\# (R:1:\#TT\_DESCRIPTION\_ID\#) @sprintf</TT\_DESCRIPTION> <TT\_DESCRIPTION\_IS\_DYNAMIC>True</TT\_DESCRIPTION\_IS\_DYNAMIC> </True> <False> <TT\_DESCRIPTION>\#TT\_DESCRIPTION\_ID\#</TT\_DESCRIPTION> <TT\_DESCRIPTION\_IS\_DYNAMIC>False</TT\_DESCRIPTION\_IS\_DYNAMIC> </False> </Condition> </Condition> </Parameters> <Parameters Type="Default"> <ON\_STATE\_CHANGED>\#SET\_STATE\# \#ON\_STATE\_CHANGED\_EXTERNAL\_CODE\#</ON\_STATE\_CHANGED> <Condition Valid="NO\_TT\_VALUE"> <True> <TT\_VALUE>@TT\_Package.GT\_STATE\_NA</TT\_VALUE> </True> <False> <Condition Check="NUM\_STATES" Match="2"> <True> <Condition Valid="TT\_VALUE\_ONOFF\_IS\_DYNAMIC"> <True> <TT\_VALUE>(B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#, Bool) if{ \#TT\_VALUE\_ON\# } els{ \#TT\_VALUE\_OFF\# }</TT\_VALUE> </True> <False> <TT\_VALUE>(B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#, Bool) if{ (R:1:\#TT\_VALUE\_ON\#) } els{ (R:1:\#TT\_VALUE\_OFF\#) }</TT\_VALUE> </False> </Condition> </True> <False> <Loop> <Setup> <Param>SEL\_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="TT\_VALUE\_\#SEL\_ID\#"/> </While> </Setup> <Do> <Parameters Type="Default" Lifetime="Loop"> <TT\_VALUE\_T>(B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#, Number) sp0</TT\_VALUE\_T> </Parameters> <Parameters Type="Override"> <TT\_VALUE\_ID Process="Param">TT\_VALUE\_\#SEL\_ID\#</TT\_VALUE\_ID> </Parameters> <Parameters Type="Override" Lifetime="Loop"> <Condition Valid="TT\_VALUE\_\#SEL\_ID\#\_IS\_DYNAMIC"> <True> <TT\_VALUE\_T>\#TT\_VALUE\_T\# l0 \#SEL\_ID\# == if{ \#TT\_VALUE\_ID\# quit }</TT\_VALUE\_T> </True> <False> <TT\_VALUE\_T>\#TT\_VALUE\_T\# l0 \#SEL\_ID\# == if{ (R:1:\#TT\_VALUE\_ID\#) quit }</TT\_VALUE\_T> </False> </Condition> </Parameters> </Do> <Then> <Condition NotEmpty="TT\_VALUE\_T"> <True> <TT\_VALUE>\#TT\_VALUE\_T\#</TT\_VALUE> </True> <False> <TT\_VALUE>@TT\_Package.GT\_STATE\_NA</TT\_VALUE> </False> </Condition> </Then> </Loop> </False> </Condition> </False> </Condition> </Parameters> <Parameters Type="Default"> <Condition NotEmpty="GET\_STATE"> <True> <INC\_CODE>(O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position) p0 + (>B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Set)</INC\_CODE> <DEC\_CODE>(O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position) p0 - (>B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Set)</DEC\_CODE> <SET\_CODE>p0 \#MAX\_POSITION\# min 0 max (>O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position) \#ON\_STATE\_CHANGED\#</SET\_CODE> <Condition Check="NUM\_STATES" Match="2"> <True> <VALUE\_CODE>(O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position) 1 ==</VALUE\_CODE> </True> <False> <VALUE\_CODE>(O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position)</VALUE\_CODE> </False> </Condition> <Condition NotEmpty="GET\_INIT\_STATE\_EXTERNAL"> <True> <INIT\_CODE>\#GET\_INIT\_STATE\_EXTERNAL\# (>O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position)</INIT\_CODE> </True> <False> <INIT\_CODE>\#GET\_STATE\# \#ENUM\_VAL\_TO\_POS\_EXTERNAL\# (>O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position)</INIT\_CODE> </False> </Condition> </True> <False> <INC\_CODE>1 (>B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Set)</INC\_CODE> <DEC\_CODE>0 (>B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Set)</DEC\_CODE> <SET\_CODE>p0 \#ON\_STATE\_CHANGED\#</SET\_CODE> <VALUE\_CODE/> <INIT\_CODE/> </False> </Condition> <ON\_BEFORE\_INC\_CODE/> <ON\_BEFORE\_DEC\_CODE/> <ON\_BEFORE\_SET\_CODE/> <ON\_BEFORE\_INIT\_CODE/> <ON\_AFTER\_INC\_CODE/> <ON\_AFTER\_DEC\_CODE/> <ON\_AFTER\_SET\_CODE/> <ON\_AFTER\_INIT\_CODE/> <TT\_DESCRIPTION/> <TT\_DESCRIPTION\_IS\_DYNAMIC>False</TT\_DESCRIPTION\_IS\_DYNAMIC> </Parameters> <Parameters Type="Override"> <INC\_CODE>\#ON\_BEFORE\_INC\_CODE\# \#INC\_CODE\# \#ON\_AFTER\_INC\_CODE\#</INC\_CODE> <DEC\_CODE>\#ON\_BEFORE\_DEC\_CODE\# \#DEC\_CODE\# \#ON\_AFTER\_DEC\_CODE\#</DEC\_CODE> <SET\_CODE>\#ON\_BEFORE\_SET\_CODE\# \#SET\_CODE\# \#ON\_AFTER\_SET\_CODE\#</SET\_CODE> <INIT\_CODE>\#ON\_BEFORE\_INIT\_CODE\# \#INIT\_CODE\# \#ON\_AFTER\_INIT\_CODE\#</INIT\_CODE> </Parameters> <Parameters Type="Override"> <Condition Valid="CHECK\_STATE\_HAS\_CHANGED"> <True> <Condition NotEmpty="ON\_STATE\_CHANGED\_NEW\_STATE\_TO\_POS\_EXTERNAL"> <True> <SET\_CODE>\#SET\_CODE\# \#ON\_STATE\_CHANGED\_NEW\_STATE\_TO\_POS\_EXTERNAL\# (>O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position)</SET\_CODE> </True> <False> <SET\_CODE>\#SET\_CODE\# \#INIT\_CODE\#</SET\_CODE> </False> </Condition> </True> </Condition> <Condition NotEmpty="GET\_STATE"> <True> <Condition Check="NUM\_STATES" Match="2"> <True> <BINDING\_SET\_\#FIRST\_AVAILABLE\_SET\_BINDING\#>Toggle</BINDING\_SET\_\#FIRST\_AVAILABLE\_SET\_BINDING\#> <BINDING\_SET\_\#FIRST\_AVAILABLE\_SET\_BINDING\#\_PARAM\_0>0 1 (O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position) 1 == ?</BINDING\_SET\_\#FIRST\_AVAILABLE\_SET\_BINDING\#\_PARAM\_0> <BINDING\_SET\_\#FIRST\_AVAILABLE\_SET\_BINDING\#\_PARAM\_0\_IS\_DYNAMIC>True</BINDING\_SET\_\#FIRST\_AVAILABLE\_SET\_BINDING\#\_PARAM\_0\_IS\_DYNAMIC> <BINDING\_SET\_\#SECOND\_AVAILABLE\_SET\_BINDING\#>\#STR\_STATE\_ON\#</BINDING\_SET\_\#SECOND\_AVAILABLE\_SET\_BINDING\#> <BINDING\_SET\_\#SECOND\_AVAILABLE\_SET\_BINDING\#\_PARAM\_0>1</BINDING\_SET\_\#SECOND\_AVAILABLE\_SET\_BINDING\#\_PARAM\_0> <BINDING\_SET\_\#THIRD\_AVAILABLE\_SET\_BINDING\#>\#STR\_STATE\_OFF\#</BINDING\_SET\_\#THIRD\_AVAILABLE\_SET\_BINDING\#> <BINDING\_SET\_\#THIRD\_AVAILABLE\_SET\_BINDING\#\_PARAM\_0>0</BINDING\_SET\_\#THIRD\_AVAILABLE\_SET\_BINDING\#\_PARAM\_0> </True> <False> <Loop> <Setup> <Param>SEL\_ID</Param> <From>0</From> <To>\#MAX\_POSITION\#</To> <Inc>1</Inc> </Setup> <Do> <BINDING\_SET\_\#SEL\_ID\# Process="Param">STR\_STATE\_\#SEL\_ID\#</BINDING\_SET\_\#SEL\_ID\#> <BINDING\_SET\_\#SEL\_ID\#\_PARAM\_0>\#SEL\_ID\#</BINDING\_SET\_\#SEL\_ID\#\_PARAM\_0> </Do> </Loop> </False> </Condition> </True> </Condition> </Parameters> </Extend> </Case> <!-- Input have a huge numbers of states and they cannot be enumerated --> <Case Value="FLOAT"> <Extend Target="ASOBO\_GIE\_Base"> <Parameters Type="Default"> <ON\_STATE\_CHANGED\_EXTERNAL\_CODE/> <GET\_STATE\_EXTERNAL/> <SET\_STATE\_EXTERNAL/> <INC\_ARG\_COUNT>1</INC\_ARG\_COUNT> <DEC\_ARG\_COUNT>1</DEC\_ARG\_COUNT> <SET\_ARG\_COUNT>1</SET\_ARG\_COUNT> <Switch Param="INTERACTION\_TYPE"> <Case Value="Lever"> <Condition NotEmpty="AXIS"> <True> <INTERACTION\_AXIS>\#AXIS\#</INTERACTION\_AXIS> <TT\_ICON>MOVE\_AXIS\_\#AXIS\#</TT\_ICON> </True> <False> <INTERACTION\_AXIS>Y</INTERACTION\_AXIS> <TT\_ICON>MOVE\_AXIS\_Y</TT\_ICON> </False> </Condition> </Case> <Case Value="Knob"> <INTERACTION\_AXIS>X</INTERACTION\_AXIS> <TT\_ICON>ROTATE</TT\_ICON> </Case> </Switch> </Parameters> <Parameters Type="Override"> <GET\_STATE>\#GET\_STATE\_EXTERNAL\#</GET\_STATE> <SET\_STATE>\#SET\_STATE\_EXTERNAL\#</SET\_STATE> </Parameters> <Parameters Type="Default"> <Condition> <Test> <Or> <Arg NotEmpty="GET\_STATE"/> <Arg NotEmpty="GET\_TT\_VALUE\_STATE"/> </Or> </Test> <True> <FORMAT\_VALUE>'%.1f%%' @sprintf</FORMAT\_VALUE> <TT\_VALUE\_IS\_DYNAMIC>True</TT\_VALUE\_IS\_DYNAMIC> <STATE\_TO\_POS\_EXTERNAL/> <GET\_TT\_VALUE\_STATE>\#GET\_STATE\#</GET\_TT\_VALUE\_STATE> <MIN\_VALUE>0</MIN\_VALUE> <MAX\_VALUE>100</MAX\_VALUE> </True> <False> <NO\_TT\_VALUE>True</NO\_TT\_VALUE> <TT\_VALUE\_IS\_DYNAMIC>False</TT\_VALUE\_IS\_DYNAMIC> </False> </Condition> <Condition NotEmpty="TT\_DESCRIPTION\_ID"> <Condition NotEmpty="TT\_DESCRIPTION\_INDEX"> <True> <TT\_DESCRIPTION>\#TT\_DESCRIPTION\_INDEX\# (R:1:\#TT\_DESCRIPTION\_ID\#) @sprintf</TT\_DESCRIPTION> <TT\_DESCRIPTION\_IS\_DYNAMIC>True</TT\_DESCRIPTION\_IS\_DYNAMIC> </True> <False> <TT\_DESCRIPTION>\#TT\_DESCRIPTION\_ID\#</TT\_DESCRIPTION> <TT\_DESCRIPTION\_IS\_DYNAMIC>False</TT\_DESCRIPTION\_IS\_DYNAMIC> </False> </Condition> </Condition> <TT\_INTERACTION>PRIMARY\_DOWN+\#INTERACTION\_AXIS\#\_AXIS</TT\_INTERACTION> <TT\_INTERACTION\_LOCKABLE>\#INTERACTION\_AXIS\#\_AXIS</TT\_INTERACTION\_LOCKABLE> <VALUE\_UNITS>Percent</VALUE\_UNITS> </Parameters> <Parameters Type="Default"> <ON\_STATE\_CHANGED>\#SET\_STATE\# \#ON\_STATE\_CHANGED\_EXTERNAL\_CODE\#</ON\_STATE\_CHANGED> <INC\_CODE\_ADJUST\_VALUE/> <DEC\_CODE\_ADJUST\_VALUE/> <Condition Valid="NO\_TT\_VALUE"> <True> <TT\_VALUE>@TT\_Package.GT\_STATE\_NA</TT\_VALUE> </True> <False> <TT\_VALUE>\#GET\_TT\_VALUE\_STATE\# \#FORMAT\_VALUE\#</TT\_VALUE> <CLAMP\_VALUE>\#MIN\_VALUE\# max \#MAX\_VALUE\# min</CLAMP\_VALUE> </False> </Condition> </Parameters> <Parameters Type="Default"> <Condition NotEmpty="GET\_STATE"> <True> <INIT\_CODE>\#GET\_STATE\# \#CLAMP\_VALUE\# \#STATE\_TO\_POS\_EXTERNAL\# (>O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position)</INIT\_CODE> <INC\_CODE>\#GET\_STATE\# p0 + \#INC\_CODE\_ADJUST\_VALUE\# (>B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Set)</INC\_CODE> <DEC\_CODE>\#GET\_STATE\# p0 - \#DEC\_CODE\_ADJUST\_VALUE\# (>B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Set)</DEC\_CODE> <SET\_CODE>p0 \#CLAMP\_VALUE\# s0 \#STATE\_TO\_POS\_EXTERNAL\# (>O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position) l0 \#ON\_STATE\_CHANGED\#</SET\_CODE> <VALUE\_CODE>(O:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Position)</VALUE\_CODE> </True> <False> <INC\_CODE>p0 (>B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Set)</INC\_CODE> <DEC\_CODE>p0 -1 \* (>B:\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_Set)</DEC\_CODE> <SET\_CODE>p0 \#ON\_STATE\_CHANGED\#</SET\_CODE> <VALUE\_CODE/> <INIT\_CODE/> </False> </Condition> <ON\_BEFORE\_INC\_CODE/> <ON\_BEFORE\_DEC\_CODE/> <ON\_BEFORE\_SET\_CODE/> <ON\_BEFORE\_INIT\_CODE/> <ON\_AFTER\_INC\_CODE/> <ON\_AFTER\_DEC\_CODE/> <ON\_AFTER\_SET\_CODE/> <ON\_AFTER\_INIT\_CODE/> <TT\_DESCRIPTION/> <TT\_DESCRIPTION\_IS\_DYNAMIC>False</TT\_DESCRIPTION\_IS\_DYNAMIC> </Parameters> <Parameters Type="Override"> <INC\_CODE>\#ON\_BEFORE\_INC\_CODE\# \#INC\_CODE\# \#ON\_AFTER\_INC\_CODE\#</INC\_CODE> <DEC\_CODE>\#ON\_BEFORE\_DEC\_CODE\# \#DEC\_CODE\# \#ON\_AFTER\_DEC\_CODE\#</DEC\_CODE> <SET\_CODE>\#ON\_BEFORE\_SET\_CODE\# \#SET\_CODE\# \#ON\_AFTER\_SET\_CODE\#</SET\_CODE> <INIT\_CODE>\#ON\_BEFORE\_INIT\_CODE\# \#INIT\_CODE\# \#ON\_AFTER\_INIT\_CODE\#</INIT\_CODE> </Parameters> </Extend> </Case> </Switch> </Presets> </InputEvent> <!-- Base InputEvent expecting a set of pre-defined parameters --> <InputEvent ID="ASOBO\_GIE\_Base"> <!-- No parameters pre-filled, extend on top of this InputEvent to use --> <!-- \#\#\#\#\#\#\#\#\# --> <!-- INPUT\_EVENT\_ID\_SOURCE: InputEvent ID --> <!-- IE\_NAME: InputEventPreset ID --> <!-- \#\#\#\#\#\#\#\#\# --> <!-- Tooltips: --> <!-- \#\#\# --> <!-- TT\_ICON: Icon to use for this InputEvent --> <!-- TT\_INTERACTION: Non lockables interaction flags --> <!-- TT\_INTERACTION\_LOCKABLE: Lockables interaction flags --> <!-- TT\_DESCRIPTION: tootlip description, TT\_DESCRIPTION\_IS\_DYNAMIC: True if RPN --> <!-- TT\_VALUE: tootlip value, TT\_VALUE\_IS\_DYNAMIC: True if RPN --> <!-- \#\#\#\#\#\#\#\#\# --> <!-- Value: --> <!-- \#\#\# --> <!-- VALUE\_UNITS: value units --> <!-- VALUE\_CODE: value code (RPN) --> <!-- INIT\_CODE: code executed when Initializing from a sim value / FLT value --> <!-- SIMVAR\_TO\_WATCH\_X (X being an unsigned integer) --> <!-- LOCAL\_VAR\_TO\_WATCH\_X (X being an unsigned integer) --> <!-- \#\#\#\#\#\#\#\#\# --> <!-- Events: INC/DEC/SET using EVT to simplify, but applies to every event type --> <!-- \#\#\# --> <!-- EVT\_CODE: Code for this event (RPN) --> <!-- EVT\_ARG\_COUNT: Number of parameters for this event --> <!-- EVT\_PARAM\_X: value of param X of this event (default: pX) --> <!-- EVT\_PARAM\_X\_TYPE: type of param X of this event (default: Float) --> <!-- EVT\_PARAM\_X\_IS\_DYNAMIC: True if param is RPN (default: True if EVT\_PARAM\_X isn't overriden) --> <!-- \#\#\# --> <!-- BINDING\_EVT\_X: Create an alias to the evt using this syntax: \#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_\#BINDING\_EVT\_X\# --> <!-- BINDING\_EVT\_X\_EVENT\_ID: Bind an EventID to this alias --> <!-- BINDING\_EVT\_X\_PARAM\_Y: for each parameter Y (Y < EVT\_ARG\_COUNT) specify the value (default: 0) --> <!-- BINDING\_EVT\_X\_PARAM\_Y\_IS\_DYNAMIC: Same as above but specify if the value should be read as RPN (default: False) --> <!-- \#\#\#\#\#\#\#\#\# --> <Presets> <Preset ID="\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#"> <Parameters Type="Default"> <INC\_ARG\_COUNT>0</INC\_ARG\_COUNT> <DEC\_ARG\_COUNT>0</DEC\_ARG\_COUNT> <SET\_ARG\_COUNT>0</SET\_ARG\_COUNT> <TT\_INOP>False</TT\_INOP> </Parameters> <Tooltip Inop="\#TT\_INOP\#"> <Icon>\#TT\_ICON\#</Icon> <Interaction>\#TT\_INTERACTION\#</Interaction> <InteractionLockable>\#TT\_INTERACTION\_LOCKABLE\#</InteractionLockable> <TTDescription RPN="\#TT\_DESCRIPTION\_IS\_DYNAMIC\#">\#TT\_DESCRIPTION\#</TTDescription> <TTValue RPN="\#TT\_VALUE\_IS\_DYNAMIC\#">\#TT\_VALUE\#</TTValue> </Tooltip> <Value> <Units>\#VALUE\_UNITS\#</Units> <Code>\#VALUE\_CODE\#</Code> <Init>\#INIT\_CODE\#</Init> <WatchVars> <Loop> <Setup> <Param>SEL\_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg Valid="SIMVAR\_TO\_WATCH\_\#SEL\_ID\#"/> </While> </Setup> <Do> <Parameters Type="Override"> <SIMVAR\_TO\_WATCH Process="Param">SIMVAR\_TO\_WATCH\_\#SEL\_ID\#</SIMVAR\_TO\_WATCH> </Parameters> <Simvar ID="\#SIMVAR\_TO\_WATCH\#"/> </Do> </Loop> <Loop> <Setup> <Param>SEL\_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg Valid="LOCAL\_VAR\_TO\_WATCH\_\#SEL\_ID\#"/> </While> </Setup> <Do> <Parameters Type="Override"> <LOCAL\_VAR\_TO\_WATCH Process="Param">LOCAL\_VAR\_TO\_WATCH\_\#SEL\_ID\#</LOCAL\_VAR\_TO\_WATCH> </Parameters> <LocalVar ID="\#LOCAL\_VAR\_TO\_WATCH\#"/> </Do> </Loop> <Loop> <Setup> <Param>CUR\_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg Valid="VAR\_TO\_WATCH\_\#CUR\_ID\#"/> </While> </Setup> <Do> <Parameters Type="Override"> <VAR\_TO\_WATCH Process="Param">VAR\_TO\_WATCH\_\#CUR\_ID\#</VAR\_TO\_WATCH> <VAR\_SCOPE Process="Param">VAR\_TO\_WATCH\_\#CUR\_ID\#\_SCOPE</VAR\_SCOPE> </Parameters> <Variable ID="\#VAR\_TO\_WATCH\#" Scope="\#VAR\_SCOPE\#"/> </Do> </Loop> </WatchVars> </Value> <Inc> <Code>\#INC\_CODE\#</Code> <Parameters> <Loop> <Setup> <Param>ARG\_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Lower> <Number>\#ARG\_ID\#</Number> <Number>\#INC\_ARG\_COUNT\#</Number> </Lower> </While> </Setup> <Do> <Parameters Type="Default"> <Condition NotEmpty="INC\_PARAM\_\#ARG\_ID\#"> <True> <PARAM\_VALUE Process="Param">INC\_PARAM\_\#ARG\_ID\#</PARAM\_VALUE> <Condition NotEmpty="INC\_PARAM\_\#ARG\_ID\#\_TYPE"> <True> <PARAM\_TYPE Process="Param">INC\_PARAM\_\#ARG\_ID\#\_TYPE</PARAM\_TYPE> </True> <False> <PARAM\_TYPE>Float</PARAM\_TYPE> </False> </Condition> <Condition NotEmpty="INC\_PARAM\_\#ARG\_ID\#\_IS\_DYNAMIC"> <True> <PARAM\_IS\_DYNAMIC Process="Param">INC\_PARAM\_\#ARG\_ID\#\_IS\_DYNAMIC</PARAM\_IS\_DYNAMIC> </True> <False> <PARAM\_IS\_DYNAMIC>False</PARAM\_IS\_DYNAMIC> </False> </Condition> </True> <False> <PARAM\_VALUE>p\#ARG\_ID\#</PARAM\_VALUE> <PARAM\_TYPE>Float</PARAM\_TYPE> <PARAM\_IS\_DYNAMIC>True</PARAM\_IS\_DYNAMIC> </False> </Condition> </Parameters> <Param Type="\#PARAM\_TYPE\#" RPN="\#PARAM\_IS\_DYNAMIC\#">\#PARAM\_VALUE\#</Param> </Do> </Loop> </Parameters> <Bindings> <Loop> <Setup> <Param>ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="BINDING\_INC\_\#ID\#"/> </While> </Setup> <Do> <Parameters Type="Override"> <BINDING\_ID Process="Param">BINDING\_INC\_\#ID\#</BINDING\_ID> </Parameters> <Parameters Type="Override"> <Condition Check="BINDING\_INC\_\#ID\#\_EVENT\_ID"> <True> <EVENT\_ID Process="Param">BINDING\_INC\_\#ID\#\_EVENT\_ID</EVENT\_ID> <Condition Valid="BINDING\_INC\_\#ID\#\_EVENT\_ID\_ONLY"> <True> <ALIAS\_ID/> </True> <False> <ALIAS\_ID>\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_\#BINDING\_ID\#</ALIAS\_ID> </False> </Condition> </True> <False> <EVENT\_ID/> <ALIAS\_ID>\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_\#BINDING\_ID\#</ALIAS\_ID> </False> </Condition> </Parameters> <Binding Alias="\#ALIAS\_ID\#" EventID="\#EVENT\_ID\#"> <Loop> <Setup> <Param>ARG\_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Lower> <Number>\#ARG\_ID\#</Number> <Number>\#INC\_ARG\_COUNT\#</Number> </Lower> </While> </Setup> <Do> <Parameters Type="Default"> <IS\_RPN>False</IS\_RPN> <VALUE>1</VALUE> </Parameters> <Parameters Type="Override"> <Condition NotEmpty="BINDING\_INC\_\#ID\#\_PARAM\_\#ARG\_ID\#"> <Condition Valid="BINDING\_INC\_\#ID\#\_PARAM\_\#ARG\_ID\#\_IS\_DYNAMIC"> <IS\_RPN>True</IS\_RPN> </Condition> <VALUE Process="Param">BINDING\_INC\_\#ID\#\_PARAM\_\#ARG\_ID\#</VALUE> </Condition> </Parameters> <Param RPN="\#IS\_RPN\#">\#VALUE\#</Param> </Do> </Loop> </Binding> </Do> </Loop> </Bindings> </Inc> <Dec> <Code>\#DEC\_CODE\#</Code> <Parameters> <Loop> <Setup> <Param>ARG\_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Lower> <Number>\#ARG\_ID\#</Number> <Number>\#DEC\_ARG\_COUNT\#</Number> </Lower> </While> </Setup> <Do> <Parameters Type="Default"> <Condition NotEmpty="DEC\_PARAM\_\#ARG\_ID\#"> <True> <PARAM\_VALUE Process="Param">DEC\_PARAM\_\#ARG\_ID\#</PARAM\_VALUE> <Condition NotEmpty="DEC\_PARAM\_\#ARG\_ID\#\_TYPE"> <True> <PARAM\_TYPE Process="Param">DEC\_PARAM\_\#ARG\_ID\#\_TYPE</PARAM\_TYPE> </True> <False> <PARAM\_TYPE>Float</PARAM\_TYPE> </False> </Condition> <Condition NotEmpty="DEC\_PARAM\_\#ARG\_ID\#\_IS\_DYNAMIC"> <True> <PARAM\_IS\_DYNAMIC Process="Param">DEC\_PARAM\_\#ARG\_ID\#\_IS\_DYNAMIC</PARAM\_IS\_DYNAMIC> </True> <False> <PARAM\_IS\_DYNAMIC>False</PARAM\_IS\_DYNAMIC> </False> </Condition> </True> <False> <PARAM\_VALUE>p\#ARG\_ID\#</PARAM\_VALUE> <PARAM\_TYPE>Float</PARAM\_TYPE> <PARAM\_IS\_DYNAMIC>True</PARAM\_IS\_DYNAMIC> </False> </Condition> </Parameters> <Param Type="\#PARAM\_TYPE\#" RPN="\#PARAM\_IS\_DYNAMIC\#">\#PARAM\_VALUE\#</Param> </Do> </Loop> </Parameters> <Bindings> <Loop> <Setup> <Param>ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="BINDING\_DEC\_\#ID\#"/> </While> </Setup> <Do> <Parameters Type="Override"> <BINDING\_ID Process="Param">BINDING\_DEC\_\#ID\#</BINDING\_ID> </Parameters> <Parameters Type="Override"> <Condition Check="BINDING\_DEC\_\#ID\#\_EVENT\_ID"> <True> <EVENT\_ID Process="Param">BINDING\_DEC\_\#ID\#\_EVENT\_ID</EVENT\_ID> <Condition Valid="BINDING\_DEC\_\#ID\#\_EVENT\_ID\_ONLY"> <True> <ALIAS\_ID/> </True> <False> <ALIAS\_ID>\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_\#BINDING\_ID\#</ALIAS\_ID> </False> </Condition> </True> <False> <EVENT\_ID/> <ALIAS\_ID>\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_\#BINDING\_ID\#</ALIAS\_ID> </False> </Condition> </Parameters> <Binding Alias="\#ALIAS\_ID\#" EventID="\#EVENT\_ID\#"> <Loop> <Setup> <Param>ARG\_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Lower> <Number>\#ARG\_ID\#</Number> <Number>\#DEC\_ARG\_COUNT\#</Number> </Lower> </While> </Setup> <Do> <Parameters Type="Default"> <IS\_RPN>False</IS\_RPN> <VALUE>1</VALUE> </Parameters> <Parameters Type="Override"> <Condition NotEmpty="BINDING\_DEC\_\#ID\#\_PARAM\_\#ARG\_ID\#"> <Condition Valid="BINDING\_DEC\_\#ID\#\_PARAM\_\#ARG\_ID\#\_IS\_DYNAMIC"> <IS\_RPN>True</IS\_RPN> </Condition> <VALUE Process="Param">BINDING\_DEC\_\#ID\#\_PARAM\_\#ARG\_ID\#</VALUE> </Condition> </Parameters> <Param RPN="\#IS\_RPN\#">\#VALUE\#</Param> </Do> </Loop> </Binding> </Do> </Loop> </Bindings> </Dec> <Set> <Code>\#SET\_CODE\#</Code> <Parameters> <Loop> <Setup> <Param>ARG\_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Lower> <Number>\#ARG\_ID\#</Number> <Number>\#SET\_ARG\_COUNT\#</Number> </Lower> </While> </Setup> <Do> <Parameters Type="Default"> <Condition NotEmpty="SET\_PARAM\_\#ARG\_ID\#"> <True> <PARAM\_VALUE Process="Param">SET\_PARAM\_\#ARG\_ID\#</PARAM\_VALUE> <Condition NotEmpty="SET\_PARAM\_\#ARG\_ID\#\_TYPE"> <True> <PARAM\_TYPE Process="Param">SET\_PARAM\_\#ARG\_ID\#\_TYPE</PARAM\_TYPE> </True> <False> <PARAM\_TYPE>Float</PARAM\_TYPE> </False> </Condition> <Condition NotEmpty="SET\_PARAM\_\#ARG\_ID\#\_IS\_DYNAMIC"> <True> <PARAM\_IS\_DYNAMIC Process="Param">SET\_PARAM\_\#ARG\_ID\#\_IS\_DYNAMIC</PARAM\_IS\_DYNAMIC> </True> <False> <PARAM\_IS\_DYNAMIC>False</PARAM\_IS\_DYNAMIC> </False> </Condition> </True> <False> <PARAM\_VALUE>p\#ARG\_ID\#</PARAM\_VALUE> <PARAM\_TYPE>Float</PARAM\_TYPE> <PARAM\_IS\_DYNAMIC>True</PARAM\_IS\_DYNAMIC> </False> </Condition> </Parameters> <Param Type="\#PARAM\_TYPE\#" RPN="\#PARAM\_IS\_DYNAMIC\#">\#PARAM\_VALUE\#</Param> </Do> </Loop> </Parameters> <Bindings> <Loop> <Setup> <Param>ID</Param> <From>0</From> <Inc>1</Inc> <While> <Arg NotEmpty="BINDING\_SET\_\#ID\#"/> </While> </Setup> <Do> <Parameters Type="Override"> <BINDING\_ID Process="Param">BINDING\_SET\_\#ID\#</BINDING\_ID> </Parameters> <Parameters Type="Override"> <Condition Check="BINDING\_SET\_\#ID\#\_EVENT\_ID"> <True> <EVENT\_ID Process="Param">BINDING\_SET\_\#ID\#\_EVENT\_ID</EVENT\_ID> <Condition Valid="BINDING\_SET\_\#ID\#\_EVENT\_ID\_ONLY"> <True> <ALIAS\_ID/> </True> <False> <ALIAS\_ID>\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_\#BINDING\_ID\#</ALIAS\_ID> </False> </Condition> </True> <False> <EVENT\_ID/> <ALIAS\_ID>\#INPUT\_EVENT\_ID\_SOURCE\#\_\#IE\_NAME\#\_\#BINDING\_ID\#</ALIAS\_ID> </False> </Condition> </Parameters> <Binding Alias="\#ALIAS\_ID\#" EventID="\#EVENT\_ID\#"> <Loop> <Setup> <Param>ARG\_ID</Param> <From>0</From> <Inc>1</Inc> <While> <Lower> <Number>\#ARG\_ID\#</Number> <Number>\#SET\_ARG\_COUNT\#</Number> </Lower> </While> </Setup> <Do> <Parameters Type="Default"> <IS\_RPN>False</IS\_RPN> <VALUE>0</VALUE> </Parameters> <Parameters Type="Override"> <Condition NotEmpty="BINDING\_SET\_\#ID\#\_PARAM\_\#ARG\_ID\#"> <Condition Valid="BINDING\_SET\_\#ID\#\_PARAM\_\#ARG\_ID\#\_IS\_DYNAMIC"> <IS\_RPN>True</IS\_RPN> </Condition> <VALUE Process="Param">BINDING\_SET\_\#ID\#\_PARAM\_\#ARG\_ID\#</VALUE> </Condition> </Parameters> <Param RPN="\#IS\_RPN\#">\#VALUE\#</Param> </Do> </Loop> </Binding> </Do> </Loop> </Bindings> </Set> </Preset> </Presets> </InputEvent> </ModelBehaviors>