Removed all RenderingManager usages. (fixes section editor, floating sections and huds)
Removed all RenderingManager usages. (fixes section editor, floating sections and huds)

 Binary files /dev/null and b/Assets/Plugins/KerbalEngineer.Unity.dll differ
  %YAML 1.1
  %TAG !u! tag:unity3d.com,2011:
  --- !u!1 &104452
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22454998}
  - 222: {fileID: 22296168}
  - 114: {fileID: 11459182}
  m_Layer: 5
  m_Name: selected
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &116014
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22475412}
  - 222: {fileID: 22223226}
  - 114: {fileID: 11409704}
  - 114: {fileID: 11424646}
  m_Layer: 5
  m_Name: Content
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &122098
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22401100}
  - 222: {fileID: 22201528}
  - 114: {fileID: 11404586}
  - 114: {fileID: 11461688}
  - 114: {fileID: 11415068}
  m_Layer: 5
  m_Name: ToggleControlBar
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &126098
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22476196}
  - 222: {fileID: 22270862}
  - 114: {fileID: 11423044}
  - 114: {fileID: 11485532}
  - 225: {fileID: 22567868}
  - 114: {fileID: 11415294}
  m_Layer: 5
  m_Name: FlightMenu
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &133376
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22478174}
  - 114: {fileID: 11443382}
  m_Layer: 5
  m_Name: Controls
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &137786
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22444606}
  - 222: {fileID: 22267348}
  - 114: {fileID: 11465882}
  m_Layer: 5
  m_Name: label
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &138760
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22409936}
  - 222: {fileID: 22255938}
  - 114: {fileID: 11403342}
  m_Layer: 5
  m_Name: label
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &150266
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22463980}
  - 222: {fileID: 22210360}
  - 114: {fileID: 11475868}
  m_Layer: 5
  m_Name: selected
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &156848
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22483410}
  - 222: {fileID: 22267572}
  - 114: {fileID: 11463504}
  - 114: {fileID: 11453198}
  m_Layer: 5
  m_Name: Titlebar
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &172308
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22401786}
  - 222: {fileID: 22247322}
  - 114: {fileID: 11439582}
  m_Layer: 5
  m_Name: label
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &194088
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22469574}
  - 222: {fileID: 22281674}
  - 114: {fileID: 11498756}
  - 114: {fileID: 11451984}
  - 114: {fileID: 11485338}
  m_Layer: 5
  m_Name: ToggleShowEngineer
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!114 &11403342
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 138760}
  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: 12
  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: SHOW ENGINEER
  --- !u!114 &11404586
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 122098}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: -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 &11409704
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 116014}
  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: .313725501, g: .313725501, b: .313725501, a: .70588237}
  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 &11415068
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 122098}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 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: 11404586}
  toggleTransition: 1
  graphic: {fileID: 11459182}
  m_Group: {fileID: 0}
  onValueChanged:
  m_PersistentCalls:
  m_Calls:
  - m_Target: {fileID: 11415294}
  m_MethodName: set_controlBar
  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: 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
  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: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_HorizontalFit: 0
  m_VerticalFit: 2
  --- !u!114 &11424646
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 116014}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Padding:
  m_Left: 0
  m_Right: 0
  m_Top: 0
  m_Bottom: 0
  m_ChildAlignment: 0
  m_Spacing: 0
  m_ChildForceExpandWidth: 1
  m_ChildForceExpandHeight: 0
  --- !u!114 &11439582
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 172308}
  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: .800000072, g: 1, b: 0, a: 1}
  m_RaycastTarget: 0
  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: 12
  m_FontStyle: 1
  m_BestFit: 0
  m_MinSize: 10
  m_MaxSize: 40
  m_Alignment: 3
  m_RichText: 0
  m_HorizontalOverflow: 0
  m_VerticalOverflow: 0
  m_LineSpacing: 1
  m_Text: FLIGHT ENGINEER
  --- !u!114 &11443382
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 133376}
  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: 25
  m_FlexibleWidth: -1
  m_FlexibleHeight: -1
  --- !u!114 &11451984
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 194088}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 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 &11453198
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 156848}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 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 &11459182
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 104452}
  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 &11461688
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 122098}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 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 &11463504
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 156848}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: .183823526, g: .183823526, b: .183823526, a: .90196079}
  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 &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: 12
  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: CONTROL BAR
  --- !u!114 &11475868
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 150266}
  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 &11485338
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 194088}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 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: 11498756}
  toggleTransition: 1
  graphic: {fileID: 11475868}
  m_Group: {fileID: 0}
  onValueChanged:
  m_PersistentCalls:
  m_Calls:
  - m_Target: {fileID: 11415294}
  m_MethodName: set_showEngineer
  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 &11485532
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 126098}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Padding:
  m_Left: 0
  m_Right: 0
  m_Top: 0
  m_Bottom: 0
  m_ChildAlignment: 0
  m_Spacing: 0
  m_ChildForceExpandWidth: 1
  m_ChildForceExpandHeight: 1
  --- !u!114 &11498756
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 194088}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: -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!222 &22201528
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 122098}
  --- !u!222 &22210360
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 150266}
  --- !u!222 &22223226
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 116014}
  --- !u!222 &22247322
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 172308}
  --- !u!222 &22255938
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 138760}
  --- !u!222 &22267348
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 137786}
  --- !u!222 &22267572
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 156848}
  --- !u!222 &22270862
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 126098}
  --- !u!222 &22281674
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 194088}
  --- !u!222 &22296168
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 104452}
  --- !u!224 &22401100
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 122098}
  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: 22444606}
  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: -6, y: -8}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22401786
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 172308}
  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: 22483410}
  m_RootOrder: 0
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 2.5, y: 0}
  m_SizeDelta: {x: -5, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22409936
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 138760}
  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: 22469574}
  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 &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_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 22401100}
  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 &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: 22401100}
  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
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 150266}
  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: 22469574}
  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 &22469574
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 194088}
  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: 22463980}
  - {fileID: 22409936}
  m_Father: {fileID: 22478174}
  m_RootOrder: 0
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: .5, y: 1}
  m_AnchoredPosition: {x: 1, y: 0}
  m_SizeDelta: {x: -6, y: -8}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22475412
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 116014}
  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: 22478174}
  m_Father: {fileID: 22476196}
  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 &22476196
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 126098}
  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: 22483410}
  - {fileID: 22475412}
  m_Father: {fileID: 0}
  m_RootOrder: 0
  m_AnchorMin: {x: .5, y: .5}
  m_AnchorMax: {x: .5, y: .5}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 250, y: 0}
  m_Pivot: {x: 1, y: 0}
  --- !u!224 &22478174
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 133376}
  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: 22469574}
  - {fileID: 22401100}
  m_Father: {fileID: 22475412}
  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 &22483410
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 156848}
  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: 22401786}
  m_Father: {fileID: 22476196}
  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: 1}
  --- !u!225 &22567868
  CanvasGroup:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 126098}
  m_Enabled: 1
  m_Alpha: 1
  m_Interactable: 1
  m_BlocksRaycasts: 1
  m_IgnoreParentGroups: 0
  --- !u!1001 &100100000
  Prefab:
  m_ObjectHideFlags: 1
  serializedVersion: 2
  m_Modification:
  m_TransformParent: {fileID: 0}
  m_Modifications: []
  m_RemovedComponents: []
  m_ParentPrefab: {fileID: 0}
  m_RootGameObject: {fileID: 126098}
  m_IsPrefabParent: 1
 
  %YAML 1.1
  %TAG !u! tag:unity3d.com,2011:
  --- !u!29 &1
  SceneSettings:
  m_ObjectHideFlags: 0
  m_PVSData:
  m_PVSObjectsArray: []
  m_PVSPortalsArray: []
  m_OcclusionBakeSettings:
  smallestOccluder: 5
  smallestHole: .25
  backfaceThreshold: 100
  --- !u!104 &2
  RenderSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 6
  m_Fog: 0
  m_FogColor: {r: .5, g: .5, b: .5, a: 1}
  m_FogMode: 3
  m_FogDensity: .00999999978
  m_LinearFogStart: 0
  m_LinearFogEnd: 300
  m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
  m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
  m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
  m_AmbientIntensity: 1
  m_AmbientMode: 3
  m_SkyboxMaterial: {fileID: 0}
  m_HaloStrength: .5
  m_FlareStrength: 1
  m_FlareFadeSpeed: 3
  m_HaloTexture: {fileID: 0}
  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
  m_DefaultReflectionMode: 0
  m_DefaultReflectionResolution: 128
  m_ReflectionBounces: 1
  m_ReflectionIntensity: 1
  m_CustomReflection: {fileID: 0}
  m_Sun: {fileID: 0}
  --- !u!157 &3
  LightmapSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 5
  m_GIWorkflowMode: 1
  m_LightmapsMode: 1
  m_GISettings:
  serializedVersion: 2
  m_BounceScale: 1
  m_IndirectOutputScale: 1
  m_AlbedoBoost: 1
  m_TemporalCoherenceThreshold: 1
  m_EnvironmentLightingMode: 0
  m_EnableBakedLightmaps: 0
  m_EnableRealtimeLightmaps: 0
  m_LightmapEditorSettings:
  serializedVersion: 3
  m_Resolution: 2
  m_BakeResolution: 40
  m_TextureWidth: 1024
  m_TextureHeight: 1024
  m_AOMaxDistance: 1
  m_Padding: 2
  m_CompAOExponent: 0
  m_LightmapParameters: {fileID: 0}
  m_TextureCompression: 1
  m_FinalGather: 0
  m_FinalGatherRayCount: 1024
  m_ReflectionCompression: 2
  m_LightmapSnapshot: {fileID: 0}
  m_RuntimeCPUUsage: 25
  --- !u!196 &4
  NavMeshSettings:
  serializedVersion: 2
  m_ObjectHideFlags: 0
  m_BuildSettings:
  serializedVersion: 2
  agentRadius: .5
  agentHeight: 2
  agentSlope: 45
  agentClimb: .400000006
  ledgeDropHeight: 0
  maxJumpAcrossDistance: 0
  accuratePlacement: 0
  minRegionArea: 2
  cellSize: .166666672
  manualCellSize: 0
  m_NavMeshData: {fileID: 0}
  --- !u!1 &476101859
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 476101860}
  - 222: {fileID: 476101862}
  - 114: {fileID: 476101861}
  m_Layer: 5
  m_Name: Background-Flight
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!224 &476101860
  RectTransform:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 476101859}
  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: 1866791882}
  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!114 &476101861
  MonoBehaviour:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 476101859}
  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: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 0
  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: 21300000, guid: 0115c816d260a0947976c8ea804febbc, type: 3}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  --- !u!222 &476101862
  CanvasRenderer:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 476101859}
  --- !u!224 &1026898450 stripped
  RectTransform:
  m_PrefabParentObject: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f,
  type: 2}
  m_PrefabInternal: {fileID: 1329571933}
  --- !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
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  serializedVersion: 4
  m_Component:
  - 4: {fileID: 1398276590}
  - 114: {fileID: 1398276589}
  - 114: {fileID: 1398276588}
  - 114: {fileID: 1398276587}
  m_Layer: 0
  m_Name: EventSystem
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!114 &1398276587
  MonoBehaviour:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 1398276586}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_ForceModuleActive: 0
  --- !u!114 &1398276588
  MonoBehaviour:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 1398276586}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_HorizontalAxis: Horizontal
  m_VerticalAxis: Vertical
  m_SubmitButton: Submit
  m_CancelButton: Cancel
  m_InputActionsPerSecond: 10
  m_RepeatDelay: .5
  m_ForceModuleActive: 0
  --- !u!114 &1398276589
  MonoBehaviour:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 1398276586}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_FirstSelected: {fileID: 0}
  m_sendNavigationEvents: 1
  m_DragThreshold: 5
  --- !u!4 &1398276590
  Transform:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 1398276586}
  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: 0}
  m_RootOrder: 2
  --- !u!1 &1866791878
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 1866791882}
  - 223: {fileID: 1866791881}
  - 114: {fileID: 1866791880}
  - 114: {fileID: 1866791879}
  m_Layer: 5
  m_Name: Canvas
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!114 &1866791879
  MonoBehaviour:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 1866791878}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_IgnoreReversedGraphics: 1
  m_BlockingObjects: 0
  m_BlockingMask:
  serializedVersion: 2
  m_Bits: 4294967295
  --- !u!114 &1866791880
  MonoBehaviour:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 1866791878}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_UiScaleMode: 0
  m_ReferencePixelsPerUnit: 100
  m_ScaleFactor: 1
  m_ReferenceResolution: {x: 800, y: 600}
  m_ScreenMatchMode: 0
  m_MatchWidthOrHeight: 0
  m_PhysicalUnit: 3
  m_FallbackScreenDPI: 96
  m_DefaultSpriteDPI: 96
  m_DynamicPixelsPerUnit: 1
  --- !u!223 &1866791881
  Canvas:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 1866791878}
  m_Enabled: 1
  serializedVersion: 2
  m_RenderMode: 0
  m_Camera: {fileID: 0}
  m_PlaneDistance: 100
  m_PixelPerfect: 0
  m_ReceivesEvents: 1
  m_OverrideSorting: 0
  m_OverridePixelPerfect: 0
  m_SortingLayerID: 0
  m_SortingOrder: 0
  --- !u!224 &1866791882
  RectTransform:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 1866791878}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 0, y: 0, z: 0}
  m_Children:
  - {fileID: 2037475081}
  - {fileID: 476101860}
  - {fileID: 1026898450}
  m_Father: {fileID: 0}
  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: 0, y: 0}
  --- !u!1 &2037475080
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 2037475081}
  - 222: {fileID: 2037475083}
  - 114: {fileID: 2037475082}
  m_Layer: 5
  m_Name: Background-Editor
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!224 &2037475081
  RectTransform:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 2037475080}
  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: 1866791882}
  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!114 &2037475082
  MonoBehaviour:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 2037475080}
  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: 1, g: 1, b: 1, a: 1}
  m_RaycastTarget: 0
  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: 21300000, guid: b0e2a09d07dbbcb40b0d4db43cd044f9, type: 3}
  m_Type: 0
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
  --- !u!222 &2037475083
  CanvasRenderer:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 2037475080}
  --- !u!1 &2134872726
  GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  serializedVersion: 4
  m_Component:
  - 4: {fileID: 2134872731}
  - 20: {fileID: 2134872730}
  - 92: {fileID: 2134872729}
  - 124: {fileID: 2134872728}
  - 81: {fileID: 2134872727}
  m_Layer: 0
  m_Name: Main Camera
  m_TagString: MainCamera
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!81 &2134872727
  AudioListener:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 2134872726}
  m_Enabled: 1
  --- !u!124 &2134872728
  Behaviour:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 2134872726}
  m_Enabled: 1
  --- !u!92 &2134872729
  Behaviour:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 2134872726}
  m_Enabled: 1
  --- !u!20 &2134872730
  Camera:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 2134872726}
  m_Enabled: 1
  serializedVersion: 2
  m_ClearFlags: 2
  m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438}
  m_NormalizedViewPortRect:
  serializedVersion: 2
  x: 0
  y: 0
  width: 1
  height: 1
  near clip plane: .300000012
  far clip plane: 1000
  field of view: 60
  orthographic: 1
  orthographic size: 5
  m_Depth: -1
  m_CullingMask:
  serializedVersion: 2
  m_Bits: 4294967295
  m_RenderingPath: -1
  m_TargetTexture: {fileID: 0}
  m_TargetDisplay: 0
  m_TargetEye: 3
  m_HDR: 0
  m_OcclusionCulling: 1
  m_StereoConvergence: 10
  m_StereoSeparation: .0219999999
  m_StereoMirrorMode: 0
  --- !u!4 &2134872731
  Transform:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 2134872726}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: -10}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 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);
} }
} }
 Binary files /dev/null and b/Assets/Testing/background-editor.png differ
 Binary files /dev/null and b/Assets/Testing/background-flight.png differ
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>10.0.20506</ProductVersion> <ProductVersion>10.0.20506</ProductVersion>
<SchemaVersion>2.0</SchemaVersion> <SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}</ProjectGuid> <ProjectGuid>{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AssemblyName>Assembly-CSharp-Editor</AssemblyName> <AssemblyName>Assembly-CSharp-Editor</AssemblyName>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier> <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile> <TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile>
<CompilerResponseFile></CompilerResponseFile> <CompilerResponseFile></CompilerResponseFile>
<UnityProjectType>Editor:5</UnityProjectType> <UnityProjectType>Editor:5</UnityProjectType>
<UnityBuildTarget>WebPlayer:6</UnityBuildTarget> <UnityBuildTarget>StandaloneWindows:5</UnityBuildTarget>
<UnityVersion>5.2.4f1</UnityVersion> <UnityVersion>5.2.4f1</UnityVersion>
<RootNamespace></RootNamespace> <RootNamespace></RootNamespace>
<LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion> <LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>Temp\UnityVS_bin\Debug\</OutputPath> <OutputPath>Temp\UnityVS_bin\Debug\</OutputPath>
<IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath> <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<DefineConstants>DEBUG;TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_WEBPLAYER;ENABLE_SUBSTANCE;WEBPLUG;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants> <DefineConstants>DEBUG;TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks> <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>Temp\UnityVS_bin\Release\</OutputPath> <OutputPath>Temp\UnityVS_bin\Release\</OutputPath>
<IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath> <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<DefineConstants>TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_WEBPLAYER;ENABLE_SUBSTANCE;WEBPLUG;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants> <DefineConstants>TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks> <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="mscorlib" /> <Reference Include="mscorlib" />
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.XML" /> <Reference Include="System.XML" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="Boo.Lang" /> <Reference Include="Boo.Lang" />
<Reference Include="UnityScript.Lang" /> <Reference Include="UnityScript.Lang" />
  <Reference Include="System.Runtime.Serialization" />
  <Reference Include="System.Xml.Linq" />
<Reference Include="UnityEngine"> <Reference Include="UnityEngine">
<HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor"> <Reference Include="UnityEditor">
<HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
</Reference>  
<Reference Include="UnityEngine.Advertisements">  
<HintPath>Library\UnityAssemblies\UnityEngine.Advertisements.dll</HintPath>  
</Reference> </Reference>
<Reference Include="UnityEditor.Advertisements"> <Reference Include="UnityEditor.Advertisements">
<HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEngine.UI"> <Reference Include="UnityEngine.UI">
<HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.UI"> <Reference Include="UnityEditor.UI">
<HintPath>Library\UnityAssemblies\UnityEditor.UI.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.UI.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEngine.Networking"> <Reference Include="UnityEngine.Networking">
<HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.Networking"> <Reference Include="UnityEditor.Networking">
<HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath>
</Reference>  
<Reference Include="UnityEngine.Analytics">  
<HintPath>Library\UnityAssemblies\UnityEngine.Analytics.dll</HintPath>  
</Reference> </Reference>
<Reference Include="UnityEditor.Graphs"> <Reference Include="UnityEditor.Graphs">
<HintPath>Library\UnityAssemblies\UnityEditor.Graphs.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Graphs.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.Android.Extensions"> <Reference Include="UnityEditor.Android.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.Android.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Android.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.iOS.Extensions"> <Reference Include="UnityEditor.iOS.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.WP8.Extensions"> <Reference Include="UnityEditor.WP8.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.WP8.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.WP8.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.Metro.Extensions"> <Reference Include="UnityEditor.Metro.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.Metro.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Metro.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.Tizen.Extensions"> <Reference Include="UnityEditor.Tizen.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.Tizen.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.Tizen.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.SamsungTV.Extensions"> <Reference Include="UnityEditor.SamsungTV.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.SamsungTV.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.SamsungTV.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.WebGL.Extensions"> <Reference Include="UnityEditor.WebGL.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.WebGL.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.WebGL.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.LinuxStandalone.Extensions"> <Reference Include="UnityEditor.LinuxStandalone.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.LinuxStandalone.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.LinuxStandalone.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.WindowsStandalone.Extensions"> <Reference Include="UnityEditor.WindowsStandalone.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.WindowsStandalone.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.WindowsStandalone.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.OSXStandalone.Extensions"> <Reference Include="UnityEditor.OSXStandalone.Extensions">
<HintPath>Library\UnityAssemblies\UnityEditor.OSXStandalone.Extensions.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.OSXStandalone.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="SyntaxTree.VisualStudio.Unity.Bridge"> <Reference Include="SyntaxTree.VisualStudio.Unity.Bridge">
<HintPath>Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll</HintPath> <HintPath>Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.Networking">  
<HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath>  
</Reference>  
<Reference Include="UnityEngine.Advertisements">  
<HintPath>Library\UnityAssemblies\UnityEngine.Advertisements.dll</HintPath>  
</Reference>  
<Reference Include="UnityEditor.UI">  
<HintPath>Library\UnityAssemblies\UnityEditor.UI.dll</HintPath>  
</Reference>  
<Reference Include="UnityEngine.Analytics">  
<HintPath>Library\UnityAssemblies\UnityEngine.Analytics.dll</HintPath>  
</Reference>  
<Reference Include="UnityEngine.Networking">  
<HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath>  
</Reference>  
<Reference Include="UnityEditor.Advertisements">  
<HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath>  
</Reference>  
<Reference Include="UnityEngine.UI">  
<HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath>  
</Reference>  
<Reference Include="Mono.Cecil"> <Reference Include="Mono.Cecil">
<HintPath>Library\UnityAssemblies\Mono.Cecil.dll</HintPath> <HintPath>Library\UnityAssemblies\Mono.Cecil.dll</HintPath>
</Reference> </Reference>
<Reference Include="UnityEditor.iOS.Extensions.Xcode"> <Reference Include="UnityEditor.iOS.Extensions.Xcode">
<HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Xcode.dll</HintPath> <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Xcode.dll</HintPath>
  </Reference>
  <Reference Include="KerbalEngineer.Unity">
  <HintPath>Assets\Plugins\KerbalEngineer.Unity.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Assets\Scripts\Editor\BuildAssetBundles.cs" /> <Compile Include="Assets\Scripts\Editor\BuildAssetBundles.cs" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\SyntaxTree\UnityVS\2015\UnityVS.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath)\SyntaxTree\UnityVS\2015\UnityVS.CSharp.targets" />
</Project> </Project>
   
  //
  // Kerbal Engineer Redux
  //
  // 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.Collections;
  using UnityEngine;
 
  [RequireComponent(typeof(CanvasGroup))]
  public class CanvasGroupFader : MonoBehaviour
  {
  private CanvasGroup m_CanvasGroup;
  private IEnumerator m_FadeCoroutine;
 
  public bool fading
  {
  get
  {
  return m_FadeCoroutine != null;
  }
  }
 
  /// <summary>
  /// Fades the canvas group to a specified alpha using the supplied blocking state during fade with optional callback.
  /// </summary>
  public void FadeTo(float alpha, float duration, Action callback = null)
  {
  if (m_CanvasGroup == null)
  {
  return;
  }
 
  Fade(m_CanvasGroup.alpha, alpha, duration, callback);
  }
 
  /// <summary>
  /// Sets the alpha value of the canvas group.
  /// </summary>
  public void SetAlpha(float alpha)
  {
  if (m_CanvasGroup == null)
  {
  return;
  }
 
  alpha = Mathf.Clamp01(alpha);
  m_CanvasGroup.alpha = alpha;
  }
 
  protected virtual void Awake()
  {
  // cache components
  m_CanvasGroup = GetComponent<CanvasGroup>();
  }
 
  /// <summary>
  /// Starts a fade from one alpha value to another with callback.
  /// </summary>
  private void Fade(float from, float to, float duration, Action callback)
  {
  if (m_FadeCoroutine != null)
  {
  StopCoroutine(m_FadeCoroutine);
  }
 
  m_FadeCoroutine = FadeCoroutine(from, to, duration, callback);
  StartCoroutine(m_FadeCoroutine);
  }
 
  /// <summary>
  /// Coroutine that handles the fading.
  /// </summary>
  private IEnumerator FadeCoroutine(float from, float to, float duration, Action callback)
  {
  float progress = 0.0f;
 
  while (progress <= 1.0f)
  {
  progress += Time.deltaTime / duration;
  SetAlpha(Mathf.Lerp(from, to, progress));
  yield return null;
  }
 
  print(m_CanvasGroup.alpha);
  callback?.Invoke();
 
  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 = null;
 
  [SerializeField]
  private Toggle m_ControlBarToggle = null;
 
  [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>
  /// 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>
  /// 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);
  }
  }
  }
  <?xml version="1.0" encoding="utf-8"?>
  <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')" />
  <PropertyGroup>
  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
  <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
  <ProjectGuid>{5387BB1E-32B1-4BAC-B03F-100570B9554C}</ProjectGuid>
  <OutputType>Library</OutputType>
  <AppDesignerFolder>Properties</AppDesignerFolder>
  <RootNamespace>KerbalEngineer.Unity</RootNamespace>
  <AssemblyName>KerbalEngineer.Unity</AssemblyName>
  <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
  <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  <DebugSymbols>true</DebugSymbols>
  <DebugType>full</DebugType>
  <Optimize>false</Optimize>
  <OutputPath>bin\Debug\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <ErrorReport>prompt</ErrorReport>
  <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <DebugType>none</DebugType>
  <Optimize>true</Optimize>
  <OutputPath>..\Output\KerbalEngineer\</OutputPath>
  <DefineConstants>
  </DefineConstants>
  <ErrorReport>prompt</ErrorReport>
  <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
  <Compile Include="CanvasGroupFader.cs" />
  <Compile Include="Flight\FlightEngineerMenu.cs" />
  <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
  <Reference Include="System">
  <HintPath>..\..\game\KSP_Data\Managed\System.dll</HintPath>
  <Private>False</Private>
  </Reference>
  <Reference Include="UnityEngine">
  <HintPath>..\..\game\KSP_Data\Managed\UnityEngine.dll</HintPath>
  <Private>False</Private>
  </Reference>
  <Reference Include="UnityEngine.UI">
  <HintPath>..\..\game\KSP_Data\Managed\UnityEngine.UI.dll</HintPath>
  <Private>False</Private>
  </Reference>
  </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" />
  <PropertyGroup>
  <PostBuildEvent>copy "$(TargetPath)" "$(SolutionDir)Assets\Plugins" /Y</PostBuildEvent>
  </PropertyGroup>
  <!-- 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.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
  </Project>
  using System.Reflection;
  using System.Runtime.InteropServices;
 
  [assembly: AssemblyTitle("KerbalEngineer.Unity")]
  [assembly: AssemblyProduct("KerbalEngineer.Unity")]
  [assembly: AssemblyCopyright("Copyright © CYBUTEK 2016")]
  [assembly: ComVisible(false)]
  [assembly: Guid("5387bb1e-32b1-4bac-b03f-100570b9554c")]
  [assembly: AssemblyVersion("1.0.0.0")]
  [assembly: AssemblyFileVersion("1.0.0.0")]
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2015 # Visual Studio 2015
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer.CSharp.Editor", "KerbalEngineer.CSharp.Editor.csproj", "{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer.CSharp.Editor", "KerbalEngineer.CSharp.Editor.csproj", "{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer", "KerbalEngineer\KerbalEngineer.csproj", "{39806613-E0B7-46E0-89A6-A569EC538CBB}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer", "KerbalEngineer\KerbalEngineer.csproj", "{39806613-E0B7-46E0-89A6-A569EC538CBB}"
  EndProject
  Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer.Unity", "KerbalEngineer.Unity\KerbalEngineer.Unity.csproj", "{5387BB1E-32B1-4BAC-B03F-100570B9554C}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Debug|Any CPU.Build.0 = Debug|Any CPU {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Release|Any CPU.ActiveCfg = Release|Any CPU {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Release|Any CPU.Build.0 = Release|Any CPU {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Release|Any CPU.Build.0 = Release|Any CPU
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {39806613-E0B7-46E0-89A6-A569EC538CBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Debug|Any CPU.Build.0 = Debug|Any CPU {39806613-E0B7-46E0-89A6-A569EC538CBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Release|Any CPU.ActiveCfg = Release|Any CPU {39806613-E0B7-46E0-89A6-A569EC538CBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Release|Any CPU.Build.0 = Release|Any CPU {39806613-E0B7-46E0-89A6-A569EC538CBB}.Release|Any CPU.Build.0 = Release|Any CPU
  {5387BB1E-32B1-4BAC-B03F-100570B9554C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
  {5387BB1E-32B1-4BAC-B03F-100570B9554C}.Debug|Any CPU.Build.0 = Debug|Any CPU
  {5387BB1E-32B1-4BAC-B03F-100570B9554C}.Release|Any CPU.ActiveCfg = Release|Any CPU
  {5387BB1E-32B1-4BAC-B03F-100570B9554C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal
   
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer namespace KerbalEngineer
{ {
using KSP.UI; using KSP.UI;
using KSP.UI.Screens; using KSP.UI.Screens;
using UnityEngine; using UnityEngine;
   
public class AppLauncherButton : MonoBehaviour public class AppLauncherButton : MonoBehaviour
{ {
private static Texture m_IconTexture; private static Texture m_IconTexture;
private ApplicationLauncherButton m_Button; private ApplicationLauncherButton m_Button;
   
/// <summary> /// <summary>
/// Gets or sets the toggle button state. /// Gets or sets the toggle button state.
/// </summary> /// </summary>
public bool isOn public bool isOn
{ {
get get
{ {
return m_Button != null && return m_Button != null &&
m_Button.toggleButton.Button.interactable && m_Button.toggleButton.Button.interactable &&
m_Button.toggleButton.CurrentState == UIRadioButton.State.True; m_Button.toggleButton.CurrentState == UIRadioButton.State.True;
} }
set set
{ {
if (m_Button == null) if (m_Button == null)
{ {
return; return;
} }
   
if (value) if (value)
{ {
SetOn(); SetOn();
} }
else else
{ {
SetOff(); SetOff();
} }
} }
} }
   
/// <summary> /// <summary>
/// Disables the button if not already disabled. /// Disables the button if not already disabled.
/// </summary> /// </summary>
public void Disable() public void Disable()
{ {
if (m_Button != null && m_Button.toggleButton.Button.interactable) if (m_Button != null && m_Button.toggleButton.Button.interactable)
{ {
m_Button.Disable(); m_Button.Disable();
} }
} }
   
/// <summary> /// <summary>
/// Enables the button if not already enabled. /// Enables the button if not already enabled.
/// </summary> /// </summary>
public void Enable() public void Enable()
{ {
if (m_Button != null && m_Button.toggleButton.Button.interactable == false) if (m_Button != null && m_Button.toggleButton.Button.interactable == false)
{ {
m_Button.Enable(); m_Button.Enable();
} }
} }
   
  /// <summary>
  /// Gets the anchor position for pop-up content.
  /// </summary>
  public Vector3 GetAnchor()
  {
  if (m_Button == null)
  {
  return Vector3.zero;
  }
   
  Vector3 anchor = m_Button.GetAnchor();
   
  anchor.x -= 3.0f;
   
  return anchor;
  }
   
/// <summary> /// <summary>
/// Enables and sets the button to off. /// Enables and sets the button to off.
/// </summary> /// </summary>
public void SetOff() public void SetOff()
{ {
Enable(); Enable();
   
if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.False) if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.False)
{ {
m_Button.SetTrue(); m_Button.SetTrue();
} }
} }
   
/// <summary> /// <summary>
/// Enables and sets the button to on. /// Enables and sets the button to on.
/// </summary> /// </summary>
public void SetOn() public void SetOn()
{ {
Enable(); Enable();
   
if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.True) if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.True)
{ {
m_Button.SetTrue(); m_Button.SetTrue();
} }
} }
   
protected virtual void Awake() protected virtual void Awake()
{ {
// cache icon texture // cache icon texture
if (m_IconTexture == null && AssetBundleLoader.images != null) if (m_IconTexture == null && AssetBundleLoader.images != null)
{ {
m_IconTexture = AssetBundleLoader.images.LoadAsset<Texture2D>("app-launcher-icon"); m_IconTexture = AssetBundleLoader.images.LoadAsset<Texture2D>("app-launcher-icon");
} }
   
// subscribe event listeners // subscribe event listeners
GameEvents.onGUIApplicationLauncherReady.Add(OnGUIApplicationLauncherReady); GameEvents.onGUIApplicationLauncherReady.Add(OnGUIApplicationLauncherReady);
GameEvents.onGUIApplicationLauncherUnreadifying.Add(OnGUIApplicationLauncherUnreadifying); GameEvents.onGUIApplicationLauncherUnreadifying.Add(OnGUIApplicationLauncherUnreadifying);
} }
   
protected virtual void OnDestroy() protected virtual void OnDestroy()
{ {
// unsubscribe event listeners // unsubscribe event listeners
GameEvents.onGUIApplicationLauncherReady.Remove(OnGUIApplicationLauncherReady); GameEvents.onGUIApplicationLauncherReady.Remove(OnGUIApplicationLauncherReady);
GameEvents.onGUIApplicationLauncherUnreadifying.Remove(OnGUIApplicationLauncherUnreadifying); GameEvents.onGUIApplicationLauncherUnreadifying.Remove(OnGUIApplicationLauncherUnreadifying);
} }
   
/// <summary> /// <summary>
/// Called on button being disabled. /// Called on button being disabled.
/// </summary> /// </summary>
protected virtual void OnDisable() { } protected virtual void OnDisable() { }
   
/// <summary> /// <summary>
/// Called on button being enabled. /// Called on button being enabled.
/// </summary> /// </summary>
protected virtual void OnEnable() { } protected virtual void OnEnable() { }
   
/// <summary> /// <summary>
/// Called on button being toggled off. /// Called on button being toggled off.
/// </summary> /// </summary>
protected virtual void OnFalse() { } protected virtual void OnFalse() { }
   
/// <summary> /// <summary>
/// Called on mouse hovering. /// Called on mouse hovering.
/// </summary> /// </summary>
protected virtual void OnHover() { } protected virtual void OnHover() { }
   
/// <summary> /// <summary>
/// Called on mouse exiting hover. /// Called on mouse exiting hover.
/// </summary> /// </summary>
protected virtual void OnHoverOut() { } protected virtual void OnHoverOut() { }
   
/// <summary> /// <summary>
/// Called on button being ready. /// Called on button being ready.
/// </summary> /// </summary>
protected virtual void OnReady() { } protected virtual void OnReady() { }
   
/// <summary> /// <summary>
/// Called after the application launcher is ready and the button created. /// Called after the application launcher is ready and the button created.
/// </summary> /// </summary>
protected virtual void OnTrue() { } protected virtual void OnTrue() { }
   
/// <summary> /// <summary>
/// Called after the application launcher is unreadified and the button removed. /// Called after the application launcher is unreadified and the button removed.
/// </summary> /// </summary>
protected virtual void OnUnreadifying() { } protected virtual void OnUnreadifying() { }
   
private void OnGUIApplicationLauncherReady() private void OnGUIApplicationLauncherReady()
{ {
// create button // create button
if (ApplicationLauncher.Instance != null) if (ApplicationLauncher.Instance != null)
{ {
m_Button = ApplicationLauncher.Instance.AddModApplication(OnTrue, OnFalse, OnHover, OnHoverOut, OnEnable, OnDisable, ApplicationLauncher.AppScenes.ALWAYS, m_IconTexture); m_Button = ApplicationLauncher.Instance.AddModApplication(OnTrue, OnFalse, OnHover, OnHoverOut, OnEnable, OnDisable, ApplicationLauncher.AppScenes.ALWAYS, m_IconTexture);
} }
   
OnReady(); OnReady();
} }
   
private void OnGUIApplicationLauncherUnreadifying(GameScenes scene) private void OnGUIApplicationLauncherUnreadifying(GameScenes scene)
{ {
// remove button // remove button
if (ApplicationLauncher.Instance != null && m_Button != null) if (ApplicationLauncher.Instance != null && m_Button != null)
{ {
ApplicationLauncher.Instance.RemoveModApplication(m_Button); ApplicationLauncher.Instance.RemoveModApplication(m_Button);
} }
   
OnUnreadifying(); OnUnreadifying();
} }
} }
} }
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 UnityEngine; using UnityEngine;
   
#endregion #endregion
   
namespace KerbalEngineer.Flight namespace KerbalEngineer.Flight
{ {
using KSP.UI.Screens; using KSP.UI.Screens;
   
/// <summary> /// <summary>
/// Graphical controller for section interaction in the form of a menu system. /// Graphical controller for section interaction in the form of a menu system.
/// </summary> /// </summary>
[KSPAddon(KSPAddon.Startup.Flight, false)] //[KSPAddon(KSPAddon.Startup.Flight, false)]
public class ActionMenu : MonoBehaviour public class ActionMenu : MonoBehaviour
{ {
#region Fields #region Fields
   
private ActionMenuGui actionMenuGui; private ActionMenuGui actionMenuGui;
private ApplicationLauncherButton button; private ApplicationLauncherButton button;
   
#endregion #endregion
   
#region Methods: protected #region Methods: protected
   
protected void Awake() protected void Awake()
{ {
try try
{ {
GameEvents.onGUIApplicationLauncherReady.Add(this.OnGuiAppLauncherReady); GameEvents.onGUIApplicationLauncherReady.Add(this.OnGuiAppLauncherReady);
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
Logger.Log("ActionMenu was created."); Logger.Log("ActionMenu was created.");
} }
   
protected void Start() protected void Start()
{ {
if (button == null) if (button == null)
{ {
OnGuiAppLauncherReady(); OnGuiAppLauncherReady();
} }
} }
   
protected void OnDestroy() protected void OnDestroy()
{ {
try try
{ {
GameEvents.onGUIApplicationLauncherReady.Remove(this.OnGuiAppLauncherReady); GameEvents.onGUIApplicationLauncherReady.Remove(this.OnGuiAppLauncherReady);
GameEvents.onHideUI.Remove(this.OnHide); GameEvents.onHideUI.Remove(this.OnHide);
GameEvents.onShowUI.Remove(this.OnShow); GameEvents.onShowUI.Remove(this.OnShow);
if (button != null) if (button != null)
{ {
ApplicationLauncher.Instance.RemoveModApplication(this.button); ApplicationLauncher.Instance.RemoveModApplication(this.button);
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
Logger.Log("ActionMenu was destroyed."); Logger.Log("ActionMenu was destroyed.");
} }
   
protected void Update() protected void Update()
{ {
try try
{ {
if (this.button == null) if (this.button == null)
{ {
return; return;
} }
if (FlightEngineerCore.IsDisplayable && this.button.toggleButton.Interactable == false) if (FlightEngineerCore.IsDisplayable && this.button.toggleButton.Interactable == false)
{ {
this.button.Enable(); this.button.Enable();
} }
else if (!FlightEngineerCore.IsDisplayable && this.button.toggleButton.Interactable) else if (!FlightEngineerCore.IsDisplayable && this.button.toggleButton.Interactable)
{ {
this.button.Disable(); this.button.Disable();
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
#endregion #endregion
   
#region Methods: private #region Methods: private
   
private void OnFalse() private void OnFalse()
{ {
try try
{ {
this.actionMenuGui.enabled = false; this.actionMenuGui.enabled = false;
this.actionMenuGui.StayOpen = false; this.actionMenuGui.StayOpen = false;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
private void OnGuiAppLauncherReady() private void OnGuiAppLauncherReady()
{ {
try try
{ {
this.button = ApplicationLauncher.Instance.AddModApplication( this.button = ApplicationLauncher.Instance.AddModApplication(
this.OnTrue, this.OnTrue,
this.OnFalse, this.OnFalse,
this.OnHover, this.OnHover,
this.OnHoverOut, this.OnHoverOut,
null, null,
null, null,
ApplicationLauncher.AppScenes.ALWAYS, ApplicationLauncher.AppScenes.ALWAYS,
GameDatabase.Instance.GetTexture("KerbalEngineer/Textures/ToolbarIcon", false)); GameDatabase.Instance.GetTexture("KerbalEngineer/Textures/ToolbarIcon", false));
this.actionMenuGui = this.button.gameObject.AddComponent<ActionMenuGui>(); this.actionMenuGui = this.button.gameObject.AddComponent<ActionMenuGui>();
this.actionMenuGui.transform.parent = this.button.transform; this.actionMenuGui.transform.parent = this.button.transform;
ApplicationLauncher.Instance.EnableMutuallyExclusive(this.button); ApplicationLauncher.Instance.EnableMutuallyExclusive(this.button);
GameEvents.onHideUI.Add(this.OnHide); GameEvents.onHideUI.Add(this.OnHide);
GameEvents.onShowUI.Add(this.OnShow); GameEvents.onShowUI.Add(this.OnShow);
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
private void OnHide() private void OnHide()
{ {
try try
{ {
this.actionMenuGui.Hidden = true; this.actionMenuGui.Hidden = true;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
private void OnHover() private void OnHover()
{ {
try try
{ {
this.actionMenuGui.enabled = true; this.actionMenuGui.enabled = true;
this.actionMenuGui.Hovering = true; this.actionMenuGui.Hovering = true;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
private void OnHoverOut() private void OnHoverOut()
{ {
try try
{ {
this.actionMenuGui.Hovering = false; this.actionMenuGui.Hovering = false;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
private void OnShow() private void OnShow()
{ {
try try
{ {
this.actionMenuGui.Hidden = false; this.actionMenuGui.Hidden = false;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
private void OnTrue() private void OnTrue()
{ {
try try
{ {
this.actionMenuGui.enabled = true; this.actionMenuGui.enabled = true;
this.actionMenuGui.StayOpen = true; this.actionMenuGui.StayOpen = true;
} }
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; 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 { this.showControlBar = value; }
} }
   
#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();
RenderingManager.RemoveFromPostDrawQueue(0, this.Draw);  
} }
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();
RenderingManager.AddToPostDrawQueue(0, this.Draw);  
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 Draw() 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
} }
} }
  //
  // 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 UnityEngine;
 
  [KSPAddon(KSPAddon.Startup.Flight, false)]
  public class FlightAppLauncher : AppLauncherButton
  {
  private static FlightAppLauncher m_Instance;
  private GameObject m_MenuObject;
  private GameObject m_MenuPrefab;
 
  public static event Action ButtonHover;
  public static event Action MenuClosed;
 
  /// <summary>
  /// Gets the current instance of the FlightAppLauncher object.
  /// </summary>
  public static FlightAppLauncher instance
  {
  get
  {
  return m_Instance;
  }
  }
 
  protected override void Awake()
  {
  base.Awake();
 
  // set singleton instance
  m_Instance = this;
 
  // cache menu prefab
  if (m_MenuPrefab == null && AssetBundleLoader.prefabs != null)
  {
  m_MenuPrefab = AssetBundleLoader.prefabs.LoadAsset<GameObject>("FlightMenu");
  }
  }
 
  protected override void OnFalse()
  {
  Close();
  }
 
  protected override void OnHover()
  {
  Open();
  ButtonHover?.Invoke();
  }
 
  protected override void OnHoverOut()
  {
  if (isOn == false)
  {
  Close();
  }
  }
 
  protected override void OnTrue()
  {
  Open();
  }
 
  /// <summary>
  /// Closes the menu.
  /// </summary>
  private void Close()
  {
  if (m_MenuObject == null)
  {
  return;
  }
 
  if (MenuClosed != null)
  {
  MenuClosed();
  }
  else
  {
  Destroy(m_MenuObject);
  }
  }
 
  /// <summary>
  /// Opens the menu.
  /// </summary>
  private void Open()
  {
  if (m_MenuPrefab == null || m_MenuObject != null)
  {
  return;
  }
 
  // create object
  m_MenuObject = Instantiate(m_MenuPrefab, GetAnchor(), Quaternion.identity) as GameObject;
  if (m_MenuObject == null)
  {
  return;
  }
 
  // set object as a child of the main canvas
  m_MenuObject.transform.SetParent(MainCanvasUtil.MainCanvas.transform);
  }
  }
  }
// //
// 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
   
#endregion #endregion
   
namespace KerbalEngineer.Flight namespace KerbalEngineer.Flight
{ {
#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 Extensions; using Extensions;
using Readouts; using Readouts;
using Sections; using Sections;
using Settings; using Settings;
using UnityEngine; using UnityEngine;
using VesselSimulator; using VesselSimulator;
   
#endregion #endregion
   
/// <summary> /// <summary>
/// Core management system for the Flight Engineer. /// Core management system for the Flight Engineer.
/// </summary> /// </summary>
[KSPAddon(KSPAddon.Startup.Flight, false)] [KSPAddon(KSPAddon.Startup.Flight, false)]
public sealed class FlightEngineerCore : MonoBehaviour public sealed class FlightEngineerCore : MonoBehaviour
{ {
#region Instance #region Instance
   
/// <summary> /// <summary>
/// Gets the current instance of FlightEngineerCore. /// Gets the current instance of FlightEngineerCore.
/// </summary> /// </summary>
public static FlightEngineerCore Instance { get; private set; } public static FlightEngineerCore Instance { get; private set; }
   
#endregion #endregion
   
#region Fields #region Fields
   
private static bool isCareerMode = true; private static bool isCareerMode = true;
private static bool isKerbalLimited = true; private static bool isKerbalLimited = true;
private static bool isTrackingStationLimited = true; private static bool isTrackingStationLimited = true;
   
#endregion #endregion
   
#region Constructors #region Constructors
   
static FlightEngineerCore() static FlightEngineerCore()
{ {
try try
{ {
var handler = SettingHandler.Load("FlightEngineerCore.xml"); var handler = SettingHandler.Load("FlightEngineerCore.xml");
handler.Get("isCareerMode", ref isCareerMode); handler.Get("isCareerMode", ref isCareerMode);
handler.Get("isKerbalLimited", ref isKerbalLimited); handler.Get("isKerbalLimited", ref isKerbalLimited);
handler.Get("isTrackingStationLimited", ref isTrackingStationLimited); handler.Get("isTrackingStationLimited", ref isTrackingStationLimited);
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
#endregion #endregion
   
#region Properties #region Properties
   
/// <summary> /// <summary>
/// Gets and sets whether to the Flight Engineer should be run using career limitations. /// Gets and sets whether to the Flight Engineer should be run using career limitations.
/// </summary> /// </summary>
public static bool IsCareerMode public static bool IsCareerMode
{ {
get { return isCareerMode; } get { return isCareerMode; }
set set
{ {
try try
{ {
if (isCareerMode != value) if (isCareerMode != value)
{ {
var handler = SettingHandler.Load("FlightEngineerCore.xml"); var handler = SettingHandler.Load("FlightEngineerCore.xml");
handler.Set("isCareerMode", value); handler.Set("isCareerMode", value);
handler.Save("FlightEngineerCore.xml"); handler.Save("FlightEngineerCore.xml");
} }
isCareerMode = value; isCareerMode = value;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
} }
   
/// <summary> /// <summary>
/// Gets whether the FlightEngineer should be displayed. /// Gets whether the FlightEngineer should be displayed.
/// </summary> /// </summary>
public static bool IsDisplayable public static bool IsDisplayable
{ {
get get
{ {
  if (MainCanvasUtil.MainCanvas.enabled == false)
  {
  return false;
  }
   
if (isCareerMode) if (isCareerMode)
{ {
if (isKerbalLimited && FlightGlobals.ActiveVessel.GetVesselCrew().Exists(c => c.experienceTrait.TypeName == "Engineer")) if (isKerbalLimited && FlightGlobals.ActiveVessel.GetVesselCrew().Exists(c => c.experienceTrait.TypeName == "Engineer"))
{ {
return true; return true;
} }
if (isTrackingStationLimited && ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.TrackingStation) == 1.0f) if (isTrackingStationLimited && ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.TrackingStation) == 1.0f)
{ {
return true; return true;
} }
return FlightGlobals.ActiveVessel.parts.Any(p => p.HasModule<FlightEngineerModule>()); return FlightGlobals.ActiveVessel.parts.Any(p => p.HasModule<FlightEngineerModule>());
} }
   
return true; return true;
} }
} }
   
/// <summary> /// <summary>
/// Gets and sets whether to the Flight Engineer should be kerbal limited. /// Gets and sets whether to the Flight Engineer should be kerbal limited.
/// </summary> /// </summary>
public static bool IsKerbalLimited public static bool IsKerbalLimited
{ {
get { return isKerbalLimited; } get { return isKerbalLimited; }
set set
{ {
try try
{ {
if (isKerbalLimited != value) if (isKerbalLimited != value)
{ {
var handler = SettingHandler.Load("FlightEngineerCore.xml"); var handler = SettingHandler.Load("FlightEngineerCore.xml");
handler.Set("isKerbalLimited", value); handler.Set("isKerbalLimited", value);
handler.Save("FlightEngineerCore.xml"); handler.Save("FlightEngineerCore.xml");
} }
isKerbalLimited = value; isKerbalLimited = value;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
} }
   
/// <summary> /// <summary>
/// Gets and sets whether to the Flight Engineer should be tracking station limited. /// Gets and sets whether to the Flight Engineer should be tracking station limited.
/// </summary> /// </summary>
public static bool IsTrackingStationLimited public static bool IsTrackingStationLimited
{ {
get { return isTrackingStationLimited; } get { return isTrackingStationLimited; }
set set
{ {
try try
{ {
if (isTrackingStationLimited != value) if (isTrackingStationLimited != value)
{ {
var handler = SettingHandler.Load("FlightEngineerCore.xml"); var handler = SettingHandler.Load("FlightEngineerCore.xml");
handler.Set("isTrackingStationLimited", value); handler.Set("isTrackingStationLimited", value);
handler.Save("FlightEngineerCore.xml"); handler.Save("FlightEngineerCore.xml");
} }
isTrackingStationLimited = value; isTrackingStationLimited = value;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
} }
   
/// <summary> /// <summary>
/// Gets the editor windows for sections with open editors. /// Gets the editor windows for sections with open editors.
/// </summary> /// </summary>
public List<SectionEditor> SectionEditors { get; private set; } public List<SectionEditor> SectionEditors { get; private set; }
   
/// <summary> /// <summary>
/// Gets the section windows for floating sections. /// Gets the section windows for floating sections.
/// </summary> /// </summary>
public List<SectionWindow> SectionWindows { get; private set; } public List<SectionWindow> SectionWindows { get; private set; }
   
/// <summary> /// <summary>
/// Gets the list of currently running updatable modules. /// Gets the list of currently running updatable modules.
/// </summary> /// </summary>
public List<IUpdatable> UpdatableModules { get; private set; } public List<IUpdatable> UpdatableModules { get; private set; }
   
#endregion #endregion
   
#region Methods #region Methods
   
/// <summary> /// <summary>
/// Creates a section editor, adds it to the FlightEngineerCore and returns a reference to it. /// Creates a section editor, adds it to the FlightEngineerCore and returns a reference to it.
/// </summary> /// </summary>
public SectionEditor AddSectionEditor(SectionModule section) public SectionEditor AddSectionEditor(SectionModule section)
{ {
try try
{ {
var editor = this.gameObject.AddComponent<SectionEditor>(); var editor = this.gameObject.AddComponent<SectionEditor>();
editor.ParentSection = section; editor.ParentSection = section;
editor.Position = new Rect(section.EditorPositionX, section.EditorPositionY, SectionEditor.Width, SectionEditor.Height); editor.Position = new Rect(section.EditorPositionX, section.EditorPositionY, SectionEditor.Width, SectionEditor.Height);
this.SectionEditors.Add(editor); this.SectionEditors.Add(editor);
return editor; return editor;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
return null; return null;
} }
} }
   
/// <summary> /// <summary>
/// Creates a section window, adds it to the FlightEngineerCore and returns a reference to it. /// Creates a section window, adds it to the FlightEngineerCore and returns a reference to it.
/// </summary> /// </summary>
public SectionWindow AddSectionWindow(SectionModule section) public SectionWindow AddSectionWindow(SectionModule section)
{ {
try try
{ {
var window = this.gameObject.AddComponent<SectionWindow>(); var window = this.gameObject.AddComponent<SectionWindow>();
window.ParentSection = section; window.ParentSection = section;
window.WindowPosition = new Rect(section.FloatingPositionX, section.FloatingPositionY, 0, 0); window.WindowPosition = new Rect(section.FloatingPositionX, section.FloatingPositionY, 0, 0);
this.SectionWindows.Add(window); this.SectionWindows.Add(window);
return window; return window;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
return null; return null;
} }
} }
   
/// <summary> /// <summary>
/// Adds an updatable object to be automatically updated every frame and will ignore duplicate objects. /// Adds an updatable object to be automatically updated every frame and will ignore duplicate objects.
/// </summary> /// </summary>
public void AddUpdatable(IUpdatable updatable) public void AddUpdatable(IUpdatable updatable)
{ {
try try
{ {
if (!this.UpdatableModules.Contains(updatable)) if (!this.UpdatableModules.Contains(updatable))
{ {
this.UpdatableModules.Add(updatable); this.UpdatableModules.Add(updatable);
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Create base Flight Engineer child objects. /// Create base Flight Engineer child objects.
/// </summary> /// </summary>
private void Awake() private void Awake()
{ {
try try
{ {
Instance = this; Instance = this;
   
this.SectionWindows = new List<SectionWindow>(); this.SectionWindows = new List<SectionWindow>();
this.SectionEditors = new List<SectionEditor>(); this.SectionEditors = new List<SectionEditor>();
this.UpdatableModules = new List<IUpdatable>(); this.UpdatableModules = new List<IUpdatable>();
   
SimManager.UpdateModSettings(); SimManager.UpdateModSettings();
   
Logger.Log("FlightEngineerCore->Awake"); Logger.Log("FlightEngineerCore->Awake");
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Fixed update all required Flight Engineer objects. /// Fixed update all required Flight Engineer objects.
/// </summary> /// </summary>
private void FixedUpdate() private void FixedUpdate()
{ {
try try
{ {
SectionLibrary.FixedUpdate(); SectionLibrary.FixedUpdate();
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Force the destruction of child objects on core destruction. /// Force the destruction of child objects on core destruction.
/// </summary> /// </summary>
private void OnDestroy() private void OnDestroy()
{ {
try try
{ {
SectionLibrary.Save(); SectionLibrary.Save();
   
foreach (var window in this.SectionWindows) foreach (var window in this.SectionWindows)
{ {
print("[FlightEngineer]: Destroying Floating Window for " + window.ParentSection.Name); print("[FlightEngineer]: Destroying Floating Window for " + window.ParentSection.Name);
Destroy(window); Destroy(window);
} }
   
foreach (var editor in this.SectionEditors) foreach (var editor in this.SectionEditors)
{ {
print("[FlightEngineer]: Destroying Editor Window for " + editor.ParentSection.Name); print("[FlightEngineer]: Destroying Editor Window for " + editor.ParentSection.Name);
Destroy(editor); Destroy(editor);
} }
   
Logger.Log("FlightEngineerCore->OnDestroy"); Logger.Log("FlightEngineerCore->OnDestroy");
} }
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>
private void Start() private void Start()
{ {
try try
{ {
SectionLibrary.Load(); SectionLibrary.Load();
ReadoutLibrary.Reset(); ReadoutLibrary.Reset();
Logger.Log("FlightEngineerCore->Start"); Logger.Log("FlightEngineerCore->Start");
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Update all required Flight Engineer objects. /// Update all required Flight Engineer objects.
/// </summary> /// </summary>
private void Update() private void Update()
{ {
try try
{ {
SectionLibrary.Update(); SectionLibrary.Update();
this.UpdateModules(); this.UpdateModules();
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Update all updatable modules. /// Update all updatable modules.
/// </summary> /// </summary>
private void UpdateModules() private void UpdateModules()
{ {
try try
{ {
foreach (var updatable in this.UpdatableModules) foreach (var updatable in this.UpdatableModules)
{ {
if (updatable is IUpdateRequest) if (updatable is IUpdateRequest)
{ {
var request = updatable as IUpdateRequest; var request = updatable as IUpdateRequest;
if (request.UpdateRequested) if (request.UpdateRequested)
{ {
updatable.Update(); updatable.Update();
request.UpdateRequested = false; request.UpdateRequested = false;
} }
} }
else else
{ {
updatable.Update(); updatable.Update();
} }
} }
} }
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; 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;
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 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
} }
} }
 Binary files a/Output/KerbalEngineer/KerbalEngineer and b/Output/KerbalEngineer/KerbalEngineer differ
 Binary files /dev/null and b/Output/KerbalEngineer/KerbalEngineer.Unity.dll differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ
ManifestFileVersion: 0 ManifestFileVersion: 0
AssetBundleManifest: AssetBundleManifest:
AssetBundleInfos: AssetBundleInfos:
Info_0: Info_0:
Name: images Name: images
Dependencies: {} Dependencies: {}
  Info_1:
  Name: prefabs
  Dependencies: {}
   
{ {
"NAME":"Kerbal Engineer Redux", "NAME":"Kerbal Engineer Redux",
"URL":"http://ksp-avc.cybutek.net/version.php?id=6", "URL":"http://ksp-avc.cybutek.net/version.php?id=6",
"VERSION": "VERSION":
{ {
"MAJOR":1, "MAJOR":1,
"MINOR":0, "MINOR":0,
"PATCH":19, "PATCH":19,
"BUILD":4 "BUILD":4
}, },
"KSP_VERSION": "KSP_VERSION":
{ {
"MAJOR":1, "MAJOR":1,
"MINOR":0, "MINOR":1,
"PATCH":5 "PATCH":0
} }
} }
   
 Binary files a/Output/KerbalEngineer/Textures/ToolbarIcon.png and /dev/null differ
 Binary files a/Output/KerbalEngineer/images and b/Output/KerbalEngineer/images differ
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 343068190 CRC: 2833314722
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 73ea3b515ebabb6bdff35e92d0c2ad1b Hash: b45648c25b082800bed1fc56179dfff5
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 00ffc586b3c4c12c72c7fed589b81235 Hash: 00ffc586b3c4c12c72c7fed589b81235
HashAppended: 0 HashAppended: 0
ClassTypes: ClassTypes:
- Class: 28 - Class: 28
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 213 - Class: 213
Script: {instanceID: 0} Script: {instanceID: 0}
Assets: Assets:
- Assets/Images/ui-drop-down.psd - Assets/Images/ui-drop-down.psd
- Assets/Images/app-launcher-icon.psd - Assets/Images/app-launcher-icon.psd
- Assets/Images/flight-menu-background.psd - Assets/Images/flight-menu-background.psd
Dependencies: [] Dependencies: []
   
 Binary files /dev/null and b/Output/KerbalEngineer/prefabs differ
  ManifestFileVersion: 0
  CRC: 2067172977
  Hashes:
  AssetFileHash:
  serializedVersion: 2
  Hash: 8d52da3e0a65874a41c225bd367499c6
  TypeTreeHash:
  serializedVersion: 2
  Hash: 7225837fc006179772eb644685ace9cf
  HashAppended: 0
  ClassTypes:
  - Class: 1
  Script: {instanceID: 0}
  - Class: 21
  Script: {instanceID: 0}
  - Class: 28
  Script: {instanceID: 0}
  - Class: 48
  Script: {instanceID: 0}
  - Class: 114
  Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  - Class: 114
  Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  - Class: 114
  Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  - Class: 114
  Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  - Class: 114
  Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  - Class: 114
  Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  - Class: 114
  Script: {fileID: 2019631361, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}
  - Class: 115
  Script: {instanceID: 0}
  - Class: 128
  Script: {instanceID: 0}
  - Class: 222
  Script: {instanceID: 0}
  - Class: 224
  Script: {instanceID: 0}
  - Class: 225
  Script: {instanceID: 0}
  Assets:
  - Assets/Prefabs/FlightMenu.prefab
  Dependencies: []
 
%YAML 1.1  
%TAG !u! tag:unity3d.com,2011:  
--- !u!236 &1  
ClusterInputManager:  
m_ObjectHideFlags: 0  
m_Inputs: []  
 
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!55 &1 --- !u!55 &1
PhysicsManager: PhysicsManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_Gravity: {x: 0, y: -9.81, z: 0} m_Gravity: {x: 0, y: -9.81000042, z: 0}
m_DefaultMaterial: {fileID: 0} m_DefaultMaterial: {fileID: 0}
m_BounceThreshold: 2 m_BounceThreshold: 2
m_SleepThreshold: 0.005 m_SleepThreshold: .00499999989
m_DefaultContactOffset: 0.01 m_DefaultContactOffset: .00999999978
m_SolverIterationCount: 6 m_SolverIterationCount: 6
m_QueriesHitTriggers: 1 m_QueriesHitTriggers: 1
m_EnableAdaptiveForce: 0 m_EnableAdaptiveForce: 0
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1045 &1 --- !u!1045 &1
EditorBuildSettings: EditorBuildSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_Scenes: m_Scenes: []
- enabled: 1  
path: Assets/Scenes/Scene-Main.unity  
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!30 &1 --- !u!30 &1
GraphicsSettings: GraphicsSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 5 serializedVersion: 4
m_Deferred: m_Deferred:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
m_DeferredReflections: m_DeferredReflections:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
m_LegacyDeferred: m_LegacyDeferred:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
m_AlwaysIncludedShaders: m_AlwaysIncludedShaders:
- {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0}
m_PreloadedShaders: [] m_PreloadedShaders: []
m_ShaderSettings:  
useScreenSpaceShadows: 1  
m_BuildTargetShaderSettings: []  
m_LightmapStripping: 0 m_LightmapStripping: 0
m_FogStripping: 0  
m_LightmapKeepPlain: 1 m_LightmapKeepPlain: 1
m_LightmapKeepDirCombined: 1 m_LightmapKeepDirCombined: 1
m_LightmapKeepDirSeparate: 1 m_LightmapKeepDirSeparate: 1
m_LightmapKeepDynamicPlain: 1 m_LightmapKeepDynamicPlain: 1
m_LightmapKeepDynamicDirCombined: 1 m_LightmapKeepDynamicDirCombined: 1
m_LightmapKeepDynamicDirSeparate: 1 m_LightmapKeepDynamicDirSeparate: 1
  m_FogStripping: 0
m_FogKeepLinear: 1 m_FogKeepLinear: 1
m_FogKeepExp: 1 m_FogKeepExp: 1
m_FogKeepExp2: 1 m_FogKeepExp2: 1
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!13 &1 --- !u!13 &1
InputManager: InputManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_Axes: m_Axes:
- serializedVersion: 3 - serializedVersion: 3
m_Name: Horizontal m_Name: Horizontal
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: left negativeButton: left
positiveButton: right positiveButton: right
altNegativeButton: a altNegativeButton: a
altPositiveButton: d altPositiveButton: d
gravity: 3 gravity: 3
dead: 0.001 dead: .00100000005
sensitivity: 3 sensitivity: 3
snap: 1 snap: 1
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Vertical m_Name: Vertical
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: down negativeButton: down
positiveButton: up positiveButton: up
altNegativeButton: s altNegativeButton: s
altPositiveButton: w altPositiveButton: w
gravity: 3 gravity: 3
dead: 0.001 dead: .00100000005
sensitivity: 3 sensitivity: 3
snap: 1 snap: 1
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire1 m_Name: Fire1
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: left ctrl positiveButton: left ctrl
altNegativeButton: altNegativeButton:
altPositiveButton: mouse 0 altPositiveButton: mouse 0
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire2 m_Name: Fire2
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: left alt positiveButton: left alt
altNegativeButton: altNegativeButton:
altPositiveButton: mouse 1 altPositiveButton: mouse 1
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire3 m_Name: Fire3
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: left shift positiveButton: left shift
altNegativeButton: altNegativeButton:
altPositiveButton: mouse 2 altPositiveButton: mouse 2
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Jump m_Name: Jump
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: space positiveButton: space
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Mouse X m_Name: Mouse X
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: positiveButton:
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0.1 sensitivity: .100000001
snap: 0 snap: 0
invert: 0 invert: 0
type: 1 type: 1
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Mouse Y m_Name: Mouse Y
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: positiveButton:
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0.1 sensitivity: .100000001
snap: 0 snap: 0
invert: 0 invert: 0
type: 1 type: 1
axis: 1 axis: 1
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Mouse ScrollWheel m_Name: Mouse ScrollWheel
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: positiveButton:
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 0 gravity: 0
dead: 0 dead: 0
sensitivity: 0.1 sensitivity: .100000001
snap: 0 snap: 0
invert: 0 invert: 0
type: 1 type: 1
axis: 2 axis: 2
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Horizontal m_Name: Horizontal
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: positiveButton:
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 0 gravity: 0
dead: 0.19 dead: .189999998
sensitivity: 1 sensitivity: 1
snap: 0 snap: 0
invert: 0 invert: 0
type: 2 type: 2
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Vertical m_Name: Vertical
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: positiveButton:
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 0 gravity: 0
dead: 0.19 dead: .189999998
sensitivity: 1 sensitivity: 1
snap: 0 snap: 0
invert: 1 invert: 1
type: 2 type: 2
axis: 1 axis: 1
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire1 m_Name: Fire1
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: joystick button 0 positiveButton: joystick button 0
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire2 m_Name: Fire2
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: joystick button 1 positiveButton: joystick button 1
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Fire3 m_Name: Fire3
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: joystick button 2 positiveButton: joystick button 2
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Jump m_Name: Jump
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: joystick button 3 positiveButton: joystick button 3
altNegativeButton: altNegativeButton:
altPositiveButton: altPositiveButton:
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Submit m_Name: Submit
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: return positiveButton: return
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 0 altPositiveButton: joystick button 0
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Submit m_Name: Submit
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: enter positiveButton: enter
altNegativeButton: altNegativeButton:
altPositiveButton: space altPositiveButton: space
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
- serializedVersion: 3 - serializedVersion: 3
m_Name: Cancel m_Name: Cancel
descriptiveName: descriptiveName:
descriptiveNegativeName: descriptiveNegativeName:
negativeButton: negativeButton:
positiveButton: escape positiveButton: escape
altNegativeButton: altNegativeButton:
altPositiveButton: joystick button 1 altPositiveButton: joystick button 1
gravity: 1000 gravity: 1000
dead: 0.001 dead: .00100000005
sensitivity: 1000 sensitivity: 1000
snap: 0 snap: 0
invert: 0 invert: 0
type: 0 type: 0
axis: 0 axis: 0
joyNum: 0 joyNum: 0
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!19 &1 --- !u!19 &1
Physics2DSettings: Physics2DSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_Gravity: {x: 0, y: -9.81} m_Gravity: {x: 0, y: -9.81000042}
m_DefaultMaterial: {fileID: 0} m_DefaultMaterial: {fileID: 0}
m_VelocityIterations: 8 m_VelocityIterations: 8
m_PositionIterations: 3 m_PositionIterations: 3
m_VelocityThreshold: 1 m_VelocityThreshold: 1
m_MaxLinearCorrection: 0.2 m_MaxLinearCorrection: .200000003
m_MaxAngularCorrection: 8 m_MaxAngularCorrection: 8
m_MaxTranslationSpeed: 100 m_MaxTranslationSpeed: 100
m_MaxRotationSpeed: 360 m_MaxRotationSpeed: 360
m_MinPenetrationForPenalty: 0.01 m_MinPenetrationForPenalty: .00999999978
m_BaumgarteScale: 0.2 m_BaumgarteScale: .200000003
m_BaumgarteTimeOfImpactScale: 0.75 m_BaumgarteTimeOfImpactScale: .75
m_TimeToSleep: 0.5 m_TimeToSleep: .5
m_LinearSleepTolerance: 0.01 m_LinearSleepTolerance: .00999999978
m_AngularSleepTolerance: 2 m_AngularSleepTolerance: 2
m_QueriesHitTriggers: 1 m_QueriesHitTriggers: 1
m_QueriesStartInColliders: 1 m_QueriesStartInColliders: 1
m_ChangeStopsCallbacks: 0 m_ChangeStopsCallbacks: 0
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!129 &1 --- !u!129 &1
PlayerSettings: PlayerSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 7 serializedVersion: 7
AndroidProfiler: 0 AndroidProfiler: 0
defaultScreenOrientation: 4 defaultScreenOrientation: 4
targetDevice: 2 targetDevice: 2
targetResolution: 0 targetResolution: 0
useOnDemandResources: 0 useOnDemandResources: 0
accelerometerFrequency: 60 accelerometerFrequency: 60
companyName: CYBUTEK Solutions companyName: DefaultCompany
productName: KerbalEngineer productName: New Unity Project
defaultCursor: {fileID: 0} defaultCursor: {fileID: 0}
cursorHotspot: {x: 0, y: 0} cursorHotspot: {x: 0, y: 0}
m_ShowUnitySplashScreen: 1 m_ShowUnitySplashScreen: 1
defaultScreenWidth: 1024 defaultScreenWidth: 1024
defaultScreenHeight: 768 defaultScreenHeight: 768
defaultScreenWidthWeb: 960 defaultScreenWidthWeb: 960
defaultScreenHeightWeb: 600 defaultScreenHeightWeb: 600
m_RenderingPath: 1 m_RenderingPath: 1
m_MobileRenderingPath: 1 m_MobileRenderingPath: 1
m_ActiveColorSpace: 0 m_ActiveColorSpace: 0
m_MTRendering: 1 m_MTRendering: 1
m_MobileMTRendering: 0 m_MobileMTRendering: 0
m_Stereoscopic3D: 0 m_Stereoscopic3D: 0
iosShowActivityIndicatorOnLoading: -1 iosShowActivityIndicatorOnLoading: -1
androidShowActivityIndicatorOnLoading: -1 androidShowActivityIndicatorOnLoading: -1
iosAppInBackgroundBehavior: 0 iosAppInBackgroundBehavior: 0
displayResolutionDialog: 1 displayResolutionDialog: 1
iosAllowHTTPDownload: 1 iosAllowHTTPDownload: 1
allowedAutorotateToPortrait: 1 allowedAutorotateToPortrait: 1
allowedAutorotateToPortraitUpsideDown: 1 allowedAutorotateToPortraitUpsideDown: 1
allowedAutorotateToLandscapeRight: 1 allowedAutorotateToLandscapeRight: 1
allowedAutorotateToLandscapeLeft: 1 allowedAutorotateToLandscapeLeft: 1
useOSAutorotation: 1 useOSAutorotation: 1
use32BitDisplayBuffer: 1 use32BitDisplayBuffer: 1
disableDepthAndStencilBuffers: 0 disableDepthAndStencilBuffers: 0
defaultIsFullScreen: 0 defaultIsFullScreen: 1
defaultIsNativeResolution: 1 defaultIsNativeResolution: 1
runInBackground: 0 runInBackground: 0
captureSingleScreen: 0 captureSingleScreen: 0
Override IPod Music: 0 Override IPod Music: 0
Prepare IOS For Recording: 0 Prepare IOS For Recording: 0
submitAnalytics: 1 submitAnalytics: 1
usePlayerLog: 1 usePlayerLog: 1
bakeCollisionMeshes: 0 bakeCollisionMeshes: 0
forceSingleInstance: 0 forceSingleInstance: 0
resizableWindow: 0 resizableWindow: 0
useMacAppStoreValidation: 0 useMacAppStoreValidation: 0
gpuSkinning: 0 gpuSkinning: 0
xboxPIXTextureCapture: 0 xboxPIXTextureCapture: 0
xboxEnableAvatar: 0 xboxEnableAvatar: 0
xboxEnableKinect: 0 xboxEnableKinect: 0
xboxEnableKinectAutoTracking: 0 xboxEnableKinectAutoTracking: 0
xboxEnableFitness: 0 xboxEnableFitness: 0
visibleInBackground: 0 visibleInBackground: 0
macFullscreenMode: 2 macFullscreenMode: 2
d3d9FullscreenMode: 1 d3d9FullscreenMode: 1
d3d11FullscreenMode: 1 d3d11FullscreenMode: 1
xboxSpeechDB: 0 xboxSpeechDB: 0
xboxEnableHeadOrientation: 0 xboxEnableHeadOrientation: 0
xboxEnableGuest: 0 xboxEnableGuest: 0
n3dsDisableStereoscopicView: 0 n3dsDisableStereoscopicView: 0
n3dsEnableSharedListOpt: 1 n3dsEnableSharedListOpt: 1
n3dsEnableVSync: 0 n3dsEnableVSync: 0
xboxOneResolution: 0 xboxOneResolution: 0
ps3SplashScreen: {fileID: 0} ps3SplashScreen: {fileID: 0}
videoMemoryForVertexBuffers: 0 videoMemoryForVertexBuffers: 0
psp2PowerMode: 0 psp2PowerMode: 0
psp2AcquireBGM: 1 psp2AcquireBGM: 1
wiiUTVResolution: 0 wiiUTVResolution: 0
wiiUGamePadMSAA: 1 wiiUGamePadMSAA: 1
wiiUSupportsNunchuk: 0 wiiUSupportsNunchuk: 0
wiiUSupportsClassicController: 0 wiiUSupportsClassicController: 0
wiiUSupportsBalanceBoard: 0 wiiUSupportsBalanceBoard: 0
wiiUSupportsMotionPlus: 0 wiiUSupportsMotionPlus: 0
wiiUSupportsProController: 0 wiiUSupportsProController: 0
wiiUAllowScreenCapture: 1 wiiUAllowScreenCapture: 1
wiiUControllerCount: 0 wiiUControllerCount: 0
m_SupportedAspectRatios: m_SupportedAspectRatios:
4:3: 1 4:3: 1
5:4: 1 5:4: 1
16:10: 1 16:10: 1
16:9: 1 16:9: 1
Others: 1 Others: 1
bundleIdentifier: com.Company.ProductName bundleIdentifier: com.Company.ProductName
bundleVersion: 1.0 bundleVersion: 1.0
preloadedAssets: [] preloadedAssets: []
metroEnableIndependentInputSource: 0 metroEnableIndependentInputSource: 0
metroEnableLowLatencyPresentationAPI: 0 metroEnableLowLatencyPresentationAPI: 0
xboxOneDisableKinectGpuReservation: 0 xboxOneDisableKinectGpuReservation: 0
virtualRealitySupported: 0 virtualRealitySupported: 0
productGUID: d4b9966657a10f244b36c2bf33b7aaf5 productGUID: affd9915876e7bc42a4bf20f2a215263
AndroidBundleVersionCode: 1 AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 9 AndroidMinSdkVersion: 9
AndroidPreferredInstallLocation: 1 AndroidPreferredInstallLocation: 1
aotOptions: aotOptions:
apiCompatibilityLevel: 2 apiCompatibilityLevel: 2
stripEngineCode: 1 stripEngineCode: 1
iPhoneStrippingLevel: 0 iPhoneStrippingLevel: 0
iPhoneScriptCallOptimization: 0 iPhoneScriptCallOptimization: 0
iPhoneBuildNumber: 0 iPhoneBuildNumber: 0
ForceInternetPermission: 0 ForceInternetPermission: 0
ForceSDCardPermission: 0 ForceSDCardPermission: 0
CreateWallpaper: 0 CreateWallpaper: 0
APKExpansionFiles: 0 APKExpansionFiles: 0
preloadShaders: 0 preloadShaders: 0
StripUnusedMeshComponents: 0 StripUnusedMeshComponents: 0
VertexChannelCompressionMask: VertexChannelCompressionMask:
serializedVersion: 2 serializedVersion: 2
m_Bits: 238 m_Bits: 238
iPhoneSdkVersion: 988 iPhoneSdkVersion: 988
iPhoneTargetOSVersion: 22 iPhoneTargetOSVersion: 22
uIPrerenderedIcon: 0 uIPrerenderedIcon: 0
uIRequiresPersistentWiFi: 0 uIRequiresPersistentWiFi: 0
uIRequiresFullScreen: 1 uIRequiresFullScreen: 1
uIStatusBarHidden: 1 uIStatusBarHidden: 1
uIExitOnSuspend: 0 uIExitOnSuspend: 0
uIStatusBarStyle: 0 uIStatusBarStyle: 0
iPhoneSplashScreen: {fileID: 0} iPhoneSplashScreen: {fileID: 0}
iPhoneHighResSplashScreen: {fileID: 0} iPhoneHighResSplashScreen: {fileID: 0}
iPhoneTallHighResSplashScreen: {fileID: 0} iPhoneTallHighResSplashScreen: {fileID: 0}
iPhone47inSplashScreen: {fileID: 0} iPhone47inSplashScreen: {fileID: 0}
iPhone55inPortraitSplashScreen: {fileID: 0} iPhone55inPortraitSplashScreen: {fileID: 0}
iPhone55inLandscapeSplashScreen: {fileID: 0} iPhone55inLandscapeSplashScreen: {fileID: 0}
iPadPortraitSplashScreen: {fileID: 0} iPadPortraitSplashScreen: {fileID: 0}
iPadHighResPortraitSplashScreen: {fileID: 0} iPadHighResPortraitSplashScreen: {fileID: 0}
iPadLandscapeSplashScreen: {fileID: 0} iPadLandscapeSplashScreen: {fileID: 0}
iPadHighResLandscapeSplashScreen: {fileID: 0} iPadHighResLandscapeSplashScreen: {fileID: 0}
iOSLaunchScreenType: 0 iOSLaunchScreenType: 0
iOSLaunchScreenPortrait: {fileID: 0} iOSLaunchScreenPortrait: {fileID: 0}
iOSLaunchScreenLandscape: {fileID: 0} iOSLaunchScreenLandscape: {fileID: 0}
iOSLaunchScreenBackgroundColor: iOSLaunchScreenBackgroundColor:
serializedVersion: 2 serializedVersion: 2
rgba: 0 rgba: 0
iOSLaunchScreenFillPct: 100 iOSLaunchScreenFillPct: 100
iOSLaunchScreenSize: 100 iOSLaunchScreenSize: 100
iOSLaunchScreenCustomXibPath: iOSLaunchScreenCustomXibPath:
iOSLaunchScreeniPadType: 0 iOSLaunchScreeniPadType: 0
iOSLaunchScreeniPadImage: {fileID: 0} iOSLaunchScreeniPadImage: {fileID: 0}
iOSLaunchScreeniPadBackgroundColor: iOSLaunchScreeniPadBackgroundColor:
serializedVersion: 2 serializedVersion: 2
rgba: 0 rgba: 0
iOSLaunchScreeniPadFillPct: 100 iOSLaunchScreeniPadFillPct: 100
iOSLaunchScreeniPadSize: 100 iOSLaunchScreeniPadSize: 100
iOSLaunchScreeniPadCustomXibPath: iOSLaunchScreeniPadCustomXibPath:
iOSDeviceRequirements: [] iOSDeviceRequirements: []
AndroidTargetDevice: 0 AndroidTargetDevice: 0
AndroidSplashScreenScale: 0 AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0} androidSplashScreen: {fileID: 0}
AndroidKeystoreName: AndroidKeystoreName:
AndroidKeyaliasName: AndroidKeyaliasName:
AndroidTVCompatibility: 1 AndroidTVCompatibility: 1
AndroidIsGame: 1 AndroidIsGame: 1
androidEnableBanner: 1 androidEnableBanner: 1
m_AndroidBanners: m_AndroidBanners:
- width: 320 - width: 320
height: 180 height: 180
banner: {fileID: 0} banner: {fileID: 0}
androidGamepadSupportLevel: 0 androidGamepadSupportLevel: 0
resolutionDialogBanner: {fileID: 0} resolutionDialogBanner: {fileID: 0}
m_BuildTargetIcons: m_BuildTargetIcons: []
- m_BuildTarget:  
m_Icons:  
- serializedVersion: 2  
m_Icon: {fileID: 0}  
m_Width: 128  
m_Height: 128  
m_BuildTargetBatching: [] m_BuildTargetBatching: []
m_BuildTargetGraphicsAPIs: [] m_BuildTargetGraphicsAPIs: []
webPlayerTemplate: APPLICATION:Default webPlayerTemplate: APPLICATION:Default
m_TemplateCustomTags: {} m_TemplateCustomTags: {}
wiiUTitleID: 0005000011000000 wiiUTitleID: 0005000011000000
wiiUGroupID: 00010000 wiiUGroupID: 00010000
wiiUCommonSaveSize: 4096 wiiUCommonSaveSize: 4096
wiiUAccountSaveSize: 2048 wiiUAccountSaveSize: 2048
wiiUOlvAccessKey: 0 wiiUOlvAccessKey: 0
wiiUTinCode: 0 wiiUTinCode: 0
wiiUJoinGameId: 0 wiiUJoinGameId: 0
wiiUJoinGameModeMask: 0000000000000000 wiiUJoinGameModeMask: 0000000000000000
wiiUCommonBossSize: 0 wiiUCommonBossSize: 0
wiiUAccountBossSize: 0 wiiUAccountBossSize: 0
wiiUAddOnUniqueIDs: [] wiiUAddOnUniqueIDs: []
wiiUMainThreadStackSize: 3072 wiiUMainThreadStackSize: 3072
wiiULoaderThreadStackSize: 1024 wiiULoaderThreadStackSize: 1024
wiiUSystemHeapSize: 128 wiiUSystemHeapSize: 128
wiiUTVStartupScreen: {fileID: 0} wiiUTVStartupScreen: {fileID: 0}
wiiUGamePadStartupScreen: {fileID: 0} wiiUGamePadStartupScreen: {fileID: 0}
wiiUProfilerLibPath: wiiUProfilerLibPath:
actionOnDotNetUnhandledException: 1 actionOnDotNetUnhandledException: 1
enableInternalProfiler: 0 enableInternalProfiler: 0
logObjCUncaughtExceptions: 1 logObjCUncaughtExceptions: 1
enableCrashReportAPI: 0 enableCrashReportAPI: 0
locationUsageDescription: locationUsageDescription:
XboxTitleId: XboxTitleId:
XboxImageXexPath: XboxImageXexPath:
XboxSpaPath: XboxSpaPath:
XboxGenerateSpa: 0 XboxGenerateSpa: 0
XboxDeployKinectResources: 0 XboxDeployKinectResources: 0
XboxSplashScreen: {fileID: 0} XboxSplashScreen: {fileID: 0}
xboxEnableSpeech: 0 xboxEnableSpeech: 0
xboxAdditionalTitleMemorySize: 0 xboxAdditionalTitleMemorySize: 0
xboxDeployKinectHeadOrientation: 0 xboxDeployKinectHeadOrientation: 0
xboxDeployKinectHeadPosition: 0 xboxDeployKinectHeadPosition: 0
ps3TitleConfigPath: ps3TitleConfigPath:
ps3DLCConfigPath: ps3DLCConfigPath:
ps3ThumbnailPath: ps3ThumbnailPath:
ps3BackgroundPath: ps3BackgroundPath:
ps3SoundPath: ps3SoundPath:
ps3NPAgeRating: 12 ps3NPAgeRating: 12
ps3TrophyCommId: ps3TrophyCommId:
ps3NpCommunicationPassphrase: ps3NpCommunicationPassphrase:
ps3TrophyPackagePath: ps3TrophyPackagePath:
ps3BootCheckMaxSaveGameSizeKB: 128 ps3BootCheckMaxSaveGameSizeKB: 128
ps3TrophyCommSig: ps3TrophyCommSig:
ps3SaveGameSlots: 1 ps3SaveGameSlots: 1
ps3TrialMode: 0 ps3TrialMode: 0
ps3VideoMemoryForAudio: 0 ps3VideoMemoryForAudio: 0
ps3EnableVerboseMemoryStats: 0 ps3EnableVerboseMemoryStats: 0
ps3UseSPUForUmbra: 0 ps3UseSPUForUmbra: 0
ps3EnableMoveSupport: 1 ps3EnableMoveSupport: 1
ps3DisableDolbyEncoding: 0 ps3DisableDolbyEncoding: 0
ps4NPAgeRating: 12 ps4NPAgeRating: 12
ps4NPTitleSecret: ps4NPTitleSecret:
ps4NPTrophyPackPath: ps4NPTrophyPackPath:
ps4ParentalLevel: 1 ps4ParentalLevel: 1
ps4ContentID: ED1633-NPXX51362_00-0000000000000000 ps4ContentID: ED1633-NPXX51362_00-0000000000000000
ps4Category: 0 ps4Category: 0
ps4MasterVersion: 01.00 ps4MasterVersion: 01.00
ps4AppVersion: 01.00 ps4AppVersion: 01.00
ps4AppType: 0 ps4AppType: 0
ps4ParamSfxPath: ps4ParamSfxPath:
ps4VideoOutPixelFormat: 0 ps4VideoOutPixelFormat: 0
ps4VideoOutResolution: 4 ps4VideoOutResolution: 4
ps4PronunciationXMLPath: ps4PronunciationXMLPath:
ps4PronunciationSIGPath: ps4PronunciationSIGPath:
ps4BackgroundImagePath: ps4BackgroundImagePath:
ps4StartupImagePath: ps4StartupImagePath:
ps4SaveDataImagePath: ps4SaveDataImagePath:
ps4SdkOverride: ps4SdkOverride:
ps4BGMPath: ps4BGMPath:
ps4ShareFilePath: ps4ShareFilePath:
ps4ShareOverlayImagePath: ps4ShareOverlayImagePath:
ps4PrivacyGuardImagePath: ps4PrivacyGuardImagePath:
ps4NPtitleDatPath: ps4NPtitleDatPath:
ps4RemotePlayKeyAssignment: -1 ps4RemotePlayKeyAssignment: -1
ps4RemotePlayKeyMappingDir: ps4RemotePlayKeyMappingDir:
ps4EnterButtonAssignment: 1 ps4EnterButtonAssignment: 1
ps4ApplicationParam1: 0 ps4ApplicationParam1: 0
ps4ApplicationParam2: 0 ps4ApplicationParam2: 0
ps4ApplicationParam3: 0 ps4ApplicationParam3: 0
ps4ApplicationParam4: 0 ps4ApplicationParam4: 0
ps4DownloadDataSize: 0 ps4DownloadDataSize: 0
ps4GarlicHeapSize: 2048 ps4GarlicHeapSize: 2048
ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
ps4pnSessions: 1 ps4pnSessions: 1
ps4pnPresence: 1 ps4pnPresence: 1
ps4pnFriends: 1 ps4pnFriends: 1
ps4pnGameCustomData: 1 ps4pnGameCustomData: 1
playerPrefsSupport: 0 playerPrefsSupport: 0
ps4ReprojectionSupport: 0 ps4ReprojectionSupport: 0
ps4UseAudio3dBackend: 0 ps4UseAudio3dBackend: 0
ps4Audio3dVirtualSpeakerCount: 14 ps4Audio3dVirtualSpeakerCount: 14
ps4attribCpuUsage: 0 ps4attribCpuUsage: 0
ps4SocialScreenEnabled: 0 ps4SocialScreenEnabled: 0
ps4attribUserManagement: 0 ps4attribUserManagement: 0
ps4attribMoveSupport: 0 ps4attribMoveSupport: 0
ps4attrib3DSupport: 0 ps4attrib3DSupport: 0
ps4attribShareSupport: 0 ps4attribShareSupport: 0
ps4IncludedModules: [] ps4IncludedModules: []
monoEnv: monoEnv:
psp2Splashimage: {fileID: 0} psp2Splashimage: {fileID: 0}
psp2NPTrophyPackPath: psp2NPTrophyPackPath:
psp2NPSupportGBMorGJP: 0 psp2NPSupportGBMorGJP: 0
psp2NPAgeRating: 12 psp2NPAgeRating: 12
psp2NPTitleDatPath: psp2NPTitleDatPath:
psp2NPCommsID: psp2NPCommsID:
psp2NPCommunicationsID: psp2NPCommunicationsID:
psp2NPCommsPassphrase: psp2NPCommsPassphrase:
psp2NPCommsSig: psp2NPCommsSig:
psp2ParamSfxPath: psp2ParamSfxPath:
psp2ManualPath: psp2ManualPath:
psp2LiveAreaGatePath: psp2LiveAreaGatePath:
psp2LiveAreaBackroundPath: psp2LiveAreaBackroundPath:
psp2LiveAreaPath: psp2LiveAreaPath:
psp2LiveAreaTrialPath: psp2LiveAreaTrialPath:
psp2PatchChangeInfoPath: psp2PatchChangeInfoPath:
psp2PatchOriginalPackage: psp2PatchOriginalPackage:
psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui
psp2KeystoneFile: psp2KeystoneFile:
psp2MemoryExpansionMode: 0 psp2MemoryExpansionMode: 0
psp2DRMType: 0 psp2DRMType: 0
psp2StorageType: 0 psp2StorageType: 0
psp2MediaCapacity: 0 psp2MediaCapacity: 0
psp2DLCConfigPath: psp2DLCConfigPath:
psp2ThumbnailPath: psp2ThumbnailPath:
psp2BackgroundPath: psp2BackgroundPath:
psp2SoundPath: psp2SoundPath:
psp2TrophyCommId: psp2TrophyCommId:
psp2TrophyPackagePath: psp2TrophyPackagePath:
psp2PackagedResourcesPath: psp2PackagedResourcesPath:
psp2SaveDataQuota: 10240 psp2SaveDataQuota: 10240
psp2ParentalLevel: 1 psp2ParentalLevel: 1
psp2ShortTitle: Not Set psp2ShortTitle: Not Set
psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF
psp2Category: 0 psp2Category: 0
psp2MasterVersion: 01.00 psp2MasterVersion: 01.00
psp2AppVersion: 01.00 psp2AppVersion: 01.00
psp2TVBootMode: 0 psp2TVBootMode: 0
psp2EnterButtonAssignment: 2 psp2EnterButtonAssignment: 2
psp2TVDisableEmu: 0 psp2TVDisableEmu: 0
psp2AllowTwitterDialog: 1 psp2AllowTwitterDialog: 1
psp2Upgradable: 0 psp2Upgradable: 0
psp2HealthWarning: 0 psp2HealthWarning: 0
psp2UseLibLocation: 0 psp2UseLibLocation: 0
psp2InfoBarOnStartup: 0 psp2InfoBarOnStartup: 0
psp2InfoBarColor: 0 psp2InfoBarColor: 0
psmSplashimage: {fileID: 0} psmSplashimage: {fileID: 0}
spritePackerPolicy: spritePackerPolicy:
scriptingDefineSymbols: {} scriptingDefineSymbols: {}
metroPackageName: KerbalEngineer-Unity metroPackageName: New Unity Project
metroPackageLogo: metroPackageLogo:
metroPackageLogo140: metroPackageLogo140:
metroPackageLogo180: metroPackageLogo180:
metroPackageLogo240: metroPackageLogo240:
metroPackageVersion: metroPackageVersion:
metroCertificatePath: metroCertificatePath:
metroCertificatePassword: metroCertificatePassword:
metroCertificateSubject: metroCertificateSubject:
metroCertificateIssuer: metroCertificateIssuer:
metroCertificateNotAfter: 0000000000000000 metroCertificateNotAfter: 0000000000000000
metroApplicationDescription: KerbalEngineer-Unity metroApplicationDescription: New Unity Project
metroStoreTileLogo80: metroStoreTileLogo80:
metroStoreTileLogo: metroStoreTileLogo:
metroStoreTileLogo140: metroStoreTileLogo140:
metroStoreTileLogo180: metroStoreTileLogo180:
metroStoreTileWideLogo80: metroStoreTileWideLogo80:
metroStoreTileWideLogo: metroStoreTileWideLogo:
metroStoreTileWideLogo140: metroStoreTileWideLogo140:
metroStoreTileWideLogo180: metroStoreTileWideLogo180:
metroStoreTileSmallLogo80: metroStoreTileSmallLogo80:
metroStoreTileSmallLogo: metroStoreTileSmallLogo:
metroStoreTileSmallLogo140: metroStoreTileSmallLogo140:
metroStoreTileSmallLogo180: metroStoreTileSmallLogo180:
metroStoreSmallTile80: metroStoreSmallTile80:
metroStoreSmallTile: metroStoreSmallTile:
metroStoreSmallTile140: metroStoreSmallTile140:
metroStoreSmallTile180: metroStoreSmallTile180:
metroStoreLargeTile80: metroStoreLargeTile80:
metroStoreLargeTile: metroStoreLargeTile:
metroStoreLargeTile140: metroStoreLargeTile140:
metroStoreLargeTile180: metroStoreLargeTile180:
metroStoreSplashScreenImage: metroStoreSplashScreenImage:
metroStoreSplashScreenImage140: metroStoreSplashScreenImage140:
metroStoreSplashScreenImage180: metroStoreSplashScreenImage180:
metroPhoneAppIcon: metroPhoneAppIcon:
metroPhoneAppIcon140: metroPhoneAppIcon140:
metroPhoneAppIcon240: metroPhoneAppIcon240:
metroPhoneSmallTile: metroPhoneSmallTile:
metroPhoneSmallTile140: metroPhoneSmallTile140:
metroPhoneSmallTile240: metroPhoneSmallTile240:
metroPhoneMediumTile: metroPhoneMediumTile:
metroPhoneMediumTile140: metroPhoneMediumTile140:
metroPhoneMediumTile240: metroPhoneMediumTile240:
metroPhoneWideTile: metroPhoneWideTile:
metroPhoneWideTile140: metroPhoneWideTile140:
metroPhoneWideTile240: metroPhoneWideTile240:
metroPhoneSplashScreenImage: metroPhoneSplashScreenImage:
metroPhoneSplashScreenImage140: metroPhoneSplashScreenImage140:
metroPhoneSplashScreenImage240: metroPhoneSplashScreenImage240:
metroTileShortName: metroTileShortName:
metroCommandLineArgsFile: metroCommandLineArgsFile:
metroTileShowName: 0 metroTileShowName: 0
metroMediumTileShowName: 0 metroMediumTileShowName: 0
metroLargeTileShowName: 0 metroLargeTileShowName: 0
metroWideTileShowName: 0 metroWideTileShowName: 0
metroDefaultTileSize: 1 metroDefaultTileSize: 1
metroTileForegroundText: 1 metroTileForegroundText: 1
metroTileBackgroundColor: {r: .13333334, g: .172549024, b: .215686277, a: 0} metroTileBackgroundColor: {r: 0, g: 0, b: 0, a: 1}
metroSplashScreenBackgroundColor: {r: .13333334, g: .172549024, b: .215686277, a: 1} metroSplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1}
metroSplashScreenUseBackgroundColor: 1 metroSplashScreenUseBackgroundColor: 0
platformCapabilities: {} platformCapabilities: {}
metroFTAName: metroFTAName:
metroFTAFileTypes: [] metroFTAFileTypes: []
metroProtocolName: metroProtocolName:
metroCompilationOverrides: 1 metroCompilationOverrides: 1
blackberryDeviceAddress: blackberryDeviceAddress:
blackberryDevicePassword: blackberryDevicePassword:
blackberryTokenPath: blackberryTokenPath:
blackberryTokenExires: blackberryTokenExires:
blackberryTokenAuthor: blackberryTokenAuthor:
blackberryTokenAuthorId: blackberryTokenAuthorId:
blackberryCskPassword: blackberryCskPassword:
blackberrySaveLogPath: blackberrySaveLogPath:
blackberrySharedPermissions: 0 blackberrySharedPermissions: 0
blackberryCameraPermissions: 0 blackberryCameraPermissions: 0
blackberryGPSPermissions: 0 blackberryGPSPermissions: 0
blackberryDeviceIDPermissions: 0 blackberryDeviceIDPermissions: 0
blackberryMicrophonePermissions: 0 blackberryMicrophonePermissions: 0
blackberryGamepadSupport: 0 blackberryGamepadSupport: 0
blackberryBuildId: 0 blackberryBuildId: 0
blackberryLandscapeSplashScreen: {fileID: 0} blackberryLandscapeSplashScreen: {fileID: 0}
blackberryPortraitSplashScreen: {fileID: 0} blackberryPortraitSplashScreen: {fileID: 0}
blackberrySquareSplashScreen: {fileID: 0} blackberrySquareSplashScreen: {fileID: 0}
tizenProductDescription: tizenProductDescription:
tizenProductURL: tizenProductURL:
tizenSigningProfileName: tizenSigningProfileName:
tizenGPSPermissions: 0 tizenGPSPermissions: 0
tizenMicrophonePermissions: 0 tizenMicrophonePermissions: 0
n3dsUseExtSaveData: 0 n3dsUseExtSaveData: 0
n3dsCompressStaticMem: 1 n3dsCompressStaticMem: 1
n3dsExtSaveDataNumber: 0x12345 n3dsExtSaveDataNumber: 0x12345
n3dsStackSize: 131072 n3dsStackSize: 131072
n3dsTargetPlatform: 2 n3dsTargetPlatform: 2
n3dsRegion: 7 n3dsRegion: 7
n3dsMediaSize: 0 n3dsMediaSize: 0
n3dsLogoStyle: 3 n3dsLogoStyle: 3
n3dsTitle: GameName n3dsTitle: GameName
n3dsProductCode: n3dsProductCode:
n3dsApplicationId: 0xFF3FF n3dsApplicationId: 0xFF3FF
stvDeviceAddress: stvDeviceAddress:
stvProductDescription: stvProductDescription:
stvProductAuthor: stvProductAuthor:
stvProductAuthorEmail: stvProductAuthorEmail:
stvProductLink: stvProductLink:
stvProductCategory: 0 stvProductCategory: 0
XboxOneProductId: XboxOneProductId:
XboxOneUpdateKey: XboxOneUpdateKey:
XboxOneSandboxId: XboxOneSandboxId:
XboxOneContentId: XboxOneContentId:
XboxOneTitleId: XboxOneTitleId:
XboxOneSCId: XboxOneSCId:
XboxOneGameOsOverridePath: XboxOneGameOsOverridePath:
XboxOnePackagingOverridePath: XboxOnePackagingOverridePath:
XboxOneAppManifestOverridePath: XboxOneAppManifestOverridePath:
XboxOnePackageEncryption: 0 XboxOnePackageEncryption: 0
XboxOnePackageUpdateGranularity: 2 XboxOnePackageUpdateGranularity: 2
XboxOneDescription: XboxOneDescription:
XboxOneIsContentPackage: 0 XboxOneIsContentPackage: 0
XboxOneEnableGPUVariability: 0 XboxOneEnableGPUVariability: 0
XboxOneSockets: {} XboxOneSockets: {}
XboxOneSplashScreen: {fileID: 0} XboxOneSplashScreen: {fileID: 0}
XboxOneAllowedProductIds: [] XboxOneAllowedProductIds: []
XboxOnePersistentLocalStorageSize: 0 XboxOnePersistentLocalStorageSize: 0
intPropertyNames: intPropertyNames:
- Android::ScriptingBackend - Android::ScriptingBackend
- Metro::ScriptingBackend - Metro::ScriptingBackend
- Standalone::ScriptingBackend - Standalone::ScriptingBackend
- WP8::ScriptingBackend - WP8::ScriptingBackend
- WebGL::ScriptingBackend - WebGL::ScriptingBackend
- WebGL::audioCompressionFormat - WebGL::audioCompressionFormat
- WebGL::exceptionSupport - WebGL::exceptionSupport
- WebGL::memorySize - WebGL::memorySize
- WebPlayer::ScriptingBackend - WebPlayer::ScriptingBackend
- iOS::Architecture - iOS::Architecture
- iOS::EnableIncrementalBuildSupportForIl2cpp - iOS::EnableIncrementalBuildSupportForIl2cpp
- iOS::ScriptingBackend - iOS::ScriptingBackend
- tvOS::Architecture  
- tvOS::EnableIncrementalBuildSupportForIl2cpp  
- tvOS::ScriptingBackend  
Android::ScriptingBackend: 0 Android::ScriptingBackend: 0
Metro::ScriptingBackend: 2 Metro::ScriptingBackend: 2
Standalone::ScriptingBackend: 0 Standalone::ScriptingBackend: 0
WP8::ScriptingBackend: 2 WP8::ScriptingBackend: 2
WebGL::ScriptingBackend: 1 WebGL::ScriptingBackend: 1
WebGL::audioCompressionFormat: 4 WebGL::audioCompressionFormat: 4
WebGL::exceptionSupport: 1 WebGL::exceptionSupport: 1
WebGL::memorySize: 256 WebGL::memorySize: 256
WebPlayer::ScriptingBackend: 0 WebPlayer::ScriptingBackend: 0
iOS::Architecture: 2 iOS::Architecture: 2
iOS::EnableIncrementalBuildSupportForIl2cpp: 1 iOS::EnableIncrementalBuildSupportForIl2cpp: 1
iOS::ScriptingBackend: 1 iOS::ScriptingBackend: 1
tvOS::Architecture: 1  
tvOS::EnableIncrementalBuildSupportForIl2cpp: 0  
tvOS::ScriptingBackend: 1  
boolPropertyNames: boolPropertyNames:
- WebGL::analyzeBuildSize - WebGL::analyzeBuildSize
- WebGL::dataCaching - WebGL::dataCaching
- WebGL::useEmbeddedResources - WebGL::useEmbeddedResources
- XboxOne::enus - XboxOne::enus
WebGL::analyzeBuildSize: 0 WebGL::analyzeBuildSize: 0
WebGL::dataCaching: 0 WebGL::dataCaching: 0
WebGL::useEmbeddedResources: 0 WebGL::useEmbeddedResources: 0
XboxOne::enus: 1 XboxOne::enus: 1
stringPropertyNames: stringPropertyNames:
- WebGL::emscriptenArgs - WebGL::emscriptenArgs
- WebGL::template - WebGL::template
- additionalIl2CppArgs::additionalIl2CppArgs - additionalIl2CppArgs::additionalIl2CppArgs
WebGL::emscriptenArgs: WebGL::emscriptenArgs:
WebGL::template: APPLICATION:Default WebGL::template: APPLICATION:Default
additionalIl2CppArgs::additionalIl2CppArgs: additionalIl2CppArgs::additionalIl2CppArgs:
firstStreamedSceneWithResources: 0 firstStreamedSceneWithResources: 0
cloudProjectId: cloudProjectId:
projectName: projectName:
organizationId: organizationId:
cloudEnabled: 0 cloudEnabled: 0
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!47 &1 --- !u!47 &1
QualitySettings: QualitySettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 5 serializedVersion: 5
m_CurrentQuality: 5 m_CurrentQuality: 5
m_QualitySettings: m_QualitySettings:
- serializedVersion: 2 - serializedVersion: 2
name: Fastest name: Fastest
pixelLightCount: 0 pixelLightCount: 0
shadows: 0 shadows: 0
shadowResolution: 0 shadowResolution: 0
shadowProjection: 1 shadowProjection: 1
shadowCascades: 1 shadowCascades: 1
shadowDistance: 15 shadowDistance: 15
shadowNearPlaneOffset: 2 shadowNearPlaneOffset: 2
shadowCascade2Split: 0.33333334 shadowCascade2Split: .333333343
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
blendWeights: 1 blendWeights: 1
textureQuality: 1 textureQuality: 1
anisotropicTextures: 0 anisotropicTextures: 0
antiAliasing: 0 antiAliasing: 0
softParticles: 0 softParticles: 0
softVegetation: 0 softVegetation: 0
realtimeReflectionProbes: 0 realtimeReflectionProbes: 0
billboardsFaceCameraPosition: 0 billboardsFaceCameraPosition: 0
vSyncCount: 0 vSyncCount: 0
lodBias: 0.3 lodBias: .300000012
maximumLODLevel: 0 maximumLODLevel: 0
particleRaycastBudget: 4 particleRaycastBudget: 4
asyncUploadTimeSlice: 2  
asyncUploadBufferSize: 4  
excludedTargetPlatforms: [] excludedTargetPlatforms: []
- serializedVersion: 2 - serializedVersion: 2
name: Fast name: Fast
pixelLightCount: 0 pixelLightCount: 0
shadows: 0 shadows: 0
shadowResolution: 0 shadowResolution: 0
shadowProjection: 1 shadowProjection: 1
shadowCascades: 1 shadowCascades: 1
shadowDistance: 20 shadowDistance: 20
shadowNearPlaneOffset: 2 shadowNearPlaneOffset: 2
shadowCascade2Split: 0.33333334 shadowCascade2Split: .333333343
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
blendWeights: 2 blendWeights: 2
textureQuality: 0 textureQuality: 0
anisotropicTextures: 0 anisotropicTextures: 0
antiAliasing: 0 antiAliasing: 0
softParticles: 0 softParticles: 0
softVegetation: 0 softVegetation: 0
realtimeReflectionProbes: 0 realtimeReflectionProbes: 0
billboardsFaceCameraPosition: 0 billboardsFaceCameraPosition: 0
vSyncCount: 0 vSyncCount: 0
lodBias: 0.4 lodBias: .400000006
maximumLODLevel: 0 maximumLODLevel: 0
particleRaycastBudget: 16 particleRaycastBudget: 16
asyncUploadTimeSlice: 2  
asyncUploadBufferSize: 4  
excludedTargetPlatforms: [] excludedTargetPlatforms: []
- serializedVersion: 2 - serializedVersion: 2
name: Simple name: Simple
pixelLightCount: 1 pixelLightCount: 1
shadows: 1 shadows: 1
shadowResolution: 0 shadowResolution: 0
shadowProjection: 1 shadowProjection: 1
shadowCascades: 1 shadowCascades: 1
shadowDistance: 20 shadowDistance: 20
shadowNearPlaneOffset: 2 shadowNearPlaneOffset: 2
shadowCascade2Split: 0.33333334 shadowCascade2Split: .333333343
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
blendWeights: 2 blendWeights: 2
textureQuality: 0 textureQuality: 0
anisotropicTextures: 1 anisotropicTextures: 1
antiAliasing: 0 antiAliasing: 0
softParticles: 0 softParticles: 0
softVegetation: 0 softVegetation: 0
realtimeReflectionProbes: 0 realtimeReflectionProbes: 0
billboardsFaceCameraPosition: 0 billboardsFaceCameraPosition: 0
vSyncCount: 0 vSyncCount: 0
lodBias: 0.7 lodBias: .699999988
maximumLODLevel: 0 maximumLODLevel: 0
particleRaycastBudget: 64 particleRaycastBudget: 64
asyncUploadTimeSlice: 2  
asyncUploadBufferSize: 4  
excludedTargetPlatforms: [] excludedTargetPlatforms: []
- serializedVersion: 2 - serializedVersion: 2
name: Good name: Good
pixelLightCount: 2 pixelLightCount: 2
shadows: 2 shadows: 2
shadowResolution: 1 shadowResolution: 1
shadowProjection: 1 shadowProjection: 1
shadowCascades: 2 shadowCascades: 2
shadowDistance: 40 shadowDistance: 40
shadowNearPlaneOffset: 2 shadowNearPlaneOffset: 2
shadowCascade2Split: 0.33333334 shadowCascade2Split: .333333343
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
blendWeights: 2 blendWeights: 2
textureQuality: 0 textureQuality: 0
anisotropicTextures: 1 anisotropicTextures: 1
antiAliasing: 0 antiAliasing: 0
softParticles: 0 softParticles: 0
softVegetation: 1 softVegetation: 1
realtimeReflectionProbes: 1 realtimeReflectionProbes: 1
billboardsFaceCameraPosition: 1 billboardsFaceCameraPosition: 1
vSyncCount: 1 vSyncCount: 1
lodBias: 1 lodBias: 1
maximumLODLevel: 0 maximumLODLevel: 0
particleRaycastBudget: 256 particleRaycastBudget: 256
asyncUploadTimeSlice: 2  
asyncUploadBufferSize: 4  
excludedTargetPlatforms: [] excludedTargetPlatforms: []
- serializedVersion: 2 - serializedVersion: 2
name: Beautiful name: Beautiful
pixelLightCount: 3 pixelLightCount: 3
shadows: 2 shadows: 2
shadowResolution: 2 shadowResolution: 2
shadowProjection: 1 shadowProjection: 1
shadowCascades: 2 shadowCascades: 2
shadowDistance: 70 shadowDistance: 70
shadowNearPlaneOffset: 2 shadowNearPlaneOffset: 2
shadowCascade2Split: 0.33333334 shadowCascade2Split: .333333343
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
blendWeights: 4 blendWeights: 4
textureQuality: 0 textureQuality: 0
anisotropicTextures: 2 anisotropicTextures: 2
antiAliasing: 2 antiAliasing: 2
softParticles: 1 softParticles: 1
softVegetation: 1 softVegetation: 1
realtimeReflectionProbes: 1 realtimeReflectionProbes: 1
billboardsFaceCameraPosition: 1 billboardsFaceCameraPosition: 1
vSyncCount: 1 vSyncCount: 1
lodBias: 1.5 lodBias: 1.5
maximumLODLevel: 0 maximumLODLevel: 0
particleRaycastBudget: 1024 particleRaycastBudget: 1024
asyncUploadTimeSlice: 2  
asyncUploadBufferSize: 4  
excludedTargetPlatforms: [] excludedTargetPlatforms: []
- serializedVersion: 2 - serializedVersion: 2
name: Fantastic name: Fantastic
pixelLightCount: 4 pixelLightCount: 4
shadows: 2 shadows: 2
shadowResolution: 2 shadowResolution: 2
shadowProjection: 1 shadowProjection: 1
shadowCascades: 4 shadowCascades: 4
shadowDistance: 150 shadowDistance: 150
shadowNearPlaneOffset: 2 shadowNearPlaneOffset: 2
shadowCascade2Split: 0.33333334 shadowCascade2Split: .333333343
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowCascade4Split: {x: .0666666701, y: .200000003, z: .466666669}
blendWeights: 4 blendWeights: 4
textureQuality: 0 textureQuality: 0
anisotropicTextures: 2 anisotropicTextures: 2
antiAliasing: 2 antiAliasing: 2
softParticles: 1 softParticles: 1
softVegetation: 1 softVegetation: 1
realtimeReflectionProbes: 1 realtimeReflectionProbes: 1
billboardsFaceCameraPosition: 1 billboardsFaceCameraPosition: 1
vSyncCount: 1 vSyncCount: 1
lodBias: 2 lodBias: 2
maximumLODLevel: 0 maximumLODLevel: 0
particleRaycastBudget: 4096 particleRaycastBudget: 4096
asyncUploadTimeSlice: 2  
asyncUploadBufferSize: 4  
excludedTargetPlatforms: [] excludedTargetPlatforms: []
m_PerPlatformDefaultQuality: m_PerPlatformDefaultQuality:
Android: 2 Android: 2
BlackBerry: 2 BlackBerry: 2
GLES Emulation: 5 GLES Emulation: 5
Nintendo 3DS: 5 Nintendo 3DS: 5
PS3: 5 PS3: 5
PS4: 5 PS4: 5
PSM: 5 PSM: 5
PSP2: 2 PSP2: 2
Samsung TV: 2 Samsung TV: 2
Standalone: 5 Standalone: 5
Tizen: 2 Tizen: 2
WP8: 5 WP8: 5
Web: 5 Web: 5
WebGL: 3 WebGL: 3
WiiU: 5 Wii U: 5
Windows Store Apps: 5 Windows Store Apps: 5
XBOX360: 5 XBOX360: 5
XboxOne: 5 XboxOne: 5
iPhone: 2 iPhone: 2
tvOS: 5  
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!5 &1 --- !u!5 &1
TimeManager: TimeManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
Fixed Timestep: 0.02 Fixed Timestep: .0199999996
Maximum Allowed Timestep: 0.33333334 Maximum Allowed Timestep: .333333343
m_TimeScale: 1 m_TimeScale: 1
   
%YAML 1.1  
%TAG !u! tag:unity3d.com,2011:  
--- !u!310 &1  
UnityConnectSettings:  
m_ObjectHideFlags: 0  
UnityPurchasingSettings:  
m_Enabled: 0  
m_TestMode: 0  
UnityAnalyticsSettings:  
m_Enabled: 0  
m_InitializeOnStartup: 1  
m_TestMode: 0  
m_TestEventUrl:  
m_TestConfigUrl: