6 Commits

Author SHA1 Message Date
Kilian ea27ff7257 Walkable Pax 2025-11-01 21:59:54 +01:00
Kilian 880de68ac5 Remove HandleRel fix 2025-10-30 10:53:51 +01:00
Kilian 2e9d8743fd Fix 102 Truck Tilt 2025-10-29 22:17:17 +01:00
Kilian 40eb80062d Update 102 2025-10-23 21:46:52 +02:00
Kilian 165ebfffe3 Blinds/Trays and Lavs 2025-10-15 20:53:19 +02:00
Kilian 4e778ca82c Draggable shades 2025-10-15 15:39:05 +02:00
36 changed files with 403929 additions and 6851 deletions
+16
View File
@@ -0,0 +1,16 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch JS",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}\\scripts\\${fileBasename}",
"cwd": "${workspaceFolder}\\scripts"
}
]
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -10,9 +10,10 @@
<VisibleInStore>false</VisibleInStore>
<CanBeReferenced>false</CanBeReferenced>
</Flags>
<PackageOrderHint>SIMOBJECTS_PATCH</PackageOrderHint>
<AssetGroups>
<AssetGroup Name="ContentInfo">
<Type>ContentInfo</Type>
<Type Version="0">ContentInfo</Type>
<Flags>
<FSXCompatibility>false</FSXCompatibility>
</Flags>
@@ -20,7 +21,7 @@
<OutputDir>ContentInfo\xkhofmann-tfdidesign-md11-fixes\</OutputDir>
</AssetGroup>
<AssetGroup Name="md-11">
<Type>Copy</Type>
<Type Version="0">Copy</Type>
<Flags>
<FSXCompatibility>false</FSXCompatibility>
</Flags>
@@ -28,7 +29,7 @@
<OutputDir>SimObjects\Airplanes\</OutputDir>
</AssetGroup>
<AssetGroup Name="md-11-fixes">
<Type>SimObject</Type>
<Type Version="1">SimObject</Type>
<Flags>
<FSXCompatibility>false</FSXCompatibility>
</Flags>
@@ -41,7 +42,7 @@
</Config>
</AssetGroup>
<AssetGroup Name="md-11-templates">
<Type>Copy</Type>
<Type Version="0">Copy</Type>
<Flags>
<FSXCompatibility>false</FSXCompatibility>
</Flags>
@@ -480,4 +480,319 @@
</UseTemplate>
</Component>
</Template>
<Template Name="MD11_Shade">
<Parameters Type="Default">
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_LAG>1000</ANIM_LAG>
</Parameters>
<Component ID="#NODE_X_NAME#" Node="#NODE_X_NAME#">
<Animation Name="#ANIM_X_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>#ANIM_X_CODE#</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
<MouseRect>
<IMCursorsInstances>
<IMDefault>
<Cursor>Grab</Cursor>
</IMDefault>
<IMDrag>
<Cursor>Grab</Cursor>
</IMDrag>
</IMCursorsInstances>
<IMMouseFlagsInstances>
<IMDefault>Lock+Unlock+LeftDrag</IMDefault>
<IMDrag>Lock+Unlock+LeftDrag</IMDrag>
</IMMouseFlagsInstances>
<Lock>True</Lock>
<LockFlagsTemporary>LeftSingle</LockFlagsTemporary>
<HighlightNodeId>#NODE_X_NAME#</HighlightNodeId>
<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{
(O:NEW) (&gt;L:#VAR_X_NAME#)
}
}
</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{
(O:NEW) (&gt;L:#VAR_X_NAME#)
}
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_X_NAME#</DragAnimName>
<DragNodeId>#NODE_X_NAME#</DragNodeId>
<DragAnimSynced>True</DragAnimSynced>
<DragUseAnimLag>True</DragUseAnimLag>
<DragAxis>X</DragAxis>
<DragFlagsLockable>LeftDrag+RightDrag+MiddleDrag</DragFlagsLockable>
</CallbackCode>
</MouseRect>
</Component>
<Component ID="#NODE_Y_NAME#" Node="#NODE_Y_NAME#">
<Animation Name="#ANIM_Y_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>#ANIM_Y_CODE#</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
<MouseRect>
<IMCursorsInstances>
<IMDefault>
<Cursor>Grab</Cursor>
</IMDefault>
<IMDrag>
<Cursor>Grab</Cursor>
</IMDrag>
</IMCursorsInstances>
<IMMouseFlagsInstances>
<IMDefault>Lock+Unlock+LeftDrag</IMDefault>
<IMDrag>Lock+Unlock+LeftDrag</IMDrag>
</IMMouseFlagsInstances>
<Lock>True</Lock>
<LockFlagsTemporary>LeftSingle</LockFlagsTemporary>
<HighlightNodeId>#NODE_Y_NAME#</HighlightNodeId>
<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>
<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>
<DragNodeId>#NODE_Y_NAME#</DragNodeId>
<DragAnimSynced>True</DragAnimSynced>
<DragUseAnimLag>True</DragUseAnimLag>
<DragAxis>Y</DragAxis>
<DragFlagsLockable>LeftDrag+RightDrag+MiddleDrag</DragFlagsLockable>
</CallbackCode>
</MouseRect>
</Component>
</Template>
<Template Name="MD11_Blind">
<Parameters Type="Default">
<ANIM_LENGTH>42</ANIM_LENGTH>
<ANIM_LAG>42</ANIM_LAG>
</Parameters>
<Component ID="#NODE_NAME#" Node="#NODE_NAME#">
<Animation Name="#ANIM_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>(O:POS)</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
<MouseRect>
<IMCursorsInstances>
<IMDefault>
<Cursor>Grab</Cursor>
</IMDefault>
<IMDrag>
<Cursor>Grab</Cursor>
</IMDrag>
</IMCursorsInstances>
<IMMouseFlagsInstances>
<IMDefault>Lock+Unlock+LeftDrag</IMDefault>
<IMDrag>Lock+Unlock+LeftDrag</IMDrag>
</IMMouseFlagsInstances>
<Lock>True</Lock>
<LockFlagsTemporary>LeftSingle</LockFlagsTemporary>
<HighlightNodeId>#NODE_NAME#</HighlightNodeId>
<CallbackCode>
<IMCodeInstances>
<IMDefault>
(M:Event) 'LeftDrag' scmi 0 == if{
(O:POS) (M:DragPercent) #ANIM_LENGTH# * (O:POS) - + (&gt;O:POS)
}
</IMDefault>
<IMDrag>
(M:Event) 'LeftDrag' scmi 0 == if{
(O:POS) (M:DragPercent) #ANIM_LENGTH# * (O:POS) - + (&gt;O:POS)
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_NAME#</DragAnimName>
<DragNodeId>#NODE_NAME#</DragNodeId>
<DragAnimSynced>True</DragAnimSynced>
<DragUseAnimLag>True</DragUseAnimLag>
<DragAxis>Y</DragAxis>
<DragFlagsLockable>LeftDrag+RightDrag+MiddleDrag</DragFlagsLockable>
</CallbackCode>
</MouseRect>
</Component>
</Template>
<Template Name="MD11_Bin">
<Parameters Type="Default">
<ANIM_LENGTH>10</ANIM_LENGTH>
<ANIM_LAG>10</ANIM_LAG>
</Parameters>
<Component ID="#NODE_NAME#" Node="#NODE_NAME#">
<Animation Name="#ANIM_NAME#" Length="#ANIM_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>(O:POS)</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
<MouseRect>
<IMCursorsInstances>
<IMDefault>
<Cursor>Grab</Cursor>
</IMDefault>
<IMDrag>
<Cursor>Grab</Cursor>
</IMDrag>
</IMCursorsInstances>
<IMMouseFlagsInstances>
<IMDefault>Lock+Unlock+LeftDrag</IMDefault>
<IMDrag>Lock+Unlock+LeftDrag</IMDrag>
</IMMouseFlagsInstances>
<Lock>True</Lock>
<LockFlagsTemporary>LeftSingle</LockFlagsTemporary>
<HighlightNodeId>#NODE_NAME#</HighlightNodeId>
<CallbackCode>
<IMCodeInstances>
<IMDefault>
(M:Event) 'LeftDrag' scmi 0 == if{
(O:POS) (M:DragPercent) #ANIM_LENGTH# * (O:POS) - + (&gt;O:POS)
}
</IMDefault>
<IMDrag>
(M:Event) 'LeftDrag' scmi 0 == if{
(O:POS) (M:DragPercent) #ANIM_LENGTH# * (O:POS) - + (&gt;O:POS)
}
</IMDrag>
</IMCodeInstances>
<DragMode>Trajectory</DragMode>
<DragAnimName>#ANIM_NAME#</DragAnimName>
<DragNodeId>#NODE_NAME#</DragNodeId>
<DragAnimSynced>True</DragAnimSynced>
<DragUseAnimLag>True</DragUseAnimLag>
<DragAxis>Y</DragAxis>
<DragFlagsLockable>LeftDrag+RightDrag+MiddleDrag</DragFlagsLockable>
</CallbackCode>
</MouseRect>
</Component>
</Template>
<Template Name="MD11_TrayTable">
<Parameters Type="Default">
<ANIM_LENGTH>25</ANIM_LENGTH>
<ANIM_LAG>25</ANIM_LAG>
</Parameters>
<Parameters Type="Override">
<Condition Check="ANIM_NAME">
<False>
<ANIM_NAME>#NODE_NAME#</ANIM_NAME>
</False>
</Condition>
<Condition Check="ID">
<False>
<ID>#NODE_NAME#</ID>
</False>
</Condition>
</Parameters>
<Component ID="#ID#" Node="#NODE_NAME#">
<UseTemplate Name="ASOBO_GT_MouseRect">
<MOUSEFLAGS_DEFAULT_IM>LeftSingle</MOUSEFLAGS_DEFAULT_IM>
<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{ (O:CLICK) ! (&gt;O:CLICK) }
</CALLBACKCODE_DEFAULT_IM>
<CALLBACKCODE_DRAG_IM>
(M:Event) &apos;LeftSingle&apos; scmi 0 == if{ (O:CLICK) ! (&gt;O:CLICK) }
</CALLBACKCODE_DRAG_IM>
</UseTemplate>
<Animation Name="#ANIM_NAME#" Length="#ANIM_LENGTH#" Type="Sim" TypeParam="AutoPlay">
<Parameter>
<Code>(O:CLICK) #ANIM_LENGTH# *</Code>
<Lag>#ANIM_LAG#</Lag>
</Parameter>
</Animation>
</Component>
</Template>
<Template Name="MD11_Lav">
<Component ID="#ID#">
<Component ID="#NODE_LATCH_NAME#" Node="#NODE_LATCH_NAME#">
<UseTemplate Name="ASOBO_GT_MouseRect">
<MOUSEFLAGS_DEFAULT_IM>LeftSingle</MOUSEFLAGS_DEFAULT_IM>
<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 == (L:#ID#_DOOR) 0 == &amp;&amp; if{
(L:#ID#_LATCH) ! (&gt;L:#ID#_LATCH)
}
</CALLBACKCODE_DEFAULT_IM>
<CALLBACKCODE_DRAG_IM>
(M:Event) &apos;LeftSingle&apos; scmi 0 == (L:#ID#_DOOR) 0 == &amp;&amp; if{
(L:#ID#_LATCH) ! (&gt;L:#ID#_LATCH)
}
</CALLBACKCODE_DRAG_IM>
</UseTemplate>
<Animation Name="#ANIM_LATCH_NAME#" Length="#ANIM_LATCH_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>(L:#ID#_LATCH) #ANIM_LATCH_LENGTH# *</Code>
<Lag>#ANIM_LATCH_LAG#</Lag>
</Parameter>
</Animation>
</Component>
<Component ID="#NODE_DOOR_NAME#" Node="#NODE_DOOR_NAME#">
<UseTemplate Name="ASOBO_GT_MouseRect">
<MOUSEFLAGS_DEFAULT_IM>LeftSingle</MOUSEFLAGS_DEFAULT_IM>
<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 == (L:#ID#_LATCH) 0 == &amp;&amp; if{
(L:#ID#_DOOR) ! (&gt;L:#ID#_DOOR)
}
</CALLBACKCODE_DEFAULT_IM>
<CALLBACKCODE_DRAG_IM>
(M:Event) &apos;LeftSingle&apos; scmi 0 == (L:#ID#_LATCH) 0 == &amp;&amp; if{
(L:#ID#_DOOR) ! (&gt;L:#ID#_DOOR)
}
</CALLBACKCODE_DRAG_IM>
</UseTemplate>
<Animation Name="#ANIM_DOOR_NAME#" Length="#ANIM_DOOR_LENGTH#" Type="Sim"
TypeParam="AutoPlay">
<Parameter>
<Code>(L:#ID#_DOOR) #ANIM_DOOR_LENGTH# *</Code>
<Lag>#ANIM_DOOR_LAG#</Lag>
</Parameter>
</Animation>
</Component>
</Component>
</Template>
</ModelBehaviors>
@@ -56,24 +56,24 @@
</UseTemplate>
<Component ID="MD11_#NODE_ID_STILL#" Node="#NODE_ID_STILL#">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:ENG N1 RPM:1, percent) 10 &lt; if{ 1 } els{ 0 } </VISIBILITY_CODE>
<VISIBILITY_CODE>(A:ENGINE N1 RPM:1, percent) 10 &lt; if{ 1 } els{ 0 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
</Template>
<!-- End Templates -->
<Component ID="Pilot_Visibility" Node="PILOT_0">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Copilot_Visibility" Node="PILOT_1">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Pilot_Visibility" Node="PILOT_0">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Copilot_Visibility" Node="PILOT_1">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="ADG_Deploy">
<UseTemplate Name="ASOBO_GT_Anim_Code">
@@ -92,7 +92,6 @@
</UseTemplate>
</Component>
<!-- NOTE: Added -->
<Component ID="Engine_Fans_1">
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_NAME>MD11_EXT_N1_1_STILL</ANIM_NAME>
@@ -149,10 +148,16 @@
<Component ID="MD11_TRUCK_TILT">
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_CODE>(A:SIM ON GROUND, bool) (PLANE PITCH DEGREES, radians) * 0.174 </ANIM_CODE>
<ANIM_CODE>(A:CONTACT POINT IS ON GROUND:1, number) (A:PLANE PITCH DEGREES, degrees) * -10 * </ANIM_CODE>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_NAME>MD11_EXT_MLG_LEFT_TRUCK_TILT</ANIM_NAME>
<ANIM_LAG>30</ANIM_LAG>
<ANIM_LAG>100</ANIM_LAG>
</UseTemplate>
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_CODE>(A:CONTACT POINT IS ON GROUND:2, number) (A:PLANE PITCH DEGREES, degrees) * -10 * </ANIM_CODE>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_NAME>MD11_EXT_MLG_RIGHT_TRUCK_TILT</ANIM_NAME>
<ANIM_LAG>100</ANIM_LAG>
</UseTemplate>
</Component>
@@ -2355,7 +2360,7 @@
<AnimLength>50</AnimLength>
<Visibility>
<Parameter>
<Code>(L:MD11_EXT_ER_TAIL, bool) 0 == if{1} els{0} </Code>
<Code>(L:MD11_EXT_ER_TAIL, bool) 0 == if {1} els {0} </Code>
</Parameter>
</Visibility>
</PartInfo>
@@ -2,6 +2,7 @@
<ModelInfo>
<LODS>
<LOD minSize="150" ModelFile="TFDi_MD11_F_INT_LOD0.gltf">
<MergeModel>TFDi_MD11_F_CABIN_LOD0.gltf</MergeModel>
<MergeModel>..\..\..\Misc\TFDi_Design_MD-11_Fixes\model.f\TFDi_Design_MD-11_Fixes.gltf</MergeModel>
</LOD>
</LODS>
@@ -20,131 +21,93 @@
<Component ID="TFDi_MD11_INT_CARGO">
<!-- MISC START -->
<!-- MAIN CARGO DOOR START -->
<UseTemplate Name="MD11_Animation">
<NODE_NAME>MD11_EXT_DOOR_CARGO_MAIN</NODE_NAME>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_LAG>1000</ANIM_LAG>
</UseTemplate>
<!-- MAIN CARGO DOOR END-->
<!-- CAB LIGHTS START -->
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Object4533</NODE_NAME>
<VIS_CODE>(L:MD11_CAB_LIGHTS_SRC, bool)</VIS_CODE>
</UseTemplate>
<!-- CAB LIGHTS END -->
<!-- CARGO CONTAINERS START-->
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Object114</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_1</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_1, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Object115</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_2</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_2, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Plane1094</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_3</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_3, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1172</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_4</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_4, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1177</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_5</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_5, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1186</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_6</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_6, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1187</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_7</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_7, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1178</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_8</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_8, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1179</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_9</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_9, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1188</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_10</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_10, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1189</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_11</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_11, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1180</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_12</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_12, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1181</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_13</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_13, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1190</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_14</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_14, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1185</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_15</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_15, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1174</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_16</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_16, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1182</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_17</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_17, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1191</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_18</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_18, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1192</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_19</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_19, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1183</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_20</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_20, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1184</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_21</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_21, bool)</VIS_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_Vistag">
<NODE_NAME>Box1193</NODE_NAME>
<NODE_NAME>MD11_CARGO_PALLET_22</NODE_NAME>
<VIS_CODE>(L:MD11_CARGO_PALLET_22, bool)</VIS_CODE>
</UseTemplate>
<!-- CARGO CONTAINERS END -->
@@ -193,13 +156,4 @@
<!-- OVHD END -->
</Component>
</Behaviors>
<!-- NOTE: GENERAL OBSERVATIONS
- ENG1 reverser lever is not parented to the ENG1 lever, but to the ENG1 lever
animation helper
- Reverser levers are not setup for drag, WASM fights back
- Vistags were done via an animation turned PartInfo, that no longer works
Going forward: Use a parent node (can be an empty) for all children to hide, hide
parent node or use individual components for each
-->
</ModelInfo>
@@ -56,23 +56,24 @@
</UseTemplate>
<Component ID="MD11_#NODE_ID_STILL#" Node="#NODE_ID_STILL#">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:ENG N1 RPM:1, percent) 10 &lt; if{ 1 } els{ 0 } </VISIBILITY_CODE>
<VISIBILITY_CODE>(A:ENGINE N1 RPM:1, percent) 10 &lt; if{ 1 } els{ 0 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
</Template>
<!-- End Templates -->
<Component ID="Pilot_Visibility" Node="PILOT_0">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Copilot_Visibility" Node="PILOT_1">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Pilot_Visibility" Node="PILOT_0">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Copilot_Visibility" Node="PILOT_1">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="ADG_Deploy">
<UseTemplate Name="ASOBO_GT_Anim_Code">
@@ -91,7 +92,6 @@
</UseTemplate>
</Component>
<!-- NOTE: Added -->
<Component ID="Engine_Fans_1">
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_NAME>MD11_EXT_N1_1_STILL</ANIM_NAME>
@@ -148,10 +148,16 @@
<Component ID="MD11_TRUCK_TILT">
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_CODE>(A:SIM ON GROUND, bool) (PLANE PITCH DEGREES, radians) * 0.174 </ANIM_CODE>
<ANIM_CODE>(A:CONTACT POINT IS ON GROUND:1, number) (A:PLANE PITCH DEGREES, degrees) * -10 * </ANIM_CODE>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_NAME>MD11_EXT_MLG_LEFT_TRUCK_TILT</ANIM_NAME>
<ANIM_LAG>30</ANIM_LAG>
<ANIM_LAG>100</ANIM_LAG>
</UseTemplate>
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_CODE>(A:CONTACT POINT IS ON GROUND:2, number) (A:PLANE PITCH DEGREES, degrees) * -10 * </ANIM_CODE>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_NAME>MD11_EXT_MLG_RIGHT_TRUCK_TILT</ANIM_NAME>
<ANIM_LAG>100</ANIM_LAG>
</UseTemplate>
</Component>
@@ -2354,7 +2360,7 @@
<AnimLength>50</AnimLength>
<Visibility>
<Parameter>
<Code>(L:MD11_EXT_ER_TAIL, bool) 0 == if{1} els{0} </Code>
<Code>(L:MD11_EXT_ER_TAIL, bool) 0 == if {1} els {0} </Code>
</Parameter>
</Visibility>
</PartInfo>
@@ -56,25 +56,24 @@
</UseTemplate>
<Component ID="MD11_#NODE_ID_STILL#" Node="#NODE_ID_STILL#">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:ENG N1 RPM:1, percent) 10 &lt; if{ 1 } els{ 0 } </VISIBILITY_CODE>
<VISIBILITY_CODE>(A:ENGINE N1 RPM:1, percent) 10 &lt; if{ 1 } els{ 0 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
</Template>
<!-- End Templates -->
<Component ID="Pilot_Visibility" Node="PILOT_0">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Copilot_Visibility" Node="PILOT_1">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Pilot_Visibility" Node="PILOT_0">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Copilot_Visibility" Node="PILOT_1">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="ADG_Deploy">
<UseTemplate Name="ASOBO_GT_Anim_Code">
@@ -149,10 +148,16 @@
<Component ID="MD11_TRUCK_TILT">
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_CODE>(A:SIM ON GROUND, bool) (PLANE PITCH DEGREES, radians) * 0.174 </ANIM_CODE>
<ANIM_CODE>(A:CONTACT POINT IS ON GROUND:1, number) (A:PLANE PITCH DEGREES, degrees) * -10 * </ANIM_CODE>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_NAME>MD11_EXT_MLG_LEFT_TRUCK_TILT</ANIM_NAME>
<ANIM_LAG>30</ANIM_LAG>
<ANIM_LAG>100</ANIM_LAG>
</UseTemplate>
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_CODE>(A:CONTACT POINT IS ON GROUND:2, number) (A:PLANE PITCH DEGREES, degrees) * -10 * </ANIM_CODE>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_NAME>MD11_EXT_MLG_RIGHT_TRUCK_TILT</ANIM_NAME>
<ANIM_LAG>100</ANIM_LAG>
</UseTemplate>
</Component>
@@ -2355,7 +2360,7 @@
<AnimLength>50</AnimLength>
<Visibility>
<Parameter>
<Code>(L:MD11_EXT_ER_TAIL, bool) 0 == if{1} els{0} </Code>
<Code>(L:MD11_EXT_ER_TAIL, bool) 0 == if {1} els {0} </Code>
</Parameter>
</Visibility>
</PartInfo>
@@ -4,12 +4,14 @@
<LOD minSize="150" ModelFile="TFDi_MD11_PAX_INT_LOD0.gltf">
<MergeModel>TFDi_MD11_PAX_CABIN_LOD0.gltf</MergeModel>
<MergeModel>..\..\..\Misc\TFDi_Design_MD-11_Fixes\model.p\TFDi_Design_MD-11_Fixes.gltf</MergeModel>
<MergeModel>..\..\..\Misc\TFDi_Design_MD-11_Fixes\model.p_walk\TFDi_Design_MD-11_WALK_P.gltf</MergeModel>
</LOD>
</LODS>
<Behaviors>
<Include RelativeFile="..\..\TFDi_Design_MD-11_Shared\TFDi_MD11_INT_BASE.xml" />
<Include RelativeFile="..\..\TFDi_Design_MD-11_Shared\TFDi_MD11_INT_PAX.xml" />
<Include RelativeFile="..\..\TFDi_Design_MD-11_Shared\TFDi_MD11_INT_CABIN.xml" />
<Include RelativeFile="..\..\..\Misc\TFDi_Design_MD-11_Fixes\TFDi_Design_MD-11_Fixes_BASE.xml" />
<Component ID="TFDi_MD11_INT_BASE">
@@ -23,6 +25,10 @@
<Component ID="TFDi_MD11_INT_PAX">
<UseTemplate Name="MD11_PAX" />
</Component>
<Component ID="TFDi_MD11_INT_CABIN">
<UseTemplate Name="MD11_CABIN" />
</Component>
</Behaviors>
@@ -56,24 +56,24 @@
</UseTemplate>
<Component ID="MD11_#NODE_ID_STILL#" Node="#NODE_ID_STILL#">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:ENG N1 RPM:1, percent) 10 &lt; if{ 1 } els{ 0 } </VISIBILITY_CODE>
<VISIBILITY_CODE>(A:ENGINE N1 RPM:1, percent) 10 &lt; if{ 1 } els{ 0 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
</Template>
<!-- End Templates -->
<Component ID="Pilot_Visibility" Node="PILOT_0">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Copilot_Visibility" Node="PILOT_1">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Pilot_Visibility" Node="PILOT_0">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="Copilot_Visibility" Node="PILOT_1">
<UseTemplate Name="ASOBO_GT_Visibility_Code">
<VISIBILITY_CODE>(A:CAMERA STATE, enum) 2 == ; if{ 0 } els{ 1 } </VISIBILITY_CODE>
</UseTemplate>
</Component>
<Component ID="ADG_Deploy">
<UseTemplate Name="ASOBO_GT_Anim_Code">
@@ -92,7 +92,6 @@
</UseTemplate>
</Component>
<!-- NOTE: Added -->
<Component ID="Engine_Fans_1">
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_NAME>MD11_EXT_N1_1_STILL</ANIM_NAME>
@@ -147,6 +146,21 @@
</UseTemplate>
</Component>
<Component ID="MD11_TRUCK_TILT">
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_CODE>(A:CONTACT POINT IS ON GROUND:1, number) (A:PLANE PITCH DEGREES, degrees) * -10 * </ANIM_CODE>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_NAME>MD11_EXT_MLG_LEFT_TRUCK_TILT</ANIM_NAME>
<ANIM_LAG>100</ANIM_LAG>
</UseTemplate>
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_CODE>(A:CONTACT POINT IS ON GROUND:2, number) (A:PLANE PITCH DEGREES, degrees) * -10 * </ANIM_CODE>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_NAME>MD11_EXT_MLG_RIGHT_TRUCK_TILT</ANIM_NAME>
<ANIM_LAG>100</ANIM_LAG>
</UseTemplate>
</Component>
<Component ID="FX_CONTRAIL_QUAD">
<UseTemplate Name="ASOBO_CONTRAIL_QUAD_FX">
<FX_NAME>FX_CONTRAIL_QUAD_LEFT</FX_NAME>
@@ -2346,7 +2360,7 @@
<AnimLength>50</AnimLength>
<Visibility>
<Parameter>
<Code>(L:MD11_EXT_ER_TAIL, bool) 0 == if{1} els{0} </Code>
<Code>(L:MD11_EXT_ER_TAIL, bool) 0 == if {1} els {0} </Code>
</Parameter>
</Visibility>
</PartInfo>
@@ -10,6 +10,7 @@
<Behaviors>
<Include RelativeFile="..\..\TFDi_Design_MD-11_Shared\TFDi_MD11_INT_BASE.xml" />
<Include RelativeFile="..\..\TFDi_Design_MD-11_Shared\TFDi_MD11_INT_PAX.xml" />
<Include RelativeFile="..\..\TFDi_Design_MD-11_Shared\TFDi_MD11_INT_CABIN.xml" />
<Include RelativeFile="..\..\..\Misc\TFDi_Design_MD-11_Fixes\TFDi_Design_MD-11_Fixes_BASE.xml" />
<Component ID="TFDi_MD11_INT_BASE">
@@ -23,6 +24,10 @@
<Component ID="TFDi_MD11_INT_PAX">
<UseTemplate Name="MD11_PAX" />
</Component>
<Component ID="TFDi_MD11_INT_CABIN">
<UseTemplate Name="MD11_CABIN" />
</Component>
</Behaviors>
@@ -40,9 +40,6 @@
<Component ID="TFDi_MD11_INT_MISC">
<UseTemplate Name="MD11_MISC" />
</Component>
<Component ID="TFDi_MD11_INT_EXTRAS">
<UseTemplate Name="MD11_EXTRAS" />
</Component>
<Component ID="TFDi_MD11_INT_LIGHTING">
<UseTemplate Name="TFDi_MD11_INT_LIGHTING" />
@@ -2,6 +2,10 @@
<ModelBehaviors>
<Template Name="TFDi_MD11_INT_LIGHTING">
<Component ID="MD11_IntegralLighting_OVHD">
<UseTemplate Name="MD11_IntegralLighting_Template">
<VAR_NAME>MD11_LTS_OVHD_INTEG</VAR_NAME>
<NODE_ID>outflow_gauge</NODE_ID>
</UseTemplate>
<UseTemplate Name="MD11_IntegralLighting_Template">
<VAR_NAME>MD11_LTS_OVHD_INTEG</VAR_NAME>
<NODE_ID>MD11_OPT_AUTO_AICE</NODE_ID>
@@ -2164,9 +2168,6 @@
<UseTemplate Name="MD11_Annunciator">
<NODE_ID>MD11_THR_R_FUEL_LT</NODE_ID>
</UseTemplate>
<UseTemplate Name="MD11_Annunciator">
<NODE_ID>MD11_THR_PARK_LT</NODE_ID>
</UseTemplate>
<UseTemplate Name="MD11_Annunciator">
<NODE_ID>MD11_LMCDU_DSPY_LT</NODE_ID>
</UseTemplate>
@@ -9,15 +9,11 @@
<ANIM_CODE>(L:MD11_MIP_GEAR_SW)</ANIM_CODE>
<CODE>94976 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<!-- NOTE: Button animation missing in model -->
<!-- NOTE: Fixed in submodel -->
<!--
<UseTemplate Name="MD11_Button">
<NODE_NAME>MD11_MIP_HANDLEREL_BT</NODE_NAME>
<CODE_PRESS>94980 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>94981 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
-->
<UseTemplate Name="MD11_Button_Guarded">
<GUARD_NODE_NAME>MD11_MIP_CTR_GEAR_GRD</GUARD_NODE_NAME>
<GUARD_CODE>94979 (&gt;L:CEVENT)</GUARD_CODE>
@@ -372,13 +372,6 @@
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_LAG>1000</ANIM_LAG>
</UseTemplate>
<!-- NOTE: Missing animation -->
<UseTemplate Name="MD11_Animation">
<NODE_NAME>MD11_EXT_GPU_DOOR</NODE_NAME>
<ANIM_LENGTH>10</ANIM_LENGTH>
<ANIM_LAG>100</ANIM_LAG>
<ANIM_CODE>(L:MD11_EXT_GPU) 10 *</ANIM_CODE>
</UseTemplate>
<!-- DOORS END -->
<!-- ADG LEVER START -->
@@ -449,6 +442,19 @@
<ANIM_CODE>(L:MD11_LSIDE_WINDOW) 10 *</ANIM_CODE>
<CODE>94237 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Shade">
<NODE_X_NAME>visor_mount1</NODE_X_NAME>
<NODE_Y_NAME>visor1_transparent</NODE_Y_NAME>
<VAR_X_NAME>MD11_LSIDE_SHADE_X</VAR_X_NAME>
<SECOND_VAR_X_NAME>MD11_RSIDE_SHADE_X</SECOND_VAR_X_NAME>
<VAR_Y_NAME>MD11_LSIDE_SHADE_Y</VAR_Y_NAME>
<ANIM_X_NAME>MD11_LSIDE_SHADE_X</ANIM_X_NAME>
<ANIM_X_CODE>(L:MD11_LSIDE_SHADE_X)</ANIM_X_CODE>
<ANIM_Y_NAME>MD11_LSIDE_SHADE_Y</ANIM_Y_NAME>
<ANIM_Y_CODE>(L:MD11_LSIDE_SHADE_Y)</ANIM_Y_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_2Pos_Switch">
<ID>MD11_LSIDE_WINDOW_SHADE</ID>
@@ -459,32 +465,6 @@
<ANIM_CODE>(L:MD11_LSIDE_WINDOW_SHADE) 10 *</ANIM_CODE>
<CODE>94238 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Clickspot">
<NODE_NAME>MD11_LSIDE_SHADE_X_INC</NODE_NAME>
<CODE>94239 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Clickspot">
<NODE_NAME>MD11_LSIDE_SHADE_X_DEC</NODE_NAME>
<CODE>94240 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Clickspot">
<NODE_NAME>MD11_LSIDE_SHADE_Y_INC</NODE_NAME>
<CODE>94241 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Clickspot">
<NODE_NAME>MD11_LSIDE_SHADE_Y_DEC</NODE_NAME>
<CODE>94242 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Animation">
<NODE_NAME>MD11_LSIDE_SHADE_X</NODE_NAME>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_LAG>1000</ANIM_LAG>
</UseTemplate>
<UseTemplate Name="MD11_Animation">
<NODE_NAME>MD11_LSIDE_SHADE_Y</NODE_NAME>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_LAG>1000</ANIM_LAG>
</UseTemplate>
<!-- LEFT SIDE WINDOW STOP -->
<!-- RIGHT SIDE WINDOW START -->
@@ -496,6 +476,19 @@
<ANIM_CODE>(L:MD11_RSIDE_WINDOW) 10 *</ANIM_CODE>
<CODE>95517 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Shade">
<NODE_X_NAME>visor_mount2</NODE_X_NAME>
<NODE_Y_NAME>visor2_transparent</NODE_Y_NAME>
<VAR_X_NAME>MD11_RSIDE_SHADE_X</VAR_X_NAME>
<SECOND_VAR_X_NAME>MD11_LSIDE_SHADE_X</SECOND_VAR_X_NAME>
<VAR_Y_NAME>MD11_RSIDE_SHADE_Y</VAR_Y_NAME>
<ANIM_X_NAME>MD11_RSIDE_SHADE_X</ANIM_X_NAME>
<ANIM_X_CODE>(L:MD11_RSIDE_SHADE_X)</ANIM_X_CODE>
<ANIM_Y_NAME>MD11_RSIDE_SHADE_Y</ANIM_Y_NAME>
<ANIM_Y_CODE>(L:MD11_RSIDE_SHADE_Y)</ANIM_Y_CODE>
</UseTemplate>
<!-- NOTE: Node name extracted from blender -->
<UseTemplate Name="MD11_2Pos_Switch">
<ID>MD11_RSIDE_WINDOW_SHADE</ID>
@@ -506,32 +499,6 @@
<ANIM_CODE>(L:MD11_RSIDE_WINDOW_SHADE) 10 *</ANIM_CODE>
<CODE>95518 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Clickspot">
<NODE_NAME>MD11_RSIDE_SHADE_X_INC</NODE_NAME>
<CODE>95519 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Clickspot">
<NODE_NAME>MD11_RSIDE_SHADE_X_DEC</NODE_NAME>
<CODE>95520 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Clickspot">
<NODE_NAME>MD11_RSIDE_SHADE_Y_INC</NODE_NAME>
<CODE>95521 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Clickspot">
<NODE_NAME>MD11_RSIDE_SHADE_Y_DEC</NODE_NAME>
<CODE>95522 (&gt;L:CEVENT)</CODE>
</UseTemplate>
<UseTemplate Name="MD11_Animation">
<NODE_NAME>MD11_RSIDE_SHADE_X</NODE_NAME>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_LAG>1000</ANIM_LAG>
</UseTemplate>
<UseTemplate Name="MD11_Animation">
<NODE_NAME>MD11_RSIDE_SHADE_Y</NODE_NAME>
<ANIM_LENGTH>100</ANIM_LENGTH>
<ANIM_LAG>1000</ANIM_LAG>
</UseTemplate>
<!-- RIGHT SIDE WINDOW STOP -->
</Template>
</ModelBehaviors>
@@ -20,20 +20,5 @@
<VIS_CODE>(L:MD11_OPT_ANALOG_STBY, bool)</VIS_CODE>
</UseTemplate>
<!-- ANALOGUE STANDBY SLIP END -->
<!-- GEAR HANDLE RELEASE START -->
<UseTemplate
Name="MD11_Vistag">
<NODE_NAME>MD11_MIP_HANDLEREL_BT</NODE_NAME>
<VIS_CODE>0</VIS_CODE>
</UseTemplate>
<UseTemplate
Name="MD11_Button">
<NODE_NAME>KH_MD11_MIP_HANDLEREL_BT</NODE_NAME>
<ANIM_CODE>(L:MD11_MIP_HANDLEREL_BT) 10 *</ANIM_CODE>
<CODE_PRESS>94980 (&gt;L:CEVENT)</CODE_PRESS>
<CODE_RELEASE>94981 (&gt;L:CEVENT)</CODE_RELEASE>
</UseTemplate>
<!-- GEAR HANDLE RELEASE END -->
</Template>
</ModelBehaviors>
@@ -371,12 +371,4 @@ H<
^[
[X

M"   
      m
b
O
]
?
W
A
D
M"   
@@ -5,7 +5,7 @@
"tangent_space_convention":"DirectX"
}
},
"generator":"Khronos glTF Blender I/O v3.6.28 and Asobo Studio MSFS2024 Blender I/O v5.4.3 with Blender v3.6.19",
"generator":"Khronos glTF Blender I/O v3.6.28 and Asobo Studio MSFS2024 Blender I/O v5.4.4 with Blender v3.6.19",
"version":"2.0"
},
"extensionsUsed":[
@@ -20,8 +20,7 @@
"name":"Scene",
"nodes":[
0,
1,
2
1
]
}
],
@@ -48,26 +47,6 @@
0.0004000000189989805,
0
]
},
{
"extensions":{
"ASOBO_unique_id":{
"id":"KH_MD11_MIP_HANDLEREL_BT"
}
},
"mesh":2,
"name":"KH_MD11_MIP_HANDLEREL_BT",
"rotation":[
0,
0.8038567900657654,
-0.594822883605957,
4.405300621089948e-15
],
"translation":[
-0.0029689352959394455,
0.8800935745239258,
26.598054885864258
]
}
],
"animations":[
@@ -84,28 +63,9 @@
"name":"KH_MD11_MIP_STBY_AI_SLIP_RNG",
"samplers":[
{
"input":18,
"input":12,
"interpolation":"LINEAR",
"output":19
}
]
},
{
"channels":[
{
"sampler":0,
"target":{
"node":2,
"path":"translation"
}
}
],
"name":"KH_MD11_MIP_HANDLEREL_BT",
"samplers":[
{
"input":20,
"interpolation":"LINEAR",
"output":21
"output":13
}
]
}
@@ -162,43 +122,6 @@
"metallicFactor":1,
"roughnessFactor":1
}
},
{
"alphaMode":"OPAQUE",
"doubleSided":false,
"emissiveFactor":[
0,
0,
0
],
"emissiveTexture":{
"index":0
},
"extras":{},
"name":"TF_MD11_VC_FWDPANEL",
"normalTexture":{
"index":1,
"scale":1
},
"occlusionTexture":{
"index":2
},
"pbrMetallicRoughness":{
"baseColorFactor":[
1,
1,
1,
1
],
"baseColorTexture":{
"index":3
},
"metallicFactor":1,
"metallicRoughnessTexture":{
"index":2
},
"roughnessFactor":1
}
}
],
"meshes":[
@@ -233,62 +156,6 @@
"material":1
}
]
},
{
"name":"KH_MD11_MIP_HANDLEREL_BT",
"primitives":[
{
"attributes":{
"COLOR_0":12,
"POSITION":13,
"NORMAL":14,
"TEXCOORD_0":15,
"TEXCOORD_1":16
},
"indices":17,
"material":2
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
},
{
"sampler":0,
"source":3
}
],
"images":[
{
"mimeType":"image/png",
"name":"TF_MD11_VC_FWDPANEL_EMIS.PNG",
"uri":"../../../../../Blender/TF_MD11_VC_FWDPANEL_EMIS.PNG"
},
{
"mimeType":"image/png",
"name":"TF_MD11_VC_FWDPANEL_NORM.PNG",
"uri":"../../../../../Blender/TF_MD11_VC_FWDPANEL_NORM.PNG"
},
{
"mimeType":"image/png",
"name":"TF_MD11_VC_FWDPANEL_COMP.PNG",
"uri":"../../../../../Blender/TF_MD11_VC_FWDPANEL_COMP.PNG"
},
{
"mimeType":"image/png",
"name":"TF_MD11_VC_FWDPANEL_ALBD.PNG",
"uri":"../../../../../Blender/TF_MD11_VC_FWDPANEL_ALBD.PNG"
}
],
"accessors":[
@@ -388,53 +255,6 @@
},
{
"bufferView":12,
"componentType":5123,
"count":100,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":13,
"componentType":5126,
"count":100,
"max":[
0.00528302788734436,
0.0032533109188079834,
0.0052832067012786865
],
"min":[
-0.00528302788734436,
-0.0032517611980438232,
-0.005282849073410034
],
"type":"VEC3"
},
{
"bufferView":14,
"componentType":5126,
"count":100,
"type":"VEC3"
},
{
"bufferView":15,
"componentType":5126,
"count":100,
"type":"VEC2"
},
{
"bufferView":16,
"componentType":5126,
"count":100,
"type":"VEC2"
},
{
"bufferView":17,
"componentType":5123,
"count":432,
"type":"SCALAR"
},
{
"bufferView":18,
"componentType":5126,
"count":10,
"max":[
@@ -446,28 +266,10 @@
"type":"SCALAR"
},
{
"bufferView":19,
"bufferView":13,
"componentType":5126,
"count":10,
"type":"VEC3"
},
{
"bufferView":20,
"componentType":5126,
"count":9,
"max":[
0.3333333333333333
],
"min":[
0
],
"type":"SCALAR"
},
{
"bufferView":21,
"componentType":5126,
"count":9,
"type":"VEC3"
}
],
"bufferViews":[
@@ -543,72 +345,20 @@
"byteOffset":142104,
"target":34963
},
{
"buffer":0,
"byteLength":800,
"byteOffset":143448,
"target":34962
},
{
"buffer":0,
"byteLength":1200,
"byteOffset":144248,
"target":34962
},
{
"buffer":0,
"byteLength":1200,
"byteOffset":145448,
"target":34962
},
{
"buffer":0,
"byteLength":800,
"byteOffset":146648,
"target":34962
},
{
"buffer":0,
"byteLength":800,
"byteOffset":147448,
"target":34962
},
{
"buffer":0,
"byteLength":864,
"byteOffset":148248,
"target":34963
},
{
"buffer":0,
"byteLength":40,
"byteOffset":149112
"byteOffset":143448
},
{
"buffer":0,
"byteLength":120,
"byteOffset":149152
},
{
"buffer":0,
"byteLength":36,
"byteOffset":149272
},
{
"buffer":0,
"byteLength":108,
"byteOffset":149308
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
"byteOffset":143488
}
],
"buffers":[
{
"byteLength":149416,
"byteLength":143608,
"uri":"TFDi_Design_MD-11_Fixes.bin"
}
]
@@ -371,12 +371,4 @@ H<
^[
[X

M"   
      m
b
O
]
?
W
A
D
M"   
@@ -5,7 +5,7 @@
"tangent_space_convention":"DirectX"
}
},
"generator":"Khronos glTF Blender I/O v3.6.28 and Asobo Studio MSFS2024 Blender I/O v5.4.3 with Blender v3.6.19",
"generator":"Khronos glTF Blender I/O v3.6.28 and Asobo Studio MSFS2024 Blender I/O v5.4.4 with Blender v3.6.19",
"version":"2.0"
},
"extensionsUsed":[
@@ -20,8 +20,7 @@
"name":"Scene",
"nodes":[
0,
1,
2
1
]
}
],
@@ -48,26 +47,6 @@
0.0004000000189989805,
0
]
},
{
"extensions":{
"ASOBO_unique_id":{
"id":"KH_MD11_MIP_HANDLEREL_BT"
}
},
"mesh":2,
"name":"KH_MD11_MIP_HANDLEREL_BT",
"rotation":[
0,
0.8038567900657654,
-0.594822883605957,
4.405300621089948e-15
],
"translation":[
-0.0029689352959394455,
0.8800935745239258,
26.598054885864258
]
}
],
"animations":[
@@ -84,28 +63,9 @@
"name":"KH_MD11_MIP_STBY_AI_SLIP_RNG",
"samplers":[
{
"input":18,
"input":12,
"interpolation":"LINEAR",
"output":19
}
]
},
{
"channels":[
{
"sampler":0,
"target":{
"node":2,
"path":"translation"
}
}
],
"name":"KH_MD11_MIP_HANDLEREL_BT",
"samplers":[
{
"input":20,
"interpolation":"LINEAR",
"output":21
"output":13
}
]
}
@@ -162,43 +122,6 @@
"metallicFactor":1,
"roughnessFactor":1
}
},
{
"alphaMode":"OPAQUE",
"doubleSided":false,
"emissiveFactor":[
0,
0,
0
],
"emissiveTexture":{
"index":0
},
"extras":{},
"name":"TF_MD11_VC_FWDPANEL",
"normalTexture":{
"index":1,
"scale":1
},
"occlusionTexture":{
"index":2
},
"pbrMetallicRoughness":{
"baseColorFactor":[
1,
1,
1,
1
],
"baseColorTexture":{
"index":3
},
"metallicFactor":1,
"metallicRoughnessTexture":{
"index":2
},
"roughnessFactor":1
}
}
],
"meshes":[
@@ -233,62 +156,6 @@
"material":1
}
]
},
{
"name":"KH_MD11_MIP_HANDLEREL_BT",
"primitives":[
{
"attributes":{
"COLOR_0":12,
"POSITION":13,
"NORMAL":14,
"TEXCOORD_0":15,
"TEXCOORD_1":16
},
"indices":17,
"material":2
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
},
{
"sampler":0,
"source":3
}
],
"images":[
{
"mimeType":"image/png",
"name":"TF_MD11_VC_FWDPANEL_EMIS.PNG",
"uri":"../../../../../Blender/TF_MD11_VC_FWDPANEL_EMIS.PNG"
},
{
"mimeType":"image/png",
"name":"TF_MD11_VC_FWDPANEL_NORM.PNG",
"uri":"../../../../../Blender/TF_MD11_VC_FWDPANEL_NORM.PNG"
},
{
"mimeType":"image/png",
"name":"TF_MD11_VC_FWDPANEL_COMP.PNG",
"uri":"../../../../../Blender/TF_MD11_VC_FWDPANEL_COMP.PNG"
},
{
"mimeType":"image/png",
"name":"TF_MD11_VC_FWDPANEL_ALBD.PNG",
"uri":"../../../../../Blender/TF_MD11_VC_FWDPANEL_ALBD.PNG"
}
],
"accessors":[
@@ -388,53 +255,6 @@
},
{
"bufferView":12,
"componentType":5123,
"count":100,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":13,
"componentType":5126,
"count":100,
"max":[
0.00528302788734436,
0.0032533109188079834,
0.0052832067012786865
],
"min":[
-0.00528302788734436,
-0.0032517611980438232,
-0.005282849073410034
],
"type":"VEC3"
},
{
"bufferView":14,
"componentType":5126,
"count":100,
"type":"VEC3"
},
{
"bufferView":15,
"componentType":5126,
"count":100,
"type":"VEC2"
},
{
"bufferView":16,
"componentType":5126,
"count":100,
"type":"VEC2"
},
{
"bufferView":17,
"componentType":5123,
"count":432,
"type":"SCALAR"
},
{
"bufferView":18,
"componentType":5126,
"count":10,
"max":[
@@ -446,28 +266,10 @@
"type":"SCALAR"
},
{
"bufferView":19,
"bufferView":13,
"componentType":5126,
"count":10,
"type":"VEC3"
},
{
"bufferView":20,
"componentType":5126,
"count":9,
"max":[
0.3333333333333333
],
"min":[
0
],
"type":"SCALAR"
},
{
"bufferView":21,
"componentType":5126,
"count":9,
"type":"VEC3"
}
],
"bufferViews":[
@@ -543,72 +345,20 @@
"byteOffset":142104,
"target":34963
},
{
"buffer":0,
"byteLength":800,
"byteOffset":143448,
"target":34962
},
{
"buffer":0,
"byteLength":1200,
"byteOffset":144248,
"target":34962
},
{
"buffer":0,
"byteLength":1200,
"byteOffset":145448,
"target":34962
},
{
"buffer":0,
"byteLength":800,
"byteOffset":146648,
"target":34962
},
{
"buffer":0,
"byteLength":800,
"byteOffset":147448,
"target":34962
},
{
"buffer":0,
"byteLength":864,
"byteOffset":148248,
"target":34963
},
{
"buffer":0,
"byteLength":40,
"byteOffset":149112
"byteOffset":143448
},
{
"buffer":0,
"byteLength":120,
"byteOffset":149152
},
{
"buffer":0,
"byteLength":36,
"byteOffset":149272
},
{
"buffer":0,
"byteLength":108,
"byteOffset":149308
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
"byteOffset":143488
}
],
"buffers":[
{
"byteLength":149416,
"byteLength":143608,
"uri":"TFDi_Design_MD-11_Fixes.bin"
}
]
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<ModelInfo guid="{898d05c8-24b3-43cf-ae6d-c76f0a03f8c3}" version="1.1">
<LODS>
<LOD minSize="0.0" ModelFile="TFDi_Design_MD-11_Walk_P.gltf" />
</LODS>
<Behaviors></Behaviors>
</ModelInfo>
File diff suppressed because one or more lines are too long
@@ -0,0 +1,280 @@
{
"asset":{
"extensions":{
"ASOBO_normal_map_convention":{
"tangent_space_convention":"DirectX"
}
},
"generator":"Khronos glTF Blender I/O v3.6.28 and Asobo Studio MSFS2024 Blender I/O v5.4.4 with Blender v3.6.19",
"version":"2.0"
},
"extensionsUsed":[
"ASOBO_normal_map_convention",
"ASOBO_unique_id",
"ASOBO_material_invisible",
"ASOBO_tags"
],
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0
]
}
],
"nodes":[
{
"extensions":{
"ASOBO_unique_id":{
"id":"KH_collider"
}
},
"mesh":0,
"name":"KH_collider",
"translation":[
0,
1.0564844608306885,
0.4886360168457031
]
}
],
"materials":[
{
"alphaMode":"OPAQUE",
"doubleSided":false,
"emissiveFactor":[
0,
0,
0
],
"extensions":{
"ASOBO_material_invisible":{
"enabled":true
},
"ASOBO_tags":{
"tags":[
"Collision"
]
}
},
"extras":{},
"name":"TF_MD11_CABIN_COLLIDERS",
"pbrMetallicRoughness":{
"baseColorFactor":[
1,
1,
1,
1
],
"metallicFactor":1,
"roughnessFactor":1
}
}
],
"meshes":[
{
"name":"collider",
"primitives":[
{
"attributes":{
"COLOR_0":0,
"POSITION":1,
"NORMAL":2,
"TEXCOORD_0":3,
"TEXCOORD_1":4
},
"indices":5,
"material":0
},
{
"attributes":{
"COLOR_0":6,
"POSITION":7,
"NORMAL":8,
"TEXCOORD_0":9,
"TEXCOORD_1":10
},
"indices":11,
"material":0
}
]
}
],
"accessors":[
{
"bufferView":0,
"componentType":5123,
"count":2365,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":1,
"componentType":5126,
"count":2365,
"max":[
3.072699546813965,
1.2688779830932617,
23.94736099243164
],
"min":[
-3.072699546813965,
-1.2688778638839722,
-23.94736099243164
],
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":2365,
"type":"VEC3"
},
{
"bufferView":3,
"componentType":5126,
"count":2365,
"type":"VEC2"
},
{
"bufferView":4,
"componentType":5126,
"count":2365,
"type":"VEC2"
},
{
"bufferView":5,
"componentType":5123,
"count":9789,
"type":"SCALAR"
},
{
"bufferView":6,
"componentType":5123,
"count":67,
"normalized":true,
"type":"VEC4"
},
{
"bufferView":7,
"componentType":5126,
"count":67,
"max":[
2.8320136070251465,
0.8326348066329956,
-18.850662231445312
],
"min":[
1.535393238067627,
-1.1826108694076538,
-20.265697479248047
],
"type":"VEC3"
},
{
"bufferView":8,
"componentType":5126,
"count":67,
"type":"VEC3"
},
{
"bufferView":9,
"componentType":5126,
"count":67,
"type":"VEC2"
},
{
"bufferView":10,
"componentType":5126,
"count":67,
"type":"VEC2"
},
{
"bufferView":11,
"componentType":5123,
"count":168,
"type":"SCALAR"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":18920,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":28380,
"byteOffset":18920,
"target":34962
},
{
"buffer":0,
"byteLength":28380,
"byteOffset":47300,
"target":34962
},
{
"buffer":0,
"byteLength":18920,
"byteOffset":75680,
"target":34962
},
{
"buffer":0,
"byteLength":18920,
"byteOffset":94600,
"target":34962
},
{
"buffer":0,
"byteLength":19578,
"byteOffset":113520,
"target":34963
},
{
"buffer":0,
"byteLength":536,
"byteOffset":133100,
"target":34962
},
{
"buffer":0,
"byteLength":804,
"byteOffset":133636,
"target":34962
},
{
"buffer":0,
"byteLength":804,
"byteOffset":134440,
"target":34962
},
{
"buffer":0,
"byteLength":536,
"byteOffset":135244,
"target":34962
},
{
"buffer":0,
"byteLength":536,
"byteOffset":135780,
"target":34962
},
{
"buffer":0,
"byteLength":336,
"byteOffset":136316,
"target":34963
}
],
"buffers":[
{
"byteLength":136652,
"uri":"TFDi_Design_MD-11_Walk_P.bin"
}
]
}
@@ -0,0 +1,2 @@
[models]
normal=TFDi_Design_MD-11_Walk.xml
@@ -18,5 +18,13 @@ animation = ""
sound = ""
soundai = ""
[FLTSIM.2]
title = TFDi_Design_MD-11_Walk_PAX
model = "p_walk"
texture = ""
animation = ""
sound = ""
soundai = ""
[GENERAL]
category = SimpleObject
+22
View File
@@ -0,0 +1,22 @@
import fs from "fs";
const file = fs.readFileSync("TFDi_MD11_PAX_CABIN_LOD0.gltf", {
encoding: "utf-8",
});
const model = JSON.parse(file);
model.animations.forEach((anim) => {
if (anim.name.includes("MD11_CAB_OVHDBIN")) {
const id = Number.parseInt(anim.channels[0].target.node);
const node = model.nodes[id];
const child = model.nodes[node.children[0]];
console.log(
`<UseTemplate Name="MD11_Bin">
<NODE_NAME>${child.name}</NODE_NAME>
<ANIM_NAME>${anim.name}</ANIM_NAME>
</UseTemplate>`
);
}
});
+22
View File
@@ -0,0 +1,22 @@
import fs from "fs";
const file = fs.readFileSync("TFDi_MD11_PAX_CABIN_LOD0.gltf", {
encoding: "utf-8",
});
const model = JSON.parse(file);
model.animations.forEach((anim) => {
if (anim.name.includes("MD11_CAB_WINDOWBLINDS")) {
const id = Number.parseInt(anim.channels[0].target.node);
const node = model.nodes[id];
const child = model.nodes[node.children[0]];
console.log(
`<UseTemplate Name="MD11_Blind">
<NODE_NAME>${child.name}</NODE_NAME>
<ANIM_NAME>${anim.name}</ANIM_NAME>
</UseTemplate>`
);
}
});
+26
View File
@@ -0,0 +1,26 @@
import fs from "fs";
const file = fs.readFileSync("TFDi_MD11_PAX_CABIN_LOD0.gltf", {
encoding: "utf-8",
});
const model = JSON.parse(file);
model.animations.forEach((anim) => {
if (anim.name.includes("MD11_CAB_ECON_TRAY")) {
let done = false;
anim.channels.forEach((channel) => {
const id = Number.parseInt(channel.target.node);
const node = model.nodes[id];
if (!done && node.name.includes("Clip")) {
done = true;
console.log(
`<UseTemplate Name="MD11_TrayTable">
<NODE_NAME>${node.name}</NODE_NAME>
<ANIM_NAME>${anim.name}</ANIM_NAME>
</UseTemplate>`
);
}
});
}
});
+35
View File
@@ -0,0 +1,35 @@
import fs from "fs";
const file = fs.readFileSync("TFDi_MD11_PAX_CABIN_LOD0.gltf", {
encoding: "utf-8",
});
const model = JSON.parse(file);
model.animations.forEach((anim) => {
if (anim.name.includes("MD11_CAB_FIRST_TRAY")) {
let done = false;
anim.channels.forEach((channel) => {
const id = Number.parseInt(channel.target.node);
const node = model.nodes[id];
const child = model.nodes.find(
(_child, index) =>
node &&
node.children &&
node.children.includes(index) &&
_child.name.includes("WheelArm")
);
if (!done && child && child.name.includes("WheelArm")) {
done = true;
console.log(
`<UseTemplate Name="MD11_TrayTable">
<NODE_NAME>${child.name}</NODE_NAME>
<ANIM_NAME>${anim.name}</ANIM_NAME>
<ANIM_LENGTH>50</ANIM_LENGTH>
<ANIM_LAG>50</ANIM_LAG>
</UseTemplate>`
);
}
});
}
});
+1 -1
View File
@@ -1,6 +1,6 @@
<UserSettings>
<CheckedOutPackages>
<Package Name="xkhofmann-md-11"/>
<Package Name="xkhofmann-tfdidesign-md11-fixes"/>
</CheckedOutPackages>
<SelectedPackages/>
<Filter/>