Created a base UI style system. Implemented the Flight Menu to use the stock KSP style.
Created a base UI style system. Implemented the Flight Menu to use the stock KSP style.

 Binary files a/Assets/Plugins/KerbalEngineer.Unity.dll and b/Assets/Plugins/KerbalEngineer.Unity.dll differ
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &104452 --- !u!1 &104452
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22454998} - 224: {fileID: 22454998}
- 222: {fileID: 22296168} - 222: {fileID: 22296168}
- 114: {fileID: 11459182} - 114: {fileID: 11459182}
m_Layer: 5 m_Layer: 5
m_Name: Selected m_Name: Selected
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &114528 --- !u!1 &114528
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22468796} - 224: {fileID: 22468796}
- 222: {fileID: 22254028} - 222: {fileID: 22254028}
- 114: {fileID: 11494262} - 114: {fileID: 11494262}
- 114: {fileID: 11417302} - 114: {fileID: 11482720}
- 114: {fileID: 11415068} - 114: {fileID: 11400468}
m_Layer: 5 m_Layer: 5
m_Name: ToggleControlBar m_Name: ToggleControlBar
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &116014 --- !u!1 &116014
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22475412} - 224: {fileID: 22475412}
- 222: {fileID: 22223226} - 222: {fileID: 22223226}
- 114: {fileID: 11409704}  
- 114: {fileID: 11424646} - 114: {fileID: 11424646}
m_Layer: 5 m_Layer: 5
m_Name: Content m_Name: Content
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &122098 --- !u!1 &122098
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22401100} - 224: {fileID: 22401100}
- 222: {fileID: 22201528} - 222: {fileID: 22201528}
- 114: {fileID: 11404586} - 114: {fileID: 11404586}
- 114: {fileID: 11461688} - 114: {fileID: 11461688}
- 114: {fileID: 11420706} - 114: {fileID: 11420706}
  - 114: {fileID: 11482140}
m_Layer: 5 m_Layer: 5
m_Name: NewCustomSection m_Name: NewCustomSection
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &126098 --- !u!1 &126098
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22476196} - 224: {fileID: 22476196}
- 222: {fileID: 22270862} - 222: {fileID: 22270862}
- 114: {fileID: 11423044} - 114: {fileID: 11423044}
- 114: {fileID: 11485532} - 114: {fileID: 11485532}
- 225: {fileID: 22567868} - 225: {fileID: 22567868}
- 114: {fileID: 11415294} - 114: {fileID: 11415294}
  - 114: {fileID: 11447982}
  - 114: {fileID: 11478508}
m_Layer: 5 m_Layer: 5
m_Name: FlightMenu m_Name: FlightMenu
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &133376 --- !u!1 &133376
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22478174} - 224: {fileID: 22478174}
- 114: {fileID: 11443382} - 114: {fileID: 11443382}
m_Layer: 5 m_Layer: 5
m_Name: Controls m_Name: Controls
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &137786 --- !u!1 &137786
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22444606} - 224: {fileID: 22444606}
- 222: {fileID: 22267348} - 222: {fileID: 22267348}
- 114: {fileID: 11465882} - 114: {fileID: 11465882}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &138760 --- !u!1 &138760
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22409936} - 224: {fileID: 22409936}
- 222: {fileID: 22255938} - 222: {fileID: 22255938}
- 114: {fileID: 11403342} - 114: {fileID: 11403342}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &150266 --- !u!1 &150266
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22463980} - 224: {fileID: 22463980}
- 222: {fileID: 22210360} - 222: {fileID: 22210360}
- 114: {fileID: 11475868} - 114: {fileID: 11475868}
m_Layer: 5 m_Layer: 5
m_Name: Selected m_Name: Selected
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &156848 --- !u!1 &156848
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22483410} - 224: {fileID: 22483410}
- 222: {fileID: 22267572} - 222: {fileID: 22267572}
- 114: {fileID: 11463504} - 114: {fileID: 11463504}
- 114: {fileID: 11453198} - 114: {fileID: 11453198}
  - 114: {fileID: 11400370}
m_Layer: 5 m_Layer: 5
m_Name: Titlebar m_Name: Titlebar
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &157290 --- !u!1 &157290
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22435482} - 224: {fileID: 22435482}
- 114: {fileID: 11462752} - 114: {fileID: 11462752}
- 114: {fileID: 11483978} - 114: {fileID: 11483978}
m_Layer: 5 m_Layer: 5
m_Name: Sections m_Name: Sections
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &172308 --- !u!1 &172308
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22401786} - 224: {fileID: 22401786}
- 222: {fileID: 22247322} - 222: {fileID: 22247322}
- 114: {fileID: 11439582} - 114: {fileID: 11439582}
m_Layer: 5 m_Layer: 5
m_Name: label m_Name: label
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &193852 --- !u!1 &193852
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22411946} - 224: {fileID: 22411946}
- 222: {fileID: 22255200} - 222: {fileID: 22255200}
- 114: {fileID: 11465050} - 114: {fileID: 11465050}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &194088 --- !u!1 &194088
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22469574} - 224: {fileID: 22469574}
- 222: {fileID: 22281674} - 222: {fileID: 22281674}
- 114: {fileID: 11498756} - 114: {fileID: 11498756}
- 114: {fileID: 11451984} - 114: {fileID: 11483870}
- 114: {fileID: 11485338} - 114: {fileID: 11489252}
m_Layer: 5 m_Layer: 5
m_Name: ToggleShowEngineer m_Name: ToggleShowEngineer
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
  --- !u!114 &11400370
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 156848}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_ElementType: 1
  --- !u!114 &11400468
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 114528}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Navigation:
  m_Mode: 3
  m_SelectOnUp: {fileID: 0}
  m_SelectOnDown: {fileID: 0}
  m_SelectOnLeft: {fileID: 0}
  m_SelectOnRight: {fileID: 0}
  m_Transition: 0
  m_Colors:
  m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
  m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1}
  m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1}
  m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
  m_ColorMultiplier: 1
  m_FadeDuration: .100000001
  m_SpriteState:
  m_HighlightedSprite: {fileID: 0}
  m_PressedSprite: {fileID: 0}
  m_DisabledSprite: {fileID: 0}
  m_AnimationTriggers:
  m_NormalTrigger: Normal
  m_HighlightedTrigger: Highlighted
  m_PressedTrigger: Pressed
  m_DisabledTrigger: Disabled
  m_Interactable: 1
  m_TargetGraphic: {fileID: 11494262}
  toggleTransition: 0
  graphic: {fileID: 11459182}
  m_Group: {fileID: 0}
  onValueChanged:
  m_PersistentCalls:
  m_Calls:
  - m_Target: {fileID: 11415294}
  m_MethodName: SetControlBarVisible
  m_Mode: 0
  m_Arguments:
  m_ObjectArgument: {fileID: 0}
  m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
  m_IntArgument: 0
  m_FloatArgument: 0
  m_StringArgument:
  m_BoolArgument: 0
  m_CallState: 2
  m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
  Culture=neutral, PublicKeyToken=null
  m_IsOn: 0
--- !u!114 &11403342 --- !u!114 &11403342
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 138760} m_GameObject: {fileID: 138760}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 10 m_FontSize: 10
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 4 m_Alignment: 4
m_RichText: 1 m_RichText: 1
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: SHOW ENGINEER m_Text: SHOW ENGINEER
--- !u!114 &11404586 --- !u!114 &11404586
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 122098} m_GameObject: {fileID: 122098}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .501960814} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11409704 --- !u!114 &11415294
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 116014} m_GameObject: {fileID: 126098}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 571159103, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_ShowEngineerToggle: {fileID: 11489252}
m_Color: {r: .313725501, g: .313725501, b: .313725501, a: .70588237} m_ControlBarToggle: {fileID: 11400468}
m_RaycastTarget: 1 m_MenuSectionPrefab: {fileID: 130812, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
m_OnCullStateChanged: m_SectionsTransform: {fileID: 22435482}
m_PersistentCalls: m_FastFadeDuration: .200000003
m_Calls: [] m_SlowFadeDuration: .200000003
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, --- !u!114 &11420706
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null MonoBehaviour:
m_Sprite: {fileID: 0} m_ObjectHideFlags: 1
m_Type: 1 m_PrefabParentObject: {fileID: 0}
m_PreserveAspect: 0 m_PrefabInternal: {fileID: 100100000}
m_FillCenter: 1 m_GameObject: {fileID: 122098}
m_FillMethod: 4 m_Enabled: 1
m_FillAmount: 1 m_EditorHideFlags: 0
m_FillClockwise: 1 m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_FillOrigin: 0  
--- !u!114 &11415068  
MonoBehaviour:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
m_GameObject: {fileID: 114528}  
m_Enabled: 1  
m_EditorHideFlags: 0  
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}  
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Navigation: m_Navigation:
m_Mode: 3 m_Mode: 3
m_SelectOnUp: {fileID: 0} m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0} m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0} m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0} m_SelectOnRight: {fileID: 0}
m_Transition: 1 m_Transition: 0
m_Colors:  
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}  
m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}  
m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}  
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}  
m_ColorMultiplier: 1  
m_FadeDuration: .100000001  
m_SpriteState:  
m_HighlightedSprite: {fileID: 0}  
m_PressedSprite: {fileID: 0}  
m_DisabledSprite: {fileID: 0}  
m_AnimationTriggers:  
m_NormalTrigger: Normal  
m_HighlightedTrigger: Highlighted  
m_PressedTrigger: Pressed  
m_DisabledTrigger: Disabled  
m_Interactable: 1  
m_TargetGraphic: {fileID: 11494262}  
toggleTransition: 1  
graphic: {fileID: 11459182}  
m_Group: {fileID: 0}  
onValueChanged:  
m_PersistentCalls:  
m_Calls:  
- m_Target: {fileID: 11415294}  
m_MethodName: SetControlBarVisible  
m_Mode: 0  
m_Arguments:  
m_ObjectArgument: {fileID: 0}  
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine  
m_IntArgument: 0  
m_FloatArgument: 0  
m_StringArgument:  
m_BoolArgument: 0  
m_CallState: 2  
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,  
Culture=neutral, PublicKeyToken=null  
m_IsOn: 0  
--- !u!114 &11415294  
MonoBehaviour:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
m_GameObject: {fileID: 126098}  
m_Enabled: 1  
m_EditorHideFlags: 0  
m_Script: {fileID: 571159103, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}  
m_Name:  
m_EditorClassIdentifier:  
m_ShowEngineerToggle: {fileID: 11485338}  
m_ControlBarToggle: {fileID: 11415068}  
m_MenuSectionPrefab: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2}  
m_SectionsTransform: {fileID: 22435482}  
m_FastFadeDuration: .100000001  
m_SlowFadeDuration: .300000012  
--- !u!114 &11417302  
MonoBehaviour:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
m_GameObject: {fileID: 114528}  
m_Enabled: 1  
m_EditorHideFlags: 0  
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}  
m_Name:  
m_EditorClassIdentifier:  
m_IgnoreLayout: 0  
m_MinWidth: -1  
m_MinHeight: -1  
m_PreferredWidth: -1  
m_PreferredHeight: 15  
m_FlexibleWidth: -1  
m_FlexibleHeight: -1  
--- !u!114 &11420706  
MonoBehaviour:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
m_GameObject: {fileID: 122098}  
m_Enabled: 1  
m_EditorHideFlags: 0  
m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}  
m_Name:  
m_EditorClassIdentifier:  
m_Navigation:  
m_Mode: 3  
m_SelectOnUp: {fileID: 0}  
m_SelectOnDown: {fileID: 0}  
m_SelectOnLeft: {fileID: 0}  
m_SelectOnRight: {fileID: 0}  
m_Transition: 1  
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1} m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1} m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
m_ColorMultiplier: 1 m_ColorMultiplier: 1
m_FadeDuration: .100000001 m_FadeDuration: .100000001
m_SpriteState: m_SpriteState:
m_HighlightedSprite: {fileID: 0} m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0} m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0} m_DisabledSprite: {fileID: 0}
m_AnimationTriggers: m_AnimationTriggers:
m_NormalTrigger: Normal m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 11404586} m_TargetGraphic: {fileID: 11404586}
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 11415294} - m_Target: {fileID: 11415294}
m_MethodName: NewCustomSection m_MethodName: NewCustomSection
m_Mode: 1 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0 m_IntArgument: 0
m_FloatArgument: 0 m_FloatArgument: 0
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null Culture=neutral, PublicKeyToken=null
--- !u!114 &11423044 --- !u!114 &11423044
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 126098} m_GameObject: {fileID: 126098}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_HorizontalFit: 0 m_HorizontalFit: 0
m_VerticalFit: 2 m_VerticalFit: 2
--- !u!114 &11424646 --- !u!114 &11424646
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 116014} m_GameObject: {fileID: 116014}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Padding: m_Padding:
m_Left: 4 m_Left: 4
m_Right: 4 m_Right: 4
m_Top: 4 m_Top: 4
m_Bottom: 4 m_Bottom: 4
m_ChildAlignment: 0 m_ChildAlignment: 0
m_Spacing: 4 m_Spacing: 2
m_ChildForceExpandWidth: 1 m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0 m_ChildForceExpandHeight: 0
--- !u!114 &11439582 --- !u!114 &11439582
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172308} m_GameObject: {fileID: 172308}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: 1} m_Color: {r: .800000072, g: 1, b: 0, a: 1}
m_RaycastTarget: 0 m_RaycastTarget: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 12 m_FontSize: 12
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 3 m_Alignment: 3
m_RichText: 0 m_RichText: 0
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: FLIGHT ENGINEER m_Text: FLIGHT ENGINEER
--- !u!114 &11443382 --- !u!114 &11443382
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 133376} m_GameObject: {fileID: 133376}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 15 m_PreferredHeight: 18
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11451984 --- !u!114 &11447982
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194088} m_GameObject: {fileID: 126098}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_Material: {fileID: 0}
m_MinWidth: -1 m_Color: {r: 1, g: 1, b: 1, a: 1}
m_MinHeight: -1 m_RaycastTarget: 1
m_PreferredWidth: -1 m_OnCullStateChanged:
m_PreferredHeight: 15 m_PersistentCalls:
m_FlexibleWidth: -1 m_Calls: []
m_FlexibleHeight: -1 m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  m_Sprite: {fileID: 0}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
--- !u!114 &11453198 --- !u!114 &11453198
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 156848} m_GameObject: {fileID: 156848}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 20 m_PreferredHeight: 20
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11459182 --- !u!114 &11459182
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 104452} m_GameObject: {fileID: 104452}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .784313738} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11461688 --- !u!114 &11461688
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 122098} m_GameObject: {fileID: 122098}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 15 m_PreferredHeight: 18
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11462752 --- !u!114 &11462752
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 157290} m_GameObject: {fileID: 157290}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Padding: m_Padding:
m_Left: 0 m_Left: 0
m_Right: 0 m_Right: 0
m_Top: 4 m_Top: 1
m_Bottom: 4 m_Bottom: 1
m_ChildAlignment: 0 m_ChildAlignment: 0
m_Spacing: 4 m_Spacing: 0
m_ChildForceExpandWidth: 1 m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0 m_ChildForceExpandHeight: 0
--- !u!114 &11463504 --- !u!114 &11463504
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 156848} m_GameObject: {fileID: 156848}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .183823526, g: .183823526, b: .183823526, a: .90196079} m_Color: {r: .600000024, g: .600000024, b: .600000024, a: .784313738}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11465050 --- !u!114 &11465050
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 193852} m_GameObject: {fileID: 193852}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 10 m_FontSize: 10
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 4 m_Alignment: 4
m_RichText: 1 m_RichText: 1
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: CONTROL BAR m_Text: CONTROL BAR
--- !u!114 &11465882 --- !u!114 &11465882
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 137786} m_GameObject: {fileID: 137786}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 10 m_FontSize: 10
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 4 m_Alignment: 4
m_RichText: 1 m_RichText: 1
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: NEW CUSTOM SECTION m_Text: NEW CUSTOM SECTION
--- !u!114 &11475868 --- !u!114 &11475868
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 150266} m_GameObject: {fileID: 150266}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .784313738} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
  --- !u!114 &11478508
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 126098}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_ElementType: 1
  --- !u!114 &11482140
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 122098}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_ElementType: 3
  --- !u!114 &11482720
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 114528}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_ElementType: 4
  --- !u!114 &11483870
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 194088}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_ElementType: 4
--- !u!114 &11483978 --- !u!114 &11483978
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 157290} m_GameObject: {fileID: 157290}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_HorizontalFit: 0 m_HorizontalFit: 0
m_VerticalFit: 2 m_VerticalFit: 2
--- !u!114 &11485338 --- !u!114 &11485532
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 126098}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Padding:
  m_Left: 0
  m_Right: 0
  m_Top: 0
  m_Bottom: 0
  m_ChildAlignment: 0
  m_Spacing: 0
  m_ChildForceExpandWidth: 1
  m_ChildForceExpandHeight: 1
  --- !u!114 &11489252
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194088} m_GameObject: {fileID: 194088}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Navigation: m_Navigation:
m_Mode: 3 m_Mode: 3
m_SelectOnUp: {fileID: 0} m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0} m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0} m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0} m_SelectOnRight: {fileID: 0}
m_Transition: 1 m_Transition: 0
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1} m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1}
m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1} m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1}
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
m_ColorMultiplier: 1 m_ColorMultiplier: 1
m_FadeDuration: .100000001 m_FadeDuration: .100000001
m_SpriteState: m_SpriteState:
m_HighlightedSprite: {fileID: 0} m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0} m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0} m_DisabledSprite: {fileID: 0}
m_AnimationTriggers: m_AnimationTriggers:
m_NormalTrigger: Normal m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 11498756} m_TargetGraphic: {fileID: 11498756}
toggleTransition: 1 toggleTransition: 0
graphic: {fileID: 11475868} graphic: {fileID: 11475868}
m_Group: {fileID: 0} m_Group: {fileID: 0}
onValueChanged: onValueChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 11415294} - m_Target: {fileID: 11415294}
m_MethodName: SetDisplayStackVisible m_MethodName: SetDisplayStackVisible
m_Mode: 0 m_Mode: 0
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0 m_IntArgument: 0
m_FloatArgument: 0 m_FloatArgument: 0
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null Culture=neutral, PublicKeyToken=null
m_IsOn: 0 m_IsOn: 0
--- !u!114 &11485532  
MonoBehaviour:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
m_GameObject: {fileID: 126098}  
m_Enabled: 1  
m_EditorHideFlags: 0  
m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}  
m_Name:  
m_EditorClassIdentifier:  
m_Padding:  
m_Left: 0  
m_Right: 0  
m_Top: 0  
m_Bottom: 0  
m_ChildAlignment: 0  
m_Spacing: 0  
m_ChildForceExpandWidth: 1  
m_ChildForceExpandHeight: 1  
--- !u!114 &11494262 --- !u!114 &11494262
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 114528} m_GameObject: {fileID: 114528}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .501960814} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11498756 --- !u!114 &11498756
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194088} m_GameObject: {fileID: 194088}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .501960814} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!222 &22201528 --- !u!222 &22201528
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 122098} m_GameObject: {fileID: 122098}
--- !u!222 &22210360 --- !u!222 &22210360
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 150266} m_GameObject: {fileID: 150266}
--- !u!222 &22223226 --- !u!222 &22223226
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 116014} m_GameObject: {fileID: 116014}
--- !u!222 &22247322 --- !u!222 &22247322
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172308} m_GameObject: {fileID: 172308}
--- !u!222 &22254028 --- !u!222 &22254028
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 114528} m_GameObject: {fileID: 114528}
--- !u!222 &22255200 --- !u!222 &22255200
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 193852} m_GameObject: {fileID: 193852}
--- !u!222 &22255938 --- !u!222 &22255938
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 138760} m_GameObject: {fileID: 138760}
--- !u!222 &22267348 --- !u!222 &22267348
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 137786} m_GameObject: {fileID: 137786}
--- !u!222 &22267572 --- !u!222 &22267572
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 156848} m_GameObject: {fileID: 156848}
--- !u!222 &22270862 --- !u!222 &22270862
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 126098} m_GameObject: {fileID: 126098}
--- !u!222 &22281674 --- !u!222 &22281674
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194088} m_GameObject: {fileID: 194088}
--- !u!222 &22296168 --- !u!222 &22296168
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 104452} m_GameObject: {fileID: 104452}
--- !u!224 &22401100 --- !u!224 &22401100
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 122098} m_GameObject: {fileID: 122098}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22444606} - {fileID: 22444606}
m_Father: {fileID: 22475412} m_Father: {fileID: 22475412}
m_RootOrder: 2 m_RootOrder: 2
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22401786 --- !u!224 &22401786
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172308} m_GameObject: {fileID: 172308}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22483410} m_Father: {fileID: 22483410}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 2.5, y: 0} m_AnchoredPosition: {x: 2.5, y: 0}
m_SizeDelta: {x: -5, y: 0} m_SizeDelta: {x: -5, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22409936 --- !u!224 &22409936
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 138760} m_GameObject: {fileID: 138760}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22469574} m_Father: {fileID: 22469574}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22411946 --- !u!224 &22411946
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 193852} m_GameObject: {fileID: 193852}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22468796} m_Father: {fileID: 22468796}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22435482 --- !u!224 &22435482
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 157290} m_GameObject: {fileID: 157290}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22475412} m_Father: {fileID: 22475412}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22444606 --- !u!224 &22444606
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 137786} m_GameObject: {fileID: 137786}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22401100} m_Father: {fileID: 22401100}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22454998 --- !u!224 &22454998
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 104452} m_GameObject: {fileID: 104452}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22468796} m_Father: {fileID: 22468796}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22463980 --- !u!224 &22463980
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 150266} m_GameObject: {fileID: 150266}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22469574} m_Father: {fileID: 22469574}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22468796 --- !u!224 &22468796
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 114528} m_GameObject: {fileID: 114528}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22454998} - {fileID: 22454998}
- {fileID: 22411946} - {fileID: 22411946}
m_Father: {fileID: 22478174} m_Father: {fileID: 22478174}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: .5, y: 0} m_AnchorMin: {x: .5, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 1, y: 0} m_AnchoredPosition: {x: 1, y: 0}
m_SizeDelta: {x: -2, y: 0} m_SizeDelta: {x: -2, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22469574 --- !u!224 &22469574
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194088} m_GameObject: {fileID: 194088}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22463980} - {fileID: 22463980}
- {fileID: 22409936} - {fileID: 22409936}
m_Father: {fileID: 22478174} m_Father: {fileID: 22478174}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: .5, y: 1} m_AnchorMax: {x: .5, y: 1}
m_AnchoredPosition: {x: -1, y: 0} m_AnchoredPosition: {x: -1, y: 0}
m_SizeDelta: {x: -2, y: 0} m_SizeDelta: {x: -2, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22475412 --- !u!224 &22475412
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 116014} m_GameObject: {fileID: 116014}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22478174} - {fileID: 22478174}
- {fileID: 22435482} - {fileID: 22435482}
- {fileID: 22401100} - {fileID: 22401100}
m_Father: {fileID: 22476196} m_Father: {fileID: 22476196}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22476196 --- !u!224 &22476196
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 126098} m_GameObject: {fileID: 126098}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22483410} - {fileID: 22483410}
- {fileID: 22475412} - {fileID: 22475412}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: .5, y: .5} m_AnchorMin: {x: .5, y: .5}
m_AnchorMax: {x: .5, y: .5} m_AnchorMax: {x: .5, y: .5}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 250, y: 0} m_SizeDelta: {x: 250, y: 0}
m_Pivot: {x: 1, y: 0} m_Pivot: {x: 1, y: 0}
--- !u!224 &22478174 --- !u!224 &22478174
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 133376} m_GameObject: {fileID: 133376}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22469574} - {fileID: 22469574}
- {fileID: 22468796} - {fileID: 22468796}
m_Father: {fileID: 22475412} m_Father: {fileID: 22475412}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22483410 --- !u!224 &22483410
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 156848} m_GameObject: {fileID: 156848}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22401786} - {fileID: 22401786}
m_Father: {fileID: 22476196} m_Father: {fileID: 22476196}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: 1} m_Pivot: {x: .5, y: 1}
--- !u!225 &22567868 --- !u!225 &22567868
CanvasGroup: CanvasGroup:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 126098} m_GameObject: {fileID: 126098}
m_Enabled: 1 m_Enabled: 1
m_Alpha: 1 m_Alpha: 1
m_Interactable: 1 m_Interactable: 1
m_BlocksRaycasts: 1 m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0 m_IgnoreParentGroups: 0
--- !u!1001 &100100000 --- !u!1001 &100100000
Prefab: Prefab:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
serializedVersion: 2 serializedVersion: 2
m_Modification: m_Modification:
m_TransformParent: {fileID: 0} m_TransformParent: {fileID: 0}
m_Modifications: m_Modifications:
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_FastFadeDuration propertyPath: m_FastFadeDuration
value: .100000001 value: .100000001
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_SlowFadeDuration propertyPath: m_SlowFadeDuration
value: .200000003 value: .200000003
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_ContentTransform propertyPath: m_ContentTransform
value: value:
objectReference: {fileID: 22475412} objectReference: {fileID: 22475412}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_SectionPrefab propertyPath: m_SectionPrefab
value: value:
objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2} objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_MenuSectionPrefab propertyPath: m_MenuSectionPrefab
value: value:
objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2} objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2}
m_RemovedComponents: [] m_RemovedComponents: []
m_ParentPrefab: {fileID: 0} m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 126098} m_RootGameObject: {fileID: 126098}
m_IsPrefabParent: 1 m_IsPrefabParent: 1
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &121376 --- !u!1 &121376
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22409126} - 224: {fileID: 22409126}
- 222: {fileID: 22266612} - 222: {fileID: 22266612}
- 114: {fileID: 11461446} - 114: {fileID: 11461446}
- 114: {fileID: 11496274}  
- 114: {fileID: 11436568} - 114: {fileID: 11436568}
  - 114: {fileID: 11403482}
m_Layer: 5 m_Layer: 5
m_Name: ToggleDisplay m_Name: ToggleDisplay
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &121536 --- !u!1 &121536
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22446728} - 224: {fileID: 22446728}
- 222: {fileID: 22259916} - 222: {fileID: 22259916}
- 114: {fileID: 11418436} - 114: {fileID: 11418436}
m_Layer: 5 m_Layer: 5
m_Name: Selected m_Name: Selected
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &130136 --- !u!1 &130136
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22444842} - 224: {fileID: 22444842}
- 222: {fileID: 22269896} - 222: {fileID: 22269896}
- 114: {fileID: 11449350} - 114: {fileID: 11449350}
- 114: {fileID: 11489918}  
- 114: {fileID: 11421724} - 114: {fileID: 11421724}
  - 114: {fileID: 11411294}
