Display flight engineer menu section names in upper case.
Display flight engineer menu section names in upper case.

 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_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &114528
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22468796}
  - 222: {fileID: 22254028}
  - 114: {fileID: 11494262}
  - 114: {fileID: 11417302}
  - 114: {fileID: 11415068}
  m_Layer: 5
  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: 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: 11415068} - 114: {fileID: 11420706}
m_Layer: 5 m_Layer: 5
m_Name: ToggleControlBar 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}
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: label 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: label 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}
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
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22435482}
  - 114: {fileID: 11462752}
  - 114: {fileID: 11483978}
  m_Layer: 5
  m_Name: Sections
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  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_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &193852
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22411946}
  - 222: {fileID: 22255200}
  - 114: {fileID: 11465050}
  m_Layer: 5
  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: 11451984}
- 114: {fileID: 11485338} - 114: {fileID: 11485338}
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 &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: 0, g: 0, b: 0, 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: 12 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: .800000072, g: 1, b: 0, a: .501960814}
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 &11409704
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: -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: .313725501, g: .313725501, b: .313725501, a: .70588237} m_Color: {r: .313725501, g: .313725501, b: .313725501, a: .70588237}
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 &11415068 --- !u!114 &11415068
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_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: 1
  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: 1
  graphic: {fileID: 11459182}
  m_Group: {fileID: 0}
  onValueChanged:
  m_PersistentCalls:
  m_Calls:
  - m_Target: {fileID: 11415294}
  m_MethodName: SetControlBar
  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_GameObject: {fileID: 122098}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1392445389, 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: 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: .960784316, g: .960784316, b: .960784316, a: 1} m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1}
m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, 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: 11404586} m_TargetGraphic: {fileID: 11404586}
toggleTransition: 1 m_OnClick:
graphic: {fileID: 11459182}  
m_Group: {fileID: 0}  
onValueChanged:  
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 11415294} - m_Target: {fileID: 11415294}
m_MethodName: set_controlBar m_MethodName: NewCustomSection
m_Mode: 0 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.Toggle+ToggleEvent, 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
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: 2019631361, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}  
m_Name:  
m_EditorClassIdentifier:  
m_ShowEngineerToggle: {fileID: 11485338}  
m_ControlBarToggle: {fileID: 11415068}  
m_FastFadeDuration: .200000003  
m_SlowFadeDuration: 1  
--- !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: 0 m_Left: 4
m_Right: 0 m_Right: 4
m_Top: 0 m_Top: 4
m_Bottom: 0 m_Bottom: 4
m_ChildAlignment: 0 m_ChildAlignment: 0
m_Spacing: 0 m_Spacing: 4
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: 25 m_PreferredHeight: 15
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11451984 --- !u!114 &11451984
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: 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: 15
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !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: .800000072, g: 1, b: 0, 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 &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: 20 m_PreferredHeight: 15
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
  --- !u!114 &11462752
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 157290}
  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: 4
  m_Bottom: 4
  m_ChildAlignment: 0
  m_Spacing: 4
  m_ChildForceExpandWidth: 1
  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: .183823526, g: .183823526, b: .183823526, a: .90196079}
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 &11465882 --- !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: 137786} 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: 0, g: 0, b: 0, 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: 12 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
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 137786}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 0, g: 0, b: 0, a: 1}
  m_RaycastTarget: 1
  m_OnCullStateChanged:
  m_PersistentCalls:
  m_Calls: []
  m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  m_FontData:
  m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
  m_FontSize: 10
  m_FontStyle: 1
  m_BestFit: 0
  m_MinSize: 10
  m_MaxSize: 40
  m_Alignment: 4
  m_RichText: 1
  m_HorizontalOverflow: 0
  m_VerticalOverflow: 0
  m_LineSpacing: 1
  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: .800000072, g: 1, b: 0, 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 &11483978
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 157290}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_HorizontalFit: 0
  m_VerticalFit: 2
--- !u!114 &11485338 --- !u!114 &11485338
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: 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: .960784316, g: .960784316, b: .960784316, a: 1} m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1}
m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, 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: 1
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: set_showEngineer m_MethodName: SetShowEngineer
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 --- !u!114 &11485532
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: 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: 0 m_Top: 0
m_Bottom: 0 m_Bottom: 0
m_ChildAlignment: 0 m_ChildAlignment: 0
m_Spacing: 0 m_Spacing: 0
m_ChildForceExpandWidth: 1 m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1 m_ChildForceExpandHeight: 1
  --- !u!114 &11494262
  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: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: .800000072, g: 1, b: 0, a: .501960814}
  m_RaycastTarget: 1
  m_OnCullStateChanged:
  m_PersistentCalls:
  m_Calls: []
  m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  m_Sprite: {fileID: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  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: .800000072, g: 1, b: 0, a: .501960814}
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
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 114528}
  --- !u!222 &22255200
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  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: 22454998}  
- {fileID: 22444606} - {fileID: 22444606}
m_Father: {fileID: 22478174} m_Father: {fileID: 22475412}
m_RootOrder: 1 m_RootOrder: 2
m_AnchorMin: {x: .5, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: -1, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -6, y: -8} 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 &22444606 --- !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: 137786} 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: 22401100} 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 &22454998 --- !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: 104452} m_GameObject: {fileID: 157290}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 22475412}
  m_RootOrder: 1
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22444606
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  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
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 104452}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 22468796}
  m_RootOrder: 0
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  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
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 114528}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 22454998}
  - {fileID: 22411946}
  m_Father: {fileID: 22478174}
  m_RootOrder: 1
  m_AnchorMin: {x: .5, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 1, y: 0}
  m_SizeDelta: {x: -2, y: 0}
  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: -6, y: -8} 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: 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: 22401100} - {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}
  propertyPath: m_FastFadeDuration
  value: .100000001
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_SlowFadeDuration
  value: .300000012
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_ContentTransform
  value:
  objectReference: {fileID: 22475412}
  - target: {fileID: 0}
  propertyPath: m_SectionPrefab
  value:
  objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2}
  - target: {fileID: 0}
  propertyPath: m_MenuSectionPrefab
  value:
  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
  %TAG !u! tag:unity3d.com,2011:
  --- !u!1 &121376
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22409126}
  - 222: {fileID: 22266612}
  - 114: {fileID: 11461446}
  - 114: {fileID: 11496274}
  - 114: {fileID: 11436568}
  m_Layer: 5
  m_Name: ToggleDisplay
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &121536
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22446728}
  - 222: {fileID: 22259916}
  - 114: {fileID: 11418436}
  m_Layer: 5
  m_Name: Selected
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &130136
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22444842}
  - 222: {fileID: 22269896}
  - 114: {fileID: 11449350}
  - 114: {fileID: 11489918}
  - 114: {fileID: 11421724}
  m_Layer: 5
  m_Name: ToggleEdit
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &130812
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22478272}
  - 114: {fileID: 11431788}
  - 114: {fileID: 11494744}
  m_Layer: 5
  m_Name: FlightMenuSection
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &151828
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22485856}
  - 222: {fileID: 22274980}
  - 114: {fileID: 11408784}
  m_Layer: 5
  m_Name: Text
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &172700
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22483442}
  - 222: {fileID: 22246486}
  - 114: {fileID: 11462740}
  m_Layer: 5
  m_Name: Text
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &178618
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22469204}
  - 222: {fileID: 22219086}
  - 114: {fileID: 11484356}
  m_Layer: 5
  m_Name: Selected
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!114 &11408784
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 151828}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 0, g: 0, b: 0, a: 1}
  m_RaycastTarget: 1
  m_OnCullStateChanged:
  m_PersistentCalls:
  m_Calls: []
  m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  m_FontData:
  m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
  m_FontSize: 10
  m_FontStyle: 1
  m_BestFit: 0
  m_MinSize: 10
  m_MaxSize: 40
  m_Alignment: 4
  m_RichText: 1
  m_HorizontalOverflow: 0
  m_VerticalOverflow: 0
  m_LineSpacing: 1
  m_Text: DISPLAY
  --- !u!114 &11418436
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 121536}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: .800000072, g: 1, b: 0, a: .784313738}
  m_RaycastTarget: 1
  m_OnCullStateChanged:
  m_PersistentCalls:
  m_Calls: []
  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 &11421724
  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: 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: 1
  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: 11449350}
  toggleTransition: 1
  graphic: {fileID: 11484356}
  m_Group: {fileID: 0}
  onValueChanged:
  m_PersistentCalls:
  m_Calls:
  - m_Target: {fileID: 11494744}
  m_MethodName: SetEditorVisible
  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 &11431788
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 130812}
  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 &11436568
  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: 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: 1
  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: 11461446}
  toggleTransition: 1
  graphic: {fileID: 11418436}
  m_Group: {fileID: 0}
  onValueChanged:
  m_PersistentCalls:
  m_Calls:
  - m_Target: {fileID: 11494744}
  m_MethodName: SetDisplayVisible
  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 &11449350
  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: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: .800000072, g: 1, b: 0, a: .501960814}
  m_RaycastTarget: 1
  m_OnCullStateChanged:
  m_PersistentCalls:
  m_Calls: []
  m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  m_Sprite: {fileID: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  --- !u!114 &11461446
  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: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: .800000072, g: 1, b: 0, a: .501960814}
  m_RaycastTarget: 1
  m_OnCullStateChanged:
  m_PersistentCalls:
  m_Calls: []
  m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  m_Sprite: {fileID: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  --- !u!114 &11462740
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 172700}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 0, g: 0, b: 0, a: 1}
  m_RaycastTarget: 1
  m_OnCullStateChanged:
  m_PersistentCalls:
  m_Calls: []
  m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  m_FontData:
  m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
  m_FontSize: 10
  m_FontStyle: 1
  m_BestFit: 0
  m_MinSize: 10
  m_MaxSize: 40
  m_Alignment: 4
  m_RichText: 1
  m_HorizontalOverflow: 0
  m_VerticalOverflow: 0
  m_LineSpacing: 1
  m_Text: EDIT
  --- !u!114 &11484356
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 178618}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: .800000072, g: 1, b: 0, a: .784313738}
  m_RaycastTarget: 1
  m_OnCullStateChanged:
  m_PersistentCalls:
  m_Calls: []
  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 &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
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 130812}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: -1842827791, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_DisplayToggle: {fileID: 11436568}
  m_DisplayText: {fileID: 11408784}
  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
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 178618}
  --- !u!222 &22246486
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 172700}
  --- !u!222 &22259916
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 121536}
  --- !u!222 &22266612
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 121376}
  --- !u!222 &22269896
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 130136}
  --- !u!222 &22274980
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 151828}
  --- !u!224 &22409126
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 121376}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 22446728}
  - {fileID: 22485856}
  m_Father: {fileID: 22478272}
  m_RootOrder: 0
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: .75, y: 1}
  m_AnchoredPosition: {x: -1, y: 0}
  m_SizeDelta: {x: -2, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22444842
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 130136}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 22469204}
  - {fileID: 22483442}
  m_Father: {fileID: 22478272}
  m_RootOrder: 1
  m_AnchorMin: {x: .75, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 1, y: 0}
  m_SizeDelta: {x: -2, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22446728
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 121536}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 22409126}
  m_RootOrder: 0
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22469204
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 178618}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 22444842}
  m_RootOrder: 0
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22478272
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 130812}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 22409126}
  - {fileID: 22444842}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22483442
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 172700}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 22444842}
  m_RootOrder: 1
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22485856
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 151828}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 22409126}
  m_RootOrder: 1
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!1001 &100100000
  Prefab:
  m_ObjectHideFlags: 1
  serializedVersion: 2
  m_Modification:
  m_TransformParent: {fileID: 0}
  m_Modifications:
  - target: {fileID: 0}
  propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target
  value:
  objectReference: {fileID: 11494744}
  - target: {fileID: 0}
  propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
  value: SetEditorVisible
  objectReference: {fileID: 0}
  m_RemovedComponents: []
  m_ParentPrefab: {fileID: 0}
  m_RootGameObject: {fileID: 130812}
  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: 0115c816d260a0947976c8ea804febbc, 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
  Prefab:
  m_ObjectHideFlags: 0
  serializedVersion: 2
  m_Modification:
  m_TransformParent: {fileID: 1866791882}
  m_Modifications:
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_LocalPosition.x
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_LocalPosition.y
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_LocalPosition.z
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_LocalRotation.x
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_LocalRotation.y
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_LocalRotation.z
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_LocalRotation.w
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_RootOrder
  value: 2
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.y
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.x
  value: 250
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.y
  value: 74
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMin.x
  value: .5
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMin.y
  value: .5
  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: 11465882, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Text
  value: NEW CUSTOM SECTION
  objectReference: {fileID: 0}
  m_RemovedComponents: []
  m_ParentPrefab: {fileID: 100100000, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  m_IsPrefabParent: 0
--- !u!224 &1026898450 stripped --- !u!224 &1026898450 stripped
RectTransform: RectTransform:
m_PrefabParentObject: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, m_PrefabParentObject: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f,
type: 2} type: 2}
m_PrefabInternal: {fileID: 1329571933} m_PrefabInternal: {fileID: 719682886}
--- !u!1001 &1329571933  
Prefab:  
m_ObjectHideFlags: 0  
serializedVersion: 2  
m_Modification:  
m_TransformParent: {fileID: 1866791882}  
m_Modifications:  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_LocalPosition.x  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_LocalPosition.y  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_LocalPosition.z  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_LocalRotation.x  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_LocalRotation.y  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_LocalRotation.z  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_LocalRotation.w  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_RootOrder  
value: 2  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.x  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.y  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.x  
value: 250  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.y  
value: 45  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMin.x  
value: .5  
objectReference: {fileID: 0}  
- target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchorMin.y  
value: .5  
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: 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: -12.5  
objectReference: {fileID: 0}  
- target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.x  
value: 250  
objectReference: {fileID: 0}  
- target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.y  
value: 25  
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: -32.5  
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: 25  
objectReference: {fileID: 0}  
m_RemovedComponents: []  
m_ParentPrefab: {fileID: 100100000, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
m_IsPrefabParent: 0  
--- !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!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: 1026898450}
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: b0e2a09d07dbbcb40b0d4db43cd044f9, 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!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
   
using UnityEditor; //
  // 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/>.
  //
   
  using UnityEditor;
using UnityEngine; using UnityEngine;
   
public class BuildAssetBundles : MonoBehaviour public class BuildAssetBundles : MonoBehaviour
{ {
[MenuItem("Assets/Build Asset Bundles")] [MenuItem("Assets/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);
} }
} }
  Added: Asset bundle loading and integration.
Changed: Thermal flux is now correctly indicated in kilowatts. Changed: Thermal flux is now correctly indicated in kilowatts.
  Changed: Complete rewrite of code underpinning the stock toolbar icons.
  Changed: Flight Engineer toolbar menu recreated using Unity UI.
  Changed: Replaced occurances of IMGUI using RenderingManager to use OnGUI directly.
  Fixed: Toggling the 'Control Bar' now appropriately resizes the display stack.
   
1.0.19.4, 12-02-16 1.0.19.4, 12-02-16
Fixed: Only 'STAGE_STACK_FLOW' and 'STAGE_STACK_FLOW_BALANCE' resources include surface mounted parts as fuel targets. Fixed: Only 'STAGE_STACK_FLOW' and 'STAGE_STACK_FLOW_BALANCE' resources include surface mounted parts as fuel targets.
Fixed: Fairing mass being doubled in the VAB (removed workaround for a KSP bug which has been fixed). Fixed: Fairing mass being doubled in the VAB (removed workaround for a KSP bug which has been fixed).
   
1.0.19.3, 09-02-16 1.0.19.3, 09-02-16
Fixed: Fuel cross-feed from surface attached parts. Fixed: Fuel cross-feed from surface attached parts.
   