m_Layer: 5 m_Layer: 5
m_Name: ToggleEdit m_Name: ToggleEdit
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &130812 --- !u!1 &130812
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22478272} - 224: {fileID: 22478272}
- 114: {fileID: 11431788} - 114: {fileID: 11431788}
- 114: {fileID: 11494744} - 114: {fileID: 11494744}
m_Layer: 5 m_Layer: 5
m_Name: FlightMenuSection m_Name: FlightMenuSection
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &151828 --- !u!1 &151828
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22485856} - 224: {fileID: 22485856}
- 222: {fileID: 22274980} - 222: {fileID: 22274980}
- 114: {fileID: 11408784} - 114: {fileID: 11408784}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &172700 --- !u!1 &172700
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22483442} - 224: {fileID: 22483442}
- 222: {fileID: 22246486} - 222: {fileID: 22246486}
- 114: {fileID: 11462740} - 114: {fileID: 11462740}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &178618 --- !u!1 &178618
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22469204} - 224: {fileID: 22469204}
- 222: {fileID: 22219086} - 222: {fileID: 22219086}
- 114: {fileID: 11484356} - 114: {fileID: 11484356}
m_Layer: 5 m_Layer: 5
m_Name: Selected m_Name: Selected
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
  --- !u!114 &11403482
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 121376}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_ElementType: 4
--- !u!114 &11408784 --- !u!114 &11408784
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 151828} m_GameObject: {fileID: 151828}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 10 m_FontSize: 10
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 4 m_Alignment: 4
m_RichText: 1 m_RichText: 1
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: DISPLAY m_Text: DISPLAY
  --- !u!114 &11411294
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 130136}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_ElementType: 4
--- !u!114 &11418436 --- !u!114 &11418436
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121536} m_GameObject: {fileID: 121536}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .784313738} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11421724 --- !u!114 &11421724
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130136} m_GameObject: {fileID: 130136}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Navigation: m_Navigation:
m_Mode: 3 m_Mode: 3
m_SelectOnUp: {fileID: 0} m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0} m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0} m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0} m_SelectOnRight: {fileID: 0}
m_Transition: 1 m_Transition: 0
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1} m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1} m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
m_ColorMultiplier: 1 m_ColorMultiplier: 1
m_FadeDuration: .100000001 m_FadeDuration: .100000001
m_SpriteState: m_SpriteState:
m_HighlightedSprite: {fileID: 0} m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0} m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0} m_DisabledSprite: {fileID: 0}
m_AnimationTriggers: m_AnimationTriggers:
m_NormalTrigger: Normal m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 11449350} m_TargetGraphic: {fileID: 11449350}
toggleTransition: 1 toggleTransition: 1
graphic: {fileID: 11484356} graphic: {fileID: 11484356}
m_Group: {fileID: 0} m_Group: {fileID: 0}
onValueChanged: onValueChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 11494744} - m_Target: {fileID: 11494744}
m_MethodName: SetEditorVisible m_MethodName: SetEditorVisible
m_Mode: 0 m_Mode: 0
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0 m_IntArgument: 0
m_FloatArgument: 0 m_FloatArgument: 0
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null Culture=neutral, PublicKeyToken=null
m_IsOn: 0 m_IsOn: 0
--- !u!114 &11431788 --- !u!114 &11431788
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130812} m_GameObject: {fileID: 130812}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 15 m_PreferredHeight: 18
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11436568 --- !u!114 &11436568
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121376} m_GameObject: {fileID: 121376}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Navigation: m_Navigation:
m_Mode: 3 m_Mode: 3
m_SelectOnUp: {fileID: 0} m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0} m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0} m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0} m_SelectOnRight: {fileID: 0}
m_Transition: 1 m_Transition: 0
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1} m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1} m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
m_ColorMultiplier: 1 m_ColorMultiplier: 1
m_FadeDuration: .100000001 m_FadeDuration: .100000001
m_SpriteState: m_SpriteState:
m_HighlightedSprite: {fileID: 0} m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0} m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0} m_DisabledSprite: {fileID: 0}
m_AnimationTriggers: m_AnimationTriggers:
m_NormalTrigger: Normal m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 11461446} m_TargetGraphic: {fileID: 11461446}
toggleTransition: 1 toggleTransition: 1
graphic: {fileID: 11418436} graphic: {fileID: 11418436}
m_Group: {fileID: 0} m_Group: {fileID: 0}
onValueChanged: onValueChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 11494744} - m_Target: {fileID: 11494744}
m_MethodName: SetDisplayVisible m_MethodName: SetDisplayVisible
m_Mode: 0 m_Mode: 0
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0 m_IntArgument: 0
m_FloatArgument: 0 m_FloatArgument: 0
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null Culture=neutral, PublicKeyToken=null
m_IsOn: 0 m_IsOn: 0
--- !u!114 &11449350 --- !u!114 &11449350
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130136} m_GameObject: {fileID: 130136}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .501960814} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11461446 --- !u!114 &11461446
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121376} m_GameObject: {fileID: 121376}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .501960814} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11462740 --- !u!114 &11462740
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172700} m_GameObject: {fileID: 172700}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 10 m_FontSize: 10
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 4 m_Alignment: 4
m_RichText: 1 m_RichText: 1
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: EDIT m_Text: EDIT
--- !u!114 &11484356 --- !u!114 &11484356
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 178618} m_GameObject: {fileID: 178618}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .784313738} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11489918  
MonoBehaviour:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
m_GameObject: {fileID: 130136}  
m_Enabled: 1  
m_EditorHideFlags: 0  
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}  
m_Name:  
m_EditorClassIdentifier:  
m_IgnoreLayout: 0  
m_MinWidth: -1  
m_MinHeight: -1  
m_PreferredWidth: -1  
m_PreferredHeight: 20  
m_FlexibleWidth: -1  
m_FlexibleHeight: -1  
--- !u!114 &11494744 --- !u!114 &11494744
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130812} m_GameObject: {fileID: 130812}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -1842827791, guid: a3a55138b08428847a08c7b48fe72efe, type: 3} m_Script: {fileID: -1842827791, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_DisplayToggle: {fileID: 11436568} m_DisplayToggle: {fileID: 11436568}
m_DisplayText: {fileID: 11408784} m_DisplayText: {fileID: 11408784}
m_EditToggle: {fileID: 11421724} m_EditToggle: {fileID: 11421724}
--- !u!114 &11496274  
MonoBehaviour:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
m_GameObject: {fileID: 121376}  
m_Enabled: 1  
m_EditorHideFlags: 0  
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}  
m_Name:  
m_EditorClassIdentifier:  
m_IgnoreLayout: 0  
m_MinWidth: -1  
m_MinHeight: -1  
m_PreferredWidth: -1  
m_PreferredHeight: 20  
m_FlexibleWidth: -1  
m_FlexibleHeight: -1  
--- !u!222 &22219086 --- !u!222 &22219086
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 178618} m_GameObject: {fileID: 178618}
--- !u!222 &22246486 --- !u!222 &22246486
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172700} m_GameObject: {fileID: 172700}
--- !u!222 &22259916 --- !u!222 &22259916
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121536} m_GameObject: {fileID: 121536}
--- !u!222 &22266612 --- !u!222 &22266612
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121376} m_GameObject: {fileID: 121376}
--- !u!222 &22269896 --- !u!222 &22269896
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130136} m_GameObject: {fileID: 130136}
--- !u!222 &22274980 --- !u!222 &22274980
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 151828} m_GameObject: {fileID: 151828}
--- !u!224 &22409126 --- !u!224 &22409126
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121376} m_GameObject: {fileID: 121376}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22446728} - {fileID: 22446728}
- {fileID: 22485856} - {fileID: 22485856}
m_Father: {fileID: 22478272} m_Father: {fileID: 22478272}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: .75, y: 1} m_AnchorMax: {x: .75, y: 1}
m_AnchoredPosition: {x: -1, y: 0} m_AnchoredPosition: {x: -1, y: 0}
m_SizeDelta: {x: -2, y: 0} m_SizeDelta: {x: -2, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22444842 --- !u!224 &22444842
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130136} m_GameObject: {fileID: 130136}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22469204} - {fileID: 22469204}
- {fileID: 22483442} - {fileID: 22483442}
m_Father: {fileID: 22478272} m_Father: {fileID: 22478272}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: .75, y: 0} m_AnchorMin: {x: .75, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 1, y: 0} m_AnchoredPosition: {x: 1, y: 0}
m_SizeDelta: {x: -2, y: 0} m_SizeDelta: {x: -2, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22446728 --- !u!224 &22446728
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121536} m_GameObject: {fileID: 121536}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22409126} m_Father: {fileID: 22409126}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22469204 --- !u!224 &22469204
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 178618} m_GameObject: {fileID: 178618}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22444842} m_Father: {fileID: 22444842}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22478272 --- !u!224 &22478272
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130812} m_GameObject: {fileID: 130812}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22409126} - {fileID: 22409126}
- {fileID: 22444842} - {fileID: 22444842}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22483442 --- !u!224 &22483442
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172700} m_GameObject: {fileID: 172700}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22444842} m_Father: {fileID: 22444842}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22485856 --- !u!224 &22485856
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 151828} m_GameObject: {fileID: 151828}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22409126} m_Father: {fileID: 22409126}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!1001 &100100000 --- !u!1001 &100100000
Prefab: Prefab:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
serializedVersion: 2 serializedVersion: 2
m_Modification: m_Modification:
m_TransformParent: {fileID: 0} m_TransformParent: {fileID: 0}
m_Modifications: m_Modifications:
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value: value:
objectReference: {fileID: 11494744} objectReference: {fileID: 11494744}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: SetEditorVisible value: SetEditorVisible
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Colors.m_NormalColor.r propertyPath: m_Colors.m_NormalColor.r
value: 1 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Colors.m_NormalColor.b propertyPath: m_Colors.m_NormalColor.b
value: 1 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Colors.m_HighlightedColor.r propertyPath: m_Colors.m_HighlightedColor.r
value: .467545569 value: .467545569
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Colors.m_HighlightedColor.g propertyPath: m_Colors.m_HighlightedColor.g
value: 1 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Colors.m_HighlightedColor.b propertyPath: m_Colors.m_HighlightedColor.b
value: .448529422 value: .448529422
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Colors.m_NormalColor.g propertyPath: m_Colors.m_NormalColor.g
value: 1 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Colors.m_PressedColor.r propertyPath: m_Colors.m_PressedColor.r
value: .800000072 value: .800000072
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Colors.m_PressedColor.g propertyPath: m_Colors.m_PressedColor.g
value: 1 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Colors.m_PressedColor.b propertyPath: m_Colors.m_PressedColor.b
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_DisplayToggle
  value:
  objectReference: {fileID: 11436568}
  - target: {fileID: 0}
  propertyPath: m_Transition
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Color.r
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Color.g
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Color.b
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Color.a
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_ElementType
  value: 4
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_PreferredHeight
  value: 18
  objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_ParentPrefab: {fileID: 0} m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 130812} m_RootGameObject: {fileID: 130812}
m_IsPrefabParent: 1 m_IsPrefabParent: 1
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!29 &1 --- !u!29 &1
SceneSettings: SceneSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PVSData: m_PVSData:
m_PVSObjectsArray: [] m_PVSObjectsArray: []
m_PVSPortalsArray: [] m_PVSPortalsArray: []
m_OcclusionBakeSettings: m_OcclusionBakeSettings:
smallestOccluder: 5 smallestOccluder: 5
smallestHole: .25 smallestHole: .25
backfaceThreshold: 100 backfaceThreshold: 100
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 6
m_Fog: 0 m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1} m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3 m_FogMode: 3
m_FogDensity: .00999999978 m_FogDensity: .00999999978
m_LinearFogStart: 0 m_LinearFogStart: 0
m_LinearFogEnd: 300 m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1} m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1} m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1} m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
m_AmbientIntensity: 1 m_AmbientIntensity: 1
m_AmbientMode: 3 m_AmbientMode: 3
m_SkyboxMaterial: {fileID: 0} m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: .5 m_HaloStrength: .5
m_FlareStrength: 1 m_FlareStrength: 1
m_FlareFadeSpeed: 3 m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0} m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0 m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128 m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1 m_ReflectionBounces: 1
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
--- !u!157 &3 --- !u!157 &3
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 5 serializedVersion: 5
m_GIWorkflowMode: 1 m_GIWorkflowMode: 1
m_LightmapsMode: 1 m_LightmapsMode: 1
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
m_IndirectOutputScale: 1 m_IndirectOutputScale: 1
m_AlbedoBoost: 1 m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1 m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0 m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0 m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0 m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings: m_LightmapEditorSettings:
serializedVersion: 3 serializedVersion: 3
m_Resolution: 2 m_Resolution: 2
m_BakeResolution: 40 m_BakeResolution: 40
m_TextureWidth: 1024 m_TextureWidth: 1024
m_TextureHeight: 1024 m_TextureHeight: 1024
m_AOMaxDistance: 1 m_AOMaxDistance: 1
m_Padding: 2 m_Padding: 2
m_CompAOExponent: 0 m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1 m_TextureCompression: 1
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherRayCount: 1024 m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0} m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25 m_RuntimeCPUUsage: 25
--- !u!196 &4 --- !u!196 &4
NavMeshSettings: NavMeshSettings:
serializedVersion: 2 serializedVersion: 2
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_BuildSettings: m_BuildSettings:
serializedVersion: 2 serializedVersion: 2
agentRadius: .5 agentRadius: .5
agentHeight: 2 agentHeight: 2
agentSlope: 45 agentSlope: 45
agentClimb: .400000006 agentClimb: .400000006
ledgeDropHeight: 0 ledgeDropHeight: 0
maxJumpAcrossDistance: 0 maxJumpAcrossDistance: 0
accuratePlacement: 0 accuratePlacement: 0
minRegionArea: 2 minRegionArea: 2
cellSize: .166666672 cellSize: .166666672
manualCellSize: 0 manualCellSize: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &476101859 --- !u!1 &476101859
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 476101860} - 224: {fileID: 476101860}
- 222: {fileID: 476101862} - 222: {fileID: 476101862}
- 114: {fileID: 476101861} - 114: {fileID: 476101861}
m_Layer: 5 m_Layer: 5
m_Name: Background-Flight m_Name: Background-Flight
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!224 &476101860 --- !u!224 &476101860
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 476101859} m_GameObject: {fileID: 476101859}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 1866791882} m_Father: {fileID: 1866791882}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!114 &476101861 --- !u!114 &476101861
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 476101859} m_GameObject: {fileID: 476101859}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0 m_RaycastTarget: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 21300000, guid: 0115c816d260a0947976c8ea804febbc, type: 3} m_Sprite: {fileID: 21300000, guid: 4105bbb9c3877934f99f89c091ba0b8b, type: 3}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!222 &476101862 --- !u!222 &476101862
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 476101859} m_GameObject: {fileID: 476101859}
--- !u!1001 &719682886 --- !u!1001 &979972727
Prefab: Prefab:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_Modification: m_Modification:
m_TransformParent: {fileID: 1866791882} m_TransformParent: {fileID: 0}
m_Modifications: m_Modifications:
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_LocalRotation.x propertyPath: m_LocalRotation.x
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_LocalRotation.y propertyPath: m_LocalRotation.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_LocalRotation.z propertyPath: m_LocalRotation.z
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
value: 1 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_RootOrder propertyPath: m_RootOrder
value: 2 value: 3
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_AnchoredPosition.x propertyPath: m_AnchoredPosition.x
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_SizeDelta.x propertyPath: m_SizeDelta.x
value: 250 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_SizeDelta.y propertyPath: m_SizeDelta.y
value: 74 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_AnchorMin.x propertyPath: m_AnchorMin.x
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
  propertyPath: m_AnchorMin.y
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
  propertyPath: m_AnchorMax.x
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
  propertyPath: m_AnchorMax.y
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
  propertyPath: m_Pivot.x
value: .5 value: .5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} - target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
propertyPath: m_AnchorMin.y propertyPath: m_Pivot.y
value: .5 value: .5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMax.x  
value: .5  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMax.y  
value: .5  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Pivot.x  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Pivot.y  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMin.y  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMax.y  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.x  
value: 125  
objectReference: {fileID: 0}  
- target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.y  
value: -27  
objectReference: {fileID: 0}  
- target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.x  
value: 242  
objectReference: {fileID: 0}  
- target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.y  
value: 8  
objectReference: {fileID: 0}  
- target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMin.y  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMax.y  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.x  
value: 125  
objectReference: {fileID: 0}  
- target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.y  
value: -11.5  
objectReference: {fileID: 0}  
- target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.x  
value: 242  
objectReference: {fileID: 0}  
- target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.y  
value: 15  
objectReference: {fileID: 0}  
- target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMin.y  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMax.y  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.x  
value: 125  
objectReference: {fileID: 0}  
- target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.y  
value: -42.5  
objectReference: {fileID: 0}  
- target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.x  
value: 242  
objectReference: {fileID: 0}  
- target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.y  
value: 15  
objectReference: {fileID: 0}  
- target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMin.y  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMax.y  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.x  
value: 125  
objectReference: {fileID: 0}  
- target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.x  
value: 250  
objectReference: {fileID: 0}  
- target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.y  
value: 20  
objectReference: {fileID: 0}  
- target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMin.y  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMax.y  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.x  
value: 125  
objectReference: {fileID: 0}  
- target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.y  
value: -47  
objectReference: {fileID: 0}  
- target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.x  
value: 250  
objectReference: {fileID: 0}  
- target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.y  
value: 54  
objectReference: {fileID: 0}  
- target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName  
value: SetControlBarVisible  
objectReference: {fileID: 0}  
- target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName  
value: SetDisplayStackVisible  
objectReference: {fileID: 0}  
- target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_HighlightedColor.r  
value: .467545569  
objectReference: {fileID: 0}  
- target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_HighlightedColor.g  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_HighlightedColor.b  
value: .448529422  
objectReference: {fileID: 0}  
- target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_PressedColor.r  
value: .800000072  
objectReference: {fileID: 0}  
- target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_PressedColor.g  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_PressedColor.b  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_PressedColor.a  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_HighlightedColor.r  
value: .467545569  
objectReference: {fileID: 0}  
- target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_HighlightedColor.g  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_HighlightedColor.b  
value: .448529422  
objectReference: {fileID: 0}  
- target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_PressedColor.r  
value: .800000072  
objectReference: {fileID: 0}  
- target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_PressedColor.g  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Colors.m_PressedColor.b  
value: 0  
objectReference: {fileID: 0}  
m_RemovedComponents: [] m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2} m_ParentPrefab: {fileID: 100100000, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2}
m_IsPrefabParent: 0 m_IsPrefabParent: 0
--- !u!224 &1026898450 stripped  
RectTransform:  
m_PrefabParentObject: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f,  
type: 2}  
m_PrefabInternal: {fileID: 719682886}  
--- !u!1 &1398276586 --- !u!1 &1398276586
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 4: {fileID: 1398276590} - 4: {fileID: 1398276590}
- 114: {fileID: 1398276589} - 114: {fileID: 1398276589}
- 114: {fileID: 1398276588} - 114: {fileID: 1398276588}
- 114: {fileID: 1398276587} - 114: {fileID: 1398276587}
m_Layer: 0 m_Layer: 0
m_Name: EventSystem m_Name: EventSystem
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!114 &1398276587 --- !u!114 &1398276587
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1398276586} m_GameObject: {fileID: 1398276586}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_ForceModuleActive: 0 m_ForceModuleActive: 0
--- !u!114 &1398276588 --- !u!114 &1398276588
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1398276586} m_GameObject: {fileID: 1398276586}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical m_VerticalAxis: Vertical
m_SubmitButton: Submit m_SubmitButton: Submit
m_CancelButton: Cancel m_CancelButton: Cancel
m_InputActionsPerSecond: 10 m_InputActionsPerSecond: 10
m_RepeatDelay: .5 m_RepeatDelay: .5
m_ForceModuleActive: 0 m_ForceModuleActive: 0
--- !u!114 &1398276589 --- !u!114 &1398276589
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1398276586} m_GameObject: {fileID: 1398276586}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0} m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1 m_sendNavigationEvents: 1
m_DragThreshold: 5 m_DragThreshold: 5
--- !u!4 &1398276590 --- !u!4 &1398276590
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1398276586} m_GameObject: {fileID: 1398276586}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 2 m_RootOrder: 2
  --- !u!1001 &1786357829
  Prefab:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_Modification:
  m_TransformParent: {fileID: 1866791882}
  m_Modifications:
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_LocalPosition.x
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_LocalPosition.y
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_LocalPosition.z
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_LocalRotation.x
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_LocalRotation.y
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_LocalRotation.z
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_LocalRotation.w
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_RootOrder
  value: 2
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.y
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.x
  value: 250
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.y
  value: 70
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMin.x
  value: .5
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMin.y
  value: .5
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMax.x
  value: .5
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMax.y
  value: .5
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_Pivot.x
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_Pivot.y
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMin.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMax.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 125
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.y
  value: -25
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.x
  value: 242
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.y
  value: 2
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMin.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMax.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 125
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.y
  value: -13
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.x
  value: 242
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.y
  value: 18
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMin.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMax.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 125
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.y
  value: -37
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.x
  value: 242
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.y
  value: 18
  objectReference: {fileID: 0}
  - target: {fileID: 22483410, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMin.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22483410, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMax.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22483410, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 125
  objectReference: {fileID: 0}
  - target: {fileID: 22483410, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.x
  value: 250
  objectReference: {fileID: 0}
  - target: {fileID: 22483410, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.y
  value: 20
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMin.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchorMax.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 125
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_AnchoredPosition.y
  value: -45
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.x
  value: 250
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  propertyPath: m_SizeDelta.y
  value: 50
  objectReference: {fileID: 0}
  m_RemovedComponents: []
  m_ParentPrefab: {fileID: 100100000, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2}
  m_IsPrefabParent: 0
--- !u!1 &1866791878 --- !u!1 &1866791878
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 1866791882} - 224: {fileID: 1866791882}
- 223: {fileID: 1866791881} - 223: {fileID: 1866791881}
- 114: {fileID: 1866791880} - 114: {fileID: 1866791880}
- 114: {fileID: 1866791879} - 114: {fileID: 1866791879}
m_Layer: 5 m_Layer: 5
m_Name: Canvas m_Name: Canvas
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!114 &1866791879 --- !u!114 &1866791879
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1866791878} m_GameObject: {fileID: 1866791878}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1 m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0 m_BlockingObjects: 0
m_BlockingMask: m_BlockingMask:
serializedVersion: 2 serializedVersion: 2
m_Bits: 4294967295 m_Bits: 4294967295
--- !u!114 &1866791880 --- !u!114 &1866791880
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1866791878} m_GameObject: {fileID: 1866791878}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_UiScaleMode: 0 m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100 m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1 m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600} m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0 m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0 m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3 m_PhysicalUnit: 3
m_FallbackScreenDPI: 96 m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96 m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1 m_DynamicPixelsPerUnit: 1
--- !u!223 &1866791881 --- !u!223 &1866791881
Canvas: Canvas:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1866791878} m_GameObject: {fileID: 1866791878}
m_Enabled: 1 m_Enabled: 1
serializedVersion: 2 serializedVersion: 2
m_RenderMode: 0 m_RenderMode: 0
m_Camera: {fileID: 0} m_Camera: {fileID: 0}
m_PlaneDistance: 100 m_PlaneDistance: 100
m_PixelPerfect: 0 m_PixelPerfect: 0
m_ReceivesEvents: 1 m_ReceivesEvents: 1
m_OverrideSorting: 0 m_OverrideSorting: 0
m_OverridePixelPerfect: 0 m_OverridePixelPerfect: 0
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!224 &1866791882 --- !u!224 &1866791882
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1866791878} m_GameObject: {fileID: 1866791878}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 2037475081} - {fileID: 2037475081}
- {fileID: 476101860} - {fileID: 476101860}
- {fileID: 1026898450} - {fileID: 2109888477}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0} m_Pivot: {x: 0, y: 0}
--- !u!1 &2037475080 --- !u!1 &2037475080
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 2037475081} - 224: {fileID: 2037475081}
- 222: {fileID: 2037475083} - 222: {fileID: 2037475083}
- 114: {fileID: 2037475082} - 114: {fileID: 2037475082}
m_Layer: 5 m_Layer: 5
m_Name: Background-Editor m_Name: Background-Editor
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!224 &2037475081 --- !u!224 &2037475081
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2037475080} m_GameObject: {fileID: 2037475080}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 1866791882} m_Father: {fileID: 1866791882}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!114 &2037475082 --- !u!114 &2037475082
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2037475080} m_GameObject: {fileID: 2037475080}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0 m_RaycastTarget: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 21300000, guid: b0e2a09d07dbbcb40b0d4db43cd044f9, type: 3} m_Sprite: {fileID: 21300000, guid: 696e4ea6d01cf324889c1a7fa0c2fb06, type: 3}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!222 &2037475083 --- !u!222 &2037475083
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2037475080} m_GameObject: {fileID: 2037475080}
  --- !u!224 &2109888477 stripped
  RectTransform:
  m_PrefabParentObject: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8,
  type: 2}
  m_PrefabInternal: {fileID: 1786357829}
--- !u!1 &2134872726 --- !u!1 &2134872726
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 4: {fileID: 2134872731} - 4: {fileID: 2134872731}
- 20: {fileID: 2134872730} - 20: {fileID: 2134872730}
- 92: {fileID: 2134872729} - 92: {fileID: 2134872729}
- 124: {fileID: 2134872728} - 124: {fileID: 2134872728}
- 81: {fileID: 2134872727} - 81: {fileID: 2134872727}
m_Layer: 0 m_Layer: 0
m_Name: Main Camera m_Name: Main Camera
m_TagString: MainCamera m_TagString: MainCamera
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!81 &2134872727 --- !u!81 &2134872727
AudioListener: AudioListener:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2134872726} m_GameObject: {fileID: 2134872726}
m_Enabled: 1 m_Enabled: 1
--- !u!124 &2134872728 --- !u!124 &2134872728
Behaviour: Behaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2134872726} m_GameObject: {fileID: 2134872726}
m_Enabled: 1 m_Enabled: 1
--- !u!92 &2134872729 --- !u!92 &2134872729
Behaviour: Behaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2134872726} m_GameObject: {fileID: 2134872726}
m_Enabled: 1 m_Enabled: 1
--- !u!20 &2134872730 --- !u!20 &2134872730
Camera: Camera:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2134872726} m_GameObject: {fileID: 2134872726}
m_Enabled: 1 m_Enabled: 1
serializedVersion: 2 serializedVersion: 2
m_ClearFlags: 2 m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438} m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438}
m_NormalizedViewPortRect: m_NormalizedViewPortRect:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 0 y: 0
width: 1 width: 1
height: 1 height: 1
near clip plane: .300000012 near clip plane: .300000012
far clip plane: 1000 far clip plane: 1000
field of view: 60 field of view: 60
orthographic: 1 orthographic: 1
orthographic size: 5 orthographic size: 5
m_Depth: -1 m_Depth: -1
m_CullingMask: m_CullingMask:
serializedVersion: 2 serializedVersion: 2
m_Bits: 4294967295 m_Bits: 4294967295
m_RenderingPath: -1 m_RenderingPath: -1
m_TargetTexture: {fileID: 0} m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0 m_TargetDisplay: 0
m_TargetEye: 3 m_TargetEye: 3
m_HDR: 0 m_HDR: 0
m_OcclusionCulling: 1 m_OcclusionCulling: 1
m_StereoConvergence: 10 m_StereoConvergence: 10
m_StereoSeparation: .0219999999 m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0 m_StereoMirrorMode: 0
--- !u!4 &2134872731 --- !u!4 &2134872731
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2134872726} m_GameObject: {fileID: 2134872726}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
   
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
using UnityEditor; using UnityEditor;
using UnityEngine; using UnityEngine;
   