1.0.19.2, 19-11-15 1.0.19.2, 19-11-15
Rebuild for KSP 1.0.5.1028 silent update. Rebuild for KSP 1.0.5.1028 silent update.
1.0.19.1, 09-11-15 1.0.19.1, 09-11-15
Added: Key binding editor accessible under 'Settings' on the Build Engineer. Added: Key binding editor accessible under 'Settings' on the Build Engineer.
Added: Added current vessel name readout. (antplant) Added: Added current vessel name readout. (antplant)
Added: 'Relative Radial Velocity' and 'Time To Rendezvous' readouts. (itwtx) Added: 'Relative Radial Velocity' and 'Time To Rendezvous' readouts. (itwtx)
Added: Readout help strings. (harryyoung) Added: Readout help strings. (harryyoung)
Changed: The 'Torque' value in the editor is now precise to two decimal places. Changed: The 'Torque' value in the editor is now precise to two decimal places.
Changed: Time formatting reference (Kerbin/Earth) is now based on the in-game setting. Changed: Time formatting reference (Kerbin/Earth) is now based on the in-game setting.
Changed: Eccentric Anomaly, Mean Anomaly and Mean Anomaly At Epoc now display in degrees rather than radians. Changed: Eccentric Anomaly, Mean Anomaly and Mean Anomaly At Epoc now display in degrees rather than radians.
Fixed: Optimised time formatting. (itwtx) Fixed: Optimised time formatting. (itwtx)
Fixed: TimeToAtmosphere checks that the Apoapsis is outside atmosphere. (Kerbas-ad-astra) Fixed: TimeToAtmosphere checks that the Apoapsis is outside atmosphere. (Kerbas-ad-astra)
Fixed: Issue with stage priority flow. Caused Rapier calculations to fail if LF and O are drawn from different tanks. (Padishar) Fixed: Issue with stage priority flow. Caused Rapier calculations to fail if LF and O are drawn from different tanks. (Padishar)
Fixed: Issue with angle to prograde/retrograde calculations on highly inclined orbits. Fixed: Issue with angle to prograde/retrograde calculations on highly inclined orbits.
Fixed: Editor input locks not being reset when a scene change is forced (e.g. via Kerbal Construction Time). Fixed: Editor input locks not being reset when a scene change is forced (e.g. via Kerbal Construction Time).
Fixed: Roll axis readout now shows the correct sign. Fixed: Roll axis readout now shows the correct sign.
Removed: Time Formatter readout as it's not required anymore. Removed: Time Formatter readout as it's not required anymore.
   
1.0.18.0 1.0.18.0
Added: Orbital readouts - "Speed at Periapsis" and "Speed at Apoapsis". (Padishar) Added: Orbital readouts - "Speed at Periapsis" and "Speed at Apoapsis". (Padishar)
Added: Manoeuvre readouts - "Post-burn Apoapsis" and "Post-burn Periapsis". (Padishar) Added: Manoeuvre readouts - "Post-burn Apoapsis" and "Post-burn Periapsis". (Padishar)
Added: Orbital readout - "Time to Atmosphere". Added: Orbital readout - "Time to Atmosphere".
Fixed: Synched the minimum simulation time sliders and stopped them from snapping back after 999ms. (saybur) Fixed: Synched the minimum simulation time sliders and stopped them from snapping back after 999ms. (saybur)
Fixed: Added workaround for the bug in Vessel.horizontalSrfSpeed (Padishar) Fixed: Added workaround for the bug in Vessel.horizontalSrfSpeed (Padishar)
Fixed: Physically insignificant part mass was not being correctly cascaded down through multiple parent parts. Fixed: Physically insignificant part mass was not being correctly cascaded down through multiple parent parts.
Fixed: Intake air demand calculation not working. Fixed: Intake air demand calculation not working.
Fixed: Some build engineer settings labels do not scale with UI size. Fixed: Some build engineer settings labels do not scale with UI size.
   
1.0.17.0 1.0.17.0
Added: 'Mach Number' readout under the 'Surface' category and included it on the default surface HUD. Added: 'Mach Number' readout under the 'Surface' category and included it on the default surface HUD.
Added: Stock sections in the Flight Engineer can now become HUDs. Added: Stock sections in the Flight Engineer can now become HUDs.
Added 'Thermal' readouts category including: Added 'Thermal' readouts category including:
Internal Flux Internal Flux
Convection Flux Convection Flux
Radiation Flux Radiation Flux
Critical Part Name Critical Part Name
Critical Part Temperature Critical Part Temperature
Critical Part Skin Temperature Critical Part Skin Temperature
Critical Part Thermal Percentage of Max Temperature Critical Part Thermal Percentage of Max Temperature
Hottest Part Name Hottest Part Name
Hottest Part Temperature Hottest Part Temperature
Hottest Part Skin Temperature Hottest Part Skin Temperature
Coldest Part Name Coldest Part Name
Coldest Part Temperature Coldest Part Temperature
Coldest Part Skin Temperature Coldest Part Skin Temperature
   
Changed: Mach on the Build Engineer now accurate to 2 decimal places. Changed: Mach on the Build Engineer now accurate to 2 decimal places.
Changed: Max mach in the Build Engineer defaults to 1.00 even when no jet engines are present. Changed: Max mach in the Build Engineer defaults to 1.00 even when no jet engines are present.
Changed: Increased eccentricity readout to 5 decimal places. Changed: Increased eccentricity readout to 5 decimal places.
Changed: Implemented Sarbian's object pooling. Changed: Implemented Sarbian's object pooling.
Changed: The default selected body is now assigned via 'Planitarium.Home'. Changed: The default selected body is now assigned via 'Planitarium.Home'.
Changed: HUDs to clamp fully inside the screen instead of allowing them to run off the edge by a certain amount. Changed: HUDs to clamp fully inside the screen instead of allowing them to run off the edge by a certain amount.
Fixed: Physically insignificant part mass is now associated with the parent part. Fixed: Physically insignificant part mass is now associated with the parent part.
Fixed: Longitude and Latitude readouts now use a KER formatter instead of Squad's incorrect implementation. Fixed: Longitude and Latitude readouts now use a KER formatter instead of Squad's incorrect implementation.
Fixed: Possible null reference in the Rendezvous Processor. Fixed: Possible null reference in the Rendezvous Processor.
Fixed: Fairing mass issues introduced with regards to simulation changes. Fixed: Fairing mass issues introduced with regards to simulation changes.
Fixed: Use of per-propellant fuel flow mode override. Fixed: Use of per-propellant fuel flow mode override.
Fixed: Burn times calculated for jet engines. Fixed: Burn times calculated for jet engines.
Fixed: Thrust issues introduced with Sarbian's simulation alterations. Fixed: Thrust issues introduced with Sarbian's simulation alterations.
Fixed: Issue where HUDs positioned close to the top/bottom of the screen could be pushed out of position. Fixed: Issue where HUDs positioned close to the top/bottom of the screen could be pushed out of position.
   
1.0.16.6, 02-05-15 1.0.16.6, 02-05-15
Fixed: Separately staged fairing mass jettisons are now calculated in the editor. Fixed: Separately staged fairing mass jettisons are now calculated in the editor.
   
1.0.16.5, 02-05-2015 1.0.16.5, 02-05-2015
Fixed: Delta-V not being correctly calculated. Fixed: Delta-V not being correctly calculated.
Changed: Editor locking now uses the InputLockManager. Changed: Editor locking now uses the InputLockManager.
   
1.0.16.4, 01-05-2015 1.0.16.4, 01-05-2015
Fixed: Physically insignificant part mass is now accounted for. Fixed: Physically insignificant part mass is now accounted for.
Changed: Module mass accounted for as it now makes its way onto the launch pad (e.g. fairings). Changed: Module mass accounted for as it now makes its way onto the launch pad (e.g. fairings).
   
Various optimisations: Various optimisations:
Object pooling. Object pooling.
Removed LINQ expressions. Removed LINQ expressions.
Converted foreach to for loops. Converted foreach to for loops.
   
1.0.16.3, 27-04-2015 1.0.16.3, 27-04-2015
Fixed issue with the toolbar icons not being created. Fixed issue with the toolbar icons not being created.
Removed superfluous 'm/s' on the mach slider in the build engineer. Removed superfluous 'm/s' on the mach slider in the build engineer.
   
1.0.16.2, 27-04-2015 1.0.16.2, 27-04-2015
Changed the atmospheric slider on the build engineer to default to 0km when changing bodies. Changed the atmospheric slider on the build engineer to default to 0km when changing bodies.
   
1.0.16.1, 26-04-2015, KSP Build #828 1.0.16.1, 26-04-2015, KSP Build #828
Merged Sarbian's mach adjustments. Merged Sarbian's mach adjustments.
Fixed bugs relating to thrust and atmosphere/velocity curves. Fixed bugs relating to thrust and atmosphere/velocity curves.
Changed the atmospheric slider on the Build Engineer to work based on altitude. Changed the atmospheric slider on the Build Engineer to work based on altitude.
Changed the atmospheric slider to clamp to the maximum altitude for the selected body. Changed the atmospheric slider to clamp to the maximum altitude for the selected body.
Changed the velocity slider to clamp to the maximum usable mach value for the current vessel. Changed the velocity slider to clamp to the maximum usable mach value for the current vessel.
   
1.0.16.0, 25-04-2015, KSP Build #821 1.0.16.0, 25-04-2015, KSP Build #821
Fixed errors relating to KSP 1.0 update. Fixed errors relating to KSP 1.0 update.
Fixed fuel simulation to account for new thrust system. Fixed fuel simulation to account for new thrust system.
Fixed atmospheric engines to use the new velocity curve. Fixed atmospheric engines to use the new velocity curve.
Fixed atmospheric readouts to work with the new atmospheric model. Fixed atmospheric readouts to work with the new atmospheric model.
   
1.0.15.2, 13-02-2015 1.0.15.2, 13-02-2015
Padishar's Fixes: Padishar's Fixes:
Fixed: Calculation of per-stage resource mass. Fixed: Calculation of per-stage resource mass.
   
1.0.15.1, 13-02-2015 1.0.15.1, 13-02-2015
Rebuild Rebuild
   
1.0.15.0, 08-02-2015 1.0.15.0, 08-02-2015
Padishar's Fixes: Padishar's Fixes:
Added: Support KIDS ISP thrust correction. Added: Support KIDS ISP thrust correction.
Fixed: Log spam for stage priority mode. Fixed: Log spam for stage priority mode.
Fixed: Locked tanks preventing simulation from staging. Fixed: Locked tanks preventing simulation from staging.
Fixed: No flow and all vessel modes to respect flow states. Fixed: No flow and all vessel modes to respect flow states.
   
1.0.14.1, 28-12-2014 1.0.14.1, 28-12-2014
Fixed: Missing texture on the ER-7500 model. Fixed: Missing texture on the ER-7500 model.
   
1.0.14.0, 28-12-2014 1.0.14.0, 28-12-2014
Added: Career mode that limits the Flight Engineer by: Added: Career mode that limits the Flight Engineer by:
- Requiring an Engineer Kerbal of any level, or placement of an Engineer Chip or ER-7500 part. - Requiring an Engineer Kerbal of any level, or placement of an Engineer Chip or ER-7500 part.
- Tracking station level 3 enables Flight Engineer everywhere. - Tracking station level 3 enables Flight Engineer everywhere.
   
Added: New readouts to the orbital category: Added: New readouts to the orbital category:
- Mean Anomaly at Epoc - Mean Anomaly at Epoc
   
Added: New readouts to the miscellaneous category: Added: New readouts to the miscellaneous category:
- System Time - System Time
   
Added: Editor Overlay Tab's X position is now changable in the BuildOverlay.xml settings file. Added: Editor Overlay Tab's X position is now changable in the BuildOverlay.xml settings file.
Changed: Editor Overlay Tabs start position moved over as to not overlap the parts menu. Changed: Editor Overlay Tabs start position moved over as to not overlap the parts menu.
Fixed: Bug where STAGE_PRIORITY_FLOW resources would not be corrently disabled/enabled. Fixed: Bug where STAGE_PRIORITY_FLOW resources would not be corrently disabled/enabled.
Fixed: Issue with the formatting large Mass and Cost values. Fixed: Issue with the formatting large Mass and Cost values.
Fixed: Error when loading the Engineer7500 part model. Fixed: Error when loading the Engineer7500 part model.
   
1.0.13.1, 16-12-2014 1.0.13.1, 16-12-2014
Fixed: Issue with manoeuvre node readouts and low tier tracking station. Fixed: Issue with manoeuvre node readouts and low tier tracking station.
   
1.0.13.0, 16-12-2014 1.0.13.0, 16-12-2014
Updated for KSP version 0.90 Updated for KSP version 0.90
   
Added: New readouts to the vessel category: Added: New readouts to the vessel category:
- Heading Rate - Heading Rate
- Pitch Rate - Pitch Rate
- Roll Rate - Roll Rate
   
Changed: Simulation to look for fuel lines that use CModuleFuelLine module. Changed: Simulation to look for fuel lines that use CModuleFuelLine module.
Fixed: Editor Overlay now loads the saved visibility value properly. Fixed: Editor Overlay now loads the saved visibility value properly.
Fixed: Altitude (Terrain) will no longer give a reading below sea level. Fixed: Altitude (Terrain) will no longer give a reading below sea level.
Fixed: Suicide burn now uses radar altitude that clamps to sea level. Fixed: Suicide burn now uses radar altitude that clamps to sea level.
   
1.0.12.0, 01-12-2014 1.0.12.0, 01-12-2014
Added: Setting in Build Engineer to enable/disable vectored thrust calculations. Added: Setting in Build Engineer to enable/disable vectored thrust calculations.
Added: Thrust torque field in Build Engineer (courtesy of mic_e). Added: Thrust torque field in Build Engineer (courtesy of mic_e).
Added: New readouts to the vessel category: Added: New readouts to the vessel category:
- Thrust Offset Angle (courtesy of mic_e) - Thrust Offset Angle (courtesy of mic_e)
- Thrust Torque (courtesy of mic_e) - Thrust Torque (courtesy of mic_e)
- Part Count: stage/total - Part Count: stage/total
- Heading - Heading
- Pitch - Pitch
- Roll - Roll
   
Added: New readouts to the surface category: Added: New readouts to the surface category:
- Situation - Situation
   
Added: New readouts to the miscellaneous category: Added: New readouts to the miscellaneous category:
- Vectored Thrust Toggle - Vectored Thrust Toggle
   
Fixed: The category selection within the section editors now do not always reset back to 'Orbital'. Fixed: The category selection within the section editors now do not always reset back to 'Orbital'.
Fixed: Issue where the vessel simulation can sometimes permanently freeze. Fixed: Issue where the vessel simulation can sometimes permanently freeze.
Fixed: Issue where the vessel simulation would not show updates when the delay was set lower than the frame rate. Fixed: Issue where the vessel simulation would not show updates when the delay was set lower than the frame rate.
   
1.0.11.3, 11-11-2014 1.0.11.3, 11-11-2014
Changed: Gravity measurements for Isp to 9.82. Changed: Gravity measurements for Isp to 9.82.
   
1.0.11.2, 10-11-2014 1.0.11.2, 10-11-2014
Changed: Gravity measurements for Isp calculations from 9.81 to 9.8066 for accuracy. Changed: Gravity measurements for Isp calculations from 9.81 to 9.8066 for accuracy.
Changed: Manoeuvre node burn times are now more accurate. Changed: Manoeuvre node burn times are now more accurate.
Fixed: Bug in the manoeuvre node burn time calculations where it was not averaging acceleration correctly. Fixed: Bug in the manoeuvre node burn time calculations where it was not averaging acceleration correctly.
   
1.0.11.1, 07-11-2014 1.0.11.1, 07-11-2014
Changed: Build Engineer now shows stage part count as well as total. Changed: Build Engineer now shows stage part count as well as total.
Changed: Build Overlay Vessel tab data: Changed: Build Overlay Vessel tab data:
DeltaV: stage / total DeltaV: stage / total
Mass: stage / total Mass: stage / total
TWR: start (max) <- shows for bottom stage only. TWR: start (max) <- shows for bottom stage only.
Parts: stage / total Parts: stage / total
   
Fixed: Issue with the vessel tab vanishing from the editor. Fixed: Issue with the vessel tab vanishing from the editor.
   
1.0.11.0, 06-11-2014 1.0.11.0, 06-11-2014
Added: New readouts to the orbital category: Added: New readouts to the orbital category:
- Current SOI - Current SOI
- Manoeuvre Node DeltaV (Prograde) - Manoeuvre Node DeltaV (Prograde)
- Manoeuvre Node DeltaV (Normal) - Manoeuvre Node DeltaV (Normal)
- Manoeuvre Node DeltaV (Radial) - Manoeuvre Node DeltaV (Radial)
- Manoeuvre Node DeltaV (Total) - Manoeuvre Node DeltaV (Total)
- Manoeuvre Node Burn Time - Manoeuvre Node Burn Time
- Manoeuvre Node Half Burn Time - Manoeuvre Node Half Burn Time
- Manoeuvre Node Angle to Prograde - Manoeuvre Node Angle to Prograde
- Manoeuvre Node Angle to Retrograde - Manoeuvre Node Angle to Retrograde
- Time to Manoeuvre Node - Time to Manoeuvre Node
- Time to Manoeuvre Burn - Time to Manoeuvre Burn
   
Added: Readout help strings by ClassyJakey. Added: Readout help strings by ClassyJakey.
   