public class BuildAssetBundles : MonoBehaviour public class BuildAssetBundles : MonoBehaviour
{ {
[MenuItem("Assets/Build Asset Bundles")] [MenuItem("Build/Asset Bundles")]
public static void Build() public static void Build()
{ {
BuildPipeline.BuildAssetBundles(Application.dataPath + "/../Output/KerbalEngineer", BuildAssetBundleOptions.UncompressedAssetBundle); BuildPipeline.BuildAssetBundles(Application.dataPath + "/../Output/KerbalEngineer", BuildAssetBundleOptions.UncompressedAssetBundle);
} }
} }
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>10.0.20506</ProductVersion> <ProductVersion>10.0.20506</ProductVersion>
<SchemaVersion>2.0</SchemaVersion> <SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}</ProjectGuid> <ProjectGuid>{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AssemblyName>Assembly-CSharp-Editor</AssemblyName> <AssemblyName>Assembly-CSharp-Editor</AssemblyName>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier> <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile> <TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile>
<CompilerResponseFile></CompilerResponseFile> <CompilerResponseFile></CompilerResponseFile>
<UnityProjectType>Editor:5</UnityProjectType> <UnityProjectType>Editor:5</UnityProjectType>
<UnityBuildTarget>StandaloneWindows:5</UnityBuildTarget> <UnityBuildTarget>StandaloneWindows:5</UnityBuildTarget>
<UnityVersion>5.2.4f1</UnityVersion> <UnityVersion>5.2.4f1</UnityVersion>
<RootNamespace></RootNamespace> <RootNamespace></RootNamespace>
<LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion> <LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>Temp\UnityVS_bin\Debug\</OutputPath> <OutputPath>Temp\UnityVS_bin\Debug\</OutputPath>
<IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath> <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<DefineConstants>DEBUG;TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants> <DefineConstants>DEBUG;TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks> <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>Temp\UnityVS_bin\Release\</OutputPath> <OutputPath>Temp\UnityVS_bin\Release\</OutputPath>
<IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath> <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<DefineConstants>TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants> <DefineConstants>TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks> <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="mscorlib" /> <Reference Include="mscorlib" />
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.XML" /> <Reference Include="System.XML" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="Boo.Lang" /> <Reference Include="Boo.Lang" />
<Reference Include="UnityScript.Lang" /> <Reference Include="UnityScript.Lang" />
<Reference Include="System.Runtime.Serialization" /> <Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
<Reference Include="UnityEngine"> <Reference Include="UnityEngine">
<HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor"> <Reference Include="UnityEditor">
<HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
</Reference> </Reference>
  <Reference Include="UnityEngine.Advertisements">
  <HintPath>Library\UnityAssemblies\UnityEngine.Advertisements.dll</HintPath>
  </Reference>
<Reference Include="UnityEditor.Advertisements"> <Reference Include="UnityEditor.Advertisements">
<HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEngine.UI"> <Reference Include="UnityEngine.UI">
<HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.UI"> <Reference Include="UnityEditor.UI">
<HintPath>Library\UnityAssemblies\UnityEditor.UI.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.UI.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEngine.Networking"> <Reference Include="UnityEngine.Networking">
<HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.Networking"> <Reference Include="UnityEditor.Networking">
<HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath>
  </Reference>
  <Reference Include="UnityEngine.Analytics">
  <HintPath>Library\UnityAssemblies\UnityEngine.Analytics.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.Graphs"> <Reference Include="UnityEditor.Graphs">
<HintPath>Library\UnityAssemblies\UnityEditor.Graphs.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Graphs.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.Android.Extensions"> <Reference Include="UnityEditor.Android.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.Android.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Android.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.iOS.Extensions"> <Reference Include="UnityEditor.iOS.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.WP8.Extensions"> <Reference Include="UnityEditor.WP8.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.WP8.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.WP8.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.Metro.Extensions"> <Reference Include="UnityEditor.Metro.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.Metro.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Metro.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.Tizen.Extensions"> <Reference Include="UnityEditor.Tizen.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.Tizen.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Tizen.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.SamsungTV.Extensions"> <Reference Include="UnityEditor.SamsungTV.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.SamsungTV.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.SamsungTV.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.WebGL.Extensions"> <Reference Include="UnityEditor.WebGL.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.WebGL.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.WebGL.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.LinuxStandalone.Extensions"> <Reference Include="UnityEditor.LinuxStandalone.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.LinuxStandalone.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.LinuxStandalone.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.WindowsStandalone.Extensions"> <Reference Include="UnityEditor.WindowsStandalone.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.WindowsStandalone.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.WindowsStandalone.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.OSXStandalone.Extensions"> <Reference Include="UnityEditor.OSXStandalone.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.OSXStandalone.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.OSXStandalone.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="SyntaxTree.VisualStudio.Unity.Bridge"> <Reference Include="SyntaxTree.VisualStudio.Unity.Bridge">
<HintPath>Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll</HintPath> <HintPath>Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll</HintPath>
</Reference> </Reference>
<Reference Include="Mono.Cecil"> <Reference Include="Mono.Cecil">
<HintPath>Library\UnityAssemblies\Mono.Cecil.dll</HintPath> <HintPath>Library\UnityAssemblies\Mono.Cecil.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.iOS.Extensions.Xcode"> <Reference Include="UnityEditor.iOS.Extensions.Xcode">
<HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Xcode.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Xcode.dll</HintPath>
</Reference> </Reference>
<Reference Include="KerbalEngineer.Unity"> <Reference Include="KerbalEngineer.Unity">
<HintPath>Assets\Plugins\KerbalEngineer.Unity.dll</HintPath> <HintPath>Assets\Plugins\KerbalEngineer.Unity.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Assets\Scripts\Editor\BuildAssetBundles.cs" /> <Compile Include="Assets\Scripts\Editor\BuildAssetBundles.cs" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\SyntaxTree\UnityVS\2015\UnityVS.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath)\SyntaxTree\UnityVS\2015\UnityVS.CSharp.targets" />
</Project> </Project>
   
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Unity.Flight namespace KerbalEngineer.Unity.Flight
{ {
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.UI; using UnityEngine.UI;
   
[RequireComponent(typeof(RectTransform))] [RequireComponent(typeof(RectTransform))]
public class FlightMenu : CanvasGroupFader, IPointerEnterHandler, IPointerExitHandler public class FlightMenu : CanvasGroupFader, IPointerEnterHandler, IPointerExitHandler
{ {
[SerializeField] [SerializeField]
private Toggle m_ShowEngineerToggle = null; private Toggle m_ShowEngineerToggle = null;
   
[SerializeField] [SerializeField]
private Toggle m_ControlBarToggle = null; private Toggle m_ControlBarToggle = null;
   
[SerializeField] [SerializeField]
private GameObject m_MenuSectionPrefab = null; private GameObject m_MenuSectionPrefab = null;
   
[SerializeField] [SerializeField]
private Transform m_SectionsTransform = null; private Transform m_SectionsTransform = null;
   
[SerializeField] [SerializeField]
private float m_FastFadeDuration = 0.2f; private float m_FastFadeDuration = 0.2f;
   
[SerializeField] [SerializeField]
private float m_SlowFadeDuration = 1.0f; private float m_SlowFadeDuration = 1.0f;
   
private IFlightAppLauncher m_FlightAppLauncher; private IFlightAppLauncher m_FlightAppLauncher;
private RectTransform m_RectTransform; private RectTransform m_RectTransform;
   
public void OnPointerEnter(PointerEventData eventData) public void OnPointerEnter(PointerEventData eventData)
{ {
FadeIn(); FadeIn();
} }
   
public void OnPointerExit(PointerEventData eventData) public void OnPointerExit(PointerEventData eventData)
{ {
// slow-fade out if the application launcher button is off // slow-fade out if the application launcher button is off
if (m_FlightAppLauncher != null && m_FlightAppLauncher.IsOn == false) if (m_FlightAppLauncher != null && m_FlightAppLauncher.IsOn == false)
{ {
FadeTo(0.0f, m_SlowFadeDuration, Destroy); FadeTo(0.0f, m_SlowFadeDuration, Destroy);
} }
} }
   
/// <summary> /// <summary>
/// Fades out and destroys the menu. /// Fades out and destroys the menu.
/// </summary> /// </summary>
public void Close() public void Close()
{ {
FadeTo(0.0f, m_FastFadeDuration, Destroy); FadeTo(0.0f, m_FastFadeDuration, Destroy);
} }
   
/// <summary> /// <summary>
/// Fades in the menu. /// Fades in the menu.
/// </summary> /// </summary>
public void FadeIn() public void FadeIn()
{ {
FadeTo(1.0f, m_FastFadeDuration); FadeTo(1.0f, m_FastFadeDuration);
} }
   
/// <summary> /// <summary>
/// Creates a new custom section. /// Creates a new custom section.
/// </summary> /// </summary>
public void NewCustomSection() public void NewCustomSection()
{ {
if (m_FlightAppLauncher != null) if (m_FlightAppLauncher != null)
{ {
CreateSectionControl(m_FlightAppLauncher.NewCustomSection()); CreateSectionControl(m_FlightAppLauncher.NewCustomSection());
} }
} }
   
/// <summary> /// <summary>
/// Sets the control bar visiblity. /// Sets the control bar visiblity.
/// </summary> /// </summary>
public void SetControlBarVisible(bool visible) public void SetControlBarVisible(bool visible)
{ {
if (m_FlightAppLauncher != null) if (m_FlightAppLauncher != null)
{ {
m_FlightAppLauncher.IsControlBarVisible = visible; m_FlightAppLauncher.IsControlBarVisible = visible;
} }
} }
   
/// <summary> /// <summary>
/// Sets the display stack visibility. /// Sets the display stack visibility.
/// </summary> /// </summary>
public void SetDisplayStackVisible(bool visible) public void SetDisplayStackVisible(bool visible)
{ {
if (m_FlightAppLauncher != null) if (m_FlightAppLauncher != null)
{ {
m_FlightAppLauncher.IsDisplayStackVisible = visible; m_FlightAppLauncher.IsDisplayStackVisible = visible;
} }
} }
   
/// <summary> /// <summary>
/// Sets a reference to the flight app launcher object. /// Sets a reference to the flight app launcher object.
/// </summary> /// </summary>
public void SetFlightAppLauncher(IFlightAppLauncher flightAppLauncher) public void SetFlightAppLauncher(IFlightAppLauncher flightAppLauncher)
{ {
if (flightAppLauncher == null) if (flightAppLauncher == null)
{ {
return; return;
} }
   
m_FlightAppLauncher = flightAppLauncher; m_FlightAppLauncher = flightAppLauncher;
   
// create section controls // create section controls
CreateSectionControls(m_FlightAppLauncher.GetStockSections()); CreateSectionControls(m_FlightAppLauncher.GetStockSections());
CreateSectionControls(m_FlightAppLauncher.GetCustomSections()); CreateSectionControls(m_FlightAppLauncher.GetCustomSections());
} }
   
protected override void Awake() protected override void Awake()
{ {
base.Awake(); base.Awake();
   
// cache components // cache components
m_RectTransform = GetComponent<RectTransform>(); m_RectTransform = GetComponent<RectTransform>();
} }
   
protected virtual void Start() protected virtual void Start()
{ {
// set starting alpha to zero and fade in // set starting alpha to zero and fade in
SetAlpha(0.0f); SetAlpha(0.0f);
FadeIn(); FadeIn();
} }
   
protected virtual void Update() protected virtual void Update()
{ {
if (m_FlightAppLauncher == null) if (m_FlightAppLauncher == null)
{ {
return; return;
} }
   
// set toggle states to match the actual states // set toggle states to match the actual states
SetToggle(m_ShowEngineerToggle, m_FlightAppLauncher.IsDisplayStackVisible); SetToggle(m_ShowEngineerToggle, m_FlightAppLauncher.IsDisplayStackVisible);
SetToggle(m_ControlBarToggle, m_FlightAppLauncher.IsControlBarVisible); SetToggle(m_ControlBarToggle, m_FlightAppLauncher.IsControlBarVisible);
   
// update anchor position // update anchor position
if (m_RectTransform != null) if (m_RectTransform != null)
{ {
m_RectTransform.position = m_FlightAppLauncher.GetAnchor(); m_RectTransform.position = m_FlightAppLauncher.GetAnchor();
m_FlightAppLauncher.ClampToScreen(m_RectTransform); m_FlightAppLauncher.ClampToScreen(m_RectTransform);
} }
} }
   
/// <summary> /// <summary>
/// Sets a given toggle to the specified state with null checking. /// Sets a given toggle to the specified state with null checking.
/// </summary> /// </summary>
private static void SetToggle(Toggle toggle, bool state) private static void SetToggle(Toggle toggle, bool state)
{ {
if (toggle != null) if (toggle != null)
{ {
toggle.isOn = state; toggle.isOn = state;
} }
} }
   
/// <summary> /// <summary>
/// Creates a menu section control. /// Creates a menu section control.
/// </summary> /// </summary>
private void CreateSectionControl(ISectionModule section) private void CreateSectionControl(ISectionModule section)
{ {
GameObject menuSectionObject = Instantiate(m_MenuSectionPrefab); GameObject menuSectionObject = Instantiate(m_MenuSectionPrefab);
if (menuSectionObject != null) if (menuSectionObject != null)
{ {
  // apply ksp theme to the created menu section object
  m_FlightAppLauncher.ApplyTheme(menuSectionObject);
   
menuSectionObject.transform.SetParent(m_SectionsTransform, false); menuSectionObject.transform.SetParent(m_SectionsTransform, false);
   
FlightMenuSection menuSection = menuSectionObject.GetComponent<FlightMenuSection>(); FlightMenuSection menuSection = menuSectionObject.GetComponent<FlightMenuSection>();
if (menuSection != null) if (menuSection != null)
{ {
menuSection.SetAssignedSection(section); menuSection.SetAssignedSection(section);
} }
} }
} }
   
/// <summary> /// <summary>
/// Creates a list of section controls from a given list of sections. /// Creates a list of section controls from a given list of sections.
/// </summary> /// </summary>
private void CreateSectionControls(IList<ISectionModule> sections) private void CreateSectionControls(IList<ISectionModule> sections)
{ {
if (sections == null || m_MenuSectionPrefab == null || m_SectionsTransform == null) if (sections == null || m_MenuSectionPrefab == null || m_SectionsTransform == null)
{ {
return; return;
} }
   
for (int i = 0; i < sections.Count; i++) for (int i = 0; i < sections.Count; i++)
{ {
ISectionModule section = sections[i]; ISectionModule section = sections[i];
if (section != null) if (section != null)
{ {
CreateSectionControl(section); CreateSectionControl(section);
} }
} }
} }
   
/// <summary> /// <summary>
/// Destroys the game object. /// Destroys the game object.
/// </summary> /// </summary>
private void Destroy() private void Destroy()
{ {
// disable game object first due to an issue within unity 5.2.4f1 that shows a single frame at full opaque alpha just before destruction // disable game object first due to an issue within unity 5.2.4f1 that shows a single frame at full opaque alpha just before destruction
gameObject.SetActive(false); gameObject.SetActive(false);
Destroy(gameObject); Destroy(gameObject);
} }
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Unity.Flight namespace KerbalEngineer.Unity.Flight
{ {
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
   
public interface IFlightAppLauncher public interface IFlightAppLauncher
{ {
bool IsControlBarVisible { get; set; } bool IsControlBarVisible { get; set; }
   
bool IsDisplayStackVisible { get; set; } bool IsDisplayStackVisible { get; set; }
   
bool IsOn { get; } bool IsOn { get; }
   
  void ApplyTheme(GameObject gameObject);
   
void ClampToScreen(RectTransform rectTransform); void ClampToScreen(RectTransform rectTransform);
   
Vector3 GetAnchor(); Vector3 GetAnchor();
   
IList<ISectionModule> GetCustomSections(); IList<ISectionModule> GetCustomSections();
   
IList<ISectionModule> GetStockSections(); IList<ISectionModule> GetStockSections();
   
ISectionModule NewCustomSection(); ISectionModule NewCustomSection();
} }
} }
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{5387BB1E-32B1-4BAC-B03F-100570B9554C}</ProjectGuid> <ProjectGuid>{5387BB1E-32B1-4BAC-B03F-100570B9554C}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>KerbalEngineer.Unity</RootNamespace> <RootNamespace>KerbalEngineer.Unity</RootNamespace>
<AssemblyName>KerbalEngineer.Unity</AssemblyName> <AssemblyName>KerbalEngineer.Unity</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath> <OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType> <DebugType>none</DebugType>
<Optimize>true</Optimize> <Optimize>true</Optimize>
<OutputPath>..\Output\KerbalEngineer\</OutputPath> <OutputPath>..\Output\KerbalEngineer\</OutputPath>
<DefineConstants> <DefineConstants>
</DefineConstants> </DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="CanvasGroupFader.cs" /> <Compile Include="CanvasGroupFader.cs" />
<Compile Include="Flight\FlightMenu.cs" /> <Compile Include="Flight\FlightMenu.cs" />
<Compile Include="Flight\FlightMenuSection.cs" /> <Compile Include="Flight\FlightMenuSection.cs" />
<Compile Include="Flight\IFlightAppLauncher.cs" /> <Compile Include="Flight\IFlightAppLauncher.cs" />
<Compile Include="Flight\ISectionModule.cs" /> <Compile Include="Flight\ISectionModule.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
  <Compile Include="UI\TextStyle.cs" />
  <Compile Include="UI\StyleApplicator.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System"> <Reference Include="System">
<HintPath>..\..\game\KSP_Data\Managed\System.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\System.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="UnityEngine"> <Reference Include="UnityEngine">
<HintPath>..\..\game\KSP_Data\Managed\UnityEngine.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\UnityEngine.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="UnityEngine.UI"> <Reference Include="UnityEngine.UI">
<HintPath>..\..\game\KSP_Data\Managed\UnityEngine.UI.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\UnityEngine.UI.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup> <PropertyGroup>
<PostBuildEvent>copy "$(TargetPath)" "$(SolutionDir)Assets\Plugins" /Y</PostBuildEvent> <PostBuildEvent>copy "$(TargetPath)" "$(SolutionDir)Assets\Plugins" /Y</PostBuildEvent>
</PropertyGroup> </PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">
</Target> </Target>
<Target Name="AfterBuild"> <Target Name="AfterBuild">
</Target> </Target>
--> -->
</Project> </Project>
  //
  // Kerbal Engineer Redux
  //
  // Copyright (C) 2016 CYBUTEK
  //
  // This program is free software: you can redistribute it and/or modify
  // it under the terms of the GNU General Public License as published by
  // the Free Software Foundation, either version 3 of the License, or
  // (at your option) any later version.
  //
  // This program is distributed in the hope that it will be useful,
  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  // GNU General Public License for more details.
  // You should have received a copy of the GNU General Public License
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
  //
 
  namespace KerbalEngineer.Unity.UI
  {
  using UnityEngine;
  using UnityEngine.UI;
 
  public class StyleApplicator : MonoBehaviour
  {
  public enum ElementTypes
  {
  None,
  Window,
  Box,
  Button,
  ButtonToggle
  }
 
  [SerializeField]
  private ElementTypes m_ElementType = ElementTypes.None;
 
  /// <summary>
  /// Gets the UI element type used by the ThemeManager for selecting how to apply the theme.
  /// </summary>
  public ElementTypes ElementType
  {
  get
  {
  return m_ElementType;
  }
  }
 
  /// <summary>
  /// Sets a the applicator to apply the selected sprite to an attached image component.
  /// </summary>
  public void SetImage(Sprite sprite, Image.Type type)
  {
  Image image = GetComponent<Image>();
  if (image == null)
  {
  return;
  }
 
  image.sprite = sprite;
  image.type = type;
  }
 
  /// <summary>
  /// Sets the applicator to apply the specified values to an attached selectable component.
  /// </summary>
  public void SetSelectable(TextStyle textStyle, Sprite normal, Sprite highlight, Sprite pressed, Sprite disabled)
  {
  if (textStyle != null)
  {
  Text text = GetComponentInChildren<Text>();
  if (text != null)
  {
  if (textStyle.Font != null)
  {
  text.font = textStyle.Font;
  }
  text.fontStyle = textStyle.Style;
  text.fontSize = textStyle.Size;
  text.color = textStyle.Colour;
  }
  }
 
  Selectable selectable = GetComponent<Selectable>();
  if (selectable != null)
  {
  selectable.image.sprite = normal;
  selectable.image.type = Image.Type.Sliced;
 
  selectable.transition = Selectable.Transition.SpriteSwap;
 
  SpriteState spriteState = selectable.spriteState;
  spriteState.highlightedSprite = highlight;
  spriteState.pressedSprite = pressed;
  spriteState.disabledSprite = disabled;
  selectable.spriteState = spriteState;
  }
  }
 
  /// <summary>
  /// Sets the applicator to apply the specified values to an attached toggle component.
  /// </summary>
  public void SetToggle(TextStyle textStyle, Sprite normal, Sprite highlight, Sprite pressed, Sprite disabled)
  {
  SetSelectable(textStyle, normal, highlight, pressed, disabled);
 
  Image toggleImage = GetComponent<Toggle>()?.graphic as Image;
  if (toggleImage != null)
  {
  toggleImage.sprite = pressed;
  toggleImage.type = Image.Type.Sliced;
  }
  }
  }
  }
  namespace KerbalEngineer.Unity.UI
  {
  using UnityEngine;
 
  public class TextStyle
  {
  private Color m_Colour;
  private Font m_Font;
  private int m_Size;
  private FontStyle m_Style;
 
  public Color Colour
  {
  get
  {
  return m_Colour;
  }
  set
  {
  m_Colour = value;
  }
  }
 
  public Font Font
  {
  get
  {
  return m_Font;
  }
  set
  {
  m_Font = value;
  }
  }
 
  public int Size
  {
  get
  {
  return m_Size;
  }
  set
  {
  m_Size = value;
  }
  }
 
  public FontStyle Style
  {
  get
  {
  return m_Style;
  }
  set
  {
  m_Style = value;
  }
  }
  }
  }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Flight namespace KerbalEngineer.Flight
{ {
using System.Collections.Generic; using System.Collections.Generic;
using KSP.UI; using KSP.UI;
using Sections; using Sections;
using Unity.Flight; using Unity.Flight;
using UnityEngine; using UnityEngine;
   
[KSPAddon(KSPAddon.Startup.Flight, false)] [KSPAddon(KSPAddon.Startup.Flight, false)]
public class FlightAppLauncher : AppLauncherButton, IFlightAppLauncher public class FlightAppLauncher : AppLauncherButton, IFlightAppLauncher
{ {
private static FlightAppLauncher m_Instance; private static FlightAppLauncher m_Instance;
private FlightMenu m_FlightMenu; private FlightMenu m_FlightMenu;
private GameObject m_MenuObject; private GameObject m_MenuObject;
private GameObject m_MenuPrefab; private GameObject m_MenuPrefab;
   
/// <summary> /// <summary>
/// Gets the current instance of the FlightAppLauncher object. /// Gets the current instance of the FlightAppLauncher object.
/// </summary> /// </summary>
public static FlightAppLauncher Instance public static FlightAppLauncher Instance
{ {
get get
{ {
return m_Instance; return m_Instance;
} }
} }
   
/// <summary> /// <summary>
  /// Applies the KSP theme to a game object and its children.
  /// </summary>
  public void ApplyTheme(GameObject gameObject)
  {
  StyleManager.Process(gameObject);
  }
   
  /// <summary>
/// Clamps the given rect transform within the screen bounds. /// Clamps the given rect transform within the screen bounds.
/// </summary> /// </summary>
public void ClampToScreen(RectTransform rectTransform) public void ClampToScreen(RectTransform rectTransform)
{ {
UIMasterController.ClampToScreen(rectTransform, Vector2.zero); UIMasterController.ClampToScreen(rectTransform, Vector2.zero);
} }
   
/// <summary> /// <summary>
/// Gets a list of custom sections. /// Gets a list of custom sections.
/// </summary> /// </summary>
IList<ISectionModule> IFlightAppLauncher.GetCustomSections() IList<ISectionModule> IFlightAppLauncher.GetCustomSections()
{ {
return new List<ISectionModule>(SectionLibrary.CustomSections.ToArray()); return new List<ISectionModule>(SectionLibrary.CustomSections.ToArray());
} }
   
/// <summary> /// <summary>
/// Gets a list of stock sections. /// Gets a list of stock sections.
/// </summary> /// </summary>
public IList<ISectionModule> GetStockSections() IList<ISectionModule> IFlightAppLauncher.GetStockSections()
{ {
return new List<ISectionModule>(SectionLibrary.StockSections.ToArray()); return new List<ISectionModule>(SectionLibrary.StockSections.ToArray());
} }
   
/// <summary> /// <summary>
/// Gets or sets the control bar's visibility. /// Gets or sets the control bar's visibility.
/// </summary> /// </summary>
public bool IsControlBarVisible public bool IsControlBarVisible
{ {
get get
{ {
if (DisplayStack.Instance != null) if (DisplayStack.Instance != null)
{ {
return DisplayStack.Instance.ShowControlBar; return DisplayStack.Instance.ShowControlBar;
} }
   
return false; return false;
} }
set set
{ {
if (DisplayStack.Instance != null) if (DisplayStack.Instance != null)
{ {
DisplayStack.Instance.ShowControlBar = value; DisplayStack.Instance.ShowControlBar = value;
} }
} }
} }
   
/// <summary> /// <summary>
/// Gets or sets the display stack's visibility. /// Gets or sets the display stack's visibility.
/// </summary> /// </summary>
public bool IsDisplayStackVisible public bool IsDisplayStackVisible
{ {
get get
{ {
if (DisplayStack.Instance != null) if (DisplayStack.Instance != null)
{ {
return DisplayStack.Instance.Hidden == false; return DisplayStack.Instance.Hidden == false;
} }
   
return false; return false;
} }
set set
{ {
if (DisplayStack.Instance != null) if (DisplayStack.Instance != null)
{ {
DisplayStack.Instance.Hidden = !value; DisplayStack.Instance.Hidden = !value;
} }
} }
} }
   
/// <summary> /// <summary>
/// Creates and initialises a new custom section. /// Creates and initialises a new custom section.
/// </summary> /// </summary>
public ISectionModule NewCustomSection() public ISectionModule NewCustomSection()
{ {
SectionModule section = new SectionModule SectionModule section = new SectionModule
{ {
Name = "Custom " + (SectionLibrary.CustomSections.Count + 1), Name = "Custom " + (SectionLibrary.CustomSections.Count + 1),
Abbreviation = "CUST " + (SectionLibrary.CustomSections.Count + 1), Abbreviation = "CUST " + (SectionLibrary.CustomSections.Count + 1),
IsVisible = true, IsVisible = true,
IsCustom = true, IsCustom = true,
IsEditorVisible = true IsEditorVisible = true
}; };
   
SectionLibrary.CustomSections.Add(section); SectionLibrary.CustomSections.Add(section);
   
return section; return section;
} }
   
protected override void Awake() protected override void Awake()
{ {
base.Awake(); base.Awake();
   
// set singleton instance // set singleton instance
m_Instance = this; m_Instance = this;
   
// cache menu prefab // cache menu prefab
if (m_MenuPrefab == null && AssetBundleLoader.Prefabs != null) if (m_MenuPrefab == null && AssetBundleLoader.Prefabs != null)
{ {
m_MenuPrefab = AssetBundleLoader.Prefabs.LoadAsset<GameObject>("FlightMenu"); m_MenuPrefab = AssetBundleLoader.Prefabs.LoadAsset<GameObject>("FlightMenu");
} }
} }
   
protected override void OnFalse() protected override void OnFalse()
{ {
Close(); Close();
} }
   
protected override void OnHover() protected override void OnHover()
{ {
Open(); Open();
} }
   
protected override void OnHoverOut() protected override void OnHoverOut()
{ {
if (IsOn == false) if (IsOn == false)
{ {
Close(); Close();
} }
} }
   
protected override void OnTrue() protected override void OnTrue()
{ {
Open(); Open();
} }
   
/// <summary> /// <summary>
/// Closes the menu. /// Closes the menu.
/// </summary> /// </summary>
private void Close() private void Close()
{ {
if (m_FlightMenu != null) if (m_FlightMenu != null)
{ {
m_FlightMenu.Close(); m_FlightMenu.Close();
} }
else else if (m_MenuObject != null)
{ {
Destroy(m_MenuObject); Destroy(m_MenuObject);
} }
} }
   
/// <summary> /// <summary>
/// Opens the menu. /// Opens the menu.
/// </summary> /// </summary>
private void Open() private void Open()
{ {
// fade menu in if already open // fade menu in if already open
if (m_FlightMenu != null) if (m_FlightMenu != null)
{ {
m_FlightMenu.FadeIn(); m_FlightMenu.FadeIn();
return; return;
} }
   
if (m_MenuPrefab == null || m_MenuObject != null) if (m_MenuPrefab == null || m_MenuObject != null)
{ {
return; return;
} }
   
// create object // create object
m_MenuObject = Instantiate(m_MenuPrefab, GetAnchor(), Quaternion.identity) as GameObject; m_MenuObject = Instantiate(m_MenuPrefab, GetAnchor(), Quaternion.identity) as GameObject;
if (m_MenuObject == null) if (m_MenuObject == null)
{ {
return; return;
} }
   
  StyleManager.Process(m_MenuObject);
   
// set object as a child of the main canvas // set object as a child of the main canvas
m_MenuObject.transform.SetParent(MainCanvasUtil.MainCanvas.transform); m_MenuObject.transform.SetParent(MainCanvasUtil.MainCanvas.transform);
   
// set menu's reference to this object for cross-communication // set menu's reference to this object for cross-communication
m_FlightMenu = m_MenuObject.GetComponent<FlightMenu>(); m_FlightMenu = m_MenuObject.GetComponent<FlightMenu>();
if (m_FlightMenu != null) if (m_FlightMenu != null)
{ {
m_FlightMenu.SetFlightAppLauncher(this); m_FlightMenu.SetFlightAppLauncher(this);
} }
} }
} }
} }
//  
// Kerbal Engineer Redux  
//  
// Copyright (C) 2014 CYBUTEK  
//  
// This program is free software: you can redistribute it and/or modify  
// it under the terms of the GNU General Public License as published by  
// the Free Software Foundation, either version 3 of the License, or  
// (at your option) any later version.  
//  
// This program is distributed in the hope that it will be useful,  
// but WITHOUT ANY WARRANTY; without even the implied warranty of  
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
// GNU General Public License for more details.  
//  
// You should have received a copy of the GNU General Public License  
// along with this program. If not, see <http://www.gnu.org/licenses/>.  
//  
 
namespace KerbalEngineer.Flight.Readouts.Miscellaneous  
{  
#region Using Directives  
 
using Sections;  
using UnityEngine;  
using VesselSimulator;  
 
#endregion  
 
public class LogSimToggle : ReadoutModule  
{  
#region Constructors  
 
public LogSimToggle()  
{  
this.Name = "Log Simulation";  
this.Category = ReadoutCategory.GetCategory("Miscellaneous");  
this.HelpString = "Shows a button that allows you to make the next run of the simulation code dump extra debugging output.";  
this.IsDefault = false;  
}  
 
#endregion  
 
#region Methods  
 
public override void Draw(SectionModule section)  
{  
GUILayout.BeginHorizontal();  
GUILayout.Label("Log Simulation: ", this.NameStyle);  
SimManager.logOutput = GUILayout.Toggle(SimManager.logOutput, "ENABLED", this.ButtonStyle);  
GUILayout.EndHorizontal();  
}  
 
#endregion  
}  
}  
// //
// Copyright (C) 2015 CYBUTEK // Copyright (C) 2015 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Flight.Readouts namespace KerbalEngineer.Flight.Readouts
{ {
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Miscellaneous; using Miscellaneous;
using Orbital; using Orbital;
using Orbital.ManoeuvreNode; using Orbital.ManoeuvreNode;
using Rendezvous; using Rendezvous;
using Settings; using Settings;
using Surface; using Surface;
using Thermal; using Thermal;
using Vessel; using Vessel;
using AltitudeSeaLevel = Surface.AltitudeSeaLevel; using AltitudeSeaLevel = Surface.AltitudeSeaLevel;
using ApoapsisHeight = Orbital.ApoapsisHeight; using ApoapsisHeight = Orbital.ApoapsisHeight;
using OrbitalPeriod = Orbital.OrbitalPeriod; using OrbitalPeriod = Orbital.OrbitalPeriod;
using PeriapsisHeight = Orbital.PeriapsisHeight; using PeriapsisHeight = Orbital.PeriapsisHeight;
using SemiMajorAxis = Orbital.SemiMajorAxis; using SemiMajorAxis = Orbital.SemiMajorAxis;
using SemiMinorAxis = Orbital.SemiMinorAxis; using SemiMinorAxis = Orbital.SemiMinorAxis;
using TimeToApoapsis = Orbital.TimeToApoapsis; using TimeToApoapsis = Orbital.TimeToApoapsis;
using TimeToPeriapsis = Orbital.TimeToPeriapsis; using TimeToPeriapsis = Orbital.TimeToPeriapsis;
   
public static class ReadoutLibrary public static class ReadoutLibrary
{ {
private static List<ReadoutModule> readouts = new List<ReadoutModule>(); private static List<ReadoutModule> readouts = new List<ReadoutModule>();
   
/// <summary> /// <summary>
/// Sets up and populates the readout library with the stock readouts. /// Sets up and populates the readout library with the stock readouts.
/// </summary> /// </summary>
static ReadoutLibrary() static ReadoutLibrary()
{ {
try try
{ {
ReadoutCategory.SetCategory("Orbital", "Readout for orbital manovoeures."); ReadoutCategory.SetCategory("Orbital", "Readout for orbital manovoeures.");
ReadoutCategory.SetCategory("Surface", "Surface and atmospheric readouts."); ReadoutCategory.SetCategory("Surface", "Surface and atmospheric readouts.");
ReadoutCategory.SetCategory("Vessel", "Vessel performance statistics."); ReadoutCategory.SetCategory("Vessel", "Vessel performance statistics.");
ReadoutCategory.SetCategory("Rendezvous", "Readouts for rendezvous manovoeures."); ReadoutCategory.SetCategory("Rendezvous", "Readouts for rendezvous manovoeures.");
ReadoutCategory.SetCategory("Thermal", "Thermal characteristics readouts."); ReadoutCategory.SetCategory("Thermal", "Thermal characteristics readouts.");
ReadoutCategory.SetCategory("Miscellaneous", "Miscellaneous readouts."); ReadoutCategory.SetCategory("Miscellaneous", "Miscellaneous readouts.");
ReadoutCategory.Selected = ReadoutCategory.GetCategory("Orbital"); ReadoutCategory.Selected = ReadoutCategory.GetCategory("Orbital");
   
// Orbital // Orbital
readouts.Add(new ApoapsisHeight()); readouts.Add(new ApoapsisHeight());
readouts.Add(new PeriapsisHeight()); readouts.Add(new PeriapsisHeight());
readouts.Add(new TimeToApoapsis()); readouts.Add(new TimeToApoapsis());
readouts.Add(new TimeToPeriapsis()); readouts.Add(new TimeToPeriapsis());
readouts.Add(new Inclination()); readouts.Add(new Inclination());
readouts.Add(new TimeToEquatorialAscendingNode()); readouts.Add(new TimeToEquatorialAscendingNode());
readouts.Add(new TimeToEquatorialDescendingNode()); readouts.Add(new TimeToEquatorialDescendingNode());
readouts.Add(new AngleToEquatorialAscendingNode()); readouts.Add(new AngleToEquatorialAscendingNode());
readouts.Add(new AngleToEquatorialDescendingNode()); readouts.Add(new AngleToEquatorialDescendingNode());
readouts.Add(new Eccentricity()); readouts.Add(new Eccentricity());
readouts.Add(new OrbitalSpeed()); readouts.Add(new OrbitalSpeed());
readouts.Add(new OrbitalPeriod()); readouts.Add(new OrbitalPeriod());
readouts.Add(new CurrentSoi()); readouts.Add(new CurrentSoi());
readouts.Add(new LongitudeOfAscendingNode()); readouts.Add(new LongitudeOfAscendingNode());
readouts.Add(new LongitudeOfPeriapsis()); readouts.Add(new LongitudeOfPeriapsis());
readouts.Add(new ArgumentOfPeriapsis()); readouts.Add(new ArgumentOfPeriapsis());
readouts.Add(new TrueAnomaly()); readouts.Add(new TrueAnomaly());
readouts.Add(new MeanAnomaly()); readouts.Add(new MeanAnomaly());
readouts.Add(new MeanAnomalyAtEpoc()); readouts.Add(new MeanAnomalyAtEpoc());
readouts.Add(new EccentricAnomaly()); readouts.Add(new EccentricAnomaly());
readouts.Add(new SemiMajorAxis()); readouts.Add(new SemiMajorAxis());
readouts.Add(new SemiMinorAxis()); readouts.Add(new SemiMinorAxis());
readouts.Add(new AngleToPrograde()); readouts.Add(new AngleToPrograde());
readouts.Add(new AngleToRetrograde()); readouts.Add(new AngleToRetrograde());
readouts.Add(new NodeProgradeDeltaV()); readouts.Add(new NodeProgradeDeltaV());
readouts.Add(new NodeNormalDeltaV()); readouts.Add(new NodeNormalDeltaV());
readouts.Add(new NodeRadialDeltaV()); readouts.Add(new NodeRadialDeltaV());
readouts.Add(new NodeTotalDeltaV()); readouts.Add(new NodeTotalDeltaV());
readouts.Add(new NodeBurnTime()); readouts.Add(new NodeBurnTime());
readouts.Add(new NodeHalfBurnTime()); readouts.Add(new NodeHalfBurnTime());
readouts.Add(new NodeTimeToManoeuvre()); readouts.Add(new NodeTimeToManoeuvre());
readouts.Add(new NodeTimeToHalfBurn()); readouts.Add(new NodeTimeToHalfBurn());
readouts.Add(new NodeAngleToPrograde()); readouts.Add(new NodeAngleToPrograde());
readouts.Add(new NodeAngleToRetrograde()); readouts.Add(new NodeAngleToRetrograde());
readouts.Add(new PostBurnApoapsis()); readouts.Add(new PostBurnApoapsis());
readouts.Add(new PostBurnPeriapsis()); readouts.Add(new PostBurnPeriapsis());
readouts.Add(new SpeedAtApoapsis()); readouts.Add(new SpeedAtApoapsis());
readouts.Add(new SpeedAtPeriapsis()); readouts.Add(new SpeedAtPeriapsis());
readouts.Add(new TimeToAtmosphere()); readouts.Add(new TimeToAtmosphere());
   
// Surface // Surface
readouts.Add(new AltitudeSeaLevel()); readouts.Add(new AltitudeSeaLevel());
readouts.Add(new AltitudeTerrain()); readouts.Add(new AltitudeTerrain());
readouts.Add(new VerticalSpeed()); readouts.Add(new VerticalSpeed());
readouts.Add(new VerticalAcceleration()); readouts.Add(new VerticalAcceleration());
readouts.Add(new HorizontalSpeed()); readouts.Add(new HorizontalSpeed());
readouts.Add(new HorizontalAcceleration()); readouts.Add(new HorizontalAcceleration());
readouts.Add(new MachNumber()); readouts.Add(new MachNumber());
readouts.Add(new Latitude()); readouts.Add(new Latitude());
readouts.Add(new Longitude()); readouts.Add(new Longitude());
readouts.Add(new GeeForce()); readouts.Add(new GeeForce());
readouts.Add(new TerminalVelocity()); readouts.Add(new TerminalVelocity());
readouts.Add(new AtmosphericEfficiency()); readouts.Add(new AtmosphericEfficiency());
readouts.Add(new Biome()); readouts.Add(new Biome());
readouts.Add(new Situation()); readouts.Add(new Situation());
readouts.Add(new Slope()); readouts.Add(new Slope());
readouts.Add(new ImpactTime()); readouts.Add(new ImpactTime());
readouts.Add(new ImpactLongitude()); readouts.Add(new ImpactLongitude());
readouts.Add(new ImpactLatitude()); readouts.Add(new ImpactLatitude());
readouts.Add(new ImpactAltitude()); readouts.Add(new ImpactAltitude());
readouts.Add(new ImpactBiome()); readouts.Add(new ImpactBiome());
   
// Vessel // Vessel
readouts.Add(new Name()); readouts.Add(new Name());
readouts.Add(new DeltaVStaged()); readouts.Add(new DeltaVStaged());
readouts.Add(new DeltaVCurrent()); readouts.Add(new DeltaVCurrent());
readouts.Add(new DeltaVTotal()); readouts.Add(new DeltaVTotal());
readouts.Add(new DeltaVCurrentTotal()); readouts.Add(new DeltaVCurrentTotal());
readouts.Add(new SpecificImpulse()); readouts.Add(new SpecificImpulse());
readouts.Add(new Mass()); readouts.Add(new Mass());
readouts.Add(new Thrust()); readouts.Add(new Thrust());
readouts.Add(new ThrustToWeight()); readouts.Add(new ThrustToWeight());
readouts.Add(new ThrustOffsetAngle()); readouts.Add(new ThrustOffsetAngle());
readouts.Add(new ThrustTorque()); readouts.Add(new ThrustTorque());
readouts.Add(new SurfaceThrustToWeight()); readouts.Add(new SurfaceThrustToWeight());
readouts.Add(new Acceleration()); readouts.Add(new Acceleration());
readouts.Add(new SuicideBurnAltitude()); readouts.Add(new SuicideBurnAltitude());
readouts.Add(new SuicideBurnDistance()); readouts.Add(new SuicideBurnDistance());
readouts.Add(new SuicideBurnDeltaV()); readouts.Add(new SuicideBurnDeltaV());
readouts.Add(new IntakeAirUsage()); readouts.Add(new IntakeAirUsage());
readouts.Add(new IntakeAirDemand()); readouts.Add(new IntakeAirDemand());
readouts.Add(new IntakeAirSupply()); readouts.Add(new IntakeAirSupply());
readouts.Add(new IntakeAirDemandSupply()); readouts.Add(new IntakeAirDemandSupply());
readouts.Add(new PartCount()); readouts.Add(new PartCount());
readouts.Add(new Heading()); readouts.Add(new Heading());
readouts.Add(new Pitch()); readouts.Add(new Pitch());
readouts.Add(new Roll()); readouts.Add(new Roll());
readouts.Add(new HeadingRate()); readouts.Add(new HeadingRate());
readouts.Add(new PitchRate()); readouts.Add(new PitchRate());
readouts.Add(new RollRate()); readouts.Add(new RollRate());
   
// Rendezvous // Rendezvous
readouts.Add(new TargetSelector()); readouts.Add(new TargetSelector());
readouts.Add(new PhaseAngle()); readouts.Add(new PhaseAngle());
readouts.Add(new InterceptAngle()); readouts.Add(new InterceptAngle());
readouts.Add(new RelativeVelocity()); readouts.Add(new RelativeVelocity());
readouts.Add(new RelativeSpeed()); readouts.Add(new RelativeSpeed());
readouts.Add(new RelativeInclination()); readouts.Add(new RelativeInclination());
readouts.Add(new TimeToRelativeAscendingNode()); readouts.Add(new TimeToRelativeAscendingNode());
readouts.Add(new TimeToRelativeDescendingNode()); readouts.Add(new TimeToRelativeDescendingNode());
readouts.Add(new AngleToRelativeAscendingNode()); readouts.Add(new AngleToRelativeAscendingNode());
readouts.Add(new AngleToRelativeDescendingNode()); readouts.Add(new AngleToRelativeDescendingNode());
readouts.Add(new Rendezvous.AltitudeSeaLevel()); readouts.Add(new Rendezvous.AltitudeSeaLevel());
readouts.Add(new Rendezvous.ApoapsisHeight()); readouts.Add(new Rendezvous.ApoapsisHeight());
readouts.Add(new Rendezvous.PeriapsisHeight()); readouts.Add(new Rendezvous.PeriapsisHeight());
readouts.Add(new Rendezvous.TimeToApoapsis()); readouts.Add(new Rendezvous.TimeToApoapsis());
readouts.Add(new Rendezvous.TimeToPeriapsis()); readouts.Add(new Rendezvous.TimeToPeriapsis());
readouts.Add(new Distance()); readouts.Add(new Distance());
readouts.Add(new Rendezvous.OrbitalPeriod()); readouts.Add(new Rendezvous.OrbitalPeriod());
readouts.Add(new Rendezvous.SemiMajorAxis()); readouts.Add(new Rendezvous.SemiMajorAxis());
readouts.Add(new Rendezvous.SemiMinorAxis()); readouts.Add(new Rendezvous.SemiMinorAxis());
readouts.Add(new Rendezvous.RelativeRadialVelocity()); readouts.Add(new Rendezvous.RelativeRadialVelocity());
readouts.Add(new Rendezvous.TimeToRendezvous()); readouts.Add(new Rendezvous.TimeToRendezvous());
   
// Thermal // Thermal
readouts.Add(new InternalFlux()); readouts.Add(new InternalFlux());
readouts.Add(new ConvectionFlux()); readouts.Add(new ConvectionFlux());
readouts.Add(new RadiationFlux()); readouts.Add(new RadiationFlux());
readouts.Add(new CriticalPart()); readouts.Add(new CriticalPart());
readouts.Add(new CriticalTemperature()); readouts.Add(new CriticalTemperature());
readouts.Add(new CriticalSkinTemperature()); readouts.Add(new CriticalSkinTemperature());
readouts.Add(new CriticalThermalPercentage()); readouts.Add(new CriticalThermalPercentage());
readouts.Add(new HottestPart()); readouts.Add(new HottestPart());
readouts.Add(new HottestTemperature()); readouts.Add(new HottestTemperature());
readouts.Add(new HottestSkinTemperature()); readouts.Add(new HottestSkinTemperature());
readouts.Add(new CoolestPart()); readouts.Add(new CoolestPart());
readouts.Add(new CoolestTemperature()); readouts.Add(new CoolestTemperature());
readouts.Add(new CoolestSkinTemperature()); readouts.Add(new CoolestSkinTemperature());
   
// Misc // Misc
readouts.Add(new Separator()); readouts.Add(new Separator());
readouts.Add(new GuiSizeAdjustor()); readouts.Add(new GuiSizeAdjustor());
readouts.Add(new SimulationDelay()); readouts.Add(new SimulationDelay());
readouts.Add(new VectoredThrustToggle()); readouts.Add(new VectoredThrustToggle());
readouts.Add(new SystemTime()); readouts.Add(new SystemTime());
readouts.Add(new LogSimToggle());  
   
LoadHelpStrings(); LoadHelpStrings();
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Gets and sets the available readout modules. /// Gets and sets the available readout modules.
/// </summary> /// </summary>
public static List<ReadoutModule> Readouts public static List<ReadoutModule> Readouts
{ {
get get
{ {
return readouts; return readouts;
} }
set set
{ {
readouts = value; readouts = value;
} }
} }
   
/// <summary> /// <summary>
/// Gets a list of readout modules which are associated with the specified category. /// Gets a list of readout modules which are associated with the specified category.
/// </summary> /// </summary>
public static List<ReadoutModule> GetCategory(ReadoutCategory category) public static List<ReadoutModule> GetCategory(ReadoutCategory category)
{ {
return readouts.Where(r => r.Category == category).ToList(); return readouts.Where(r => r.Category == category).ToList();
} }
   
/// <summary> /// <summary>
/// Gets a readout module with the specified name or class name. (Returns null if not found.) /// Gets a readout module with the specified name or class name. (Returns null if not found.)
/// </summary> /// </summary>
public static ReadoutModule GetReadout(string name) public static ReadoutModule GetReadout(string name)
{ {
return readouts.FirstOrDefault(r => r.Name == name || r.GetType().Name == name || r.Category + "." + r.GetType().Name == name); return readouts.FirstOrDefault(r => r.Name == name || r.GetType().Name == name || r.Category + "." + r.GetType().Name == name);
} }
   
/// <summary> /// <summary>
/// Resets all the readout modules. /// Resets all the readout modules.
/// </summary> /// </summary>
public static void Reset() public static void Reset()
{ {
foreach (ReadoutModule readout in readouts) foreach (ReadoutModule readout in readouts)
{ {
readout.Reset(); readout.Reset();
} }
} }
   
/// <summary> /// <summary>
/// Loads the help strings from file. /// Loads the help strings from file.
/// </summary> /// </summary>
private static void LoadHelpStrings() private static void LoadHelpStrings()
{ {
try try
{ {
SettingHandler handler = SettingHandler.Load("HelpStrings.xml"); SettingHandler handler = SettingHandler.Load("HelpStrings.xml");
foreach (ReadoutModule readout in readouts) foreach (ReadoutModule readout in readouts)
{ {
readout.HelpString = handler.GetSet(readout.Category + "." + readout.GetType().Name, readout.HelpString); readout.HelpString = handler.GetSet(readout.Category + "." + readout.GetType().Name, readout.HelpString);
} }
handler.Save("HelpStrings.xml"); handler.Save("HelpStrings.xml");
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2014 CYBUTEK // Copyright (C) 2014 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
#region Using Directives #region Using Directives
   
using KerbalEngineer.Extensions; using KerbalEngineer.Extensions;
using KerbalEngineer.Flight.Sections; using KerbalEngineer.Flight.Sections;
using System; using System;
   
#endregion #endregion
   
namespace KerbalEngineer.Flight.Readouts.Surface namespace KerbalEngineer.Flight.Readouts.Surface
{ {
public class HorizontalSpeed : ReadoutModule public class HorizontalSpeed : ReadoutModule
{ {
#region Constructors #region Constructors
   
public HorizontalSpeed() public HorizontalSpeed()
{ {
this.Name = "Horizontal Speed"; this.Name = "Horizontal Speed";
this.Category = ReadoutCategory.GetCategory("Surface"); this.Category = ReadoutCategory.GetCategory("Surface");
this.HelpString = "Shows the vessel's horizontal speed across a celestial body's surface."; this.HelpString = "Shows the vessel's horizontal speed across a celestial body's surface.";
this.IsDefault = true; this.IsDefault = true;
} }
   
#endregion #endregion
   
#region Methods: public #region Methods: public
   
public override void Draw(SectionModule section) public override void Draw(SectionModule section)
{ {
this.DrawLine(FlightGlobals.ActiveVessel.horizontalSrfSpeed.ToSpeed(), section.IsHud); // Used to do this but the bug-fix to horizontalSrfSpeed in KSP 1.0.3 actually made it worse so workaround
  //this.DrawLine(FlightGlobals.ActiveVessel.horizontalSrfSpeed.ToSpeed(), section.IsHud);
// This workaround was used for KSP 1.0.3 and 1.0.4 where horizontalSrfSpeed was really badly broken var ves = FlightGlobals.ActiveVessel;
//var ves = FlightGlobals.ActiveVessel; double horizSpeed = Math.Sqrt(ves.srfSpeed * ves.srfSpeed - ves.verticalSpeed * ves.verticalSpeed);
//double horizSpeed = Math.Sqrt(ves.srfSpeed * ves.srfSpeed - ves.verticalSpeed * ves.verticalSpeed); this.DrawLine(horizSpeed.ToSpeed(), section.IsHud);
//this.DrawLine(horizSpeed.ToSpeed(), section.IsHud);  
} }
   
#endregion #endregion
} }
} }
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{39806613-E0B7-46E0-89A6-A569EC538CBB}</ProjectGuid> <ProjectGuid>{39806613-E0B7-46E0-89A6-A569EC538CBB}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>KerbalEngineer</RootNamespace> <RootNamespace>KerbalEngineer</RootNamespace>
<AssemblyName>KerbalEngineer</AssemblyName> <AssemblyName>KerbalEngineer</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>false</DebugSymbols> <DebugSymbols>false</DebugSymbols>
<DebugType>none</DebugType> <DebugType>none</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>..\Output\KerbalEngineer\</OutputPath> <OutputPath>..\Output\KerbalEngineer\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<UseVSHostingProcess>false</UseVSHostingProcess> <UseVSHostingProcess>false</UseVSHostingProcess>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType> <DebugType>none</DebugType>
<Optimize>true</Optimize> <Optimize>true</Optimize>
<OutputPath>..\Output\KerbalEngineer\</OutputPath> <OutputPath>..\Output\KerbalEngineer\</OutputPath>
<DefineConstants> <DefineConstants>
</DefineConstants> </DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<UseVSHostingProcess>false</UseVSHostingProcess> <UseVSHostingProcess>false</UseVSHostingProcess>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks> <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AppLauncherButton.cs" /> <Compile Include="AppLauncherButton.cs" />
<Compile Include="AssetBundleLoader.cs" /> <Compile Include="AssetBundleLoader.cs" />
<Compile Include="Control\IControlPanel.cs" /> <Compile Include="Control\IControlPanel.cs" />
<Compile Include="Control\Panels\BuildOverlayPanel.cs" /> <Compile Include="Control\Panels\BuildOverlayPanel.cs" />
<Compile Include="Control\Panels\BuildEngineerPanel.cs" /> <Compile Include="Control\Panels\BuildEngineerPanel.cs" />
<Compile Include="Editor\BuildAdvanced.cs" /> <Compile Include="Editor\BuildAdvanced.cs" />
<Compile Include="Editor\BuildAppLauncher.cs" /> <Compile Include="Editor\BuildAppLauncher.cs" />
<Compile Include="Editor\BuildOverlay.cs" /> <Compile Include="Editor\BuildOverlay.cs" />
<Compile Include="CelestialBodies.cs" /> <Compile Include="CelestialBodies.cs" />
<Compile Include="Editor\BuildOverlayPartInfo.cs" /> <Compile Include="Editor\BuildOverlayPartInfo.cs" />
<Compile Include="Editor\BuildOverlayResources.cs" /> <Compile Include="Editor\BuildOverlayResources.cs" />
<Compile Include="Editor\BuildOverlayVessel.cs" /> <Compile Include="Editor\BuildOverlayVessel.cs" />
<Compile Include="Editor\PartInfoItem.cs" /> <Compile Include="Editor\PartInfoItem.cs" />
<Compile Include="Editor\ResourceInfoItem.cs" /> <Compile Include="Editor\ResourceInfoItem.cs" />
<Compile Include="Extensions\FloatExtensions.cs" /> <Compile Include="Extensions\FloatExtensions.cs" />
<Compile Include="Extensions\OrbitExtensions.cs" /> <Compile Include="Extensions\OrbitExtensions.cs" />
<Compile Include="Extensions\StringExtensions.cs" /> <Compile Include="Extensions\StringExtensions.cs" />
<Compile Include="Flight\ActionMenuGui.cs" /> <Compile Include="Flight\ActionMenuGui.cs" />
<Compile Include="Flight\FlightAppLauncher.cs" /> <Compile Include="Flight\FlightAppLauncher.cs" />
<Compile Include="Flight\Presets\Preset.cs" /> <Compile Include="Flight\Presets\Preset.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\LogSimToggle.cs" />  
<Compile Include="Flight\Readouts\Miscellaneous\SystemTime.cs" /> <Compile Include="Flight\Readouts\Miscellaneous\SystemTime.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\VectoredThrustToggle.cs" /> <Compile Include="Flight\Readouts\Miscellaneous\VectoredThrustToggle.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\Separator.cs" /> <Compile Include="Flight\Readouts\Miscellaneous\Separator.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\GuiSizeAdjustor.cs" /> <Compile Include="Flight\Readouts\Miscellaneous\GuiSizeAdjustor.cs" />
<Compile Include="Flight\Readouts\Orbital\AngleToEquatorialDescendingNode.cs" /> <Compile Include="Flight\Readouts\Orbital\AngleToEquatorialDescendingNode.cs" />
<Compile Include="Flight\Readouts\Orbital\AngleToEquatorialAscendingNode.cs" /> <Compile Include="Flight\Readouts\Orbital\AngleToEquatorialAscendingNode.cs" />
<Compile Include="Flight\Readouts\Orbital\AngleToRetrograde.cs" /> <Compile Include="Flight\Readouts\Orbital\AngleToRetrograde.cs" />
<Compile Include="Flight\Readouts\Orbital\AngleToPrograde.cs" /> <Compile Include="Flight\Readouts\Orbital\AngleToPrograde.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeRadialDeltaV.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeRadialDeltaV.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\ManoeuvreProcessor.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\ManoeuvreProcessor.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToHalfBurn.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToHalfBurn.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToManoeuvre.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToManoeuvre.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeHalfBurnTime.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeHalfBurnTime.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeBurnTime.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeBurnTime.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeAngleToRetrograde.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeAngleToRetrograde.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeNormalDeltaV.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeNormalDeltaV.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeAngleToPrograde.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeAngleToPrograde.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTotalDeltaV.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTotalDeltaV.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeProgradeDeltaV.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeProgradeDeltaV.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\PostBurnApoapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\PostBurnApoapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\PostBurnPeriapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\PostBurnPeriapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\MeanAnomalyAtEpoc.cs" /> <Compile Include="Flight\Readouts\Orbital\MeanAnomalyAtEpoc.cs" />
<Compile Include="Flight\Readouts\Orbital\MeanAnomaly.cs" /> <Compile Include="Flight\Readouts\Orbital\MeanAnomaly.cs" />
<Compile Include="Flight\Readouts\Orbital\EccentricAnomaly.cs" /> <Compile Include="Flight\Readouts\Orbital\EccentricAnomaly.cs" />
<Compile Include="Flight\Readouts\Orbital\ArgumentOfPeriapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\ArgumentOfPeriapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\CurrentSoi.cs" /> <Compile Include="Flight\Readouts\Orbital\CurrentSoi.cs" />
<Compile Include="Flight\Readouts\Orbital\SemiMajorAxis.cs"> <Compile Include="Flight\Readouts\Orbital\SemiMajorAxis.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="Flight\Readouts\Orbital\SpeedAtApoapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\SpeedAtApoapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\SpeedAtPeriapsis.cs"> <Compile Include="Flight\Readouts\Orbital\SpeedAtPeriapsis.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="Flight\Readouts\Orbital\TimeToAtmosphere.cs" /> <Compile Include="Flight\Readouts\Orbital\TimeToAtmosphere.cs" />
<Compile Include="Flight\Readouts\Orbital\TrueAnomaly.cs" /> <Compile Include="Flight\Readouts\Orbital\TrueAnomaly.cs" />
<Compile Include="Flight\Readouts\Orbital\TimeToEquatorialAscendingNode.cs" /> <Compile Include="Flight\Readouts\Orbital\TimeToEquatorialAscendingNode.cs" />
<Compile Include="Flight\Readouts\Orbital\TimeToEquatorialDescendingNode.cs" /> <Compile Include="Flight\Readouts\Orbital\TimeToEquatorialDescendingNode.cs" />
<Compile Include="Flight\Readouts\Rendezvous\RelativeSpeed.cs" /> <Compile Include="Flight\Readouts\Rendezvous\RelativeSpeed.cs" />
<Compile Include="Flight\Readouts\Rendezvous\RelativeVelocity.cs" /> <Compile Include="Flight\Readouts\Rendezvous\RelativeVelocity.cs" />
<Compile Include="Flight\Readouts\Rendezvous\SemiMinorAxis.cs" /> <Compile Include="Flight\Readouts\Rendezvous\SemiMinorAxis.cs" />
<Compile Include="Flight\Readouts\Rendezvous\SemiMajorAxis.cs" /> <Compile Include="Flight\Readouts\Rendezvous\SemiMajorAxis.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TimeToRelativeDescendingNode.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TimeToRelativeDescendingNode.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TimeToRelativeAscendingNode.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TimeToRelativeAscendingNode.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactBiome.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactBiome.cs" />
<Compile Include="Flight\Readouts\Surface\Slope.cs" /> <Compile Include="Flight\Readouts\Surface\Slope.cs" />
<Compile Include="Flight\Readouts\Surface\Biome.cs" /> <Compile Include="Flight\Readouts\Surface\Biome.cs" />
<Compile Include="Flight\Readouts\Surface\HorizontalAcceleration.cs" /> <Compile Include="Flight\Readouts\Surface\HorizontalAcceleration.cs" />
<Compile Include="Flight\Readouts\Surface\VerticalAcceleration.cs" /> <Compile Include="Flight\Readouts\Surface\VerticalAcceleration.cs" />
<Compile Include="Flight\Readouts\Surface\MachNumber.cs" /> <Compile Include="Flight\Readouts\Surface\MachNumber.cs" />
<Compile Include="Flight\Readouts\Thermal\CoolestSkinTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\CoolestSkinTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\CriticalPart.cs" /> <Compile Include="Flight\Readouts\Thermal\CriticalPart.cs" />
<Compile Include="Flight\Readouts\Thermal\CoolestPart.cs" /> <Compile Include="Flight\Readouts\Thermal\CoolestPart.cs" />
<Compile Include="Flight\Readouts\Thermal\CoolestTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\CoolestTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\CriticalThermalPercentage.cs" /> <Compile Include="Flight\Readouts\Thermal\CriticalThermalPercentage.cs" />
<Compile Include="Flight\Readouts\Thermal\CriticalSkinTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\CriticalSkinTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\CriticalTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\CriticalTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\HottestSkinTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\HottestSkinTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\InternalFlux.cs" /> <Compile Include="Flight\Readouts\Thermal\InternalFlux.cs" />
<Compile Include="Flight\Readouts\Thermal\RadiationFlux.cs" /> <Compile Include="Flight\Readouts\Thermal\RadiationFlux.cs" />
<Compile Include="Flight\Readouts\Thermal\ConvectionFlux.cs" /> <Compile Include="Flight\Readouts\Thermal\ConvectionFlux.cs" />
<Compile Include="Flight\Readouts\Thermal\HottestTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\HottestTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\HottestPart.cs" /> <Compile Include="Flight\Readouts\Thermal\HottestPart.cs" />
<Compile Include="Flight\Readouts\Thermal\ThermalProcessor.cs" /> <Compile Include="Flight\Readouts\Thermal\ThermalProcessor.cs" />
<Compile Include="Flight\Readouts\Vessel\Name.cs" /> <Compile Include="Flight\Readouts\Vessel\Name.cs" />
<Compile Include="Flight\Readouts\Vessel\AttitudeProcessor.cs" /> <Compile Include="Flight\Readouts\Vessel\AttitudeProcessor.cs" />
<Compile Include="Flight\Readouts\Vessel\DeltaVCurrentTotal.cs" /> <Compile Include="Flight\Readouts\Vessel\DeltaVCurrentTotal.cs" />
<Compile Include="Flight\Readouts\Vessel\PitchRate.cs" /> <Compile Include="Flight\Readouts\Vessel\PitchRate.cs" />
<Compile Include="Flight\Readouts\Vessel\HeadingRate.cs" /> <Compile Include="Flight\Readouts\Vessel\HeadingRate.cs" />
<Compile Include="Flight\Readouts\Vessel\RollRate.cs" /> <Compile Include="Flight\Readouts\Vessel\RollRate.cs" />
<Compile Include="Flight\Readouts\Vessel\Roll.cs" /> <Compile Include="Flight\Readouts\Vessel\Roll.cs" />
<Compile Include="Flight\Readouts\Vessel\Pitch.cs" /> <Compile Include="Flight\Readouts\Vessel\Pitch.cs" />
<Compile Include="Flight\Readouts\Vessel\Heading.cs" /> <Compile Include="Flight\Readouts\Vessel\Heading.cs" />
<Compile Include="Flight\Readouts\Vessel\PartCount.cs" /> <Compile Include="Flight\Readouts\Vessel\PartCount.cs" />
<Compile Include="Flight\Readouts\Vessel\SuicideBurnDeltaV.cs" /> <Compile Include="Flight\Readouts\Vessel\SuicideBurnDeltaV.cs" />
<Compile Include="Flight\Readouts\Vessel\SuicideBurnAltitude.cs" /> <Compile Include="Flight\Readouts\Vessel\SuicideBurnAltitude.cs" />
<Compile Include="Flight\Readouts\Vessel\SuicideBurnDistance.cs" /> <Compile Include="Flight\Readouts\Vessel\SuicideBurnDistance.cs" />
<Compile Include="Flight\Readouts\Vessel\DeltaVCurrent.cs" /> <Compile Include="Flight\Readouts\Vessel\DeltaVCurrent.cs" />
<Compile Include="Flight\Readouts\Vessel\IntakeAirUsage.cs" /> <Compile Include="Flight\Readouts\Vessel\IntakeAirUsage.cs" />
<Compile Include="Flight\Readouts\Vessel\IntakeAirDemandSupply.cs" /> <Compile Include="Flight\Readouts\Vessel\IntakeAirDemandSupply.cs" />
<Compile Include="Flight\Readouts\Vessel\IntakeAirSupply.cs" /> <Compile Include="Flight\Readouts\Vessel\IntakeAirSupply.cs" />
<Compile Include="Flight\Readouts\Vessel\IntakeAirDemand.cs" /> <Compile Include="Flight\Readouts\Vessel\IntakeAirDemand.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\SimulationDelay.cs" /> <Compile Include="Flight\Readouts\Miscellaneous\SimulationDelay.cs" />
<Compile Include="Flight\Readouts\Vessel\SimulationProcessor.cs" /> <Compile Include="Flight\Readouts\Vessel\SimulationProcessor.cs" />
<Compile Include="Flight\Readouts\Vessel\Acceleration.cs" /> <Compile Include="Flight\Readouts\Vessel\Acceleration.cs" />
<Compile Include="Flight\Presets\PresetLibrary.cs" /> <Compile Include="Flight\Presets\PresetLibrary.cs" />
<Compile Include="Flight\Readouts\Vessel\SuicideBurnProcessor.cs" /> <Compile Include="Flight\Readouts\Vessel\SuicideBurnProcessor.cs" />
<Compile Include="Flight\Readouts\Vessel\SurfaceThrustToWeight.cs" /> <Compile Include="Flight\Readouts\Vessel\SurfaceThrustToWeight.cs" />
<Compile Include="Flight\Readouts\Surface\Situation.cs" /> <Compile Include="Flight\Readouts\Surface\Situation.cs" />
<Compile Include="Flight\Readouts\Vessel\ThrustOffsetAngle.cs" /> <Compile Include="Flight\Readouts\Vessel\ThrustOffsetAngle.cs" />
<Compile Include="Flight\Readouts\Vessel\ThrustTorque.cs" /> <Compile Include="Flight\Readouts\Vessel\ThrustTorque.cs" />
<Compile Include="GuiDisplaySize.cs" /> <Compile Include="GuiDisplaySize.cs" />
<Compile Include="Helpers\AngleHelper.cs" /> <Compile Include="Helpers\AngleHelper.cs" />
<Compile Include="Helpers\Averager.cs" /> <Compile Include="Helpers\Averager.cs" />
<Compile Include="Helpers\ForceAccumulator.cs" /> <Compile Include="Helpers\ForceAccumulator.cs" />
<Compile Include="Helpers\TextureHelper.cs" /> <Compile Include="Helpers\TextureHelper.cs" />
<Compile Include="Helpers\Units.cs" /> <Compile Include="Helpers\Units.cs" />
<Compile Include="Helpers\TimeFormatter.cs" /> <Compile Include="Helpers\TimeFormatter.cs" />
<Compile Include="Helpers\XmlHelper.cs" /> <Compile Include="Helpers\XmlHelper.cs" />
<Compile Include="KeyBinding\KeyBinder.cs" /> <Compile Include="KeyBinding\KeyBinder.cs" />
<Compile Include="Control\ControlCentre.cs" /> <Compile Include="Control\ControlCentre.cs" />
<Compile Include="KeyBinding\KeyBindingsObject.cs" /> <Compile Include="KeyBinding\KeyBindingsObject.cs" />
  <Compile Include="StyleManager.cs" />
<Compile Include="UIControls\DropDown.cs" /> <Compile Include="UIControls\DropDown.cs" />
<Compile Include="Logger.cs" /> <Compile Include="Logger.cs" />
<Compile Include="EngineerGlobals.cs" /> <Compile Include="EngineerGlobals.cs" />
<Compile Include="Extensions\DoubleExtensions.cs" /> <Compile Include="Extensions\DoubleExtensions.cs" />
<Compile Include="Extensions\PartExtensions.cs" /> <Compile Include="Extensions\PartExtensions.cs" />
<Compile Include="Extensions\PartResourceExtensions.cs" /> <Compile Include="Extensions\PartResourceExtensions.cs" />
<Compile Include="Extensions\RectExtensions.cs" /> <Compile Include="Extensions\RectExtensions.cs" />
<Compile Include="Flight\ActionMenu.cs" /> <Compile Include="Flight\ActionMenu.cs" />
<Compile Include="Flight\DisplayStack.cs" /> <Compile Include="Flight\DisplayStack.cs" />
<Compile Include="Flight\FlightEngineerCore.cs" /> <Compile Include="Flight\FlightEngineerCore.cs" />
<Compile Include="Flight\FlightEngineerModule.cs" /> <Compile Include="Flight\FlightEngineerModule.cs" />
<Compile Include="Flight\IUpdatable.cs" /> <Compile Include="Flight\IUpdatable.cs" />
<Compile Include="Flight\IUpdateRequest.cs" /> <Compile Include="Flight\IUpdateRequest.cs" />
<Compile Include="Flight\Readouts\Orbital\ApoapsisHeight.cs" /> <Compile Include="Flight\Readouts\Orbital\ApoapsisHeight.cs" />
<Compile Include="Flight\Readouts\Orbital\Eccentricity.cs" /> <Compile Include="Flight\Readouts\Orbital\Eccentricity.cs" />
<Compile Include="Flight\Readouts\Orbital\Inclination.cs" /> <Compile Include="Flight\Readouts\Orbital\Inclination.cs" />
<Compile Include="Flight\Readouts\Orbital\LongitudeOfAscendingNode.cs" /> <Compile Include="Flight\Readouts\Orbital\LongitudeOfAscendingNode.cs" />
<Compile Include="Flight\Readouts\Orbital\LongitudeOfPeriapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\LongitudeOfPeriapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\OrbitalPeriod.cs" /> <Compile Include="Flight\Readouts\Orbital\OrbitalPeriod.cs" />
<Compile Include="Flight\Readouts\Orbital\OrbitalSpeed.cs" /> <Compile Include="Flight\Readouts\Orbital\OrbitalSpeed.cs" />
<Compile Include="Flight\Readouts\Orbital\PeriapsisHeight.cs" /> <Compile Include="Flight\Readouts\Orbital\PeriapsisHeight.cs" />
<Compile Include="Flight\Readouts\Orbital\SemiMinorAxis.cs" /> <Compile Include="Flight\Readouts\Orbital\SemiMinorAxis.cs" />
<Compile Include="Flight\Readouts\Orbital\TimeToApoapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\TimeToApoapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\TimeToPeriapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\TimeToPeriapsis.cs" />
<Compile Include="Flight\Readouts\ReadoutCategory.cs" /> <Compile Include="Flight\Readouts\ReadoutCategory.cs" />
<Compile Include="Flight\Readouts\ReadoutLibrary.cs" /> <Compile Include="Flight\Readouts\ReadoutLibrary.cs" />
<Compile Include="Flight\Readouts\ReadoutModule.cs" /> <Compile Include="Flight\Readouts\ReadoutModule.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TimeToPeriapsis.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TimeToPeriapsis.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TimeToApoapsis.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TimeToApoapsis.cs" />
<Compile Include="Flight\Readouts\Rendezvous\PeriapsisHeight.cs" /> <Compile Include="Flight\Readouts\Rendezvous\PeriapsisHeight.cs" />
<Compile Include="Flight\Readouts\Rendezvous\ApoapsisHeight.cs" /> <Compile Include="Flight\Readouts\Rendezvous\ApoapsisHeight.cs" />
<Compile Include="Flight\Readouts\Rendezvous\InterceptAngle.cs" /> <Compile Include="Flight\Readouts\Rendezvous\InterceptAngle.cs" />
<Compile Include="Flight\Readouts\Rendezvous\OrbitalPeriod.cs" /> <Compile Include="Flight\Readouts\Rendezvous\OrbitalPeriod.cs" />
<Compile Include="Flight\Readouts\Rendezvous\Distance.cs" /> <Compile Include="Flight\Readouts\Rendezvous\Distance.cs" />
<Compile Include="Flight\Readouts\Rendezvous\AltitudeSeaLevel.cs" /> <Compile Include="Flight\Readouts\Rendezvous\AltitudeSeaLevel.cs" />
<Compile Include="Flight\Readouts\Rendezvous\AngleToRelativeDescendingNode.cs" /> <Compile Include="Flight\Readouts\Rendezvous\AngleToRelativeDescendingNode.cs" />
<Compile Include="Flight\Readouts\Rendezvous\AngleToRelativeAscendingNode.cs" /> <Compile Include="Flight\Readouts\Rendezvous\AngleToRelativeAscendingNode.cs" />
<Compile Include="Flight\Readouts\Rendezvous\PhaseAngle.cs" /> <Compile Include="Flight\Readouts\Rendezvous\PhaseAngle.cs" />
<Compile Include="Flight\Readouts\Rendezvous\RelativeInclination.cs" /> <Compile Include="Flight\Readouts\Rendezvous\RelativeInclination.cs" />
<Compile Include="Flight\Readouts\Rendezvous\RendezvousProcessor.cs" /> <Compile Include="Flight\Readouts\Rendezvous\RendezvousProcessor.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TargetSelector.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TargetSelector.cs" />
<Compile Include="Flight\Readouts\Surface\AltitudeSeaLevel.cs" /> <Compile Include="Flight\Readouts\Surface\AltitudeSeaLevel.cs" />
<Compile Include="Flight\Readouts\Surface\AltitudeTerrain.cs" /> <Compile Include="Flight\Readouts\Surface\AltitudeTerrain.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactLatitude.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactLatitude.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactAltitude.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactAltitude.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactLongitude.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactLongitude.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactTime.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactTime.cs" />
<Compile Include="Flight\Readouts\Surface\AtmosphericProcessor.cs" /> <Compile Include="Flight\Readouts\Surface\AtmosphericProcessor.cs" />
<Compile Include="Flight\Readouts\Surface\AtmosphericEfficiency.cs" /> <Compile Include="Flight\Readouts\Surface\AtmosphericEfficiency.cs" />
<Compile Include="Flight\Readouts\Surface\GeeForce.cs" /> <Compile Include="Flight\Readouts\Surface\GeeForce.cs" />
<Compile Include="Flight\Readouts\Surface\HorizontalSpeed.cs" /> <Compile Include="Flight\Readouts\Surface\HorizontalSpeed.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactProcessor.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactProcessor.cs" />
<Compile Include="Flight\Readouts\Surface\Latitude.cs" /> <Compile Include="Flight\Readouts\Surface\Latitude.cs" />
<Compile Include="Flight\Readouts\Surface\Longitude.cs" /> <Compile Include="Flight\Readouts\Surface\Longitude.cs" />
<Compile Include="Flight\Readouts\Surface\TerminalVelocity.cs" /> <Compile Include="Flight\Readouts\Surface\TerminalVelocity.cs" />
<Compile Include="Flight\Readouts\Surface\VerticalSpeed.cs" /> <Compile Include="Flight\Readouts\Surface\VerticalSpeed.cs" />
<Compile Include="Flight\Readouts\Vessel\DeltaVStaged.cs" /> <Compile Include="Flight\Readouts\Vessel\DeltaVStaged.cs" />
<Compile Include="Flight\Readouts\Vessel\DeltaVTotal.cs" /> <Compile Include="Flight\Readouts\Vessel\DeltaVTotal.cs" />
<Compile Include="Flight\Readouts\Vessel\Mass.cs" /> <Compile Include="Flight\Readouts\Vessel\Mass.cs" />
<Compile Include="Flight\Readouts\Vessel\Thrust.cs" /> <Compile Include="Flight\Readouts\Vessel\Thrust.cs" />
<Compile Include="Flight\Readouts\Vessel\SpecificImpulse.cs" /> <Compile Include="Flight\Readouts\Vessel\SpecificImpulse.cs" />
<Compile Include="Flight\Readouts\Vessel\ThrustToWeight.cs" /> <Compile Include="Flight\Readouts\Vessel\ThrustToWeight.cs" />
<Compile Include="Flight\Sections\SectionEditor.cs" /> <Compile Include="Flight\Sections\SectionEditor.cs" />
<Compile Include="Flight\Sections\SectionLibrary.cs" /> <Compile Include="Flight\Sections\SectionLibrary.cs" />
<Compile Include="Flight\Sections\SectionModule.cs" /> <Compile Include="Flight\Sections\SectionModule.cs" />
<Compile Include="Flight\Sections\SectionWindow.cs" /> <Compile Include="Flight\Sections\SectionWindow.cs" />
<Compile Include="LogMsg.cs" /> <Compile Include="LogMsg.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Settings\SettingHandler.cs" /> <Compile Include="Settings\SettingHandler.cs" />
<Compile Include="Settings\SettingItem.cs" /> <Compile Include="Settings\SettingItem.cs" />
<Compile Include="TapeDriveAnimator.cs" /> <Compile Include="TapeDriveAnimator.cs" />
<Compile Include="KeyBinding\KeyBindPopup.cs" /> <Compile Include="KeyBinding\KeyBindPopup.cs" />
<Compile Include="UIControls\WindowObject.cs" /> <Compile Include="UIControls\WindowObject.cs" />
<Compile Include="VesselSimulator\AttachNodeSim.cs" /> <Compile Include="VesselSimulator\AttachNodeSim.cs" />
<Compile Include="VesselSimulator\EngineSim.cs" /> <Compile Include="VesselSimulator\EngineSim.cs" />
<Compile Include="Helpers\Pool.cs" /> <Compile Include="Helpers\Pool.cs" />
<Compile Include="VesselSimulator\PartSim.cs" /> <Compile Include="VesselSimulator\PartSim.cs" />
<Compile Include="VesselSimulator\ResourceContainer.cs" /> <Compile Include="VesselSimulator\ResourceContainer.cs" />
<Compile Include="VesselSimulator\SimManager.cs" /> <Compile Include="VesselSimulator\SimManager.cs" />
<Compile Include="VesselSimulator\Simulation.cs" /> <Compile Include="VesselSimulator\Simulation.cs" />
<Compile Include="VesselSimulator\Stage.cs" /> <Compile Include="VesselSimulator\Stage.cs" />
<Compile Include="Flight\Readouts\Rendezvous\RelativeRadialVelocity.cs" /> <Compile Include="Flight\Readouts\Rendezvous\RelativeRadialVelocity.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TimeToRendezvous.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TimeToRendezvous.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Assembly-CSharp"> <Reference Include="Assembly-CSharp">
<HintPath>..\..\Game\KSP_Data\Managed\Assembly-CSharp.dll</HintPath> <HintPath>..\..\Game\KSP_Data\Managed\Assembly-CSharp.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Assembly-CSharp-firstpass"> <Reference Include="Assembly-CSharp-firstpass">
<HintPath>..\..\game\KSP_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="KSPAssets"> <Reference Include="KSPAssets">
<HintPath>..\..\game\KSP_Data\Managed\KSPAssets.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\KSPAssets.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="KSPCore"> <Reference Include="KSPCore">
<HintPath>..\..\game\KSP_Data\Managed\KSPCore.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\KSPCore.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="KSPUtil"> <Reference Include="KSPUtil">
<HintPath>..\..\game\KSP_Data\Managed\KSPUtil.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\KSPUtil.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="System"> <Reference Include="System">
<HintPath>..\Game\KSP_Data\Managed\System.dll</HintPath> <HintPath>..\Game\KSP_Data\Managed\System.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="System.Xml"> <Reference Include="System.Xml">
<HintPath>..\Game\KSP_Data\Managed\System.Xml.dll</HintPath> <HintPath>..\Game\KSP_Data\Managed\System.Xml.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="UnityEngine"> <Reference Include="UnityEngine">
<HintPath>..\..\Game\KSP_Data\Managed\UnityEngine.dll</HintPath> <HintPath>..\..\Game\KSP_Data\Managed\UnityEngine.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="UnityEngine.UI"> <Reference Include="UnityEngine.UI">
<HintPath>..\..\game\KSP_Data\Managed\UnityEngine.UI.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\UnityEngine.UI.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\KerbalEngineer.Unity\KerbalEngineer.Unity.csproj"> <ProjectReference Include="..\KerbalEngineer.Unity\KerbalEngineer.Unity.csproj">
<Project>{5387bb1e-32b1-4bac-b03f-100570b9554c}</Project> <Project>{5387bb1e-32b1-4bac-b03f-100570b9554c}</Project>
<Name>KerbalEngineer.Unity</Name> <Name>KerbalEngineer.Unity</Name>
<Private>False</Private> <Private>False</Private>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="PostBuildMacros"> <Target Name="PostBuildMacros">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)"> <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="Targets" /> <Output TaskParameter="Assemblies" ItemName="Targets" />
</GetAssemblyIdentity> </GetAssemblyIdentity>
<ItemGroup> <ItemGroup>
<VersionNumber Include="@(Targets->'%(Version)')" /> <VersionNumber Include="@(Targets->'%(Version)')" />
</ItemGroup> </ItemGroup>
</Target> </Target>
<PropertyGroup> <PropertyGroup>
<PostBuildEventDependsOn> <PostBuildEventDependsOn>
$(PostBuildEventDependsOn); $(PostBuildEventDependsOn);
PostBuildMacros; PostBuildMacros;
</PostBuildEventDependsOn> </PostBuildEventDependsOn>
<PostBuildEvent>xcopy "$(SolutionDir)Output\*" "$(SolutionDir)..\Game\GameData\*" /E /Y <PostBuildEvent>xcopy "$(SolutionDir)Output\*" "$(SolutionDir)..\Game\GameData\*" /E /Y
del "$(SolutionDir)Release\*" /Q del "$(SolutionDir)Release\*" /Q
xcopy "$(SolutionDir)Documents\*" "$(SolutionDir)Release\Documents\*" /E /Y xcopy "$(SolutionDir)Documents\*" "$(SolutionDir)Release\Documents\*" /E /Y
7z.exe a -tzip -mx3 "$(SolutionDir)Release\$(ProjectName)-@(VersionNumber).zip" "$(SolutionDir)Output\*" 7z.exe a -tzip -mx3 "$(SolutionDir)Release\$(ProjectName)-@(VersionNumber).zip" "$(SolutionDir)Output\*"
7z.exe a -tzip -mx3 "$(SolutionDir)Release\$(ProjectName)-@(VersionNumber).zip" "$(SolutionDir)Documents\*"</PostBuildEvent> 7z.exe a -tzip -mx3 "$(SolutionDir)Release\$(ProjectName)-@(VersionNumber).zip" "$(SolutionDir)Documents\*"</PostBuildEvent>
</PropertyGroup> </PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">
</Target> </Target>
<Target Name="AfterBuild"> <Target Name="AfterBuild">
</Target> </Target>
--> -->
</Project> </Project>
  //
  // Kerbal Engineer Redux
  //
  // Copyright (C) 2016 CYBUTEK
  //
  // This program is free software: you can redistribute it and/or modify
  // it under the terms of the GNU General Public License as published by
  // the Free Software Foundation, either version 3 of the License, or
  // (at your option) any later version.
  //
  // This program is distributed in the hope that it will be useful,
  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  // GNU General Public License for more details.
  // You should have received a copy of the GNU General Public License
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
  //
 
  namespace KerbalEngineer
  {
  using Unity.UI;
  using UnityEngine;
  using UnityEngine.UI;
 
  public static class StyleManager
  {
  /// <summary>
  /// Processes all of the theme applicators on the supplied game object.
  /// </summary>
  public static void Process(GameObject gameObject)
  {
  if (gameObject == null)
  {
  return;
  }
 
  StyleApplicator[] applicators = gameObject.GetComponentsInChildren<StyleApplicator>();
 
  if (applicators != null)
  {
  for (int i = 0; i < applicators.Length; i++)
  {
  Process(applicators[i]);
  }
  }
  }
 
  /// <summary>
  /// Gets a new ThemeTextStyle created from KSP UIStyle and UIStyleState objects.
  /// </summary>
  private static TextStyle GetTextStyle(UIStyle style, UIStyleState styleState)
  {
  TextStyle textStyle = new TextStyle();
 
  if (style != null)
  {
  textStyle.Font = style.font;
  textStyle.Style = style.fontStyle;
  textStyle.Size = style.fontSize;
  }
 
  if (styleState != null)
  {
  textStyle.Colour = styleState.textColor;
  }
 
  return textStyle;
  }
 
  /// <summary>
  /// Processes a theme on the supplied applicator.
  /// </summary>
  private static void Process(StyleApplicator applicator)
  {
  if (applicator == null)
  {
  return;
  }
 
  // get the default skin
  UISkinDef skin = UISkinManager.defaultSkin;
  if (skin == null)
  {
  return;
  }
 
  // apply selected theme type
  switch (applicator.ElementType)
  {
  case StyleApplicator.ElementTypes.Window:
  applicator.SetImage(skin.window.normal.background, Image.Type.Sliced);
  break;
 
  case StyleApplicator.ElementTypes.Box:
  applicator.SetImage(skin.box.normal.background, Image.Type.Sliced);
  break;
 
  case StyleApplicator.ElementTypes.Button:
  applicator.SetSelectable(null, skin.button.normal.background,
  skin.button.highlight.background,
  skin.button.active.background,
  skin.button.disabled.background);
  break;
 
  case StyleApplicator.ElementTypes.ButtonToggle:
  applicator.SetToggle(null, skin.button.normal.background,
  skin.button.highlight.background,
  skin.button.active.background,
  skin.button.disabled.background);
  break;
  }
  }
  }
  }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2014 CYBUTEK // Copyright (C) 2014 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.VesselSimulator namespace KerbalEngineer.VesselSimulator
{ {
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using Editor; using Editor;
using Helpers; using Helpers;
using UnityEngine; using UnityEngine;
   
public class EngineSim public class EngineSim
{ {
private static readonly Pool<EngineSim> pool = new Pool<EngineSim>(Create, Reset); private static readonly Pool<EngineSim> pool = new Pool<EngineSim>(Create, Reset);
   
private readonly ResourceContainer resourceConsumptions = new ResourceContainer(); private readonly ResourceContainer resourceConsumptions = new ResourceContainer();
private readonly ResourceContainer resourceFlowModes = new ResourceContainer(); private readonly ResourceContainer resourceFlowModes = new ResourceContainer();
   
public double actualThrust = 0; public double actualThrust = 0;
public bool isActive = false; public bool isActive = false;
public double isp = 0; public double isp = 0;
public PartSim partSim; public PartSim partSim;
public List<AppliedForce> appliedForces = new List<AppliedForce>(); public List<AppliedForce> appliedForces = new List<AppliedForce>();
public float maxMach; public float maxMach;
   
public double thrust = 0; public double thrust = 0;
   
// Add thrust vector to account for directional losses // Add thrust vector to account for directional losses
public Vector3 thrustVec; public Vector3 thrustVec;
   
private static EngineSim Create() private static EngineSim Create()
{ {
return new EngineSim(); return new EngineSim();
} }
   
private static void Reset(EngineSim engineSim) private static void Reset(EngineSim engineSim)
{ {
engineSim.resourceConsumptions.Reset(); engineSim.resourceConsumptions.Reset();
engineSim.resourceFlowModes.Reset(); engineSim.resourceFlowModes.Reset();
engineSim.actualThrust = 0; engineSim.actualThrust = 0;
engineSim.isActive = false; engineSim.isActive = false;
engineSim.isp = 0; engineSim.isp = 0;
for (int i = 0; i < engineSim.appliedForces.Count; i++) for (int i = 0; i < engineSim.appliedForces.Count; i++)
{ {
engineSim.appliedForces[i].Release(); engineSim.appliedForces[i].Release();
} }
engineSim.appliedForces.Clear(); engineSim.appliedForces.Clear();
engineSim.thrust = 0; engineSim.thrust = 0;
engineSim.maxMach = 0f; engineSim.maxMach = 0f;
} }
   
public void Release() public void Release()
{ {
pool.Release(this); pool.Release(this);
} }
   
public static EngineSim New(PartSim theEngine, public static EngineSim New(PartSim theEngine,
ModuleEngines engineMod, double atmosphere,
double atmosphere, float machNumber,
float machNumber, float maxFuelFlow,
bool vectoredThrust, float minFuelFlow,
bool fullThrust, float thrustPercentage,
LogMsg log) Vector3 vecThrust,
{ FloatCurve atmosphereCurve,
float maxFuelFlow = engineMod.maxFuelFlow; bool atmChangeFlow,
float minFuelFlow = engineMod.minFuelFlow; FloatCurve atmCurve,
float thrustPercentage = engineMod.thrustPercentage; FloatCurve velCurve,
Vector3 vecThrust = CalculateThrustVector(vectoredThrust ? engineMod.thrustTransforms : null, log); float currentThrottle,
FloatCurve atmosphereCurve = engineMod.atmosphereCurve; float IspG,
bool atmChangeFlow = engineMod.atmChangeFlow; bool throttleLocked,
FloatCurve atmCurve = engineMod.useAtmCurve ? engineMod.atmCurve : null; List<Propellant> propellants,
FloatCurve velCurve = engineMod.useVelCurve ? engineMod.velCurve : null; bool active,
float currentThrottle = engineMod.currentThrottle; float resultingThrust,
float IspG = engineMod.g; List<Transform> thrustTransforms,
bool throttleLocked = engineMod.throttleLocked || fullThrust; LogMsg log)
List<Propellant> propellants = engineMod.propellants; {
bool active = engineMod.isOperational; EngineSim engineSim = pool.Borrow();
float resultingThrust = engineMod.resultingThrust;  
List<Transform> thrustTransforms = engineMod.thrustTransforms;  
   
EngineSim engineSim = pool.Borrow();  
   
engineSim.isp = 0.0; engineSim.isp = 0.0;
engineSim.maxMach = 0.0f; engineSim.maxMach = 0.0f;
engineSim.actualThrust = 0.0; engineSim.actualThrust = 0.0;
engineSim.partSim = theEngine; engineSim.partSim = theEngine;
engineSim.isActive = active; engineSim.isActive = active;
engineSim.thrustVec = vecThrust; engineSim.thrustVec = vecThrust;
engineSim.resourceConsumptions.Reset(); engineSim.resourceConsumptions.Reset();
engineSim.resourceFlowModes.Reset(); engineSim.resourceFlowModes.Reset();
engineSim.appliedForces.Clear(); engineSim.appliedForces.Clear();
   
double flowRate = 0.0; double flowRate = 0.0;
if (engineSim.partSim.hasVessel) if (engineSim.partSim.hasVessel)
{ {
if (log != null) log.buf.AppendLine("hasVessel is true"); if (log != null) log.buf.AppendLine("hasVessel is true");
   
float flowModifier = GetFlowModifier(atmChangeFlow, atmCurve, engineSim.partSim.part.atmDensity, velCurve, machNumber, ref engineSim.maxMach); float flowModifier = GetFlowModifier(atmChangeFlow, atmCurve, engineSim.partSim.part.atmDensity, velCurve, machNumber, ref engineSim.maxMach);
engineSim.isp = atmosphereCurve.Evaluate((float)atmosphere); engineSim.isp = atmosphereCurve.Evaluate((float)atmosphere);
engineSim.thrust = GetThrust(Mathf.Lerp(minFuelFlow, maxFuelFlow, GetThrustPercent(thrustPercentage)) * flowModifier, engineSim.isp); engineSim.thrust = GetThrust(Mathf.Lerp(minFuelFlow, maxFuelFlow, GetThrustPercent(thrustPercentage)) * flowModifier, engineSim.isp);
engineSim.actualThrust = engineSim.isActive ? resultingThrust : 0.0; engineSim.actualThrust = engineSim.isActive ? resultingThrust : 0.0;
if (log != null) if (log != null)
{ {
log.buf.AppendFormat("flowMod = {0:g6}\n", flowModifier); log.buf.AppendFormat("flowMod = {0:g6}\n", flowModifier);
log.buf.AppendFormat("isp = {0:g6}\n", engineSim.isp); log.buf.AppendFormat("isp = {0:g6}\n", engineSim.isp);
log.buf.AppendFormat("thrust = {0:g6}\n", engineSim.thrust); log.buf.AppendFormat("thrust = {0:g6}\n", engineSim.thrust);
log.buf.AppendFormat("actual = {0:g6}\n", engineSim.actualThrust); log.buf.AppendFormat("actual = {0:g6}\n", engineSim.actualThrust);
} }
   
if (throttleLocked) if (throttleLocked)
{ {
if (log != null) log.buf.AppendLine("throttleLocked is true, using thrust for flowRate"); if (log != null) log.buf.AppendLine("throttleLocked is true, using thrust for flowRate");
flowRate = GetFlowRate(engineSim.thrust, engineSim.isp); flowRate = GetFlowRate(engineSim.thrust, engineSim.isp);
} }
else else
{ {
if (currentThrottle > 0.0f && engineSim.partSim.isLanded == false) if (currentThrottle > 0.0f && engineSim.partSim.isLanded == false)
{ {
// TODO: This bit doesn't work for RF engines if (log != null) log.buf.AppendLine("throttled up and not landed, using actualThrust for flowRate");
if (log != null) log.buf.AppendLine("throttled up and not landed, using actualThrust for flowRate");  
flowRate = GetFlowRate(engineSim.actualThrust, engineSim.isp); flowRate = GetFlowRate(engineSim.actualThrust, engineSim.isp);
} }
else else
{ {
if (log != null) log.buf.AppendLine("throttled down or landed, using thrust for flowRate"); if (log != null) log.buf.AppendLine("throttled down or landed, using thrust for flowRate");
flowRate = GetFlowRate(engineSim.thrust, engineSim.isp); flowRate = GetFlowRate(engineSim.thrust, engineSim.isp);
} }
} }
} }
else else
{ {
if (log != null) log.buf.AppendLine("hasVessel is false"); if (log != null) log.buf.AppendLine("hasVessel is false");
float flowModifier = GetFlowModifier(atmChangeFlow, atmCurve, CelestialBodies.SelectedBody.GetDensity(BuildAdvanced.Altitude), velCurve, machNumber, ref engineSim.maxMach); float flowModifier = GetFlowModifier(atmChangeFlow, atmCurve, CelestialBodies.SelectedBody.GetDensity(BuildAdvanced.Altitude), velCurve, machNumber, ref engineSim.maxMach);
engineSim.isp = atmosphereCurve.Evaluate((float)atmosphere); engineSim.isp = atmosphereCurve.Evaluate((float)atmosphere);
engineSim.thrust = GetThrust(Mathf.Lerp(minFuelFlow, maxFuelFlow, GetThrustPercent(thrustPercentage)) * flowModifier, engineSim.isp); engineSim.thrust = GetThrust(Mathf.Lerp(minFuelFlow, maxFuelFlow, GetThrustPercent(thrustPercentage)) * flowModifier, engineSim.isp);
engineSim.actualThrust = 0d; engineSim.actualThrust = 0d;
if (log != null) if (log != null)
{ {
log.buf.AppendFormat("flowMod = {0:g6}\n", flowModifier); log.buf.AppendFormat("flowMod = {0:g6}\n", flowModifier);
log.buf.AppendFormat("isp = {0:g6}\n", engineSim.isp); log.buf.AppendFormat("isp = {0:g6}\n", engineSim.isp);
log.buf.AppendFormat("thrust = {0:g6}\n", engineSim.thrust); log.buf.AppendFormat("thrust = {0:g6}\n", engineSim.thrust);
log.buf.AppendFormat("actual = {0:g6}\n", engineSim.actualThrust); log.buf.AppendFormat("actual = {0:g6}\n", engineSim.actualThrust);
} }
   
if (log != null) log.buf.AppendLine("no vessel, using thrust for flowRate"); if (log != null) log.buf.AppendLine("no vessel, using thrust for flowRate");
flowRate = GetFlowRate(engineSim.thrust, engineSim.isp); flowRate = GetFlowRate(engineSim.thrust, engineSim.isp);
} }
   
if (log != null) log.buf.AppendFormat("flowRate = {0:g6}\n", flowRate); if (log != null) log.buf.AppendFormat("flowRate = {0:g6}\n", flowRate);
   
float flowMass = 0f; float flowMass = 0f;
for (int i = 0; i < propellants.Count; ++i) for (int i = 0; i < propellants.Count; ++i)
{ {
Propellant propellant = propellants[i]; Propellant propellant = propellants[i];
if (!propellant.ignoreForIsp) if (!propellant.ignoreForIsp)
flowMass += propellant.ratio * ResourceContainer.GetResourceDensity(propellant.id); flowMass += propellant.ratio * ResourceContainer.GetResourceDensity(propellant.id);
} }
   
if (log != null) log.buf.AppendFormat("flowMass = {0:g6}\n", flowMass); if (log != null) log.buf.AppendFormat("flowMass = {0:g6}\n", flowMass);
   
for (int i = 0; i < propellants.Count; ++i) for (int i = 0; i < propellants.Count; ++i)
{ {
Propellant propellant = propellants[i]; Propellant propellant = propellants[i];
   
if (propellant.name == "ElectricCharge" || propellant.name == "IntakeAir") if (propellant.name == "ElectricCharge" || propellant.name == "IntakeAir")
{ {
continue; continue;
} }
   
double consumptionRate = propellant.ratio * flowRate / flowMass; double consumptionRate = propellant.ratio * flowRate / flowMass;
if (log != null) log.buf.AppendFormat( if (log != null) log.buf.AppendFormat(
"Add consumption({0}, {1}:{2:d}) = {3:g6}\n", "Add consumption({0}, {1}:{2:d}) = {3:g6}\n",
ResourceContainer.GetResourceName(propellant.id), ResourceContainer.GetResourceName(propellant.id),
theEngine.name, theEngine.name,
theEngine.partId, theEngine.partId,
consumptionRate); consumptionRate);
engineSim.resourceConsumptions.Add(propellant.id, consumptionRate); engineSim.resourceConsumptions.Add(propellant.id, consumptionRate);
engineSim.resourceFlowModes.Add(propellant.id, (double)propellant.GetFlowMode()); engineSim.resourceFlowModes.Add(propellant.id, (double)propellant.GetFlowMode());
} }
   
double thrustPerThrustTransform = engineSim.thrust / thrustTransforms.Count; double thrustPerThrustTransform = engineSim.thrust / thrustTransforms.Count;
for (int i = 0; i < thrustTransforms.Count; i++) for (int i = 0; i < thrustTransforms.Count; i++)
{ {
Transform thrustTransform = thrustTransforms[i]; Transform thrustTransform = thrustTransforms[i];
Vector3d direction = thrustTransform.forward.normalized; Vector3d direction = thrustTransform.forward.normalized;
Vector3d position = thrustTransform.position; Vector3d position = thrustTransform.position;
   
AppliedForce appliedForce = AppliedForce.New(direction * thrustPerThrustTransform, position); AppliedForce appliedForce = AppliedForce.New(direction * thrustPerThrustTransform, position);
engineSim.appliedForces.Add(appliedForce); engineSim.appliedForces.Add(appliedForce);
} }
   
return engineSim; return engineSim;
} }
   
private static Vector3 CalculateThrustVector(List<Transform> thrustTransforms, LogMsg log)  
{  
if (thrustTransforms == null)  
{  
return Vector3.forward;  
}  
   
Vector3 thrustvec = Vector3.zero;  
for (int i = 0; i < thrustTransforms.Count; ++i)  
{  
Transform trans = thrustTransforms[i];  
   
if (log != null) log.buf.AppendFormat("Transform = ({0:g6}, {1:g6}, {2:g6}) length = {3:g6}\n", trans.forward.x, trans.forward.y, trans.forward.z, trans.forward.magnitude);  
   
thrustvec -= trans.forward;  
}  
   
if (log != null) log.buf.AppendFormat("ThrustVec = ({0:g6}, {1:g6}, {2:g6}) length = {3:g6}\n", thrustvec.x, thrustvec.y, thrustvec.z, thrustvec.magnitude);  
   
thrustvec.Normalize();  
   
if (log != null) log.buf.AppendFormat("ThrustVecN = ({0:g6}, {1:g6}, {2:g6}) length = {3:g6}\n", thrustvec.x, thrustvec.y, thrustvec.z, thrustvec.magnitude);  
   
return thrustvec;  
}  
   
public ResourceContainer ResourceConsumptions public ResourceContainer ResourceConsumptions
{ {
get get
{ {
return resourceConsumptions; return resourceConsumptions;
} }
} }
   
public static double GetExhaustVelocity(double isp) public static double GetExhaustVelocity(double isp)
{ {
return isp * Units.GRAVITY; return isp * Units.GRAVITY;
} }
   
public static float GetFlowModifier(bool atmChangeFlow, FloatCurve atmCurve, double atmDensity, FloatCurve velCurve, float machNumber, ref float maxMach) public static float GetFlowModifier(bool atmChangeFlow, FloatCurve atmCurve, double atmDensity, FloatCurve velCurve, float machNumber, ref float maxMach)
{ {
float flowModifier = 1.0f; float flowModifier = 1.0f;
if (atmChangeFlow) if (atmChangeFlow)
{ {
flowModifier = (float)(atmDensity / 1.225); flowModifier = (float)(atmDensity / 1.225);
if (atmCurve != null) if (atmCurve != null)
{ {
flowModifier = atmCurve.Evaluate(flowModifier); flowModifier = atmCurve.Evaluate(flowModifier);
} }
} }
if (velCurve != null) if (velCurve != null)
{ {
flowModifier = flowModifier * velCurve.Evaluate(machNumber); flowModifier = flowModifier * velCurve.Evaluate(machNumber);
maxMach = velCurve.maxTime; maxMach = velCurve.maxTime;
} }
if (flowModifier < float.Epsilon) if (flowModifier < float.Epsilon)
{ {
flowModifier = float.Epsilon; flowModifier = float.Epsilon;
} }
return flowModifier; return flowModifier;
} }
   
public static double GetFlowRate(double thrust, double isp) public static double GetFlowRate(double thrust, double isp)
{ {
return thrust / GetExhaustVelocity(isp); return thrust / GetExhaustVelocity(isp);
} }
   
public static float GetThrottlePercent(float currentThrottle, float thrustPercentage) public static float GetThrottlePercent(float currentThrottle, float thrustPercentage)
{ {
return currentThrottle * GetThrustPercent(thrustPercentage); return currentThrottle * GetThrustPercent(thrustPercentage);
} }
   
public static double GetThrust(double flowRate, double isp) public static double GetThrust(double flowRate, double isp)
{ {
return flowRate * GetExhaustVelocity(isp); return flowRate * GetExhaustVelocity(isp);
} }
   
public static float GetThrustPercent(float thrustPercentage) public static float GetThrustPercent(float thrustPercentage)
{ {
return thrustPercentage * 0.01f; return thrustPercentage * 0.01f;
} }
   
public void DumpEngineToBuffer(StringBuilder buffer, String prefix) public void DumpEngineToBuffer(StringBuilder buffer, String prefix)
{ {
buffer.Append(prefix); buffer.Append(prefix);
buffer.AppendFormat("[thrust = {0:g6}, actual = {1:g6}, isp = {2:g6}\n", thrust, actualThrust, isp); buffer.AppendFormat("[thrust = {0:g6}, actual = {1:g6}, isp = {2:g6}\n", thrust, actualThrust, isp);
} }
   
// A dictionary to hold a set of parts for each resource // A dictionary to hold a set of parts for each resource
Dictionary<int, HashSet<PartSim>> sourcePartSets = new Dictionary<int, HashSet<PartSim>>(); Dictionary<int, HashSet<PartSim>> sourcePartSets = new Dictionary<int, HashSet<PartSim>>();
   
Dictionary<int, HashSet<PartSim>> stagePartSets = new Dictionary<int, HashSet<PartSim>>(); Dictionary<int, HashSet<PartSim>> stagePartSets = new Dictionary<int, HashSet<PartSim>>();
   
HashSet<PartSim> visited = new HashSet<PartSim>(); HashSet<PartSim> visited = new HashSet<PartSim>();
   
public void DumpSourcePartSets(String msg) public void DumpSourcePartSets(String msg)
{ {
MonoBehaviour.print("DumpSourcePartSets " + msg); MonoBehaviour.print("DumpSourcePartSets " + msg);
foreach (int type in sourcePartSets.Keys) foreach (int type in sourcePartSets.Keys)
{ {
MonoBehaviour.print("SourcePartSet for " + ResourceContainer.GetResourceName(type)); MonoBehaviour.print("SourcePartSet for " + ResourceContainer.GetResourceName(type));
HashSet<PartSim> sourcePartSet = sourcePartSets[type]; HashSet<PartSim> sourcePartSet = sourcePartSets[type];
if (sourcePartSet.Count > 0) if (sourcePartSet.Count > 0)
{ {
foreach (PartSim partSim in sourcePartSet) foreach (PartSim partSim in sourcePartSet)
{ {
MonoBehaviour.print("Part " + partSim.name + ":" + partSim.partId); MonoBehaviour.print("Part " + partSim.name + ":" + partSim.partId);
} }
} }
else else
{ {
MonoBehaviour.print("No parts"); MonoBehaviour.print("No parts");
} }
} }
} }
   
public bool SetResourceDrains(List<PartSim> allParts, List<PartSim> allFuelLines, HashSet<PartSim> drainingParts) public bool SetResourceDrains(List<PartSim> allParts, List<PartSim> allFuelLines, HashSet<PartSim> drainingParts)
{ {
LogMsg log = null; LogMsg log = null;
//DumpSourcePartSets("before clear"); //DumpSourcePartSets("before clear");
foreach (HashSet<PartSim> sourcePartSet in sourcePartSets.Values) foreach (HashSet<PartSim> sourcePartSet in sourcePartSets.Values)
{ {
sourcePartSet.Clear(); sourcePartSet.Clear();
} }
//DumpSourcePartSets("after clear"); //DumpSourcePartSets("after clear");
   
for (int index = 0; index < this.resourceConsumptions.Types.Count; index++) for (int index = 0; index < this.resourceConsumptions.Types.Count; index++)
{ {
int type = this.resourceConsumptions.Types[index]; int type = this.resourceConsumptions.Types[index];
   
HashSet<PartSim> sourcePartSet; HashSet<PartSim> sourcePartSet;
if (!sourcePartSets.TryGetValue(type, out sourcePartSet)) if (!sourcePartSets.TryGetValue(type, out sourcePartSet))
{ {
sourcePartSet = new HashSet<PartSim>(); sourcePartSet = new HashSet<PartSim>();
sourcePartSets.Add(type, sourcePartSet); sourcePartSets.Add(type, sourcePartSet);
} }
   
switch ((ResourceFlowMode)this.resourceFlowModes[type]) switch ((ResourceFlowMode)this.resourceFlowModes[type])
{ {
case ResourceFlowMode.NO_FLOW: case ResourceFlowMode.NO_FLOW:
if (partSim.resources[type] > SimManager.RESOURCE_MIN && partSim.resourceFlowStates[type] != 0) if (partSim.resources[type] > SimManager.RESOURCE_MIN && partSim.resourceFlowStates[type] != 0)
{ {
//sourcePartSet = new HashSet<PartSim>(); //sourcePartSet = new HashSet<PartSim>();
//MonoBehaviour.print("SetResourceDrains(" + name + ":" + partId + ") setting sources to just this"); //MonoBehaviour.print("SetResourceDrains(" + name + ":" + partId + ") setting sources to just this");
sourcePartSet.Add(partSim); sourcePartSet.Add(partSim);
} }
break; break;
   
case ResourceFlowMode.ALL_VESSEL: case ResourceFlowMode.ALL_VESSEL:
case ResourceFlowMode.ALL_VESSEL_BALANCE: case ResourceFlowMode.ALL_VESSEL_BALANCE:
for (int i = 0; i < allParts.Count; i++) for (int i = 0; i < allParts.Count; i++)
{ {
PartSim aPartSim = allParts[i]; PartSim aPartSim = allParts[i];
if (aPartSim.resources[type] > SimManager.RESOURCE_MIN && aPartSim.resourceFlowStates[type] != 0) if (aPartSim.resources[type] > SimManager.RESOURCE_MIN && aPartSim.resourceFlowStates[type] != 0)
{ {
sourcePartSet.Add(aPartSim); sourcePartSet.Add(aPartSim);
} }
} }
break; break;
   
case ResourceFlowMode.STAGE_PRIORITY_FLOW: case ResourceFlowMode.STAGE_PRIORITY_FLOW:
case ResourceFlowMode.STAGE_PRIORITY_FLOW_BALANCE: case ResourceFlowMode.STAGE_PRIORITY_FLOW_BALANCE:
   
foreach (HashSet<PartSim> stagePartSet in stagePartSets.Values) foreach (HashSet<PartSim> stagePartSet in stagePartSets.Values)
{ {
stagePartSet.Clear(); stagePartSet.Clear();
} }
var maxStage = -1; var maxStage = -1;
   
//Logger.Log(type); //Logger.Log(type);
for (int i = 0; i < allParts.Count; i++) for (int i = 0; i < allParts.Count; i++)
{ {
var aPartSim = allParts[i]; var aPartSim = allParts[i];
if (aPartSim.resources[type] <= SimManager.RESOURCE_MIN || aPartSim.resourceFlowStates[type] == 0) if (aPartSim.resources[type] <= SimManager.RESOURCE_MIN || aPartSim.resourceFlowStates[type] == 0)
{ {
continue; continue;
} }
   
int stage = aPartSim.DecouplerCount(); int stage = aPartSim.DecouplerCount();
if (stage > maxStage) if (stage > maxStage)
{ {
maxStage = stage; maxStage = stage;
} }
   
HashSet<PartSim> tempPartSet; HashSet<PartSim> tempPartSet;
if (!stagePartSets.TryGetValue(stage, out tempPartSet)) if (!stagePartSets.TryGetValue(stage, out tempPartSet))
{ {
tempPartSet = new HashSet<PartSim>(); tempPartSet = new HashSet<PartSim>();
stagePartSets.Add(stage, tempPartSet); stagePartSets.Add(stage, tempPartSet);
} }
tempPartSet.Add(aPartSim); tempPartSet.Add(aPartSim);
} }
   
for (int j = maxStage; j >= 0; j--) for (int j = maxStage; j >= 0; j--)
{ {
HashSet<PartSim> stagePartSet; HashSet<PartSim> stagePartSet;
if (stagePartSets.TryGetValue(j, out stagePartSet) && stagePartSet.Count > 0) if (stagePartSets.TryGetValue(j, out stagePartSet) && stagePartSet.Count > 0)
{ {
// We have to copy the contents of the set here rather than copying the set reference or // We have to copy the contents of the set here rather than copying the set reference or
// bad things (tm) happen // bad things (tm) happen
foreach (PartSim aPartSim in stagePartSet) foreach (PartSim aPartSim in stagePartSet)
{ {
sourcePartSet.Add(aPartSim); sourcePartSet.Add(aPartSim);
} }
break; break;
} }
} }
break; break;
   
case ResourceFlowMode.STACK_PRIORITY_SEARCH: case ResourceFlowMode.STACK_PRIORITY_SEARCH:
visited.Clear(); visited.Clear();
   
if (SimManager.logOutput) if (SimManager.logOutput)
{ {
log = new LogMsg(); log = new LogMsg();
log.buf.AppendLine("Find " + ResourceContainer.GetResourceName(type) + " sources for " + partSim.name + ":" + partSim.partId); log.buf.AppendLine("Find " + ResourceContainer.GetResourceName(type) + " sources for " + partSim.name + ":" + partSim.partId);
} }
partSim.GetSourceSet(type, PhysicsGlobals.Stack_PriUsesSurf, allParts, visited, sourcePartSet, log, ""); partSim.GetSourceSet(type, PhysicsGlobals.Stack_PriUsesSurf, allParts, visited, sourcePartSet, log, "");
if (SimManager.logOutput && log != null) if (SimManager.logOutput && log != null)
{ {
MonoBehaviour.print(log.buf); MonoBehaviour.print(log.buf);
} }
break; break;
   
case ResourceFlowMode.STAGE_STACK_FLOW: case ResourceFlowMode.STAGE_STACK_FLOW:
case ResourceFlowMode.STAGE_STACK_FLOW_BALANCE: case ResourceFlowMode.STAGE_STACK_FLOW_BALANCE:
visited.Clear(); visited.Clear();
   
if (SimManager.logOutput) if (SimManager.logOutput)
{ {
log = new LogMsg(); log = new LogMsg();
log.buf.AppendLine("Find " + ResourceContainer.GetResourceName(type) + " sources for " + partSim.name + ":" + partSim.partId); log.buf.AppendLine("Find " + ResourceContainer.GetResourceName(type) + " sources for " + partSim.name + ":" + partSim.partId);
} }
partSim.GetSourceSet(type, true, allParts, visited, sourcePartSet, log, ""); partSim.GetSourceSet(type, true, allParts, visited, sourcePartSet, log, "");
if (SimManager.logOutput && log != null) if (SimManager.logOutput && log != null)
{ {
MonoBehaviour.print(log.buf); MonoBehaviour.print(log.buf);
} }
break; break;
   
default: default:
MonoBehaviour.print("SetResourceDrains(" + partSim.name + ":" + partSim.partId + ") Unexpected flow type for " + ResourceContainer.GetResourceName(type) + ")"); MonoBehaviour.print("SetResourceDrains(" + partSim.name + ":" + partSim.partId + ") Unexpected flow type for " + ResourceContainer.GetResourceName(type) + ")");
break; break;
} }
   
if (SimManager.logOutput) if (SimManager.logOutput)
{ {
if (sourcePartSet.Count > 0) if (sourcePartSet.Count > 0)
{ {
log = new LogMsg(); log = new LogMsg();
log.buf.AppendLine("Source parts for " + ResourceContainer.GetResourceName(type) + ":"); log.buf.AppendLine("Source parts for " + ResourceContainer.GetResourceName(type) + ":");
foreach (PartSim partSim in sourcePartSet) foreach (PartSim partSim in sourcePartSet)
{ {
log.buf.AppendLine(partSim.name + ":" + partSim.partId); log.buf.AppendLine(partSim.name + ":" + partSim.partId);
} }
MonoBehaviour.print(log.buf); MonoBehaviour.print(log.buf);
} }
} }
   
//DumpSourcePartSets("after " + ResourceContainer.GetResourceName(type)); //DumpSourcePartSets("after " + ResourceContainer.GetResourceName(type));
} }
// If we don't have sources for all the needed resources then return false without setting up any drains // If we don't have sources for all the needed resources then return false without setting up any drains
for (int i = 0; i < this.resourceConsumptions.Types.Count; i++) for (int i = 0; i < this.resourceConsumptions.Types.Count; i++)
{ {
int type = this.resourceConsumptions.Types[i]; int type = this.resourceConsumptions.Types[i];
HashSet<PartSim> sourcePartSet; HashSet<PartSim> sourcePartSet;
if (!sourcePartSets.TryGetValue(type, out sourcePartSet) || sourcePartSet.Count == 0) if (!sourcePartSets.TryGetValue(type, out sourcePartSet) || sourcePartSet.Count == 0)
{ {
if (SimManager.logOutput) if (SimManager.logOutput)
{ {
MonoBehaviour.print("No source of " + ResourceContainer.GetResourceName(type)); MonoBehaviour.print("No source of " + ResourceContainer.GetResourceName(type));
} }
   
isActive = false; isActive = false;
return false; return false;
} }
} }
   
// Now we set the drains on the members of the sets and update the draining parts set // Now we set the drains on the members of the sets and update the draining parts set
for (int i = 0; i < this.resourceConsumptions.Types.Count; i++) for (int i = 0; i < this.resourceConsumptions.Types.Count; i++)
{ {
int type = this.resourceConsumptions.Types[i]; int type = this.resourceConsumptions.Types[i];
HashSet<PartSim> sourcePartSet = sourcePartSets[type]; HashSet<PartSim> sourcePartSet = sourcePartSets[type];
// Loop through the members of the set // Loop through the members of the set
double amount = resourceConsumptions[type] / sourcePartSet.Count; double amount = resourceConsumptions[type] / sourcePartSet.Count;
foreach (PartSim partSim in sourcePartSet) foreach (PartSim partSim in sourcePartSet)
{ {
if (SimManager.logOutput) if (SimManager.logOutput)
{ {
MonoBehaviour.print( MonoBehaviour.print(
"Adding drain of " + amount + " " + ResourceContainer.GetResourceName(type) + " to " + partSim.name + ":" + "Adding drain of " + amount + " " + ResourceContainer.GetResourceName(type) + " to " + partSim.name + ":" +
partSim.partId); partSim.partId);
} }
   
partSim.resourceDrains.Add(type, amount); partSim.resourceDrains.Add(type, amount);
drainingParts.Add(partSim); drainingParts.Add(partSim);
} }
} }
return true; return true;
} }
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2014 CYBUTEK // Copyright (C) 2014 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
   
namespace KerbalEngineer.VesselSimulator namespace KerbalEngineer.VesselSimulator
{ {
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using CompoundParts; using CompoundParts;
using Extensions; using Extensions;
using UnityEngine; using UnityEngine;
   
public class PartSim public class PartSim
{ {
private static readonly Pool<PartSim> pool = new Pool<PartSim>(Create, Reset); private static readonly Pool<PartSim> pool = new Pool<PartSim>(Create, Reset);
   
private readonly List<AttachNodeSim> attachNodes = new List<AttachNodeSim>(); private readonly List<AttachNodeSim> attachNodes = new List<AttachNodeSim>();
   
public double realMass; public double realMass;
public double baseMass; public double baseMass;
public double baseMassForCoM; public double baseMassForCoM;
public Vector3d centerOfMass; public Vector3d centerOfMass;
public double baseCost; public double baseCost;
public int decoupledInStage; public int decoupledInStage;
public bool fuelCrossFeed; public bool fuelCrossFeed;
public List<PartSim> fuelTargets = new List<PartSim>(); public List<PartSim> fuelTargets = new List<PartSim>();
public List<PartSim> surfaceMountFuelTargets = new List<PartSim>(); public List<PartSim> surfaceMountFuelTargets = new List<PartSim>();
public bool hasModuleEngines; public bool hasModuleEngines;
public bool hasMultiModeEngine; public bool hasMultiModeEngine;
   
public bool hasVessel; public bool hasVessel;
public String initialVesselName; public String initialVesselName;
public int inverseStage; public int inverseStage;
public bool isDecoupler; public bool isDecoupler;
public bool isEngine; public bool isEngine;
public bool isFuelLine; public bool isFuelLine;
public bool isFuelTank; public bool isFuelTank;
public bool isLanded; public bool isLanded;
public bool isNoPhysics; public bool isNoPhysics;
public bool isSepratron; public bool isSepratron;
public bool isFairing; public bool isFairing;
public float fairingMass; public float fairingMass;
public int stageIndex; public int stageIndex;
public String name; public String name;
public String noCrossFeedNodeKey; public String noCrossFeedNodeKey;
public PartSim parent; public PartSim parent;
public AttachModes parentAttach; public AttachModes parentAttach;
public Part part; // This is only set while the data structures are being initialised public Part part; // This is only set while the data structures are being initialised
public int partId = 0; public int partId = 0;
public ResourceContainer resourceDrains = new ResourceContainer(); public ResourceContainer resourceDrains = new ResourceContainer();
public ResourceContainer resourceFlowStates = new ResourceContainer(); public ResourceContainer resourceFlowStates = new ResourceContainer();
public ResourceContainer resources = new ResourceContainer(); public ResourceContainer resources = new ResourceContainer();
public double startMass = 0d; public double startMass = 0d;
public String vesselName; public String vesselName;
public VesselType vesselType; public VesselType vesselType;
   
private static PartSim Create() private static PartSim Create()
{ {
return new PartSim(); return new PartSim();
} }
   
private static void Reset(PartSim partSim) private static void Reset(PartSim partSim)
{ {
for (int i = 0; i < partSim.attachNodes.Count; i++) for (int i = 0; i < partSim.attachNodes.Count; i++)
{ {
partSim.attachNodes[i].Release(); partSim.attachNodes[i].Release();
} }
partSim.attachNodes.Clear(); partSim.attachNodes.Clear();
partSim.fuelTargets.Clear(); partSim.fuelTargets.Clear();
partSim.resourceDrains.Reset(); partSim.resourceDrains.Reset();
partSim.resourceFlowStates.Reset(); partSim.resourceFlowStates.Reset();
partSim.resources.Reset(); partSim.resources.Reset();
partSim.baseCost = 0d; partSim.baseCost = 0d;
partSim.baseMass = 0d; partSim.baseMass = 0d;
partSim.baseMassForCoM = 0d; partSim.baseMassForCoM = 0d;
partSim.startMass = 0d; partSim.startMass = 0d;
} }
   
public void Release() public void Release()
{ {
pool.Release(this); pool.Release(this);
} }
   
public static PartSim New(Part thePart, int id, double atmosphere, LogMsg log) public static PartSim New(Part thePart, int id, double atmosphere, LogMsg log)
{ {
PartSim partSim = pool.Borrow(); PartSim partSim = pool.Borrow();
   
partSim.part = thePart; partSim.part = thePart;
partSim.centerOfMass = thePart.transform.TransformPoint(thePart.CoMOffset); partSim.centerOfMass = thePart.transform.TransformPoint(thePart.CoMOffset);
partSim.partId = id; partSim.partId = id;
partSim.name = partSim.part.partInfo.name; partSim.name = partSim.part.partInfo.name;
   
if (log != null) log.buf.AppendLine("Create PartSim for " + partSim.name); if (log != null) log.buf.AppendLine("Create PartSim for " + partSim.name);
   
partSim.parent = null; partSim.parent = null;
partSim.parentAttach = partSim.part.attachMode; partSim.parentAttach = partSim.part.attachMode;
partSim.fuelCrossFeed = partSim.part.fuelCrossFeed; partSim.fuelCrossFeed = partSim.part.fuelCrossFeed;
partSim.noCrossFeedNodeKey = partSim.part.NoCrossFeedNodeKey; partSim.noCrossFeedNodeKey = partSim.part.NoCrossFeedNodeKey;
partSim.decoupledInStage = partSim.DecoupledInStage(partSim.part); partSim.decoupledInStage = partSim.DecoupledInStage(partSim.part);
partSim.isFuelLine = partSim.part.HasModule<CModuleFuelLine>(); partSim.isFuelLine = partSim.part.HasModule<CModuleFuelLine>();
partSim.isFuelTank = partSim.part is FuelTank; partSim.isFuelTank = partSim.part is FuelTank;
partSim.isSepratron = partSim.IsSepratron(); partSim.isSepratron = partSim.IsSepratron();
partSim.isFairing = partSim.IsFairing(partSim.part); partSim.isFairing = partSim.IsFairing(partSim.part);
partSim.inverseStage = partSim.part.inverseStage; partSim.inverseStage = partSim.part.inverseStage;
//MonoBehaviour.print("inverseStage = " + inverseStage); //MonoBehaviour.print("inverseStage = " + inverseStage);
   
partSim.baseCost = partSim.part.GetCostDry(); partSim.baseCost = partSim.part.GetCostDry();
   
if (log != null) if (log != null)
{ {
log.buf.AppendLine("Parent part = " + (partSim.part.parent == null ? "null" : partSim.part.parent.partInfo.name)); log.buf.AppendLine("Parent part = " + (partSim.part.parent == null ? "null" : partSim.part.parent.partInfo.name));
log.buf.AppendLine("physicalSignificance = " + partSim.part.physicalSignificance); log.buf.AppendLine("physicalSignificance = " + partSim.part.physicalSignificance);
log.buf.AppendLine("PhysicsSignificance = " + partSim.part.PhysicsSignificance); log.buf.AppendLine("PhysicsSignificance = " + partSim.part.PhysicsSignificance);
} }
   
// Work out if the part should have no physical significance // Work out if the part should have no physical significance
// The root part is never "no physics" // The root part is never "no physics"
partSim.isNoPhysics = partSim.part.physicalSignificance == Part.PhysicalSignificance.NONE || partSim.isNoPhysics = partSim.part.physicalSignificance == Part.PhysicalSignificance.NONE ||
partSim.part.PhysicsSignificance == 1; partSim.part.PhysicsSignificance == 1;
   
if (partSim.part.HasModule<LaunchClamp>()) if (partSim.part.HasModule<LaunchClamp>())
{ {
partSim.realMass = 0d; partSim.realMass = 0d;
if (log != null) log.buf.AppendLine("Ignoring mass of launch clamp"); if (log != null) log.buf.AppendLine("Ignoring mass of launch clamp");
} }
else else
{ {
partSim.realMass = partSim.part.mass; partSim.realMass = partSim.part.mass;
if (log != null) log.buf.AppendLine("Using part.mass of " + partSim.part.mass); if (log != null) log.buf.AppendLine("Using part.mass of " + partSim.part.mass);
} }
   
if (partSim.isFairing) if (partSim.isFairing)
{ {
partSim.fairingMass = partSim.part.GetModuleMass((float)partSim.realMass); partSim.fairingMass = partSim.part.GetModuleMass((float)partSim.realMass);
} }
   
for (int i = 0; i < partSim.part.Resources.Count; i++) for (int i = 0; i < partSim.part.Resources.Count; i++)
{ {
PartResource resource = partSim.part.Resources[i]; PartResource resource = partSim.part.Resources[i];
   
// Make sure it isn't NaN as this messes up the part mass and hence most of the values // Make sure it isn't NaN as this messes up the part mass and hence most of the values
// This can happen if a resource capacity is 0 and tweakable // This can happen if a resource capacity is 0 and tweakable
if (!Double.IsNaN(resource.amount)) if (!Double.IsNaN(resource.amount))
{ {
if (log != null) if (log != null)
log.buf.AppendLine(resource.resourceName + " = " + resource.amount); log.buf.AppendLine(resource.resourceName + " = " + resource.amount);
   
partSim.resources.Add(resource.info.id, resource.amount); partSim.resources.Add(resource.info.id, resource.amount);
partSim.resourceFlowStates.Add(resource.info.id, resource.flowState ? 1 : 0); partSim.resourceFlowStates.Add(resource.info.id, resource.flowState ? 1 : 0);
} }
else else
{ {
if (log != null) log.buf.AppendLine(resource.resourceName + " is NaN. Skipping."); if (log != null) log.buf.AppendLine(resource.resourceName + " is NaN. Skipping.");
} }
} }
   
partSim.hasVessel = (partSim.part.vessel != null); partSim.hasVessel = (partSim.part.vessel != null);
partSim.isLanded = partSim.hasVessel && partSim.part.vessel.Landed; partSim.isLanded = partSim.hasVessel && partSim.part.vessel.Landed;
if (partSim.hasVessel) if (partSim.hasVessel)
{ {
partSim.vesselName = partSim.part.vessel.vesselName; partSim.vesselName = partSim.part.vessel.vesselName;
partSim.vesselType = partSim.part.vesselType; partSim.vesselType = partSim.part.vesselType;
} }
partSim.initialVesselName = partSim.part.initialVesselName; partSim.initialVesselName = partSim.part.initialVesselName;
   
partSim.hasMultiModeEngine = partSim.part.HasModule<MultiModeEngine>(); partSim.hasMultiModeEngine = partSim.part.HasModule<MultiModeEngine>();
partSim.hasModuleEngines = partSim.part.HasModule<ModuleEngines>(); partSim.hasModuleEngines = partSim.part.HasModule<ModuleEngines>();
   
partSim.isEngine = partSim.hasMultiModeEngine || partSim.hasModuleEngines; partSim.isEngine = partSim.hasMultiModeEngine || partSim.hasModuleEngines;
   
if (log != null) log.buf.AppendLine("Created " + partSim.name + ". Decoupled in stage " + partSim.decoupledInStage); if (log != null) log.buf.AppendLine("Created " + partSim.name + ". Decoupled in stage " + partSim.decoupledInStage);
   
return partSim; return partSim;
} }
   
public ResourceContainer ResourceDrains public ResourceContainer ResourceDrains
{ {
get get
{ {
return resourceDrains; return resourceDrains;
} }
} }
   
public ResourceContainer Resources public ResourceContainer Resources
{ {
get get
{ {
return resources; return resources;
} }
} }
   
public void CreateEngineSims(List<EngineSim> allEngines, double atmosphere, double mach, bool vectoredThrust, bool fullThrust, LogMsg log) public void CreateEngineSims(List<EngineSim> allEngines, double atmosphere, double mach, bool vectoredThrust, bool fullThrust, LogMsg log)
{ {
if (log != null) if (log != null)
{ {
log.buf.AppendLine("CreateEngineSims for " + this.name); log.buf.AppendLine("CreateEngineSims for " + this.name);
for (int i = 0; i < this.part.Modules.Count; i++) for (int i = 0; i < this.part.Modules.Count; i++)
{ {
PartModule partMod = this.part.Modules[i]; PartModule partMod = this.part.Modules[i];
log.buf.AppendLine("Module: " + partMod.moduleName); log.buf.AppendLine("Module: " + partMod.moduleName);
} }
} }
   
if (hasMultiModeEngine) if (hasMultiModeEngine)
{ {
// A multi-mode engine has multiple ModuleEngines but only one is active at any point // A multi-mode engine has multiple ModuleEngines but only one is active at any point
// The mode of the engine is the engineID of the ModuleEngines that is active // The mode of the engine is the engineID of the ModuleEngines that is active
string mode = part.GetModule<MultiModeEngine>().mode; string mode = part.GetModule<MultiModeEngine>().mode;
   
List<ModuleEngines> engines = part.GetModules<ModuleEngines>(); List<ModuleEngines> engines = part.GetModules<ModuleEngines>();
for (int i = 0; i < engines.Count; ++i) for (int i = 0; i < engines.Count; ++i)
{ {
ModuleEngines engine = engines[i]; ModuleEngines engine = engines[i];
if (engine.engineID == mode) if (engine.engineID == mode)
{ {
if (log != null) log.buf.AppendLine("Module: " + engine.moduleName); if (log != null) log.buf.AppendLine("Module: " + engine.moduleName);
   
  Vector3 thrustvec = this.CalculateThrustVector(vectoredThrust ? engine.thrustTransforms : null, log);
   
EngineSim engineSim = EngineSim.New( EngineSim engineSim = EngineSim.New(
this, this,
engine, atmosphere,
atmosphere,  
(float)mach, (float)mach,
vectoredThrust, engine.maxFuelFlow,
fullThrust, engine.minFuelFlow,
  engine.thrustPercentage,
  thrustvec,
  engine.atmosphereCurve,
  engine.atmChangeFlow,
  engine.useAtmCurve ? engine.atmCurve : null,
  engine.useVelCurve ? engine.velCurve : null,
  engine.currentThrottle,
  engine.g,
  engine.throttleLocked || fullThrust,
  engine.propellants,
  engine.isOperational,
  engine.resultingThrust,
  engine.thrustTransforms,
log); log);
allEngines.Add(engineSim); allEngines.Add(engineSim);
} }
} }
} }
else if (hasModuleEngines) else if (hasModuleEngines)
{ {
List<ModuleEngines> engines = part.GetModules<ModuleEngines>(); List<ModuleEngines> engines = part.GetModules<ModuleEngines>();
for (int i = 0; i < engines.Count; ++i) for (int i = 0; i < engines.Count; ++i)
{ {
ModuleEngines engine = engines[i]; ModuleEngines engine = engines[i];
if (log != null) log.buf.AppendLine("Module: " + engine.moduleName); if (log != null) log.buf.AppendLine("Module: " + engine.moduleName);
   
  Vector3 thrustvec = this.CalculateThrustVector(vectoredThrust ? engine.thrustTransforms : null, log);
   
EngineSim engineSim = EngineSim.New( EngineSim engineSim = EngineSim.New(
this, this,
engine,  
atmosphere, atmosphere,
(float)mach, (float)mach,
vectoredThrust, engine.maxFuelFlow,
fullThrust, engine.minFuelFlow,
log); engine.thrustPercentage,
  thrustvec,
  engine.atmosphereCurve,
  engine.atmChangeFlow,
  engine.useAtmCurve ? engine.atmCurve : null,
  engine.useVelCurve ? engine.velCurve : null,
  engine.currentThrottle,
  engine.g,
  engine.throttleLocked || fullThrust,
  engine.propellants,
  engine.isOperational,
  engine.resultingThrust,
  engine.thrustTransforms,
  log);
allEngines.Add(engineSim); allEngines.Add(engineSim);
} }
} }
   
if (log != null) if (log != null)
{ {
log.Flush(); log.Flush();
} }
} }
   
public int DecouplerCount() public int DecouplerCount()
{ {
int count = 0; int count = 0;
PartSim partSim = this; PartSim partSim = this;
while (partSim != null) while (partSim != null)
{ {
if (partSim.isDecoupler) if (partSim.isDecoupler)
{ {
count++; count++;
} }
   
partSim = partSim.parent; partSim = partSim.parent;
} }
return count; return count;
} }
   
public void DrainResources(double time) public void DrainResources(double time)
{ {
//MonoBehaviour.print("DrainResources(" + name + ":" + partId + ", " + time + ")"); //MonoBehaviour.print("DrainResources(" + name + ":" + partId + ", " + time + ")");
for (int i = 0; i < resourceDrains.Types.Count; ++i) for (int i = 0; i < resourceDrains.Types.Count; ++i)
{ {
int type = resourceDrains.Types[i]; int type = resourceDrains.Types[i];
   
//MonoBehaviour.print("draining " + (time * resourceDrains[type]) + " " + ResourceContainer.GetResourceName(type)); //MonoBehaviour.print("draining " + (time * resourceDrains[type]) + " " + ResourceContainer.GetResourceName(type));
resources.Add(type, -time * resourceDrains[type]); resources.Add(type, -time * resourceDrains[type]);
//MonoBehaviour.print(ResourceContainer.GetResourceName(type) + " left = " + resources[type]); //MonoBehaviour.print(ResourceContainer.GetResourceName(type) + " left = " + resources[type]);
} }
} }
   
public String DumpPartAndParentsToBuffer(StringBuilder buffer, String prefix) public String DumpPartAndParentsToBuffer(StringBuilder buffer, String prefix)
{ {
if (parent != null) if (parent != null)
{ {
prefix = parent.DumpPartAndParentsToBuffer(buffer, prefix) + " "; prefix = parent.DumpPartAndParentsToBuffer(buffer, prefix) + " ";
} }
   
DumpPartToBuffer(buffer, prefix); DumpPartToBuffer(buffer, prefix);
   
return prefix; return prefix;
} }
   
public void DumpPartToBuffer(StringBuilder buffer, String prefix, List<PartSim> allParts = null) public void DumpPartToBuffer(StringBuilder buffer, String prefix, List<PartSim> allParts = null)
{ {
buffer.Append(prefix); buffer.Append(prefix);
buffer.Append(name); buffer.Append(name);
buffer.AppendFormat(":[id = {0:d}, decouple = {1:d}, invstage = {2:d}", partId, decoupledInStage, inverseStage); buffer.AppendFormat(":[id = {0:d}, decouple = {1:d}, invstage = {2:d}", partId, decoupledInStage, inverseStage);
   
//buffer.AppendFormat(", vesselName = '{0}'", vesselName); //buffer.AppendFormat(", vesselName = '{0}'", vesselName);
//buffer.AppendFormat(", vesselType = {0}", SimManager.GetVesselTypeString(vesselType)); //buffer.AppendFormat(", vesselType = {0}", SimManager.GetVesselTypeString(vesselType));
//buffer.AppendFormat(", initialVesselName = '{0}'", initialVesselName); //buffer.AppendFormat(", initialVesselName = '{0}'", initialVesselName);
   
buffer.AppendFormat(", isNoPhys = {0}", isNoPhysics); buffer.AppendFormat(", isNoPhys = {0}", isNoPhysics);
buffer.AppendFormat(", baseMass = {0}", baseMass); buffer.AppendFormat(", baseMass = {0}", baseMass);
buffer.AppendFormat(", baseMassForCoM = {0}", baseMassForCoM); buffer.AppendFormat(", baseMassForCoM = {0}", baseMassForCoM);
   
buffer.AppendFormat(", fuelCF = {0}", fuelCrossFeed); buffer.AppendFormat(", fuelCF = {0}", fuelCrossFeed);
buffer.AppendFormat(", noCFNKey = '{0}'", noCrossFeedNodeKey); buffer.AppendFormat(", noCFNKey = '{0}'", noCrossFeedNodeKey);
   
buffer.AppendFormat(", isSep = {0}", isSepratron); buffer.AppendFormat(", isSep = {0}", isSepratron);
   
for (int i = 0; i < resources.Types.Count; i++) for (int i = 0; i < resources.Types.Count; i++)
{ {
int type = resources.Types[i]; int type = resources.Types[i];
buffer.AppendFormat(", {0} = {1:g6}", ResourceContainer.GetResourceName(type), resources[type]); buffer.AppendFormat(", {0} = {1:g6}", ResourceContainer.GetResourceName(type), resources[type]);
} }
   
if (attachNodes.Count > 0) if (attachNodes.Count > 0)
{ {
buffer.Append(", attached = <"); buffer.Append(", attached = <");
attachNodes[0].DumpToBuffer(buffer); attachNodes[0].DumpToBuffer(buffer);
for (int i = 1; i < attachNodes.Count; i++) for (int i = 1; i < attachNodes.Count; i++)
{ {
buffer.Append(", "); buffer.Append(", ");
attachNodes[i].DumpToBuffer(buffer); attachNodes[i].DumpToBuffer(buffer);
} }
buffer.Append(">"); buffer.Append(">");
} }
   
// Add more info here // Add more info here
   
buffer.Append("]\n"); buffer.Append("]\n");
   
if (allParts != null) if (allParts != null)
{ {
String newPrefix = prefix + " "; String newPrefix = prefix + " ";
for (int i = 0; i < allParts.Count; i++) for (int i = 0; i < allParts.Count; i++)
{ {
PartSim partSim = allParts[i]; PartSim partSim = allParts[i];
if (partSim.parent == this) if (partSim.parent == this)
partSim.DumpPartToBuffer(buffer, newPrefix, allParts); partSim.DumpPartToBuffer(buffer, newPrefix, allParts);
} }
} }
} }
   
public bool EmptyOf(HashSet<int> types) public bool EmptyOf(HashSet<int> types)
{ {
foreach (int type in types) foreach (int type in types)
{ {
if (resources.HasType(type) && resourceFlowStates[type] != 0 && resources[type] > SimManager.RESOURCE_PART_EMPTY_THRESH) if (resources.HasType(type) && resourceFlowStates[type] != 0 && resources[type] > SimManager.RESOURCE_PART_EMPTY_THRESH)
return false; return false;
} }
   
return true; return true;
} }
   
public double GetMass(int currentStage, bool forCoM = false) public double GetMass(int currentStage, bool forCoM = false)
{ {
if (decoupledInStage >= currentStage) if (decoupledInStage >= currentStage)
return 0d; return 0d;
   
double mass = forCoM ? baseMassForCoM : baseMass; double mass = forCoM ? baseMassForCoM : baseMass;
   
for (int i = 0; i < resources.Types.Count; ++i) for (int i = 0; i < resources.Types.Count; ++i)
{ {
mass += resources.GetResourceMass(resources.Types[i]); mass += resources.GetResourceMass(resources.Types[i]);
} }
   
if (isFairing && currentStage <= inverseStage) if (isFairing && currentStage <= inverseStage)
{ {
mass -= fairingMass; mass -= fairingMass;
} }
   
return mass; return mass;
} }
   
public double GetCost(int currentStage) public double GetCost(int currentStage)
{ {
if (decoupledInStage >= currentStage) if (decoupledInStage >= currentStage)
return 0d; return 0d;
   
double cost = baseCost; double cost = baseCost;
   
for (int i = 0; i < resources.Types.Count; ++i) for (int i = 0; i < resources.Types.Count; ++i)
{ {
cost += resources.GetResourceCost(resources.Types[i]); cost += resources.GetResourceCost(resources.Types[i]);
} }
   
return cost; return cost;
} }
   
public void ReleasePart() public void ReleasePart()
{ {
this.part = null; this.part = null;
} }
   
// All functions below this point must not rely on the part member (it may be null) // All functions below this point must not rely on the part member (it may be null)
// //
   
public void GetSourceSet(int type, bool includeSurfaceMountedParts, List<PartSim> allParts, HashSet<PartSim> visited, HashSet<PartSim> allSources, LogMsg log, String indent) public void GetSourceSet(int type, bool includeSurfaceMountedParts, List<PartSim> allParts, HashSet<PartSim> visited, HashSet<PartSim> allSources, LogMsg log, String indent)
{ {
if (log != null) if (log != null)
{ {
log.buf.AppendLine(indent + "GetSourceSet(" + ResourceContainer.GetResourceName(type) + ") for " + name + ":" + partId); log.buf.AppendLine(indent + "GetSourceSet(" + ResourceContainer.GetResourceName(type) + ") for " + name + ":" + partId);
indent += " "; indent += " ";
} }
   
// Rule 1: Each part can be only visited once, If it is visited for second time in particular search it returns as is. // Rule 1: Each part can be only visited once, If it is visited for second time in particular search it returns as is.
if (visited.Contains(this)) if (visited.Contains(this))
{ {
if (log != null) log.buf.AppendLine(indent + "Returning empty set, already visited (" + name + ":" + partId + ")"); if (log != null) log.buf.AppendLine(indent + "Returning empty set, already visited (" + name + ":" + partId + ")");
return; return;
} }
   
if (log != null) log.buf.AppendLine(indent + "Adding this to visited"); if (log != null) log.buf.AppendLine(indent + "Adding this to visited");
   
visited.Add(this); visited.Add(this);
   
// Rule 2: Part performs scan on start of every fuel pipe ending in it. This scan is done in order in which pipes were installed. // Rule 2: Part performs scan on start of every fuel pipe ending in it. This scan is done in order in which pipes were installed.
// Then it makes an union of fuel tank sets each pipe scan returned. If the resulting list is not empty, it is returned as result. // Then it makes an union of fuel tank sets each pipe scan returned. If the resulting list is not empty, it is returned as result.
//MonoBehaviour.print("for each fuel line"); //MonoBehaviour.print("for each fuel line");
   
int lastCount = allSources.Count; int lastCount = allSources.Count;
   
for (int i = 0; i < this.fuelTargets.Count; i++) for (int i = 0; i < this.fuelTargets.Count; i++)
{ {
PartSim partSim = this.fuelTargets[i]; PartSim partSim = this.fuelTargets[i];
if (partSim != null) if (partSim != null)
{ {
if (visited.Contains(partSim)) if (visited.Contains(partSim))
{ {
if (log != null) log.buf.AppendLine(indent + "Fuel target already visited, skipping (" + partSim.name + ":" + partSim.partId + ")"); if (log != null) log.buf.AppendLine(indent + "Fuel target already visited, skipping (" + partSim.name + ":" + partSim.partId + ")");
} }
else else
{ {
if (log != null) log.buf.AppendLine(indent + "Adding fuel target as source (" + partSim.name + ":" + partSim.partId + ")"); if (log != null) log.buf.AppendLine(indent + "Adding fuel target as source (" + partSim.name + ":" + partSim.partId + ")");
   
partSim.GetSourceSet(type, includeSurfaceMountedParts, allParts, visited, allSources, log, indent); partSim.GetSourceSet(type, includeSurfaceMountedParts, allParts, visited, allSources, log, indent);
} }
} }
} }
   
// check surface mounted fuel targets // check surface mounted fuel targets
if (includeSurfaceMountedParts) if (includeSurfaceMountedParts)
{ {
for (int i = 0; i < surfaceMountFuelTargets.Count; i++) for (int i = 0; i < surfaceMountFuelTargets.Count; i++)
{ {
PartSim partSim = this.surfaceMountFuelTargets[i]; PartSim partSim = this.surfaceMountFuelTargets[i];
if (partSim != null) if (partSim != null)
{ {
if (visited.Contains(partSim)) if (visited.Contains(partSim))
{ {
if (log != null) log.buf.AppendLine(indent + "Fuel target already visited, skipping (" + partSim.name + ":" + partSim.partId + ")"); if (log != null) log.buf.AppendLine(indent + "Fuel target already visited, skipping (" + partSim.name + ":" + partSim.partId + ")");
} }
else else
{ {
if (log != null) log.buf.AppendLine(indent + "Adding fuel target as source (" + partSim.name + ":" + partSim.partId + ")"); if (log != null) log.buf.AppendLine(indent + "Adding fuel target as source (" + partSim.name + ":" + partSim.partId + ")");
   
partSim.GetSourceSet(type, true, allParts, visited, allSources, log, indent); partSim.GetSourceSet(type, true, allParts, visited, allSources, log, indent);
} }
} }
} }
} }
   
if (allSources.Count > lastCount) if (allSources.Count > lastCount)
{ {
if (log != null) log.buf.AppendLine(indent + "Returning " + (allSources.Count - lastCount) + " fuel target sources (" + this.name + ":" + this.partId + ")"); if (log != null) log.buf.AppendLine(indent + "Returning " + (allSources.Count - lastCount) + " fuel target sources (" + this.name + ":" + this.partId + ")");
return; return;
} }
   
   
// Rule 3: This rule has been removed and merged with rules 4 and 7 to fix issue with fuel tanks with disabled crossfeed // Rule 3: This rule has been removed and merged with rules 4 and 7 to fix issue with fuel tanks with disabled crossfeed
   
// Rule 4: Part performs scan on each of its axially mounted neighbors. // Rule 4: Part performs scan on each of its axially mounted neighbors.
// Couplers (bicoupler, tricoupler, ...) are an exception, they only scan one attach point on the single attachment side, // Couplers (bicoupler, tricoupler, ...) are an exception, they only scan one attach point on the single attachment side,
// skip the points on the side where multiple points are. [Experiment] // skip the points on the side where multiple points are. [Experiment]
// Again, the part creates union of scan lists from each of its neighbor and if it is not empty, returns this list. // Again, the part creates union of scan lists from each of its neighbor and if it is not empty, returns this list.
// The order in which mount points of a part are scanned appears to be fixed and defined by the part specification file. [Experiment] // The order in which mount points of a part are scanned appears to be fixed and defined by the part specification file. [Experiment]
if (fuelCrossFeed) if (fuelCrossFeed)
{ {
lastCount = allSources.Count; lastCount = allSources.Count;
//MonoBehaviour.print("for each attach node"); //MonoBehaviour.print("for each attach node");
for (int i = 0; i < this.attachNodes.Count; i++) for (int i = 0; i < this.attachNodes.Count; i++)
{ {
AttachNodeSim attachSim = this.attachNodes[i]; AttachNodeSim attachSim = this.attachNodes[i];
if (attachSim.attachedPartSim != null) if (attachSim.attachedPartSim != null)
{ {
if (attachSim.nodeType == AttachNode.NodeType.Stack) if (attachSim.nodeType == AttachNode.NodeType.Stack)
{ {
if ((string.IsNullOrEmpty(noCrossFeedNodeKey) == false && attachSim.id.Contains(noCrossFeedNodeKey)) == false) if ((string.IsNullOrEmpty(noCrossFeedNodeKey) == false && attachSim.id.Contains(noCrossFeedNodeKey)) == false)
{ {
if (visited.Contains(attachSim.attachedPartSim)) if (visited.Contains(attachSim.attachedPartSim))
{ {
if (log != null) log.buf.AppendLine(indent + "Attached part already visited, skipping (" + attachSim.attachedPartSim.name + ":" + attachSim.attachedPartSim.partId + ")"); if (log != null) log.buf.AppendLine(indent + "Attached part already visited, skipping (" + attachSim.attachedPartSim.name + ":" + attachSim.attachedPartSim.partId + ")");
} }
else else
{ {
if (log != null) log.buf.AppendLine(indent + "Adding attached part as source (" + attachSim.attachedPartSim.name + ":" + attachSim.attachedPartSim.partId + ")"); if (log != null) log.buf.AppendLine(indent + "Adding attached part as source (" + attachSim.attachedPartSim.name + ":" + attachSim.attachedPartSim.partId + ")");
   
attachSim.attachedPartSim.GetSourceSet(type, includeSurfaceMountedParts, allParts, visited, allSources, log, indent); attachSim.attachedPartSim.GetSourceSet(type, includeSurfaceMountedParts, allParts, visited, allSources, log, indent);
} }
} }
} }
} }
} }
   
if (allSources.Count > lastCount) if (allSources.Count > lastCount)
{ {
if (log != null) log.buf.AppendLine(indent + "Returning " + (allSources.Count - lastCount) + " attached sources (" + this.name + ":" + this.partId + ")"); if (log != null) log.buf.AppendLine(indent + "Returning " + (allSources.Count - lastCount) + " attached sources (" + this.name + ":" + this.partId + ")");
return; return;
} }
} }
   
// Rule 5: If the part is fuel container for searched type of fuel (i.e. it has capability to contain that type of fuel and the fuel // Rule 5: If the part is fuel container for searched type of fuel (i.e. it has capability to contain that type of fuel and the fuel
// type was not disabled [Experiment]) and it contains fuel, it returns itself. // type was not disabled [Experiment]) and it contains fuel, it returns itself.
// Rule 6: If the part is fuel container for searched type of fuel (i.e. it has capability to contain that type of fuel and the fuel // Rule 6: If the part is fuel container for searched type of fuel (i.e. it has capability to contain that type of fuel and the fuel
// type was not disabled) but it does not contain the requested fuel, it returns empty list. [Experiment] // type was not disabled) but it does not contain the requested fuel, it returns empty list. [Experiment]
if (resources.HasType(type) && resourceFlowStates[type] > 0.0) if (resources.HasType(type) && resourceFlowStates[type] > 0.0)
{ {
if (resources[type] > SimManager.RESOURCE_MIN) if (resources[type] > SimManager.RESOURCE_MIN)
{ {
allSources.Add(this); allSources.Add(this);
   
if (log != null) log.buf.AppendLine(indent + "Returning enabled tank as only source (" + name + ":" + partId + ")"); if (log != null) log.buf.AppendLine(indent + "Returning enabled tank as only source (" + name + ":" + partId + ")");
} }
   
return; return;
} }
else else
{ {
if (log != null) log.buf.AppendLine(indent + "Not fuel tank or disabled. HasType = " + resources.HasType(type) + " FlowState = " + resourceFlowStates[type]); if (log != null) log.buf.AppendLine(indent + "Not fuel tank or disabled. HasType = " + resources.HasType(type) + " FlowState = " + resourceFlowStates[type]);
} }
   
// Rule 7: If the part is radially attached to another part and it is child of that part in the ship's tree structure, it scans its // Rule 7: If the part is radially attached to another part and it is child of that part in the ship's tree structure, it scans its
// parent and returns whatever the parent scan returned. [Experiment] [Experiment] // parent and returns whatever the parent scan returned. [Experiment] [Experiment]
if (parent != null && parentAttach == AttachModes.SRF_ATTACH) if (parent != null && parentAttach == AttachModes.SRF_ATTACH)
{ {
if (fuelCrossFeed) if (fuelCrossFeed)
{ {
if (visited.Contains(parent)) if (visited.Contains(parent))
{ {
if (log != null) log.buf.AppendLine(indent + "Parent part already visited, skipping (" + parent.name + ":" + parent.partId + ")"); if (log != null) log.buf.AppendLine(indent + "Parent part already visited, skipping (" + parent.name + ":" + parent.partId + ")");
} }
else else
{ {
lastCount = allSources.Count; lastCount = allSources.Count;
this.parent.GetSourceSet(type, includeSurfaceMountedParts, allParts, visited, allSources, log, indent); this.parent.GetSourceSet(type, includeSurfaceMountedParts, allParts, visited, allSources, log, indent);
if (allSources.Count > lastCount) if (allSources.Count > lastCount)
{ {
if (log != null) log.buf.AppendLine(indent + "Returning " + (allSources.Count - lastCount) + " parent sources (" + this.name + ":" + this.partId + ")"); if (log != null) log.buf.AppendLine(indent + "Returning " + (allSources.Count - lastCount) + " parent sources (" + this.name + ":" + this.partId + ")");
return; return;
} }
} }
} }
} }
   
// Rule 8: If all preceding rules failed, part returns empty list. // Rule 8: If all preceding rules failed, part returns empty list.
if (log != null) log.buf.AppendLine(indent + "Returning empty set, no sources found (" + name + ":" + partId + ")"); if (log != null) log.buf.AppendLine(indent + "Returning empty set, no sources found (" + name + ":" + partId + ")");
   
return; return;
} }
   
public double GetStartMass() public double GetStartMass()
{ {
return startMass; return startMass;
} }
   
public void RemoveAttachedParts(HashSet<PartSim> partSims) public void RemoveAttachedParts(HashSet<PartSim> partSims)
{ {
// Loop through the attached parts // Loop through the attached parts
for (int i = 0; i < this.attachNodes.Count; i++) for (int i = 0; i < this.attachNodes.Count; i++)
{ {
AttachNodeSim attachSim = this.attachNodes[i]; AttachNodeSim attachSim = this.attachNodes[i];
// If the part is in the set then "remove" it by clearing the PartSim reference // If the part is in the set then "remove" it by clearing the PartSim reference
if (partSims.Contains(attachSim.attachedPartSim)) if (partSims.Contains(attachSim.attachedPartSim))
{ {
attachSim.attachedPartSim = null; attachSim.attachedPartSim = null;
} }
} }
   
// Loop through the fuel targets (fuel line sources) // Loop through the fuel targets (fuel line sources)
for (int i = 0; i < this.fuelTargets.Count; i++) for (int i = 0; i < this.fuelTargets.Count; i++)
{ {
PartSim fuelTargetSim = this.fuelTargets[i]; PartSim fuelTargetSim = this.fuelTargets[i];
// If the part is in the set then "remove" it by clearing the PartSim reference // If the part is in the set then "remove" it by clearing the PartSim reference
if (fuelTargetSim != null && partSims.Contains(fuelTargetSim)) if (fuelTargetSim != null && partSims.Contains(fuelTargetSim))
{ {
this.fuelTargets[i] = null; this.fuelTargets[i] = null;
} }
} }
} }
   
public void SetupAttachNodes(Dictionary<Part, PartSim> partSimLookup, LogMsg log) public void SetupAttachNodes(Dictionary<Part, PartSim> partSimLookup, LogMsg log)
{ {
if (log != null) log.buf.AppendLine("SetupAttachNodes for " + name + ":" + partId + ""); if (log != null) log.buf.AppendLine("SetupAttachNodes for " + name + ":" + partId + "");
   
attachNodes.Clear(); attachNodes.Clear();
   
for (int i = 0; i < part.attachNodes.Count; ++i) for (int i = 0; i < part.attachNodes.Count; ++i)
{ {
AttachNode attachNode = part.attachNodes[i]; AttachNode attachNode = part.attachNodes[i];
   
if (log != null) log.buf.AppendLine("AttachNode " + attachNode.id + " = " + (attachNode.attachedPart != null ? attachNode.attachedPart.partInfo.name : "null")); if (log != null) log.buf.AppendLine("AttachNode " + attachNode.id + " = " + (attachNode.attachedPart != null ? attachNode.attachedPart.partInfo.name : "null"));
   
if (attachNode.attachedPart != null && attachNode.id != "Strut") if (attachNode.attachedPart != null && attachNode.id != "Strut")
{ {
PartSim attachedSim; PartSim attachedSim;
if (partSimLookup.TryGetValue(attachNode.attachedPart, out attachedSim)) if (partSimLookup.TryGetValue(attachNode.attachedPart, out attachedSim))
{ {
if (log != null) log.buf.AppendLine("Adding attached node " + attachedSim.name + ":" + attachedSim.partId + ""); if (log != null) log.buf.AppendLine("Adding attached node " + attachedSim.name + ":" + attachedSim.partId + "");
   
attachNodes.Add(AttachNodeSim.New(attachedSim, attachNode.id, attachNode.nodeType)); attachNodes.Add(AttachNodeSim.New(attachedSim, attachNode.id, attachNode.nodeType));
} }
else else
{ {
if (log != null) log.buf.AppendLine("No PartSim for attached part (" + attachNode.attachedPart.partInfo.name + ")"); if (log != null) log.buf.AppendLine("No PartSim for attached part (" + attachNode.attachedPart.partInfo.name + ")");
} }
} }
} }
   
for (int i = 0; i < part.fuelLookupTargets.Count; ++i) for (int i = 0; i < part.fuelLookupTargets.Count; ++i)
{ {
Part p = part.fuelLookupTargets[i]; Part p = part.fuelLookupTargets[i];
   
if (p != null) if (p != null)
{ {
PartSim targetSim; PartSim targetSim;
if (partSimLookup.TryGetValue(p, out targetSim)) if (partSimLookup.TryGetValue(p, out targetSim))
{ {
if (log != null) log.buf.AppendLine("Fuel target: " + targetSim.name + ":" + targetSim.partId); if (log != null) log.buf.AppendLine("Fuel target: " + targetSim.name + ":" + targetSim.partId);
   
fuelTargets.Add(targetSim); fuelTargets.Add(targetSim);
} }
else else
{ {
if (log != null) log.buf.AppendLine("No PartSim for fuel target (" + p.name + ")"); if (log != null) log.buf.AppendLine("No PartSim for fuel target (" + p.name + ")");
} }
} }
} }
} }
   
public void SetupParent(Dictionary<Part, PartSim> partSimLookup, LogMsg log) public void SetupParent(Dictionary<Part, PartSim> partSimLookup, LogMsg log)
{ {
if (part.parent != null) if (part.parent != null)
{ {
parent = null; parent = null;
if (partSimLookup.TryGetValue(part.parent, out parent)) if (partSimLookup.TryGetValue(part.parent, out parent))
{ {
if (log != null) log.buf.AppendLine("Parent part is " + parent.name + ":" + parent.partId); if (log != null) log.buf.AppendLine("Parent part is " + parent.name + ":" + parent.partId);
if (part.attachMode == AttachModes.SRF_ATTACH && part.attachRules.srfAttach && part.fuelCrossFeed && part.parent.fuelCrossFeed) if (part.attachMode == AttachModes.SRF_ATTACH && part.attachRules.srfAttach && part.fuelCrossFeed && part.parent.fuelCrossFeed)
{ {
if (log != null) log.buf.AppendLine("Added " + name + " to " + parent.name + " surface mounted fuel targets."); if (log != null) log.buf.AppendLine("Added " + name + " to " + parent.name + " surface mounted fuel targets.");
parent.surfaceMountFuelTargets.Add(this); parent.surfaceMountFuelTargets.Add(this);
} }
} }
else else
{ {
if (log != null) log.buf.AppendLine("No PartSim for parent part (" + part.parent.partInfo.name + ")"); if (log != null) log.buf.AppendLine("No PartSim for parent part (" + part.parent.partInfo.name + ")");
} }
} }
} }
   
public double TimeToDrainResource() public double TimeToDrainResource()
{ {
//MonoBehaviour.print("TimeToDrainResource(" + name + ":" + partId + ")"); //MonoBehaviour.print("TimeToDrainResource(" + name + ":" + partId + ")");
double time = double.MaxValue; double time = double.MaxValue;
   
for (int i = 0; i < resourceDrains.Types.Count; ++i) for (int i = 0; i < resourceDrains.Types.Count; ++i)
{ {
int type = resourceDrains.Types[i]; int type = resourceDrains.Types[i];
   
if (resourceDrains[type] > 0) if (resourceDrains[type] > 0)
{ {
time = Math.Min(time, resources[type] / resourceDrains[type]); time = Math.Min(time, resources[type] / resourceDrains[type]);
//MonoBehaviour.print("type = " + ResourceContainer.GetResourceName(type) + " amount = " + resources[type] + " rate = " + resourceDrains[type] + " time = " + time); //MonoBehaviour.print("type = " + ResourceContainer.GetResourceName(type) + " amount = " + resources[type] + " rate = " + resourceDrains[type] + " time = " + time);
} }
} }
   
//if (time < double.MaxValue) //if (time < double.MaxValue)
// MonoBehaviour.print("TimeToDrainResource(" + name + ":" + partId + ") = " + time); // MonoBehaviour.print("TimeToDrainResource(" + name + ":" + partId + ") = " + time);
return time; return time;
} }
   
private Vector3 CalculateThrustVector(List<Transform> thrustTransforms, LogMsg log) private Vector3 CalculateThrustVector(List<Transform> thrustTransforms, LogMsg log)
{ {
if (thrustTransforms == null) if (thrustTransforms == null)
{ {
return Vector3.forward; return Vector3.forward;
} }
   
Vector3 thrustvec = Vector3.zero; Vector3 thrustvec = Vector3.zero;
for (int i = 0; i < thrustTransforms.Count; ++i) for (int i = 0; i < thrustTransforms.Count; ++i)
{ {
Transform trans = thrustTransforms[i]; Transform trans = thrustTransforms[i];
   
if (log != null) log.buf.AppendFormat("Transform = ({0:g6}, {1:g6}, {2:g6}) length = {3:g6}\n", trans.forward.x, trans.forward.y, trans.forward.z, trans.forward.magnitude); if (log != null) log.buf.AppendFormat("Transform = ({0:g6}, {1:g6}, {2:g6}) length = {3:g6}\n", trans.forward.x, trans.forward.y, trans.forward.z, trans.forward.magnitude);
   
thrustvec -= trans.forward; thrustvec -= trans.forward;
} }
   
if (log != null) log.buf.AppendFormat("ThrustVec = ({0:g6}, {1:g6}, {2:g6}) length = {3:g6}\n", thrustvec.x, thrustvec.y, thrustvec.z, thrustvec.magnitude); if (log != null) log.buf.AppendFormat("ThrustVec = ({0:g6}, {1:g6}, {2:g6}) length = {3:g6}\n", thrustvec.x, thrustvec.y, thrustvec.z, thrustvec.magnitude);
   
thrustvec.Normalize(); thrustvec.Normalize();
   
if (log != null) log.buf.AppendFormat("ThrustVecN = ({0:g6}, {1:g6}, {2:g6}) length = {3:g6}\n", thrustvec.x, thrustvec.y, thrustvec.z, thrustvec.magnitude); if (log != null) log.buf.AppendFormat("ThrustVecN = ({0:g6}, {1:g6}, {2:g6}) length = {3:g6}\n", thrustvec.x, thrustvec.y, thrustvec.z, thrustvec.magnitude);
   
return thrustvec; return thrustvec;
} }
   
private int DecoupledInStage(Part thePart, int stage = -1) private int DecoupledInStage(Part thePart, int stage = -1)
{ {
if (IsDecoupler(thePart) && thePart.inverseStage > stage) if (IsDecoupler(thePart) && thePart.inverseStage > stage)
stage = thePart.inverseStage; stage = thePart.inverseStage;
   
if (thePart.parent != null) if (thePart.parent != null)
stage = DecoupledInStage(thePart.parent, stage); stage = DecoupledInStage(thePart.parent, stage);
   
return stage; return stage;
} }
   
private bool IsActiveDecoupler(Part thePart) private bool IsActiveDecoupler(Part thePart)
{ {
return thePart.FindModulesImplementing<ModuleDecouple>().Any(mod => !mod.isDecoupled) || return thePart.FindModulesImplementing<ModuleDecouple>().Any(mod => !mod.isDecoupled) ||
thePart.FindModulesImplementing<ModuleAnchoredDecoupler>().Any(mod => !mod.isDecoupled); thePart.FindModulesImplementing<ModuleAnchoredDecoupler>().Any(mod => !mod.isDecoupled);
} }
   
private bool IsDecoupler(Part thePart) private bool IsDecoupler(Part thePart)
{ {
return thePart.HasModule<ModuleDecouple>() || return thePart.HasModule<ModuleDecouple>() ||
thePart.HasModule<ModuleAnchoredDecoupler>(); thePart.HasModule<ModuleAnchoredDecoupler>();
} }
   
private bool IsFairing(Part thePart) private bool IsFairing(Part thePart)
{ {
return thePart.HasModule<ModuleProceduralFairing>(); return thePart.HasModule<ModuleProceduralFairing>();
} }
   
private bool IsSepratron() private bool IsSepratron()
{ {
if (!part.ActivatesEvenIfDisconnected) if (!part.ActivatesEvenIfDisconnected)
{ {
return false; return false;
} }
   
if (part is SolidRocket) if (part is SolidRocket)
{ {
return true; return true;
} }
   
IEnumerable<ModuleEngines> modList = part.Modules.OfType<ModuleEngines>(); IEnumerable<ModuleEngines> modList = part.Modules.OfType<ModuleEngines>();
if (modList.Count() == 0) if (modList.Count() == 0)
{ {
return false; return false;
} }
   
if (modList.First().throttleLocked) if (modList.First().throttleLocked)
{ {
return true; return true;
} }
   
return false; return false;
} }
} }
} }
 Binary files a/Output/KerbalEngineer/KerbalEngineer and b/Output/KerbalEngineer/KerbalEngineer differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.Unity.dll and b/Output/KerbalEngineer/KerbalEngineer.Unity.dll differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ
ManifestFileVersion: 0 ManifestFileVersion: 0
AssetBundleManifest: AssetBundleManifest:
AssetBundleInfos: AssetBundleInfos:
Info_0: Info_0:
  Name: prefabs
  Dependencies: {}
  Info_1:
Name: images Name: images
Dependencies: {} Dependencies: {}
Info_1:  
Name: prefabs  
Dependencies: {}  
   
 Binary files a/Output/KerbalEngineer/images and b/Output/KerbalEngineer/images differ
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 2833314722 CRC: 3711738391
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: b45648c25b082800bed1fc56179dfff5 Hash: ed55962395cdf8d8940a4674b73fa9cb
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 00ffc586b3c4c12c72c7fed589b81235 Hash: 00ffc586b3c4c12c72c7fed589b81235
HashAppended: 0 HashAppended: 0
ClassTypes: ClassTypes:
- Class: 28 - Class: 28
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 213 - Class: 213
Script: {instanceID: 0} Script: {instanceID: 0}
Assets: Assets:
- Assets/Images/ui-drop-down.psd - Assets/Images/ui-drop-down.psd
- Assets/Images/app-launcher-icon.psd - Assets/Images/app-launcher-icon.psd
- Assets/Images/flight-menu-background.psd - Assets/Images/flight-menu-background.psd
Dependencies: [] Dependencies: []
   
 Binary files a/Output/KerbalEngineer/prefabs and b/Output/KerbalEngineer/prefabs differ
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 3889460463 CRC: 433340295
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: dc7af1c2d3aa8684359541d179f53bae Hash: ead16182b9e83eba9d53dd2102aa042e
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: a43c45227b2ed7e5db39229032ceda8b Hash: 7342be4616ab788c113bc7ee798e6c79
HashAppended: 0 HashAppended: 0
ClassTypes: ClassTypes:
- Class: 1 - Class: 1