Fixed: Issue with separators in HUDs. Fixed: Issue with separators in HUDs.
Fixed: Issue with HUDs with backgrounds that have no displayed lines. Fixed: Issue with HUDs with backgrounds that have no displayed lines.
   
Padishar's Fixes: Padishar's Fixes:
Fixed: Issue with multicouplers when attached to parent by bottom node. Fixed: Issue with multicouplers when attached to parent by bottom node.
Fixed: Issue with sepratrons on solid rocket boosters. Fixed: Issue with sepratrons on solid rocket boosters.
   
1.0.10.0, 19-10-2014 1.0.10.0, 19-10-2014
UPDATE NOTICE: If you are updating from a previous version of Kerbal Engineer 1.0, please UPDATE NOTICE: If you are updating from a previous version of Kerbal Engineer 1.0, please
delete the 'Settings/SectionLibrary.xml' file, or remove the old install first. This will delete the 'Settings/SectionLibrary.xml' file, or remove the old install first. This will
reset the Flight Engineer sections to their default values and enable the new HUD functionality. reset the Flight Engineer sections to their default values and enable the new HUD functionality.
   
Added: New reaouts to the vessel category: Added: New reaouts to the vessel category:
- Suicide Burn Altitude (height above terrain to start burn) - Suicide Burn Altitude (height above terrain to start burn)
- Suicide Burn Distance (distance to suicide burn altitude) - Suicide Burn Distance (distance to suicide burn altitude)
- Suicide Burn DeltaV (velocity change required to zero vertical speed) - Suicide Burn DeltaV (velocity change required to zero vertical speed)
*** F5 for safety and use at your own risk! *** *** F5 for safety and use at your own risk! ***
   
Added: HUD type sections to the Flight Engineer. Added: HUD type sections to the Flight Engineer.
Added: HUD sections can have a smoked background for easy visibility. Added: HUD sections can have a smoked background for easy visibility.
Added: 'Switch to Target' button on the Target Selector readout. Added: 'Switch to Target' button on the Target Selector readout.
Changed: The default installed readouts to reduce new user brain melt. Changed: The default installed readouts to reduce new user brain melt.
Fixed: Flight Engineer not saving its hidden state. Fixed: Flight Engineer not saving its hidden state.
Fixed: Bug in the phase angle calculations. Fixed: Bug in the phase angle calculations.
Fixed: Bug where the Build Engineer would stay locked after hiding with the shortcut key. Fixed: Bug where the Build Engineer would stay locked after hiding with the shortcut key.
   
1.0.9.3, 08-10-2014 1.0.9.3, 08-10-2014
Added: Title of the build engineer in compact mode now shows if you are using atmospheric data. Added: Title of the build engineer in compact mode now shows if you are using atmospheric data.
Added: New readout to the surface category: Added: New readout to the surface category:
- Vertical Acceleration - Vertical Acceleration
- Horizontal Acceleration - Horizontal Acceleration
   
Changed: Atmospheric efficiency readout now shows as a percentage. Changed: Atmospheric efficiency readout now shows as a percentage.
Changed: Atmospheric settings (pressure/velocity) in the editor condensed onto a single line. Changed: Atmospheric settings (pressure/velocity) in the editor condensed onto a single line.
Fixed: Bug where the overlays in the editor would stay open outside of parts screen. Fixed: Bug where the overlays in the editor would stay open outside of parts screen.
   
1.0.9.2, 07-10-2014 1.0.9.2, 07-10-2014
Updated for KSP v0.25.0 Updated for KSP v0.25.0
Changed: Prettyfied Latitude and Longitude readouts. Changed: Prettyfied Latitude and Longitude readouts.
Changed: ModuleLandingGear now uses the physical significance flag. Changed: ModuleLandingGear now uses the physical significance flag.
Changed: Updated MiniAVC to 1.0.2.4. Changed: Updated MiniAVC to 1.0.2.4.
   
1.0.9.1, 17-09-2014 1.0.9.1, 17-09-2014
Fixed: Part size bug caused by TweakScale's cost calculator. Fixed: Part size bug caused by TweakScale's cost calculator.
   
1.0.9.0, 15-09-2014 1.0.9.0, 15-09-2014
Added: Build Engineer now also implements the '\' backslash show/hide shortcut. Added: Build Engineer now also implements the '\' backslash show/hide shortcut.
Added: New readouts to the vessel category: Added: New readouts to the vessel category:
- Current Stage DeltaV - Current Stage DeltaV
- Surface Thrust to Weight Ratio - Surface Thrust to Weight Ratio
   
Added: New editor overlay system. Added: New editor overlay system.
- Sleeker design. - Sleeker design.
- Hover over part information options: - Hover over part information options:
- Name only - Name only
- Middle click to show - Middle click to show
- Always show - Always show
- Slide out overlay displays: - Slide out overlay displays:
- Vessel information - Vessel information
- Resources list - Resources list
   
Fixed: Cost calculation now works with mods implementing IPartCostModifier. Fixed: Cost calculation now works with mods implementing IPartCostModifier.
   
1.0.8.1, 06-09-2014 1.0.8.1, 06-09-2014
Fixed: Bug which caused rendezvous readouts to freeze the game or show all zeros. Fixed: Bug which caused rendezvous readouts to freeze the game or show all zeros.
   
1.0.8.0, 06-09-2014 1.0.8.0, 06-09-2014
Added: New readouts to the vessel category: Added: New readouts to the vessel category:
- Intake Air (Usage) - Intake Air (Usage)
   
Added: New readouts to the rendezvous category: Added: New readouts to the rendezvous category:
- Relative Velocity - Relative Velocity
- Relative Speed - Relative Speed
   
Fixed: An issue where deltaV would not be calculated whilst flying. Fixed: An issue where deltaV would not be calculated whilst flying.
Fixed: NullRef whilst loading the in flight Action Menu. Fixed: NullRef whilst loading the in flight Action Menu.
   
1.0.7.1, 02-09-2014 1.0.7.1, 02-09-2014
Changed: Reversed Intake Air readout from 'S/D' to 'D/S' for easier reading. Changed: Reversed Intake Air readout from 'S/D' to 'D/S' for easier reading.
Changed: Increased Intake Air readout precision to 4 decimal places. Changed: Increased Intake Air readout precision to 4 decimal places.
Fixed: Issue where Intake Air supply was not representative of total supply. Fixed: Issue where Intake Air supply was not representative of total supply.
Fixed: Bug where actual thrust does not reset to zero on deactivated engines. Fixed: Bug where actual thrust does not reset to zero on deactivated engines.
Fixed: Thrust now scales with velocity for atmospheric engines. (Padishar's fix) Fixed: Thrust now scales with velocity for atmospheric engines. (Padishar's fix)
   
1.0.7.0, 01-09-2014 1.0.7.0, 01-09-2014
Added: Part count information to the Build Engineer. Added: Part count information to the Build Engineer.
Added: Reset button to the G-Force readout. Added: Reset button to the G-Force readout.
Added: Preset system to the Flight Engineer. Added: Preset system to the Flight Engineer.
Added: New stock presets: Added: New stock presets:
- Orbital - Orbital
- Surface - Surface
- Vessel - Vessel
- Rendezvous - Rendezvous
   
Added: New readouts to the orbital category: Added: New readouts to the orbital category:
- True Anomaly - True Anomaly
- Eccentric Anomaly - Eccentric Anomaly
- Mean Anomaly - Mean Anomaly
- Argument of Periapsis - Argument of Periapsis
- Angle to Prograde - Angle to Prograde
- Angle to Retrograde - Angle to Retrograde
   
Added: New readouts to the vessel category: Added: New readouts to the vessel category:
- Intake Air (Demand) - Intake Air (Demand)
- Intake Air (Supply) - Intake Air (Supply)
- Intake Air (Supply/Demand) - Intake Air (Supply/Demand)
   
Added: New readouts to the rendezvous category. Added: New readouts to the rendezvous category.
- Semi-major Axis - Semi-major Axis
- Semi-minor Axis - Semi-minor Axis
   
Added: Time formatter which can show time as referenced by any celestial body. Added: Time formatter which can show time as referenced by any celestial body.
Added: New readouts to the miscellaneous category: Added: New readouts to the miscellaneous category:
- Time Reference Adjuster - Time Reference Adjuster
   
Changed: Moved Sim Delay readout into the Miscellaneous category. Changed: Moved Sim Delay readout into the Miscellaneous category.
Changed: Updated MiniAVC to v1.0.2.3. Changed: Updated MiniAVC to v1.0.2.3.
Fixed: Issues with large value wrap around in the Flight Engineer. Fixed: Issues with large value wrap around in the Flight Engineer.
Fixed: Bug in the phase angle calculation. Fixed: Bug in the phase angle calculation.
   
1.0.6.0, 23-08-2014 1.0.6.0, 23-08-2014
Added: Time and Angle to equatorial ascending/descending nodes in the orbital display. Added: Time and Angle to equatorial ascending/descending nodes in the orbital display.
Added: Time and Angle to relative ascending/descending nodes in the rendezvous display. Added: Time and Angle to relative ascending/descending nodes in the rendezvous display.
Added: Overlay tooltip information delay adjustment slider to the Build Engineer settings. Added: Overlay tooltip information delay adjustment slider to the Build Engineer settings.
Added: Ability to rename the stock displays in the Flight Engineer. Added: Ability to rename the stock displays in the Flight Engineer.
Changed: Build Engineer is now hidden when not in parts view. Changed: Build Engineer is now hidden when not in parts view.
Changed: Custom display panels will only show in the control bar if an abbreviation is set. Changed: Custom display panels will only show in the control bar if an abbreviation is set.
Changed: Licensing and readme structures are now more verbose to satisfy the new add-on rules. Changed: Licensing and readme structures are now more verbose to satisfy the new add-on rules.
Fixed: Updated MiniAVC to v1.0.2.1 (fixes remote check bug as well as other minor bugs). Fixed: Updated MiniAVC to v1.0.2.1 (fixes remote check bug as well as other minor bugs).
   
1.0.5.0, 13-08-2014 1.0.5.0, 13-08-2014
Added: Acceleration readout to the Vessel category (current / maximum). Added: Acceleration readout to the Vessel category (current / maximum).
Added: Category library system for the Flight Engineer readouts. Added: Category library system for the Flight Engineer readouts.
Added: Drop-down category selection to better support the new system. Added: Drop-down category selection to better support the new system.
Changed: Misc category now called Miscellaneous (this will cause previously added readouts from this category to vanish). Changed: Misc category now called Miscellaneous (this will cause previously added readouts from this category to vanish).
Fixed: Bug with the Build Engineer toolbar button. Fixed: Bug with the Build Engineer toolbar button.
Fixed: Some buggyness when trying to close the bodies drop-down in the Build Engineer via the button. Fixed: Some buggyness when trying to close the bodies drop-down in the Build Engineer via the button.
Fixed: Flight Engineer toolbar menu now hides when hiding the GUI with F2. Fixed: Flight Engineer toolbar menu now hides when hiding the GUI with F2.
Fixed: Flight Engineer toolbar button now disables when in module mode and no engineer is running. Fixed: Flight Engineer toolbar button now disables when in module mode and no engineer is running.
   
1.0.4.0, 12-08-2014 1.0.4.0, 12-08-2014
Added: Better stock toolbar support in the flight engineer. Added: Better stock toolbar support in the flight engineer.
Added: Dynamically generated celestial body library for supporting add-ons that modify the star system. Added: Dynamically generated celestial body library for supporting add-ons that modify the star system.
Changed: Reference bodies are now listed with a nestable menu system. Changed: Reference bodies are now listed with a nestable menu system.
Changed: Extended logging system has been improved. Changed: Extended logging system has been improved.
Changed: Swapped out integrated MiniAVC in place of the official bundle version. Changed: Swapped out integrated MiniAVC in place of the official bundle version.
Changed: Increased general distance precision to 1 decimal place. Changed: Increased general distance precision to 1 decimal place.
Changed: Increased Semi-major/minor axis precision to 3 decimal places. Changed: Increased Semi-major/minor axis precision to 3 decimal places.
Fixed: Impact altitude was mistakenly formatted as an angle, it is now formatted correctly as a distance. Fixed: Impact altitude was mistakenly formatted as an angle, it is now formatted correctly as a distance.
   
1.0.3.0, 30-07-2014 1.0.3.0, 30-07-2014
Added: Integrated KSP-AVC support with MiniAVC. Added: Integrated KSP-AVC support with MiniAVC.
Added: Setting to change the simulation delay in the Build Engineer. Added: Setting to change the simulation delay in the Build Engineer.
Added: Setting to enable and disable the build overlay system. Added: Setting to enable and disable the build overlay system.
Added: Burn time to Delta-V readouts. Added: Burn time to Delta-V readouts.
Added: Atmospheric readouts fully support FAR. Added: Atmospheric readouts fully support FAR.
Added: Atmospheric readouts are disabled with NEAR. Added: Atmospheric readouts are disabled with NEAR.
Changed: Force formatting inversely scales decimal precision with value. Changed: Force formatting inversely scales decimal precision with value.
Fixed: Flickering in VAB and Vessel display. Fixed: Flickering in VAB and Vessel display.
Fixed: Bug saving the GUI display size. Fixed: Bug saving the GUI display size.
   
1.0.2.0, 27-07-2014 1.0.2.0, 27-07-2014
Added: Separator readout module under Misc in the Flight Engineer. Added: Separator readout module under Misc in the Flight Engineer.
Added: Adjustable GUI display size. Added: Adjustable GUI display size.
Added: Display size can be adjusted in the Build Engineer settings. Added: Display size can be adjusted in the Build Engineer settings.
Added: Misc readout for adjusting display size in the Flight Engineer. Added: Misc readout for adjusting display size in the Flight Engineer.
Changed: The rendezvous readout for the target's Orbital Period has higher precision. Changed: The rendezvous readout for the target's Orbital Period has higher precision.
Fixed: White toolbar icon by manually importing the texture if it cannot be found in the game database. Fixed: White toolbar icon by manually importing the texture if it cannot be found in the game database.
Fixed: Engines that have a minimum thrust are now calculated properly. (Thanks to nosscire.) Fixed: Engines that have a minimum thrust are now calculated properly. (Thanks to nosscire.)
Fixed: Compact collapse mode is now saved in the Build Engineer. Fixed: Compact collapse mode is now saved in the Build Engineer.
   
1.0.1.0, 26-07-2014 1.0.1.0, 26-07-2014
Added: Part-less Flight Engineer. Added: Part-less Flight Engineer.
Added: Ability to collapse the Build Engineer into compact mode from left or right. Added: Ability to collapse the Build Engineer into compact mode from left or right.
Added: Settings in Build Engineer for compact collapse mode and partless/module Flight Engineer. Added: Settings in Build Engineer for compact collapse mode and partless/module Flight Engineer.
Added: Biome, Impact Biome and Slope readouts. Added: Biome, Impact Biome and Slope readouts.
Added: Extra logging and exception handling. Added: Extra logging and exception handling.
Added: The original Engineer Chip part. Added: The original Engineer Chip part.
Added: "Show Engineer" toggle on the Flight Engineer toolbar. Added: "Show Engineer" toggle on the Flight Engineer toolbar.
Changed: Extended logging system now also writes to the standard KSP logs. Changed: Extended logging system now also writes to the standard KSP logs.
Changed: Extended logging saves next to the .dll file. Changed: Extended logging saves next to the .dll file.
Changed: ER7500 part has no physical significance. Changed: ER7500 part has no physical significance.
Fixed: ActionMenu and DisplayStack destruction bug. Fixed: ActionMenu and DisplayStack destruction bug.
   
1.0.0.1, 24-07-2014 1.0.0.1, 24-07-2014
Added: Stock toolbar support in the Flight Engineer. Added: Stock toolbar support in the Flight Engineer.
Changed: Orbital Period has higher precision. Changed: Orbital Period has higher precision.
Fixed: Various NullRefs in editor window and overlay. Fixed: Various NullRefs in editor window and overlay.
   
1.0.0.0, 24-07-2014 1.0.0.0, 24-07-2014
Initial release for public testing. Initial release for public testing.
   
namespace KerbalEngineer.Unity //
  // 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
{ {
using System; using System;
using System.Collections; using System.Collections;
using UnityEngine; using UnityEngine;
   
[RequireComponent(typeof(CanvasGroup))] [RequireComponent(typeof(CanvasGroup))]
public class CanvasGroupFader : MonoBehaviour public class CanvasGroupFader : MonoBehaviour
{ {
private CanvasGroup m_CanvasGroup; private CanvasGroup m_CanvasGroup;
private IEnumerator m_FadeCoroutine; private IEnumerator m_FadeCoroutine;
   
public bool fading public bool fading
{ {
get get
{ {
return m_FadeCoroutine != null; return m_FadeCoroutine != null;
} }
} }
   
/// <summary> /// <summary>
/// Fades the canvas group to a specified alpha using the supplied blocking state during fade with optional callback. /// Fades the canvas group to a specified alpha using the supplied blocking state during fade with optional callback.
/// </summary> /// </summary>
public void FadeTo(float alpha, float duration, Action callback = null) public void FadeTo(float alpha, float duration, Action callback = null)
{ {
if (m_CanvasGroup == null) if (m_CanvasGroup == null)
{ {
return; return;
} }
   
Fade(m_CanvasGroup.alpha, alpha, duration, callback); Fade(m_CanvasGroup.alpha, alpha, duration, callback);
} }
   
/// <summary> /// <summary>
/// Sets the alpha value of the canvas group. /// Sets the alpha value of the canvas group.
/// </summary> /// </summary>
public void SetAlpha(float alpha) public void SetAlpha(float alpha)
{ {
if (m_CanvasGroup == null) if (m_CanvasGroup == null)
{ {
return; return;
} }
   
alpha = Mathf.Clamp01(alpha); alpha = Mathf.Clamp01(alpha);
m_CanvasGroup.alpha = alpha; m_CanvasGroup.alpha = alpha;
} }
   
protected virtual void Awake() protected virtual void Awake()
{ {
// cache components // cache components
m_CanvasGroup = GetComponent<CanvasGroup>(); m_CanvasGroup = GetComponent<CanvasGroup>();
} }
   
/// <summary> /// <summary>
/// Starts a fade from one alpha value to another with callback. /// Starts a fade from one alpha value to another with callback.
/// </summary> /// </summary>
private void Fade(float from, float to, float duration, Action callback) private void Fade(float from, float to, float duration, Action callback)
{ {
if (m_FadeCoroutine != null) if (m_FadeCoroutine != null)
{ {
StopCoroutine(m_FadeCoroutine); StopCoroutine(m_FadeCoroutine);
} }
   
m_FadeCoroutine = FadeCoroutine(from, to, duration, callback); m_FadeCoroutine = FadeCoroutine(from, to, duration, callback);
StartCoroutine(m_FadeCoroutine); StartCoroutine(m_FadeCoroutine);
} }
   
/// <summary> /// <summary>
/// Coroutine that handles the fading. /// Coroutine that handles the fading.
/// </summary> /// </summary>
private IEnumerator FadeCoroutine(float from, float to, float duration, Action callback) private IEnumerator FadeCoroutine(float from, float to, float duration, Action callback)
{ {
float progress = 0.0f; float progress = 0.0f;
   
while (progress <= 1.0f) while (progress <= 1.0f)
{ {
progress += Time.deltaTime / duration; progress += Time.deltaTime / duration;
SetAlpha(Mathf.Lerp(from, to, progress)); SetAlpha(Mathf.Lerp(from, to, progress));
yield return null; yield return null;
} }
   
print(m_CanvasGroup.alpha); print(m_CanvasGroup.alpha);
callback?.Invoke(); callback?.Invoke();
   
m_FadeCoroutine = null; m_FadeCoroutine = null;
} }
} }
} }
//  
// 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.Flight  
{  
using KerbalEngineer.Flight;  
using UnityEngine;  
using UnityEngine.EventSystems;  
using UnityEngine.UI;  
 
public class FlightEngineerMenu : CanvasGroupFader, IPointerEnterHandler, IPointerExitHandler  
{  
[SerializeField]  
private Toggle m_ShowEngineerToggle;  
 
[SerializeField]  
private Toggle m_ControlBarToggle;  
 
[SerializeField]  
private float m_FastFadeDuration = 0.2f;  
 
[SerializeField]  
private float m_SlowFadeDuration = 1.0f;  
 
/// <summary>  
/// Gets or sets the visibility of the control bar.  
/// </summary>  
public bool controlBar  
{  
get  
{  
if (DisplayStack.Instance != null)  
{  
return DisplayStack.Instance.ShowControlBar;  
}  
 
return true;  
}  
set  
{  
if (DisplayStack.Instance != null)  
{  
DisplayStack.Instance.ShowControlBar = value;  
}  
}  
}  
 
/// <summary>  
/// Gets or sets the visibility of the flight engineer display stack.  
/// </summary>  
public bool showEngineer  
{  
get  
{  
if (DisplayStack.Instance != null)  
{  
return DisplayStack.Instance.Hidden == false;  
}  
 
return true;  
}  
set  
{  
if (DisplayStack.Instance != null)  
{  
DisplayStack.Instance.Hidden = !value;  
}  
}  
}  
 
public void OnPointerEnter(PointerEventData eventData)  
{  
FadeIn();  
}  
 
public void OnPointerExit(PointerEventData eventData)  
{  
// slow-fade out if the application launcher button is off  
if (FlightAppLauncher.instance != null && FlightAppLauncher.instance.isOn == false)  
{  
FadeTo(0.0f, m_SlowFadeDuration, Destroy);  
}  
}  
 
protected override void Awake()  
{  
base.Awake();  
 
// subscribe events  
FlightAppLauncher.MenuClosed += MenuClosed;  
FlightAppLauncher.ButtonHover += ButtonHover;  
}  
 
protected virtual void OnDestroy()  
{  
// unsubscribe events  
FlightAppLauncher.MenuClosed -= MenuClosed;  
FlightAppLauncher.ButtonHover -= ButtonHover;  
}  
 
protected virtual void OnEnable()  
{  
// set starting alpha to zero and fade in  
SetAlpha(0.0f);  
FadeIn();  
}  
 
protected virtual void Start()  
{  
DisplayStackToggles();  
}  
 
/// <summary>  
/// Called when the application launcher button is hovered over.  
/// </summary>  
private void ButtonHover()  
{  
FadeIn();  
}  
 
/// <summary>  
/// Destroys the game object.  
/// </summary>  
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  
gameObject.SetActive(false);  
Destroy(gameObject);  
}  
 
/// <summary>  
/// Called when the display stack has loaded its settings.  
/// </summary>  
private void DisplayStackToggles()  
{  
if (DisplayStack.Instance == null)  
{  
return;  
}  
 
SetToggle(m_ShowEngineerToggle, DisplayStack.Instance.Hidden == false);  
SetToggle(m_ControlBarToggle, DisplayStack.Instance.ShowControlBar);  
}  
 
private void FadeIn()  
{  
FadeTo(1.0f, m_FastFadeDuration);  
}  
 
private void MenuClosed()  
{  
FadeTo(0.0f, m_FastFadeDuration, Destroy);  
}  
 
private void SetToggle(Toggle toggle, bool state)  
{  
if (toggle != null)  
{  
toggle.isOn = state;  
}  
}  
}  
}  
  //
  // 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.Flight
  {
  using System.Collections.Generic;
  using UnityEngine;
  using UnityEngine.EventSystems;
  using UnityEngine.UI;
 
  [RequireComponent(typeof(RectTransform))]
  public class FlightMenu : CanvasGroupFader, IPointerEnterHandler, IPointerExitHandler
  {
  [SerializeField]
  private Toggle m_ShowEngineerToggle = null;
 
  [SerializeField]
  private Toggle m_ControlBarToggle = null;
 
  [SerializeField]
  private GameObject m_MenuSectionPrefab = null;
 
  [SerializeField]
  private Transform m_SectionsTransform = null;
 
  [SerializeField]
  private float m_FastFadeDuration = 0.2f;
 
  [SerializeField]
  private float m_SlowFadeDuration = 1.0f;
 
  private IFlightAppLauncher m_FlightAppLauncher;
 
  private RectTransform m_RectTransform;
 
  public void OnPointerEnter(PointerEventData eventData)
  {
  FadeIn();
  }
 
  public void OnPointerExit(PointerEventData eventData)
  {
  // slow-fade out if the application launcher button is off
  if (m_FlightAppLauncher != null && m_FlightAppLauncher.isOn == false)
  {
  FadeTo(0.0f, m_SlowFadeDuration, Destroy);
  }
  }
 
  /// <summary>
  /// Fades out and destroys the menu.
  /// </summary>
  public void Close()
  {
  FadeTo(0.0f, m_FastFadeDuration, Destroy);
  }
 
  /// <summary>
  /// Fades in the menu.
  /// </summary>
  public void FadeIn()
  {
  FadeTo(1.0f, m_FastFadeDuration);
  }
 
  /// <summary>
  /// Creates a new custom section.
  /// </summary>
  public void NewCustomSection()
  {
  if (m_FlightAppLauncher != null)
  {
  CreateSectionControl(m_FlightAppLauncher.NewCustomSection());
  }
  }
 
  /// <summary>
  /// Sets the control bar visiblity.
  /// </summary>
  public void SetControlBar(bool visible)
  {
  if (m_FlightAppLauncher != null)
  {
  m_FlightAppLauncher.controlBar = visible;
  }
  }
 
  /// <summary>
  /// Sets a reference to the flight app launcher object.
  /// </summary>
  public void SetFlightAppLauncher(IFlightAppLauncher flightAppLauncher)
  {
  if (flightAppLauncher == null)
  {
  return;
  }
 
  m_FlightAppLauncher = flightAppLauncher;
 
  // create section controls
  CreateSectionControls(m_FlightAppLauncher.GetStockSections());
  CreateSectionControls(m_FlightAppLauncher.GetCustomSections());
  }
 
  /// <summary>
  /// Sets the display stack visibility.
  /// </summary>
  public void SetShowEngineer(bool visible)
  {
  if (m_FlightAppLauncher != null)
  {
  m_FlightAppLauncher.showEngineer = visible;
  }
  }
 
  protected override void Awake()
  {
  base.Awake();
 
  // cache components
  m_RectTransform = GetComponent<RectTransform>();
  }
 
  protected virtual void Start()
  {
  // set starting alpha to zero and fade in
  SetAlpha(0.0f);
  FadeIn();
  }
 
  protected virtual void Update()
  {
  if (m_FlightAppLauncher == null)
  {
  return;
  }
 
  // set toggle states to match the actual states
  SetToggle(m_ShowEngineerToggle, m_FlightAppLauncher.showEngineer);
  SetToggle(m_ControlBarToggle, m_FlightAppLauncher.controlBar);
 
  // update anchor position
  if (m_RectTransform != null)
  {
  m_RectTransform.position = m_FlightAppLauncher.GetAnchor();
  m_FlightAppLauncher.ClampToScreen(m_RectTransform);
  }
  }
 
  /// <summary>
  /// Sets a given toggle to the specified state with null checking.
  /// </summary>
  private static void SetToggle(Toggle toggle, bool state)
  {
  if (toggle != null)
  {
  toggle.isOn = state;
  }
  }
 
  /// <summary>
  /// Creates a menu section control.
  /// </summary>
  private void CreateSectionControl(ISectionModule section)
  {
  GameObject menuSectionObject = Instantiate(m_MenuSectionPrefab);
  if (menuSectionObject != null)
  {
  menuSectionObject.transform.SetParent(m_SectionsTransform, false);
 
  FlightMenuSection menuSection = menuSectionObject.GetComponent<FlightMenuSection>();
  if (menuSection != null)
  {
  menuSection.SetAssignedSection(section);
  }
  }
  }
 
  /// <summary>
  /// Creates a list of section controls from a given list of sections.
  /// </summary>
  private void CreateSectionControls(IList<ISectionModule> sections)
  {
  if (sections == null || m_MenuSectionPrefab == null || m_SectionsTransform == null)
  {
  return;
  }
 
  for (int i = 0; i < sections.Count; i++)
  {
  ISectionModule section = sections[i];
  if (section != null)
  {
  CreateSectionControl(section);
  }
  }
  }
 
  /// <summary>
  /// Destroys the game object.
  /// </summary>
  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
  gameObject.SetActive(false);
  Destroy(gameObject);
  }
  }
  }
  //
  // 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.Flight
  {
  using UnityEngine;
  using UnityEngine.UI;
 
  public class FlightMenuSection : MonoBehaviour
  {
  [SerializeField]
  private Toggle m_DisplayToggle = null;
 
  [SerializeField]
  private Text m_DisplayText = null;
 
  [SerializeField]
  private Toggle m_EditToggle = null;
 
  private ISectionModule m_Section;
 
  /// <summary>
  /// Gets or sets the section's editor visibility.
  /// </summary>
  public bool editorVisible
  {
  get
  {
  if (m_EditToggle != null)
  {
  return m_EditToggle.isOn;
  }
 
  return true;
  }
  set
  {
  if (m_EditToggle != null)
  {
  m_EditToggle.isOn = value;
  }
  }
  }
 
  /// <summary>
  /// Sets the assigned section to be handled by the menu object.
  /// </summary>
  public void SetAssignedSection(ISectionModule section)
  {
  if (section == null)
  {
  return;
  }
 
  m_Section = section;
  }
 
  /// <summary>
  /// Sets the section's display visibility.
  /// </summary>
  public void SetDisplayVisible(bool visible)
  {
  if (m_Section != null)
  {
  m_Section.IsVisible = visible;
  }
  }
 
  /// <summary>
  /// Sets the section's editor visibility.
  /// </summary>
  public void SetEditorVisible(bool visible)
  {
  if (m_Section != null)
  {
  m_Section.IsEditorVisible = visible;
  }
  }
 
  protected virtual void Update()
  {
  UpdateControls();
  }
 
  /// <summary>
  /// Updates the menu section's controls.
  /// </summary>
  private void UpdateControls()
  {
  if (m_Section == null || m_Section.IsDeleted)
  {
  Destroy(gameObject);
  return;
  }
 
  // display visible
  if (m_DisplayToggle != null)
  {
  m_DisplayToggle.isOn = m_Section.IsVisible;
  }
 
  // display name
  if (m_DisplayText != null)
  {
  m_DisplayText.text = m_Section.Name.ToUpperInvariant();
  }
 
  // editor visible
  if (m_EditToggle != null)
  {
  m_EditToggle.isOn = m_Section.IsEditorVisible;
  }
  }
  }
  }
  //
  // 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.Flight
  {
  using System.Collections.Generic;
  using UnityEngine;
 
  public interface IFlightAppLauncher
  {
  bool controlBar { get; set; }
 
  bool isOn { get; }
 
  bool showEngineer { get; set; }
 
  void ClampToScreen(RectTransform rectTransform);
 
  Vector3 GetAnchor();
 
  IList<ISectionModule> GetCustomSections();
 
  IList<ISectionModule> GetStockSections();
 
  ISectionModule NewCustomSection();
  }
  }
  //
  // 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.Flight
  {
  public interface ISectionModule
  {
  bool IsDeleted { get; }
 
  bool IsEditorVisible { get; set; }
 
  bool IsVisible { get; set; }
 
  string Name { get; }
  }
  }
<?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\FlightEngineerMenu.cs" /> <Compile Include="Flight\FlightMenu.cs" />
  <Compile Include="Flight\FlightMenuSection.cs" />
  <Compile Include="Flight\IFlightAppLauncher.cs" />
  <Compile Include="Flight\ISectionModule.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.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>
<ItemGroup>  
<ProjectReference Include="..\KerbalEngineer\KerbalEngineer.csproj">  
<Project>{39806613-e0b7-46e0-89a6-a569ec538cbb}</Project>  
<Name>KerbalEngineer</Name>  
<Private>False</Private>  
</ProjectReference>  
</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>
namespace KerbalEngineer //
  // 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 UnityEngine; using UnityEngine;
   
[KSPAddon(KSPAddon.Startup.Instantly, false)] [KSPAddon(KSPAddon.Startup.Instantly, false)]
public class AssetBundleLoader : MonoBehaviour public class AssetBundleLoader : MonoBehaviour
{ {
private static AssetBundle m_Images; private static AssetBundle m_Images;
private static AssetBundle m_Prefabs; private static AssetBundle m_Prefabs;
   
/// <summary> /// <summary>
/// Gets the loaded images asset bundle. /// Gets the loaded images asset bundle.
/// </summary> /// </summary>
public static AssetBundle images public static AssetBundle images
{ {
get get
{ {
return m_Images; return m_Images;
} }
} }
   
/// <summary> /// <summary>
/// Gets the loaded prefabs asset bundle. /// Gets the loaded prefabs asset bundle.
/// </summary> /// </summary>
public static AssetBundle prefabs public static AssetBundle prefabs
{ {
get get
{ {
return m_Prefabs; return m_Prefabs;
} }
} }
   
protected virtual void Awake() protected virtual void Awake()
{ {
string bundlePath = EngineerGlobals.AssemblyPath; string bundlePath = EngineerGlobals.AssemblyPath;
   
m_Images = AssetBundle.CreateFromFile(bundlePath + "/images"); m_Images = AssetBundle.CreateFromFile(bundlePath + "/images");
m_Prefabs = AssetBundle.CreateFromFile(bundlePath + "/prefabs"); m_Prefabs = AssetBundle.CreateFromFile(bundlePath + "/prefabs");
} }
} }
} }
// //
// 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 System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
   
using KerbalEngineer.Extensions; using KerbalEngineer.Extensions;
using KerbalEngineer.Flight.Sections; using KerbalEngineer.Flight.Sections;
using KerbalEngineer.Settings; using KerbalEngineer.Settings;
   
using UnityEngine; using UnityEngine;
   
#endregion #endregion
   
namespace KerbalEngineer.Flight namespace KerbalEngineer.Flight
{ {
using KeyBinding; using KeyBinding;
using Upgradeables; using Upgradeables;
   
/// <summary> /// <summary>
/// Graphical controller for displaying stacked sections. /// Graphical controller for displaying stacked sections.
/// </summary> /// </summary>
[KSPAddon(KSPAddon.Startup.Flight, false)] [KSPAddon(KSPAddon.Startup.Flight, false)]
public class DisplayStack : MonoBehaviour public class DisplayStack : MonoBehaviour
{ {
#region Fields #region Fields
   
private GUIStyle buttonStyle; private GUIStyle buttonStyle;
private int numberOfStackSections; private int numberOfStackSections;
private bool resizeRequested; private bool resizeRequested;
private bool showControlBar = true; private bool showControlBar = true;
private GUIStyle titleStyle; private GUIStyle titleStyle;
private int windowId; private int windowId;
private Rect windowPosition; private Rect windowPosition;
private GUIStyle windowStyle; private GUIStyle windowStyle;
   
#endregion #endregion
   
#region Properties #region Properties
   
/// <summary> /// <summary>
/// Gets the current instance of the DisplayStack. /// Gets the current instance of the DisplayStack.
/// </summary> /// </summary>
public static DisplayStack Instance { get; private set; } public static DisplayStack Instance { get; private set; }
   
public bool Hidden { get; set; } public bool Hidden { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the visibility of the control bar. /// Gets and sets the visibility of the control bar.
/// </summary> /// </summary>
public bool ShowControlBar public bool ShowControlBar
{ {
get { return this.showControlBar; } get { return this.showControlBar; }
set { this.showControlBar = value; } set
  {
  if (showControlBar != value)
  {
  this.showControlBar = value;
  RequestResize();
  }
  }
} }
   
#endregion #endregion
   
#region Methods: public #region Methods: public
   
/// <summary> /// <summary>
/// Request that the display stack's size is reset in the next draw call. /// Request that the display stack's size is reset in the next draw call.
/// </summary> /// </summary>
public void RequestResize() public void RequestResize()
{ {
this.resizeRequested = true; this.resizeRequested = true;
} }
   
#endregion #endregion
   
#region Methods: protected #region Methods: protected
   
/// <summary> /// <summary>
/// Sets the instance to this object. /// Sets the instance to this object.
/// </summary> /// </summary>
protected void Awake() protected void Awake()
{ {
try try
{ {
if (Instance == null) if (Instance == null)
{ {
Instance = this; Instance = this;
GuiDisplaySize.OnSizeChanged += this.OnSizeChanged; GuiDisplaySize.OnSizeChanged += this.OnSizeChanged;
Logger.Log("ActionMenu->Awake"); Logger.Log("ActionMenu->Awake");
} }
else else
{ {
Destroy(this); Destroy(this);
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Runs when the object is destroyed. /// Runs when the object is destroyed.
/// </summary> /// </summary>
protected void OnDestroy() protected void OnDestroy()
{ {
try try
{ {
this.Save(); this.Save();
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
Logger.Log("ActionMenu->OnDestroy"); Logger.Log("ActionMenu->OnDestroy");
} }
   
/// <summary> /// <summary>
/// Initialises the object's state on creation. /// Initialises the object's state on creation.
/// </summary> /// </summary>
protected void Start() protected void Start()
{ {
try try
{ {
this.windowId = this.GetHashCode(); this.windowId = this.GetHashCode();
this.InitialiseStyles(); this.InitialiseStyles();
this.Load(); this.Load();
Logger.Log("ActionMenu->Start"); Logger.Log("ActionMenu->Start");
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
protected void Update() protected void Update()
{ {
try try
{ {
if (!FlightEngineerCore.IsDisplayable) if (!FlightEngineerCore.IsDisplayable)
{ {
return; return;
} }
   
if (Input.GetKeyDown(KeyBinder.FlightShowHide)) if (Input.GetKeyDown(KeyBinder.FlightShowHide))
{ {
this.Hidden = !this.Hidden; this.Hidden = !this.Hidden;
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
#endregion #endregion
   
#region Methods: private #region Methods: private
   
/// <summary> /// <summary>
/// Called to draw the display stack when the UI is enabled. /// Called to draw the display stack when the UI is enabled.
/// </summary> /// </summary>
private void OnGUI() private void OnGUI()
{ {
try try
{ {
if (!FlightEngineerCore.IsDisplayable) if (!FlightEngineerCore.IsDisplayable)
{ {
return; return;
} }
   
if (this.resizeRequested || this.numberOfStackSections != SectionLibrary.NumberOfStackSections) if (this.resizeRequested || this.numberOfStackSections != SectionLibrary.NumberOfStackSections)
{ {
this.numberOfStackSections = SectionLibrary.NumberOfStackSections; this.numberOfStackSections = SectionLibrary.NumberOfStackSections;
this.windowPosition.width = 0; this.windowPosition.width = 0;
this.windowPosition.height = 0; this.windowPosition.height = 0;
this.resizeRequested = false; this.resizeRequested = false;
} }
   
if (!this.Hidden && (SectionLibrary.NumberOfStackSections > 0 || this.ShowControlBar)) if (!this.Hidden && (SectionLibrary.NumberOfStackSections > 0 || this.ShowControlBar))
{ {
var shouldCentre = this.windowPosition.min == Vector2.zero; var shouldCentre = this.windowPosition.min == Vector2.zero;
GUI.skin = null; GUI.skin = null;
this.windowPosition = GUILayout.Window(this.windowId, this.windowPosition, this.Window, string.Empty, this.windowStyle).ClampToScreen(); this.windowPosition = GUILayout.Window(this.windowId, this.windowPosition, this.Window, string.Empty, this.windowStyle).ClampToScreen();
if (shouldCentre) if (shouldCentre)
{ {
this.windowPosition.center = new Vector2(Screen.width * 0.5f, Screen.height * 0.5f); this.windowPosition.center = new Vector2(Screen.width * 0.5f, Screen.height * 0.5f);
} }
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Draws the control bar. /// Draws the control bar.
/// </summary> /// </summary>
private void DrawControlBar() private void DrawControlBar()
{ {
GUILayout.Label("FLIGHT ENGINEER " + EngineerGlobals.ASSEMBLY_VERSION, this.titleStyle); GUILayout.Label("FLIGHT ENGINEER " + EngineerGlobals.ASSEMBLY_VERSION, this.titleStyle);
   
this.DrawControlBarButtons(SectionLibrary.StockSections); this.DrawControlBarButtons(SectionLibrary.StockSections);
this.DrawControlBarButtons(SectionLibrary.CustomSections); this.DrawControlBarButtons(SectionLibrary.CustomSections);
} }
   
/// <summary> /// <summary>
/// Draws a button list for a set of sections. /// Draws a button list for a set of sections.
/// </summary> /// </summary>
private void DrawControlBarButtons(IEnumerable<SectionModule> sections) private void DrawControlBarButtons(IEnumerable<SectionModule> sections)
{ {
var index = 0; var index = 0;
foreach (var section in sections.Where(s => !string.IsNullOrEmpty(s.Abbreviation) || !s.IsCustom)) foreach (var section in sections.Where(s => !string.IsNullOrEmpty(s.Abbreviation) || !s.IsCustom))
{ {
if (index % 4 == 0) if (index % 4 == 0)
{ {
if (index > 0) if (index > 0)
{ {
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
} }
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
} }
section.IsVisible = GUILayout.Toggle(section.IsVisible, section.Abbreviation.ToUpper(), this.buttonStyle); section.IsVisible = GUILayout.Toggle(section.IsVisible, section.Abbreviation.ToUpper(), this.buttonStyle);
index++; index++;
} }
if (index > 0) if (index > 0)
{ {
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
} }
} }
   
/// <summary> /// <summary>
/// Draws a list of sections. /// Draws a list of sections.
/// </summary> /// </summary>
private void DrawSections(IEnumerable<SectionModule> sections) private void DrawSections(IEnumerable<SectionModule> sections)
{ {
foreach (var section in sections) foreach (var section in sections)
{ {
if (!section.IsFloating) if (!section.IsFloating)
{ {
section.Draw(); section.Draw();
} }
} }
} }
   
/// <summary> /// <summary>
/// Initialises all the styles required for this object. /// Initialises all the styles required for this object.
/// </summary> /// </summary>
private void InitialiseStyles() private void InitialiseStyles()
{ {
this.windowStyle = new GUIStyle(HighLogic.Skin.window) this.windowStyle = new GUIStyle(HighLogic.Skin.window)
{ {
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(5, 5, 0, 5) padding = new RectOffset(5, 5, 0, 5)
}; };
   
this.titleStyle = new GUIStyle(HighLogic.Skin.label) this.titleStyle = new GUIStyle(HighLogic.Skin.label)
{ {
margin = new RectOffset(0, 0, 5, 3), margin = new RectOffset(0, 0, 5, 3),
padding = new RectOffset(), padding = new RectOffset(),
alignment = TextAnchor.MiddleCenter, alignment = TextAnchor.MiddleCenter,
fontSize = (int)(13 * GuiDisplaySize.Offset), fontSize = (int)(13 * GuiDisplaySize.Offset),
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
stretchWidth = true stretchWidth = true
}; };
   
this.buttonStyle = new GUIStyle(HighLogic.Skin.button) this.buttonStyle = new GUIStyle(HighLogic.Skin.button)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(), padding = new RectOffset(),
alignment = TextAnchor.MiddleCenter, alignment = TextAnchor.MiddleCenter,
fontSize = (int)(11 * GuiDisplaySize.Offset), fontSize = (int)(11 * GuiDisplaySize.Offset),
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
fixedWidth = 60.0f * GuiDisplaySize.Offset, fixedWidth = 60.0f * GuiDisplaySize.Offset,
fixedHeight = 25.0f * GuiDisplaySize.Offset, fixedHeight = 25.0f * GuiDisplaySize.Offset,
}; };
} }
   
/// <summary> /// <summary>
/// Load the stack's state. /// Load the stack's state.
/// </summary> /// </summary>
private void Load() private void Load()
{ {
try try
{ {
var handler = SettingHandler.Load("DisplayStack.xml"); var handler = SettingHandler.Load("DisplayStack.xml");
this.Hidden = handler.Get("hidden", this.Hidden); this.Hidden = handler.Get("hidden", this.Hidden);
this.ShowControlBar = handler.Get("showControlBar", this.ShowControlBar); this.ShowControlBar = handler.Get("showControlBar", this.ShowControlBar);
this.windowPosition.x = handler.Get("windowPositionX", this.windowPosition.x); this.windowPosition.x = handler.Get("windowPositionX", this.windowPosition.x);
this.windowPosition.y = handler.Get("windowPositionY", this.windowPosition.y); this.windowPosition.y = handler.Get("windowPositionY", this.windowPosition.y);
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex, "DisplayStack->Load"); Logger.Exception(ex, "DisplayStack->Load");
} }
} }
   
private void OnSizeChanged() private void OnSizeChanged()
{ {
this.InitialiseStyles(); this.InitialiseStyles();
this.RequestResize(); this.RequestResize();
} }
   
/// <summary> /// <summary>
/// Saves the stack's state. /// Saves the stack's state.
/// </summary> /// </summary>
private void Save() private void Save()
{ {
try try
{ {
var handler = new SettingHandler(); var handler = new SettingHandler();
handler.Set("hidden", this.Hidden); handler.Set("hidden", this.Hidden);
handler.Set("showControlBar", this.ShowControlBar); handler.Set("showControlBar", this.ShowControlBar);
handler.Set("windowPositionX", this.windowPosition.x); handler.Set("windowPositionX", this.windowPosition.x);
handler.Set("windowPositionY", this.windowPosition.y); handler.Set("windowPositionY", this.windowPosition.y);
handler.Save("DisplayStack.xml"); handler.Save("DisplayStack.xml");
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex, "DisplayStack->Save"); Logger.Exception(ex, "DisplayStack->Save");
} }
} }
   
/// <summary> /// <summary>
/// Draws the display stack window. /// Draws the display stack window.
/// </summary> /// </summary>
private void Window(int windowId) private void Window(int windowId)
{ {
try try
{ {
if (this.ShowControlBar) if (this.ShowControlBar)
{ {
this.DrawControlBar(); this.DrawControlBar();
} }
   
if (SectionLibrary.NumberOfStackSections > 0) if (SectionLibrary.NumberOfStackSections > 0)
{ {
this.DrawSections(SectionLibrary.StockSections); this.DrawSections(SectionLibrary.StockSections);
this.DrawSections(SectionLibrary.CustomSections); this.DrawSections(SectionLibrary.CustomSections);
} }
   
GUI.DragWindow(); GUI.DragWindow();
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex, "DisplayStack->Widnow"); Logger.Exception(ex, "DisplayStack->Widnow");
} }
} }
   
#endregion #endregion
} }
} }
namespace KerbalEngineer.Flight //
  // 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.Flight
{ {
using System; using System.Collections.Generic;
  using KSP.UI;
  using Sections;
  using Unity.Flight;
using UnityEngine; using UnityEngine;
   
[KSPAddon(KSPAddon.Startup.Flight, false)] [KSPAddon(KSPAddon.Startup.Flight, false)]
public class FlightAppLauncher : AppLauncherButton public class FlightAppLauncher : AppLauncherButton, IFlightAppLauncher
{ {
private static FlightAppLauncher m_Instance; private static FlightAppLauncher m_Instance;
  private FlightMenu m_FlightMenu;
private GameObject m_MenuObject; private GameObject m_MenuObject;
private GameObject m_MenuPrefab; private GameObject m_MenuPrefab;
   
public static event Action ButtonHover;  
public static event Action MenuClosed;  
   
/// <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>
  /// Clamps the given rect transform within the screen bounds.
  /// </summary>
  public void ClampToScreen(RectTransform rectTransform)
  {
  UIMasterController.ClampToScreen(rectTransform, Vector2.zero);
  }
   
  /// <summary>
  /// Gets or sets the control bar's visibility.
  /// </summary>
  public bool controlBar
  {
  get
  {
  if (DisplayStack.Instance != null)
  {
  return DisplayStack.Instance.ShowControlBar;
  }
   
  return false;
  }
  set
  {
  if (DisplayStack.Instance != null)
  {
  DisplayStack.Instance.ShowControlBar = value;
  }
  }
  }
   
  /// <summary>
  /// Gets a list of custom sections.
  /// </summary>
  IList<ISectionModule> IFlightAppLauncher.GetCustomSections()
  {
  return new List<ISectionModule>(SectionLibrary.CustomSections.ToArray());
  }
   
  /// <summary>
  /// Gets a list of stock sections.
  /// </summary>
  public IList<ISectionModule> GetStockSections()
  {
  return new List<ISectionModule>(SectionLibrary.StockSections.ToArray());
  }
   
  /// <summary>
  /// Gets or sets the display stack's visibility.
  /// </summary>
  public bool showEngineer
  {
  get
  {
  if (DisplayStack.Instance != null)
  {
  return DisplayStack.Instance.Hidden == false;
  }
   
  return false;
  }
  set
  {
  if (DisplayStack.Instance != null)
  {
  DisplayStack.Instance.Hidden = !value;
  }
  }
  }
   
  /// <summary>
  /// Creates and initialises a new custom section.
  /// </summary>
  public ISectionModule NewCustomSection()
  {
  SectionModule section = new SectionModule
  {
  Name = "Custom " + (SectionLibrary.CustomSections.Count + 1),
  Abbreviation = "CUST " + (SectionLibrary.CustomSections.Count + 1),
  IsVisible = true,
  IsCustom = true,
  IsEditorVisible = true
  };
   
  SectionLibrary.CustomSections.Add(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();
ButtonHover?.Invoke();  
} }
   
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_MenuObject == null) if (m_FlightMenu != null)
{ {
  m_FlightMenu.Close();
  }
  else
  {
  Destroy(m_MenuObject);
  }
  }
   
  /// <summary>
  /// Opens the menu.
  /// </summary>
  private void Open()
  {
  // fade menu in if already open
  if (m_FlightMenu != null)
  {
  m_FlightMenu.FadeIn();
return; return;
} }
   
if (MenuClosed != null)  
{  
MenuClosed();  
}  
else  
{  
Destroy(m_MenuObject);  
}  
}  
   
/// <summary>  
/// Opens the menu.  
/// </summary>  
private void Open()  
{  
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;
} }
   
// 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
  m_FlightMenu = m_MenuObject.GetComponent<FlightMenu>();
  if (m_FlightMenu != null)
  {
  m_FlightMenu.SetFlightAppLauncher(this);
  }
} }
} }
} }
// //
// 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 System; using System;
   
using KerbalEngineer.Extensions; using KerbalEngineer.Extensions;
using KerbalEngineer.Flight.Presets; using KerbalEngineer.Flight.Presets;
using KerbalEngineer.Flight.Readouts; using KerbalEngineer.Flight.Readouts;
using KerbalEngineer.UIControls; using KerbalEngineer.UIControls;
   
using UnityEngine; using UnityEngine;
   
#endregion #endregion
   
namespace KerbalEngineer.Flight.Sections namespace KerbalEngineer.Flight.Sections
{ {
public class SectionEditor : MonoBehaviour public class SectionEditor : MonoBehaviour
{ {
#region Constants #region Constants
   
public const float Height = 500.0f; public const float Height = 500.0f;
public const float Width = 500.0f; public const float Width = 500.0f;
   
#endregion #endregion
   
#region Fields #region Fields
   
private GUIStyle categoryButtonActiveStyle; private GUIStyle categoryButtonActiveStyle;
private GUIStyle categoryButtonStyle; private GUIStyle categoryButtonStyle;
private DropDown categoryList; private DropDown categoryList;
private GUIStyle categoryTitleButtonStyle; private GUIStyle categoryTitleButtonStyle;
private GUIStyle helpBoxStyle; private GUIStyle helpBoxStyle;
private GUIStyle helpTextStyle; private GUIStyle helpTextStyle;
private GUIStyle panelTitleStyle; private GUIStyle panelTitleStyle;
private Rect position; private Rect position;
private DropDown presetList; private DropDown presetList;
private GUIStyle readoutButtonStyle; private GUIStyle readoutButtonStyle;
private GUIStyle readoutNameStyle; private GUIStyle readoutNameStyle;
private Vector2 scrollPositionAvailable; private Vector2 scrollPositionAvailable;
private Vector2 scrollPositionInstalled; private Vector2 scrollPositionInstalled;
private GUIStyle textStyle; private GUIStyle textStyle;
private GUIStyle windowStyle; private GUIStyle windowStyle;
   
#endregion #endregion
   
#region Properties #region Properties
   
/// <summary> /// <summary>
/// Gets and sets the parent section for the section editor. /// Gets and sets the parent section for the section editor.
/// </summary> /// </summary>
public SectionModule ParentSection { get; set; } public SectionModule ParentSection { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the window position. /// Gets and sets the window position.
/// </summary> /// </summary>
public Rect Position public Rect Position
{ {
get { return this.position; } get { return this.position; }
set { this.position = value; } set { this.position = value; }
} }
   
#endregion #endregion
   
#region Methods: protected #region Methods: protected
   
protected void Awake() protected void Awake()
{ {
try try
{ {
this.categoryList = this.gameObject.AddComponent<DropDown>(); this.categoryList = this.gameObject.AddComponent<DropDown>();
this.categoryList.DrawCallback = this.DrawCategories; this.categoryList.DrawCallback = this.DrawCategories;
this.presetList = this.gameObject.AddComponent<DropDown>(); this.presetList = this.gameObject.AddComponent<DropDown>();
this.presetList.DrawCallback = this.DrawPresets; this.presetList.DrawCallback = this.DrawPresets;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Runs when the object is destroyed. /// Runs when the object is destroyed.
/// </summary> /// </summary>
protected void OnDestroy() protected void OnDestroy()
{ {
try try
{ {
RenderingManager.RemoveFromPostDrawQueue(0, this.Draw);  
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Initialises the object's state on creation. /// Initialises the object's state on creation.
/// </summary> /// </summary>
protected void Start() protected void Start()
{ {
try try
{ {
this.InitialiseStyles(); this.InitialiseStyles();
//ReadoutCategory.Selected = ReadoutCategory.GetCategory("Orbital"); //ReadoutCategory.Selected = ReadoutCategory.GetCategory("Orbital");
RenderingManager.AddToPostDrawQueue(0, this.Draw);  
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
#endregion #endregion
   
#region Methods: private #region Methods: private
   
/// <summary> /// <summary>
/// Called to draw the editor when the UI is enabled. /// Called to draw the editor when the UI is enabled.
/// </summary> /// </summary>
private void Draw() private void OnGUI()
{ {
  if (FlightEngineerCore.IsDisplayable == false)
  {
  return;
  }
   
this.position = GUILayout.Window(this.GetInstanceID(), this.position, this.Window, "EDIT SECTION - " + this.ParentSection.Name.ToUpper(), this.windowStyle).ClampToScreen(); this.position = GUILayout.Window(this.GetInstanceID(), this.position, this.Window, "EDIT SECTION - " + this.ParentSection.Name.ToUpper(), this.windowStyle).ClampToScreen();
this.ParentSection.EditorPositionX = this.position.x; this.ParentSection.EditorPositionX = this.position.x;
this.ParentSection.EditorPositionY = this.position.y; this.ParentSection.EditorPositionY = this.position.y;
} }
   
/// <summary> /// <summary>
/// Draws the available readouts panel. /// Draws the available readouts panel.
/// </summary> /// </summary>
private void DrawAvailableReadouts() private void DrawAvailableReadouts()
{ {
GUI.skin = HighLogic.Skin; GUI.skin = HighLogic.Skin;
this.scrollPositionAvailable = GUILayout.BeginScrollView(this.scrollPositionAvailable, false, true, GUILayout.Height(200.0f)); this.scrollPositionAvailable = GUILayout.BeginScrollView(this.scrollPositionAvailable, false, true, GUILayout.Height(200.0f));
GUI.skin = null; GUI.skin = null;
   
GUILayout.Label("AVAILABLE", this.panelTitleStyle); GUILayout.Label("AVAILABLE", this.panelTitleStyle);
   
foreach (var readout in ReadoutLibrary.GetCategory(ReadoutCategory.Selected)) foreach (var readout in ReadoutLibrary.GetCategory(ReadoutCategory.Selected))
{ {
if (!this.ParentSection.ReadoutModules.Contains(readout) || readout.Cloneable) if (!this.ParentSection.ReadoutModules.Contains(readout) || readout.Cloneable)
{ {
GUILayout.BeginHorizontal(GUILayout.Height(30.0f)); GUILayout.BeginHorizontal(GUILayout.Height(30.0f));
GUILayout.Label(readout.Name, this.readoutNameStyle); GUILayout.Label(readout.Name, this.readoutNameStyle);
readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f)); readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f));
if (GUILayout.Button("INSTALL", this.readoutButtonStyle, GUILayout.Width(125.0f))) if (GUILayout.Button("INSTALL", this.readoutButtonStyle, GUILayout.Width(125.0f)))
{ {
this.ParentSection.ReadoutModules.Add(readout); this.ParentSection.ReadoutModules.Add(readout);
} }
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
   
this.ShowHelpMessage(readout); this.ShowHelpMessage(readout);
} }
} }
   
GUILayout.EndScrollView(); GUILayout.EndScrollView();
} }
   
/// <summary> /// <summary>
/// Draws the categories list drop down UI. /// Draws the categories list drop down UI.
/// </summary> /// </summary>
private void DrawCategories() private void DrawCategories()
{ {
foreach (var category in ReadoutCategory.Categories) foreach (var category in ReadoutCategory.Categories)
{ {
var description = category.Description; var description = category.Description;
if (description.Length > 50) if (description.Length > 50)
{ {
description = description.Substring(0, 50 - 1) + "..."; description = description.Substring(0, 50 - 1) + "...";
} }
   
if (GUILayout.Button("<b>" + category.Name.ToUpper() + "</b>" + (string.IsNullOrEmpty(category.Description) ? string.Empty : "\n<i>" + description + "</i>"), category == ReadoutCategory.Selected ? this.categoryButtonActiveStyle : this.categoryButtonStyle)) if (GUILayout.Button("<b>" + category.Name.ToUpper() + "</b>" + (string.IsNullOrEmpty(category.Description) ? string.Empty : "\n<i>" + description + "</i>"), category == ReadoutCategory.Selected ? this.categoryButtonActiveStyle : this.categoryButtonStyle))
{ {
ReadoutCategory.Selected = category; ReadoutCategory.Selected = category;
this.categoryList.enabled = false; this.categoryList.enabled = false;
} }
} }
} }
   
/// <summary> /// <summary>
/// Draws the readoutCategories selection list. /// Draws the readoutCategories selection list.
/// </summary> /// </summary>
private void DrawCategorySelector() private void DrawCategorySelector()
{ {
this.categoryList.enabled = GUILayout.Toggle(this.categoryList.enabled, "▼ SELECTED CATEGORY: " + ReadoutCategory.Selected.ToString().ToUpper() + " ▼", this.categoryTitleButtonStyle); this.categoryList.enabled = GUILayout.Toggle(this.categoryList.enabled, "▼ SELECTED CATEGORY: " + ReadoutCategory.Selected.ToString().ToUpper() + " ▼", this.categoryTitleButtonStyle);
if (Event.current.type == EventType.repaint) if (Event.current.type == EventType.repaint)
{ {
this.categoryList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position)); this.categoryList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position));
} }
} }
   
/// <summary> /// <summary>
/// Draws the options for editing custom sections. /// Draws the options for editing custom sections.
/// </summary> /// </summary>
private void DrawCustomOptions() private void DrawCustomOptions()
{ {
GUILayout.BeginHorizontal(GUILayout.Height(25.0f)); GUILayout.BeginHorizontal(GUILayout.Height(25.0f));
this.ParentSection.Name = GUILayout.TextField(this.ParentSection.Name, this.textStyle); this.ParentSection.Name = GUILayout.TextField(this.ParentSection.Name, this.textStyle);
var isShowingInControlBar = !string.IsNullOrEmpty(this.ParentSection.Abbreviation); var isShowingInControlBar = !string.IsNullOrEmpty(this.ParentSection.Abbreviation);
this.ParentSection.Abbreviation = GUILayout.TextField(this.ParentSection.Abbreviation, this.textStyle, GUILayout.Width(75.0f)); this.ParentSection.Abbreviation = GUILayout.TextField(this.ParentSection.Abbreviation, this.textStyle, GUILayout.Width(75.0f));
   
ParentSection.IsHud = GUILayout.Toggle(this.ParentSection.IsHud, "HUD", this.readoutButtonStyle, GUILayout.Width(50.0f)); ParentSection.IsHud = GUILayout.Toggle(this.ParentSection.IsHud, "HUD", this.readoutButtonStyle, GUILayout.Width(50.0f));
if (ParentSection.IsHud) if (ParentSection.IsHud)
{ {
this.ParentSection.IsHudBackground = GUILayout.Toggle(this.ParentSection.IsHudBackground, "BG", this.readoutButtonStyle, GUILayout.Width(50.0f)); this.ParentSection.IsHudBackground = GUILayout.Toggle(this.ParentSection.IsHudBackground, "BG", this.readoutButtonStyle, GUILayout.Width(50.0f));
} }
   
if (this.ParentSection.IsCustom) if (this.ParentSection.IsCustom)
{ {
if (isShowingInControlBar && string.IsNullOrEmpty(this.ParentSection.Abbreviation)) if (isShowingInControlBar && string.IsNullOrEmpty(this.ParentSection.Abbreviation))
{ {
DisplayStack.Instance.RequestResize(); DisplayStack.Instance.RequestResize();
} }
   
if (GUILayout.Button("DELETE SECTION", this.readoutButtonStyle, GUILayout.Width(150.0f))) if (GUILayout.Button("DELETE SECTION", this.readoutButtonStyle, GUILayout.Width(150.0f)))
{ {
this.ParentSection.IsFloating = false; this.ParentSection.IsFloating = false;
this.ParentSection.IsEditorVisible = false; this.ParentSection.IsEditorVisible = false;
  this.ParentSection.IsDeleted = true;
SectionLibrary.CustomSections.Remove(this.ParentSection); SectionLibrary.CustomSections.Remove(this.ParentSection);
DisplayStack.Instance.RequestResize(); DisplayStack.Instance.RequestResize();
} }
} }
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
} }
   
/// <summary> /// <summary>
/// Draws the installed readouts panel. /// Draws the installed readouts panel.
/// </summary> /// </summary>
private void DrawInstalledReadouts() private void DrawInstalledReadouts()
{ {
GUI.skin = HighLogic.Skin; GUI.skin = HighLogic.Skin;
this.scrollPositionInstalled = GUILayout.BeginScrollView(this.scrollPositionInstalled, false, true); this.scrollPositionInstalled = GUILayout.BeginScrollView(this.scrollPositionInstalled, false, true);
GUI.skin = null; GUI.skin = null;
   
GUILayout.Label("INSTALLED", this.panelTitleStyle); GUILayout.Label("INSTALLED", this.panelTitleStyle);
var removeReadout = false; var removeReadout = false;
var removeReadoutIndex = 0; var removeReadoutIndex = 0;
   
for (var i = 0; i < this.ParentSection.ReadoutModules.Count; i++) for (var i = 0; i < this.ParentSection.ReadoutModules.Count; i++)
{ {
var readout = this.ParentSection.ReadoutModules[i]; var readout = this.ParentSection.ReadoutModules[i];
   
GUILayout.BeginHorizontal(GUILayout.Height(30.0f)); GUILayout.BeginHorizontal(GUILayout.Height(30.0f));
GUILayout.Label(readout.Name, this.readoutNameStyle); GUILayout.Label(readout.Name, this.readoutNameStyle);
if (GUILayout.Button("▲", this.readoutButtonStyle, GUILayout.Width(30.0f))) if (GUILayout.Button("▲", this.readoutButtonStyle, GUILayout.Width(30.0f)))
{ {
if (i > 0) if (i > 0)
{ {
this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i - 1]; this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i - 1];
this.ParentSection.ReadoutModules[i - 1] = readout; this.ParentSection.ReadoutModules[i - 1] = readout;
} }
} }
if (GUILayout.Button("▼", this.readoutButtonStyle, GUILayout.Width(30.0f))) if (GUILayout.Button("▼", this.readoutButtonStyle, GUILayout.Width(30.0f)))
{ {
if (i < this.ParentSection.ReadoutModules.Count - 1) if (i < this.ParentSection.ReadoutModules.Count - 1)
{ {
this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i + 1]; this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i + 1];
this.ParentSection.ReadoutModules[i + 1] = readout; this.ParentSection.ReadoutModules[i + 1] = readout;
} }
} }
readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f)); readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f));
if (GUILayout.Button("REMOVE", this.readoutButtonStyle, GUILayout.Width(125.0f))) if (GUILayout.Button("REMOVE", this.readoutButtonStyle, GUILayout.Width(125.0f)))
{ {
removeReadout = true; removeReadout = true;
removeReadoutIndex = i; removeReadoutIndex = i;
} }
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
   
this.ShowHelpMessage(readout); this.ShowHelpMessage(readout);
} }
   
GUILayout.EndScrollView(); GUILayout.EndScrollView();
   
if (removeReadout) if (removeReadout)
{ {
this.ParentSection.ReadoutModules.RemoveAt(removeReadoutIndex); this.ParentSection.ReadoutModules.RemoveAt(removeReadoutIndex);
} }
} }
   
private void DrawPresetButton(Preset preset) private void DrawPresetButton(Preset preset)
{ {
if (!GUILayout.Button("<b>" + preset.Name.ToUpper() + "</b>", this.categoryButtonStyle)) if (!GUILayout.Button("<b>" + preset.Name.ToUpper() + "</b>", this.categoryButtonStyle))
{ {
return; return;
} }
   
this.ParentSection.Name = preset.Name; this.ParentSection.Name = preset.Name;
this.ParentSection.Abbreviation = preset.Abbreviation; this.ParentSection.Abbreviation = preset.Abbreviation;
this.ParentSection.ReadoutModuleNames = preset.ReadoutNames; this.ParentSection.ReadoutModuleNames = preset.ReadoutNames;
this.ParentSection.IsHud = preset.IsHud; this.ParentSection.IsHud = preset.IsHud;
this.ParentSection.IsHudBackground = preset.IsHudBackground; this.ParentSection.IsHudBackground = preset.IsHudBackground;
this.presetList.enabled = false; this.presetList.enabled = false;
} }
   
private void DrawPresetSaveButton() private void DrawPresetSaveButton()
{ {
if (!GUILayout.Button("<b>SAVE PRESET</b>", this.categoryButtonStyle)) if (!GUILayout.Button("<b>SAVE PRESET</b>", this.categoryButtonStyle))
{ {
return; return;
} }
   
this.SavePreset(PresetLibrary.Presets.Find(p => String.Equals(p.Name, this.ParentSection.Name, StringComparison.CurrentCultureIgnoreCase))); this.SavePreset(PresetLibrary.Presets.Find(p => String.Equals(p.Name, this.ParentSection.Name, StringComparison.CurrentCultureIgnoreCase)));
} }
   
/// <summary> /// <summary>
/// Draws the presetsList selection list. /// Draws the presetsList selection list.
/// </summary> /// </summary>
private void DrawPresetSelector() private void DrawPresetSelector()
{ {
this.presetList.enabled = GUILayout.Toggle(this.presetList.enabled, "▼ PRESETS ▼", this.categoryTitleButtonStyle, GUILayout.Width(150.0f)); this.presetList.enabled = GUILayout.Toggle(this.presetList.enabled, "▼ PRESETS ▼", this.categoryTitleButtonStyle, GUILayout.Width(150.0f));
if (Event.current.type == EventType.repaint) if (Event.current.type == EventType.repaint)
{ {
this.presetList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position)); this.presetList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position));
} }
} }
   
/// <summary> /// <summary>
/// Draws the preset list drop down UI. /// Draws the preset list drop down UI.
/// </summary> /// </summary>
private void DrawPresets() private void DrawPresets()
{ {
Preset removePreset = null; Preset removePreset = null;
foreach (var preset in PresetLibrary.Presets) foreach (var preset in PresetLibrary.Presets)
{ {
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
this.DrawPresetButton(preset); this.DrawPresetButton(preset);
if (GUILayout.Button("<b>X</b>", this.categoryButtonStyle, GUILayout.Width(30.0f))) if (GUILayout.Button("<b>X</b>", this.categoryButtonStyle, GUILayout.Width(30.0f)))
{ {
removePreset = preset; removePreset = preset;
} }
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
} }
if (removePreset != null && PresetLibrary.Remove(removePreset)) if (removePreset != null && PresetLibrary.Remove(removePreset))
{ {
this.presetList.Resize = true; this.presetList.Resize = true;
} }
   
this.DrawPresetSaveButton(); this.DrawPresetSaveButton();
} }
   
/// <summary> /// <summary>
/// Initialises all the styles required for this object. /// Initialises all the styles required for this object.
/// </summary> /// </summary>
private void InitialiseStyles() private void InitialiseStyles()
{ {
this.windowStyle = new GUIStyle(HighLogic.Skin.window); this.windowStyle = new GUIStyle(HighLogic.Skin.window);
   
this.categoryButtonStyle = new GUIStyle(HighLogic.Skin.button) this.categoryButtonStyle = new GUIStyle(HighLogic.Skin.button)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(0, 0, 2, 0), margin = new RectOffset(0, 0, 2, 0),
padding = new RectOffset(5, 5, 5, 5), padding = new RectOffset(5, 5, 5, 5),
alignment = TextAnchor.MiddleCenter, alignment = TextAnchor.MiddleCenter,
fontSize = 12, fontSize = 12,
fontStyle = FontStyle.Normal, fontStyle = FontStyle.Normal,
richText = true richText = true
}; };
   
this.categoryButtonActiveStyle = new GUIStyle(this.categoryButtonStyle) this.categoryButtonActiveStyle = new GUIStyle(this.categoryButtonStyle)
{ {
normal = this.categoryButtonStyle.onNormal, normal = this.categoryButtonStyle.onNormal,
hover = this.categoryButtonStyle.onHover hover = this.categoryButtonStyle.onHover
}; };
   
this.panelTitleStyle = new GUIStyle(HighLogic.Skin.label) this.panelTitleStyle = new GUIStyle(HighLogic.Skin.label)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(), padding = new RectOffset(),
alignment = TextAnchor.MiddleLeft, alignment = TextAnchor.MiddleLeft,
fontSize = 12, fontSize = 12,
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
fixedHeight = 30.0f, fixedHeight = 30.0f,
stretchWidth = true stretchWidth = true
}; };
   
this.textStyle = new GUIStyle(HighLogic.Skin.textField) this.textStyle = new GUIStyle(HighLogic.Skin.textField)
{ {
margin = new RectOffset(3, 3, 3, 3), margin = new RectOffset(3, 3, 3, 3),
alignment = TextAnchor.MiddleLeft, alignment = TextAnchor.MiddleLeft,
stretchWidth = true, stretchWidth = true,
stretchHeight = true stretchHeight = true
}; };
   
this.readoutNameStyle = new GUIStyle(HighLogic.Skin.label) this.readoutNameStyle = new GUIStyle(HighLogic.Skin.label)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(10, 0, 0, 0), padding = new RectOffset(10, 0, 0, 0),
alignment = TextAnchor.MiddleLeft, alignment = TextAnchor.MiddleLeft,
fontSize = 12, fontSize = 12,
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
stretchWidth = true, stretchWidth = true,
stretchHeight = true stretchHeight = true
}; };
   
this.readoutButtonStyle = new GUIStyle(HighLogic.Skin.button) this.readoutButtonStyle = new GUIStyle(HighLogic.Skin.button)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(2, 2, 2, 2), margin = new RectOffset(2, 2, 2, 2),
padding = new RectOffset(), padding = new RectOffset(),
alignment = TextAnchor.MiddleCenter, alignment = TextAnchor.MiddleCenter,
fontSize = 12, fontSize = 12,
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
stretchHeight = true stretchHeight = true
}; };
   
this.helpBoxStyle = new GUIStyle(HighLogic.Skin.box) this.helpBoxStyle = new GUIStyle(HighLogic.Skin.box)
{ {
margin = new RectOffset(2, 2, 2, 10), margin = new RectOffset(2, 2, 2, 10),
padding = new RectOffset(10, 10, 10, 10) padding = new RectOffset(10, 10, 10, 10)
}; };
   
this.helpTextStyle = new GUIStyle(HighLogic.Skin.label) this.helpTextStyle = new GUIStyle(HighLogic.Skin.label)
{ {
normal = normal =
{ {
textColor = Color.yellow textColor = Color.yellow
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(), padding = new RectOffset(),
alignment = TextAnchor.MiddleLeft, alignment = TextAnchor.MiddleLeft,
fontSize = 13, fontSize = 13,
fontStyle = FontStyle.Normal, fontStyle = FontStyle.Normal,
stretchWidth = true, stretchWidth = true,
richText = true richText = true
}; };
   
this.categoryTitleButtonStyle = new GUIStyle(this.readoutButtonStyle) this.categoryTitleButtonStyle = new GUIStyle(this.readoutButtonStyle)
{ {
fixedHeight = 30.0f, fixedHeight = 30.0f,
stretchHeight = false stretchHeight = false
}; };
} }
   
private void SavePreset(Preset preset) private void SavePreset(Preset preset)
{ {
if (preset == null) if (preset == null)
{ {
preset = new Preset(); preset = new Preset();
} }
   
preset.Name = this.ParentSection.Name; preset.Name = this.ParentSection.Name;
preset.Abbreviation = this.ParentSection.Abbreviation; preset.Abbreviation = this.ParentSection.Abbreviation;
preset.ReadoutNames = this.ParentSection.ReadoutModuleNames; preset.ReadoutNames = this.ParentSection.ReadoutModuleNames;
preset.IsHud = this.ParentSection.IsHud; preset.IsHud = this.ParentSection.IsHud;
preset.IsHudBackground = this.ParentSection.IsHudBackground; preset.IsHudBackground = this.ParentSection.IsHudBackground;
   
PresetLibrary.Save(preset); PresetLibrary.Save(preset);
} }
   
private void ShowHelpMessage(ReadoutModule readout) private void ShowHelpMessage(ReadoutModule readout)
{ {
if (!readout.ShowHelp) if (!readout.ShowHelp)
{ {
return; return;
} }
   
GUILayout.BeginVertical(this.helpBoxStyle); GUILayout.BeginVertical(this.helpBoxStyle);
GUILayout.Label(!String.IsNullOrEmpty(readout.HelpString) ? readout.HelpString : "Sorry, no help information has been provided for this readout module.", this.helpTextStyle); GUILayout.Label(!String.IsNullOrEmpty(readout.HelpString) ? readout.HelpString : "Sorry, no help information has been provided for this readout module.", this.helpTextStyle);
GUILayout.EndVertical(); GUILayout.EndVertical();
} }
   
/// <summary> /// <summary>
/// Draws the editor window. /// Draws the editor window.
/// </summary> /// </summary>
private void Window(int windowId) private void Window(int windowId)
{ {
try try
{ {
this.DrawCustomOptions(); this.DrawCustomOptions();
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
this.DrawCategorySelector(); this.DrawCategorySelector();
this.DrawPresetSelector(); this.DrawPresetSelector();
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
this.DrawAvailableReadouts(); this.DrawAvailableReadouts();
GUILayout.Space(5.0f); GUILayout.Space(5.0f);
this.DrawInstalledReadouts(); this.DrawInstalledReadouts();
   
if (GUILayout.Button("CLOSE EDITOR", this.categoryTitleButtonStyle)) if (GUILayout.Button("CLOSE EDITOR", this.categoryTitleButtonStyle))
{ {
this.ParentSection.IsEditorVisible = false; this.ParentSection.IsEditorVisible = false;
} }
   
GUI.DragWindow(); GUI.DragWindow();
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
#endregion #endregion
} }
} }
// //
// 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 System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Xml.Serialization; using System.Xml.Serialization;
   
using KerbalEngineer.Flight.Readouts; using KerbalEngineer.Flight.Readouts;
   
using UnityEngine; using UnityEngine;
   
#endregion #endregion
   
namespace KerbalEngineer.Flight.Sections namespace KerbalEngineer.Flight.Sections
{ {
  using Unity.Flight;
/// <summary> /// <summary>
/// Object for management and display of readout modules. /// Object for management and display of readout modules.
/// </summary> /// </summary>
public class SectionModule public class SectionModule : ISectionModule
{ {
#region Fields #region Fields
   
private SectionEditor editor; private SectionEditor editor;
private bool isHud; private bool isHud;
private int numberOfReadouts; private int numberOfReadouts;
   
#endregion #endregion
   
#region Constructors #region Constructors
   
/// <summary> /// <summary>
/// Creates a new section module. /// Creates a new section module.
/// </summary> /// </summary>
public SectionModule() public SectionModule()
{ {
this.FloatingPositionX = Screen.width * 0.5f - 125.0f; this.FloatingPositionX = Screen.width * 0.5f - 125.0f;
this.FloatingPositionY = 100.0f; this.FloatingPositionY = 100.0f;
this.EditorPositionX = Screen.width * 0.5f - SectionEditor.Width * 0.5f; this.EditorPositionX = Screen.width * 0.5f - SectionEditor.Width * 0.5f;
this.EditorPositionY = Screen.height * 0.5f - SectionEditor.Height * 0.5f; this.EditorPositionY = Screen.height * 0.5f - SectionEditor.Height * 0.5f;
this.ReadoutModules = new List<ReadoutModule>(); this.ReadoutModules = new List<ReadoutModule>();
this.InitialiseStyles(); this.InitialiseStyles();
GuiDisplaySize.OnSizeChanged += this.OnSizeChanged; GuiDisplaySize.OnSizeChanged += this.OnSizeChanged;
} }
   
#endregion #endregion
   
#region Properties #region Properties
   
/// <summary> /// <summary>
/// Gets and sets the abbreviation of the section. /// Gets and sets the abbreviation of the section.
/// </summary> /// </summary>
public string Abbreviation { get; set; } public string Abbreviation { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the X position of the editor window. (Only used for serialisation.) /// Gets and sets the X position of the editor window. (Only used for serialisation.)
/// </summary> /// </summary>
public float EditorPositionX { get; set; } public float EditorPositionX { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the Y position of the editor window. (Only used for serialisation.) /// Gets and sets the Y position of the editor window. (Only used for serialisation.)
/// </summary> /// </summary>
public float EditorPositionY { get; set; } public float EditorPositionY { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the X position of the floating window. (Only used for serialisation.) /// Gets and sets the X position of the floating window. (Only used for serialisation.)
/// </summary> /// </summary>
public float FloatingPositionX { get; set; } public float FloatingPositionX { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the Y position of the floating window. (Only used for serialisation.) /// Gets and sets the Y position of the floating window. (Only used for serialisation.)
/// </summary> /// </summary>
public float FloatingPositionY { get; set; } public float FloatingPositionY { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets whether the section is custom. /// Gets and sets whether the section is custom.
/// </summary> /// </summary>
public bool IsCustom { get; set; } public bool IsCustom { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets whether the section editor is visible. /// Gets and sets whether the section editor is visible.
/// </summary> /// </summary>
public bool IsEditorVisible public bool IsEditorVisible
{ {
get { return this.editor != null; } get { return this.editor != null; }
set set
{ {
if (value && this.editor == null) if (value && this.editor == null)
{ {
this.editor = FlightEngineerCore.Instance.AddSectionEditor(this); this.editor = FlightEngineerCore.Instance.AddSectionEditor(this);
} }
else if (!value && this.editor != null) else if (!value && this.editor != null)
{ {
Object.Destroy(this.editor); Object.Destroy(this.editor);
} }
} }
} }
   
/// <summary> /// <summary>
/// Gets and sets whether the section is in a floating state. /// Gets and sets whether the section is in a floating state.
/// </summary> /// </summary>
public bool IsFloating public bool IsFloating
{ {
get { return this.Window != null; } get { return this.Window != null; }
set set
{ {
if (value && this.Window == null) if (value && this.Window == null)
{ {
this.Window = FlightEngineerCore.Instance.AddSectionWindow(this); this.Window = FlightEngineerCore.Instance.AddSectionWindow(this);
} }
else if (!value && this.Window != null) else if (!value && this.Window != null)
{ {
Object.Destroy(this.Window); Object.Destroy(this.Window);
} }
} }
} }
   
/// <summary> /// <summary>
/// Gets and sets whether the section module is a HUD. /// Gets and sets whether the section module is a HUD.
/// </summary> /// </summary>
public bool IsHud public bool IsHud
{ {
get { return this.isHud; } get { return this.isHud; }
set set
{ {
if (this.isHud == value) if (this.isHud == value)
{ {
return; return;
} }
   
this.isHud = value; this.isHud = value;
if (this.isHud) if (this.isHud)
{ {
this.IsFloating = true; this.IsFloating = true;
} }
if (this.Window != null) if (this.Window != null)
{ {
this.Window.RequestResize(); this.Window.RequestResize();
} }
} }
} }
   
  /// <summary>
  /// Gets and sets whether the section module has been deleted.
  /// </summary>
  public bool IsDeleted { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets whether the section module has a background as a HUD. /// Gets and sets whether the section module has a background as a HUD.
/// </summary> /// </summary>
public bool IsHudBackground { get; set; } public bool IsHudBackground { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the visibility of the section. /// Gets and sets the visibility of the section.
/// </summary> /// </summary>
public bool IsVisible { get; set; } public bool IsVisible { get; set; }
   
/// <summary> /// <summary>
/// Gets the number of drawn readout lines. /// Gets the number of drawn readout lines.
/// </summary> /// </summary>
public int LineCount { get; private set; } public int LineCount { get; private set; }
   
/// <summary> /// <summary>
/// Gets and sets the name of the section. /// Gets and sets the name of the section.
/// </summary> /// </summary>
public string Name { get; set; } public string Name { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the names of the installed readout modules. (Only used with serialisation.) /// Gets and sets the names of the installed readout modules. (Only used with serialisation.)
/// </summary> /// </summary>
public string[] ReadoutModuleNames public string[] ReadoutModuleNames
{ {
get { return this.ReadoutModules.Select(r => r.Category + "." + r.GetType().Name).ToArray(); } get { return this.ReadoutModules.Select(r => r.Category + "." + r.GetType().Name).ToArray(); }
set { this.ReadoutModules = value.Select(ReadoutLibrary.GetReadout).ToList(); } set { this.ReadoutModules = value.Select(ReadoutLibrary.GetReadout).ToList(); }
} }
   
/// <summary> /// <summary>
/// Gets and sets the list of readout modules. /// Gets and sets the list of readout modules.
/// </summary> /// </summary>
[XmlIgnore] [XmlIgnore]
public List<ReadoutModule> ReadoutModules { get; set; } public List<ReadoutModule> ReadoutModules { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the floating window. /// Gets and sets the floating window.
/// </summary> /// </summary>
[XmlIgnore] [XmlIgnore]
public SectionWindow Window { get; set; } public SectionWindow Window { get; set; }
   
#endregion #endregion
   
#region GUIStyles #region GUIStyles
   
#region Fields #region Fields
   
private GUIStyle boxStyle; private GUIStyle boxStyle;
private GUIStyle buttonStyle; private GUIStyle buttonStyle;
private GUIStyle messageStyle; private GUIStyle messageStyle;
private GUIStyle titleStyle; private GUIStyle titleStyle;
   
#endregion #endregion
   
/// <summary> /// <summary>
/// Initialises all the styles required for this object. /// Initialises all the styles required for this object.
/// </summary> /// </summary>
private void InitialiseStyles() private void InitialiseStyles()
{ {
this.boxStyle = new GUIStyle(HighLogic.Skin.box) this.boxStyle = new GUIStyle(HighLogic.Skin.box)
{ {
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(5, 5, 5, 5) padding = new RectOffset(5, 5, 5, 5)
}; };
   
this.titleStyle = new GUIStyle(HighLogic.Skin.label) this.titleStyle = new GUIStyle(HighLogic.Skin.label)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(2, 0, 5, 2), padding = new RectOffset(2, 0, 5, 2),
fontSize = (int)(13 * GuiDisplaySize.Offset), fontSize = (int)(13 * GuiDisplaySize.Offset),
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
stretchWidth = true stretchWidth = true
}; };
   
this.buttonStyle = new GUIStyle(HighLogic.Skin.button) this.buttonStyle = new GUIStyle(HighLogic.Skin.button)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(0, 0, 5, 3), margin = new RectOffset(0, 0, 5, 3),
padding = new RectOffset(), padding = new RectOffset(),
fontSize = (int)(10 * GuiDisplaySize.Offset), fontSize = (int)(10 * GuiDisplaySize.Offset),
stretchHeight = true, stretchHeight = true,
fixedWidth = 60.0f * GuiDisplaySize.Offset fixedWidth = 60.0f * GuiDisplaySize.Offset
}; };
   
this.messageStyle = new GUIStyle(HighLogic.Skin.label) this.messageStyle = new GUIStyle(HighLogic.Skin.label)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(), padding = new RectOffset(),
alignment = TextAnchor.MiddleCenter, alignment = TextAnchor.MiddleCenter,
fontSize = (int)(12 * GuiDisplaySize.Offset), fontSize = (int)(12 * GuiDisplaySize.Offset),
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
fixedWidth = 220.0f * GuiDisplaySize.Offset, fixedWidth = 220.0f * GuiDisplaySize.Offset,
fixedHeight = 20.0f * GuiDisplaySize.Offset fixedHeight = 20.0f * GuiDisplaySize.Offset
}; };
} }
   
private void OnSizeChanged() private void OnSizeChanged()
{ {
this.InitialiseStyles(); this.InitialiseStyles();
} }
   
#endregion #endregion
   
#region Updating #region Updating
   
/// <summary> /// <summary>
/// Updates all of the internal readout modules at fixed time intervals. /// Updates all of the internal readout modules at fixed time intervals.
/// </summary> /// </summary>
public void FixedUpdate() public void FixedUpdate()
{ {
if (!this.IsVisible) if (!this.IsVisible)
{ {
return; return;
} }
   
foreach (var readout in this.ReadoutModules) foreach (var readout in this.ReadoutModules)
{ {
readout.FixedUpdate(); readout.FixedUpdate();
} }
} }
   
/// <summary> /// <summary>
/// Updates all of the internal readout modules. /// Updates all of the internal readout modules.
/// </summary> /// </summary>
public void Update() public void Update()
{ {
if (!this.IsVisible) if (!this.IsVisible)
{ {
return; return;
} }
   
foreach (var readout in this.ReadoutModules) foreach (var readout in this.ReadoutModules)
{ {
readout.Update(); readout.Update();
} }
   
if (this.numberOfReadouts != this.ReadoutModules.Count) if (this.numberOfReadouts != this.ReadoutModules.Count)
{ {
this.numberOfReadouts = this.ReadoutModules.Count; this.numberOfReadouts = this.ReadoutModules.Count;
if (!this.IsFloating) if (!this.IsFloating)
{ {
DisplayStack.Instance.RequestResize(); DisplayStack.Instance.RequestResize();
} }
else else
{ {
this.Window.RequestResize(); this.Window.RequestResize();
} }
} }
} }
   
#endregion #endregion
   
#region Drawing #region Drawing
   
#region Methods: public #region Methods: public
   
/// <summary> /// <summary>
/// Draws the section and all of the internal readout modules. /// Draws the section and all of the internal readout modules.
/// </summary> /// </summary>
public void Draw() public void Draw()
{ {
if (!this.IsVisible) if (!this.IsVisible)
{ {
return; return;
} }
   
if (!this.IsHud) if (!this.IsHud)
{ {
this.DrawSectionTitleBar(); this.DrawSectionTitleBar();
} }
   
this.DrawReadoutModules(); this.DrawReadoutModules();
} }
   
#endregion #endregion
   
#region Methods: private #region Methods: private
   
/// <summary> /// <summary>
/// Draws all the readout modules. /// Draws all the readout modules.
/// </summary> /// </summary>
private void DrawReadoutModules() private void DrawReadoutModules()
{ {
if (!this.IsHud) if (!this.IsHud)
{ {
GUILayout.BeginVertical(this.boxStyle); GUILayout.BeginVertical(this.boxStyle);
} }
   
this.LineCount = 0; this.LineCount = 0;
if (this.ReadoutModules.Count > 0) if (this.ReadoutModules.Count > 0)
{ {
foreach (var readout in this.ReadoutModules) foreach (var readout in this.ReadoutModules)
{ {
readout.LineCountStart(); readout.LineCountStart();
readout.Draw(this); readout.Draw(this);
readout.LineCountEnd(); readout.LineCountEnd();
this.LineCount += readout.LineCount; this.LineCount += readout.LineCount;
} }
} }
else else
{ {
GUILayout.Label("No readouts are installed.", this.messageStyle); GUILayout.Label("No readouts are installed.", this.messageStyle);
this.LineCount = 1; this.LineCount = 1;
} }
   
if (!this.IsHud) if (!this.IsHud)
{ {
GUILayout.EndVertical(); GUILayout.EndVertical();
} }
} }
   
/// <summary> /// <summary>
/// Draws the section title and action buttons. /// Draws the section title and action buttons.
/// </summary> /// </summary>
private void DrawSectionTitleBar() private void DrawSectionTitleBar()
{ {
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
GUILayout.Label(this.Name.ToUpper(), this.titleStyle); GUILayout.Label(this.Name.ToUpper(), this.titleStyle);
this.IsEditorVisible = GUILayout.Toggle(this.IsEditorVisible, "EDIT", this.buttonStyle); this.IsEditorVisible = GUILayout.Toggle(this.IsEditorVisible, "EDIT", this.buttonStyle);
this.IsFloating = GUILayout.Toggle(this.IsFloating, "FLOAT", this.buttonStyle); this.IsFloating = GUILayout.Toggle(this.IsFloating, "FLOAT", this.buttonStyle);
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
} }
   
#endregion #endregion
   
#endregion #endregion
   
#region Public Methods #region Public Methods
   
public void ClearNullReadouts() public void ClearNullReadouts()
{ {
this.ReadoutModules.RemoveAll(r => r == null); this.ReadoutModules.RemoveAll(r => r == null);
} }
   
#endregion #endregion
} }
} }
// //
// 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.Helpers; using KerbalEngineer.Helpers;
   
using UnityEngine; using UnityEngine;
   
#endregion #endregion
   
namespace KerbalEngineer.Flight.Sections namespace KerbalEngineer.Flight.Sections
{ {
public class SectionWindow : MonoBehaviour public class SectionWindow : MonoBehaviour
{ {
#region Fields #region Fields
   
private bool resizeRequested; private bool resizeRequested;
private int windowId; private int windowId;
private Rect windowPosition; private Rect windowPosition;
   
#endregion #endregion
   
#region Properties #region Properties
   
/// <summary> /// <summary>
/// Gets and sets the parent section for the floating section window. /// Gets and sets the parent section for the floating section window.
/// </summary> /// </summary>
public SectionModule ParentSection { get; set; } public SectionModule ParentSection { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the window position. /// Gets and sets the window position.
/// </summary> /// </summary>
public Rect WindowPosition public Rect WindowPosition
{ {
get { return this.windowPosition; } get { return this.windowPosition; }
set { this.windowPosition = value; } set { this.windowPosition = value; }
} }
   
#endregion #endregion
   
#region GUIStyles #region GUIStyles
   
#region Fields #region Fields
   
private GUIStyle hudWindowBgStyle; private GUIStyle hudWindowBgStyle;
private GUIStyle hudWindowStyle; private GUIStyle hudWindowStyle;
private GUIStyle windowStyle; private GUIStyle windowStyle;
   
#endregion #endregion
   
/// <summary> /// <summary>
/// Initialises all the styles required for this object. /// Initialises all the styles required for this object.
/// </summary> /// </summary>
private void InitialiseStyles() private void InitialiseStyles()
{ {
this.windowStyle = new GUIStyle(HighLogic.Skin.window) this.windowStyle = new GUIStyle(HighLogic.Skin.window)
{ {
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(5, 5, 0, 5), padding = new RectOffset(5, 5, 0, 5),
}; };
   
this.hudWindowStyle = new GUIStyle(this.windowStyle) this.hudWindowStyle = new GUIStyle(this.windowStyle)
{ {
normal = normal =
{ {
background = null background = null
}, },
onNormal = onNormal =
{ {
background = null background = null
}, },
padding = new RectOffset(5, 5, 0, 8), padding = new RectOffset(5, 5, 0, 8),
}; };
   
this.hudWindowBgStyle = new GUIStyle(this.hudWindowStyle) this.hudWindowBgStyle = new GUIStyle(this.hudWindowStyle)
{ {
normal = normal =
{ {
background = TextureHelper.CreateTextureFromColour(new Color(0.0f, 0.0f, 0.0f, 0.5f)) background = TextureHelper.CreateTextureFromColour(new Color(0.0f, 0.0f, 0.0f, 0.5f))
}, },
onNormal = onNormal =
{ {
background = TextureHelper.CreateTextureFromColour(new Color(0.0f, 0.0f, 0.0f, 0.5f)) background = TextureHelper.CreateTextureFromColour(new Color(0.0f, 0.0f, 0.0f, 0.5f))
} }
}; };
} }
   
private void OnSizeChanged() private void OnSizeChanged()
{ {
this.InitialiseStyles(); this.InitialiseStyles();
this.RequestResize(); this.RequestResize();
} }
   
#endregion #endregion
   
#region Drawing #region Drawing
   
/// <summary> /// <summary>
/// Called to draw the floating section window when the UI is enabled. /// Called to draw the floating section window when the UI is enabled.
/// </summary> /// </summary>
private void Draw() private void OnGUI()
{ {
if (this.ParentSection == null || !this.ParentSection.IsVisible || (DisplayStack.Instance.Hidden && !this.ParentSection.IsHud) || !FlightEngineerCore.IsDisplayable) if (this.ParentSection == null || !this.ParentSection.IsVisible || (DisplayStack.Instance.Hidden && !this.ParentSection.IsHud) || !FlightEngineerCore.IsDisplayable)
{ {
return; return;
} }
   
if (this.resizeRequested) if (this.resizeRequested)
{ {
this.windowPosition.width = 0; this.windowPosition.width = 0;
this.windowPosition.height = 0; this.windowPosition.height = 0;
this.resizeRequested = false; this.resizeRequested = false;
} }
GUI.skin = null; GUI.skin = null;
this.windowPosition = GUILayout.Window(this.windowId, this.windowPosition, this.Window, string.Empty, this.windowPosition = GUILayout.Window(this.windowId, this.windowPosition, this.Window, string.Empty,
(!this.ParentSection.IsHud || this.ParentSection.IsEditorVisible) ? this.windowStyle (!this.ParentSection.IsHud || this.ParentSection.IsEditorVisible) ? this.windowStyle
: this.ParentSection.IsHudBackground && this.ParentSection.LineCount > 0 : this.ParentSection.IsHudBackground && this.ParentSection.LineCount > 0
? this.hudWindowBgStyle ? this.hudWindowBgStyle
: this.hudWindowStyle); : this.hudWindowStyle);
   
windowPosition = (ParentSection.IsHud) ? windowPosition.ClampInsideScreen() : windowPosition.ClampToScreen(); windowPosition = (ParentSection.IsHud) ? windowPosition.ClampInsideScreen() : windowPosition.ClampToScreen();
   
   
this.ParentSection.FloatingPositionX = this.windowPosition.x; this.ParentSection.FloatingPositionX = this.windowPosition.x;
this.ParentSection.FloatingPositionY = this.windowPosition.y; this.ParentSection.FloatingPositionY = this.windowPosition.y;
} }
   
/// <summary> /// <summary>
/// Draws the floating section window. /// Draws the floating section window.
/// </summary> /// </summary>
private void Window(int windowId) private void Window(int windowId)
{ {
this.ParentSection.Draw(); this.ParentSection.Draw();
   
if (!this.ParentSection.IsHud || this.ParentSection.IsEditorVisible) if (!this.ParentSection.IsHud || this.ParentSection.IsEditorVisible)
{ {
GUI.DragWindow(); GUI.DragWindow();
} }
} }
   
#endregion #endregion
   
#region Destruction #region Destruction
   
/// <summary> /// <summary>
/// Runs when the object is destroyed. /// Runs when the object is destroyed.
/// </summary> /// </summary>
private void OnDestroy() private void OnDestroy()
{ {
RenderingManager.RemoveFromPostDrawQueue(0, this.Draw);  
GuiDisplaySize.OnSizeChanged -= this.OnSizeChanged; GuiDisplaySize.OnSizeChanged -= this.OnSizeChanged;
} }
   
#endregion #endregion
   
#region Methods #region Methods
   
/// <summary> /// <summary>
/// Request that the floating section window's size is reset in the next draw call. /// Request that the floating section window's size is reset in the next draw call.
/// </summary> /// </summary>
public void RequestResize() public void RequestResize()
{ {
this.resizeRequested = true; this.resizeRequested = true;
} }
   
#endregion #endregion
   
#region Methods: private #region Methods: private
   
/// <summary> /// <summary>
/// Initialises the object's state on creation. /// Initialises the object's state on creation.
/// </summary> /// </summary>
private void Start() private void Start()
{ {
this.windowId = this.GetHashCode(); this.windowId = this.GetHashCode();
this.InitialiseStyles(); this.InitialiseStyles();
RenderingManager.AddToPostDrawQueue(0, this.Draw);  
GuiDisplaySize.OnSizeChanged += this.OnSizeChanged; GuiDisplaySize.OnSizeChanged += this.OnSizeChanged;
} }
   
#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\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="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">
  <Project>{5387bb1e-32b1-4bac-b03f-100570b9554c}</Project>
  <Name>KerbalEngineer.Unity</Name>
  <Private>False</Private>
  </ProjectReference>
  </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>
 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
 Binary files a/Output/KerbalEngineer/prefabs and b/Output/KerbalEngineer/prefabs differ
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 2067172977 CRC: 3151923579
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 8d52da3e0a65874a41c225bd367499c6 Hash: 190dda20513d4497692c3a813ba1392f
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 7225837fc006179772eb644685ace9cf Hash: a43c45227b2ed7e5db39229032ceda8b
HashAppended: 0 HashAppended: 0
ClassTypes: ClassTypes:
- Class: 1 - Class: 1
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 21 - Class: 21
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 28 - Class: 28
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 48 - Class: 48
Script: {instanceID: 0} Script: {instanceID: 0}
  - Class: 114
  Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 2019631361, guid: a3a55138b08428847a08c7b48fe72efe, type: 3} Script: {fileID: 571159103, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}
  - Class: 114
  Script: {fileID: -1842827791, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}
- Class: 115 - Class: 115
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 128 - Class: 128
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 222 - Class: 222
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 224 - Class: 224
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 225 - Class: 225
Script: {instanceID: 0} Script: {instanceID: 0}
Assets: Assets:
  - Assets/Prefabs/FlightMenuSection.prefab
- Assets/Prefabs/FlightMenu.prefab - Assets/Prefabs/FlightMenu.prefab
Dependencies: [] Dependencies: []