Removed use of ?. because it doesn't compile in VS2013
Removed use of ?. because it doesn't compile in VS2013

 Binary files a/Assets/Plugins/KerbalEngineer.Unity.dll and b/Assets/Plugins/KerbalEngineer.Unity.dll differ
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &104160  
GameObject:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
serializedVersion: 4  
m_Component:  
- 224: {fileID: 22478204}  
- 114: {fileID: 11445012}  
m_Layer: 5  
m_Name: Space  
m_TagString: Untagged  
m_Icon: {fileID: 0}  
m_NavMeshLayer: 0  
m_StaticEditorFlags: 0  
m_IsActive: 1  
--- !u!1 &104452 --- !u!1 &104452
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22454998} - 224: {fileID: 22454998}
- 222: {fileID: 22296168} - 222: {fileID: 22296168}
- 114: {fileID: 11459182} - 114: {fileID: 11459182}
m_Layer: 5 m_Layer: 5
m_Name: Selected m_Name: Selected
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &114528
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22468796}
  - 222: {fileID: 22254028}
  - 114: {fileID: 11494262}
  - 114: {fileID: 11417302}
  - 114: {fileID: 11415068}
  m_Layer: 5
  m_Name: ToggleControlBar
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &116014 --- !u!1 &116014
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22475412} - 224: {fileID: 22475412}
- 222: {fileID: 22223226} - 222: {fileID: 22223226}
- 114: {fileID: 11409704} - 114: {fileID: 11409704}
- 114: {fileID: 11424646} - 114: {fileID: 11424646}
m_Layer: 5 m_Layer: 5
m_Name: Content m_Name: Content
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &122098 --- !u!1 &122098
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22401100} - 224: {fileID: 22401100}
- 222: {fileID: 22201528} - 222: {fileID: 22201528}
- 114: {fileID: 11404586} - 114: {fileID: 11404586}
- 114: {fileID: 11461688} - 114: {fileID: 11461688}
- 114: {fileID: 11415068} - 114: {fileID: 11420706}
m_Layer: 5 m_Layer: 5
m_Name: ToggleControlBar m_Name: NewCustomSection
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &126098 --- !u!1 &126098
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22476196} - 224: {fileID: 22476196}
- 222: {fileID: 22270862} - 222: {fileID: 22270862}
- 114: {fileID: 11423044} - 114: {fileID: 11423044}
- 114: {fileID: 11485532} - 114: {fileID: 11485532}
- 225: {fileID: 22567868} - 225: {fileID: 22567868}
- 114: {fileID: 11415294} - 114: {fileID: 11415294}
m_Layer: 5 m_Layer: 5
m_Name: FlightMenu m_Name: FlightMenu
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &133376 --- !u!1 &133376
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22478174} - 224: {fileID: 22478174}
- 114: {fileID: 11443382} - 114: {fileID: 11443382}
m_Layer: 5 m_Layer: 5
m_Name: Controls m_Name: Controls
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &137786 --- !u!1 &137786
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22444606} - 224: {fileID: 22444606}
- 222: {fileID: 22267348} - 222: {fileID: 22267348}
- 114: {fileID: 11465882} - 114: {fileID: 11465882}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &138760 --- !u!1 &138760
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22409936} - 224: {fileID: 22409936}
- 222: {fileID: 22255938} - 222: {fileID: 22255938}
- 114: {fileID: 11403342} - 114: {fileID: 11403342}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &150266 --- !u!1 &150266
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22463980} - 224: {fileID: 22463980}
- 222: {fileID: 22210360} - 222: {fileID: 22210360}
- 114: {fileID: 11475868} - 114: {fileID: 11475868}
m_Layer: 5 m_Layer: 5
m_Name: Selected m_Name: Selected
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &156848 --- !u!1 &156848
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22483410} - 224: {fileID: 22483410}
- 222: {fileID: 22267572} - 222: {fileID: 22267572}
- 114: {fileID: 11463504} - 114: {fileID: 11463504}
- 114: {fileID: 11453198} - 114: {fileID: 11453198}
m_Layer: 5 m_Layer: 5
m_Name: Titlebar m_Name: Titlebar
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
  --- !u!1 &157290
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22435482}
  - 114: {fileID: 11462752}
  - 114: {fileID: 11483978}
  m_Layer: 5
  m_Name: Sections
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
--- !u!1 &172308 --- !u!1 &172308
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22401786} - 224: {fileID: 22401786}
- 222: {fileID: 22247322} - 222: {fileID: 22247322}
- 114: {fileID: 11439582} - 114: {fileID: 11439582}
m_Layer: 5 m_Layer: 5
m_Name: label m_Name: label
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
  --- !u!1 &193852
  GameObject:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  serializedVersion: 4
  m_Component:
  - 224: {fileID: 22411946}
  - 222: {fileID: 22255200}
  - 114: {fileID: 11465050}
  m_Layer: 5
  m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &194088 --- !u!1 &194088
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22469574} - 224: {fileID: 22469574}
- 222: {fileID: 22281674} - 222: {fileID: 22281674}
- 114: {fileID: 11498756} - 114: {fileID: 11498756}
- 114: {fileID: 11451984} - 114: {fileID: 11451984}
- 114: {fileID: 11485338} - 114: {fileID: 11485338}
m_Layer: 5 m_Layer: 5
m_Name: ToggleShowEngineer m_Name: ToggleShowEngineer
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!114 &11403342 --- !u!114 &11403342
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 138760} m_GameObject: {fileID: 138760}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1} m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 10 m_FontSize: 10
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 4 m_Alignment: 4
m_RichText: 1 m_RichText: 1
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: SHOW ENGINEER m_Text: SHOW ENGINEER
--- !u!114 &11404586 --- !u!114 &11404586
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 122098} m_GameObject: {fileID: 122098}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .501960814} m_Color: {r: .800000072, g: 1, b: 0, a: .501960814}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11409704 --- !u!114 &11409704
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 116014} m_GameObject: {fileID: 116014}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .313725501, g: .313725501, b: .313725501, a: .70588237} m_Color: {r: .313725501, g: .313725501, b: .313725501, a: .70588237}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11415068 --- !u!114 &11415068
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 122098} m_GameObject: {fileID: 114528}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Navigation: m_Navigation:
m_Mode: 3 m_Mode: 3
m_SelectOnUp: {fileID: 0} m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0} m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0} m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0} m_SelectOnRight: {fileID: 0}
m_Transition: 1 m_Transition: 1
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
  m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
  m_ColorMultiplier: 1
  m_FadeDuration: .100000001
  m_SpriteState:
  m_HighlightedSprite: {fileID: 0}
  m_PressedSprite: {fileID: 0}
  m_DisabledSprite: {fileID: 0}
  m_AnimationTriggers:
  m_NormalTrigger: Normal
  m_HighlightedTrigger: Highlighted
  m_PressedTrigger: Pressed
  m_DisabledTrigger: Disabled
  m_Interactable: 1
  m_TargetGraphic: {fileID: 11494262}
  toggleTransition: 1
  graphic: {fileID: 11459182}
  m_Group: {fileID: 0}
  onValueChanged:
  m_PersistentCalls:
  m_Calls:
  - m_Target: {fileID: 11415294}
  m_MethodName: SetControlBarVisible
  m_Mode: 0
  m_Arguments:
  m_ObjectArgument: {fileID: 0}
  m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
  m_IntArgument: 0
  m_FloatArgument: 0
  m_StringArgument:
  m_BoolArgument: 0
  m_CallState: 2
  m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
  Culture=neutral, PublicKeyToken=null
  m_IsOn: 0
  --- !u!114 &11415294
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 126098}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 571159103, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_ShowEngineerToggle: {fileID: 11485338}
  m_ControlBarToggle: {fileID: 11415068}
  m_MenuSectionPrefab: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2}
  m_SectionsTransform: {fileID: 22435482}
  m_FastFadeDuration: .100000001
  m_SlowFadeDuration: .300000012
  --- !u!114 &11417302
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 114528}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_IgnoreLayout: 0
  m_MinWidth: -1
  m_MinHeight: -1
  m_PreferredWidth: -1
  m_PreferredHeight: 15
  m_FlexibleWidth: -1
  m_FlexibleHeight: -1
  --- !u!114 &11420706
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 122098}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Navigation:
  m_Mode: 3
  m_SelectOnUp: {fileID: 0}
  m_SelectOnDown: {fileID: 0}
  m_SelectOnLeft: {fileID: 0}
  m_SelectOnRight: {fileID: 0}
  m_Transition: 1
  m_Colors:
  m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
  m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
  m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
m_ColorMultiplier: 1 m_ColorMultiplier: 1
m_FadeDuration: .100000001 m_FadeDuration: .100000001
m_SpriteState: m_SpriteState:
m_HighlightedSprite: {fileID: 0} m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0} m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0} m_DisabledSprite: {fileID: 0}
m_AnimationTriggers: m_AnimationTriggers:
m_NormalTrigger: Normal m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 11404586} m_TargetGraphic: {fileID: 11404586}
toggleTransition: 1 m_OnClick:
graphic: {fileID: 11459182}  
m_Group: {fileID: 0}  
onValueChanged:  
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 11415294} - m_Target: {fileID: 11415294}
m_MethodName: SetControlBar m_MethodName: NewCustomSection
m_Mode: 0 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0 m_IntArgument: 0
m_FloatArgument: 0 m_FloatArgument: 0
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null Culture=neutral, PublicKeyToken=null
m_IsOn: 0  
--- !u!114 &11415294  
MonoBehaviour:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
m_GameObject: {fileID: 126098}  
m_Enabled: 1  
m_EditorHideFlags: 0  
m_Script: {fileID: 571159103, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}  
m_Name:  
m_EditorClassIdentifier:  
m_ShowEngineerToggle: {fileID: 11485338}  
m_ControlBarToggle: {fileID: 11415068}  
m_MenuSectionPrefab: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2}  
m_ContentTransform: {fileID: 22475412}  
m_FastFadeDuration: .200000003  
m_SlowFadeDuration: .5  
--- !u!114 &11423044 --- !u!114 &11423044
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 126098} m_GameObject: {fileID: 126098}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_HorizontalFit: 0 m_HorizontalFit: 0
m_VerticalFit: 2 m_VerticalFit: 2
--- !u!114 &11424646 --- !u!114 &11424646
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 116014} m_GameObject: {fileID: 116014}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Padding: m_Padding:
m_Left: 4 m_Left: 4
m_Right: 4 m_Right: 4
m_Top: 4 m_Top: 4
m_Bottom: 4 m_Bottom: 4
m_ChildAlignment: 0 m_ChildAlignment: 0
m_Spacing: 4 m_Spacing: 4
m_ChildForceExpandWidth: 1 m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0 m_ChildForceExpandHeight: 0
--- !u!114 &11439582 --- !u!114 &11439582
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172308} m_GameObject: {fileID: 172308}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: 1} m_Color: {r: .800000072, g: 1, b: 0, a: 1}
m_RaycastTarget: 0 m_RaycastTarget: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 12 m_FontSize: 12
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 3 m_Alignment: 3
m_RichText: 0 m_RichText: 0
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: FLIGHT ENGINEER m_Text: FLIGHT ENGINEER
--- !u!114 &11443382 --- !u!114 &11443382
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 133376} m_GameObject: {fileID: 133376}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 15 m_PreferredHeight: 15
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11445012  
MonoBehaviour:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
m_GameObject: {fileID: 104160}  
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: -1  
m_FlexibleWidth: -1  
m_FlexibleHeight: -1  
--- !u!114 &11451984 --- !u!114 &11451984
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194088} m_GameObject: {fileID: 194088}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 15 m_PreferredHeight: 15
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11453198 --- !u!114 &11453198
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 156848} m_GameObject: {fileID: 156848}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 20 m_PreferredHeight: 20
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11459182 --- !u!114 &11459182
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 104452} m_GameObject: {fileID: 104452}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .784313738} m_Color: {r: .800000072, g: 1, b: 0, a: .784313738}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11461688 --- !u!114 &11461688
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 122098} m_GameObject: {fileID: 122098}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 15 m_PreferredHeight: 15
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
  --- !u!114 &11462752
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 157290}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Padding:
  m_Left: 0
  m_Right: 0
  m_Top: 4
  m_Bottom: 4
  m_ChildAlignment: 0
  m_Spacing: 4
  m_ChildForceExpandWidth: 1
  m_ChildForceExpandHeight: 0
--- !u!114 &11463504 --- !u!114 &11463504
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 156848} m_GameObject: {fileID: 156848}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .183823526, g: .183823526, b: .183823526, a: .90196079} m_Color: {r: .183823526, g: .183823526, b: .183823526, a: .90196079}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11465882 --- !u!114 &11465050
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 137786} m_GameObject: {fileID: 193852}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1} m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 10 m_FontSize: 10
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 4 m_Alignment: 4
m_RichText: 1 m_RichText: 1
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: CONTROL BAR m_Text: CONTROL BAR
  --- !u!114 &11465882
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 137786}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: 0, g: 0, b: 0, a: 1}
  m_RaycastTarget: 1
  m_OnCullStateChanged:
  m_PersistentCalls:
  m_Calls: []
  m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  m_FontData:
  m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
  m_FontSize: 10
  m_FontStyle: 1
  m_BestFit: 0
  m_MinSize: 10
  m_MaxSize: 40
  m_Alignment: 4
  m_RichText: 1
  m_HorizontalOverflow: 0
  m_VerticalOverflow: 0
  m_LineSpacing: 1
  m_Text: NEW CUSTOM SECTION
--- !u!114 &11475868 --- !u!114 &11475868
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 150266} m_GameObject: {fileID: 150266}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .784313738} m_Color: {r: .800000072, g: 1, b: 0, a: .784313738}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
  --- !u!114 &11483978
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 157290}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_HorizontalFit: 0
  m_VerticalFit: 2
--- !u!114 &11485338 --- !u!114 &11485338
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194088} m_GameObject: {fileID: 194088}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Navigation: m_Navigation:
m_Mode: 3 m_Mode: 3
m_SelectOnUp: {fileID: 0} m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0} m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0} m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0} m_SelectOnRight: {fileID: 0}
m_Transition: 1 m_Transition: 1
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
m_ColorMultiplier: 1 m_ColorMultiplier: 1
m_FadeDuration: .100000001 m_FadeDuration: .100000001
m_SpriteState: m_SpriteState:
m_HighlightedSprite: {fileID: 0} m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0} m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0} m_DisabledSprite: {fileID: 0}
m_AnimationTriggers: m_AnimationTriggers:
m_NormalTrigger: Normal m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 11498756} m_TargetGraphic: {fileID: 11498756}
toggleTransition: 1 toggleTransition: 1
graphic: {fileID: 11475868} graphic: {fileID: 11475868}
m_Group: {fileID: 0} m_Group: {fileID: 0}
onValueChanged: onValueChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 11415294} - m_Target: {fileID: 11415294}
m_MethodName: SetShowEngineer m_MethodName: SetDisplayStackVisible
m_Mode: 0 m_Mode: 0
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0 m_IntArgument: 0
m_FloatArgument: 0 m_FloatArgument: 0
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null Culture=neutral, PublicKeyToken=null
m_IsOn: 0 m_IsOn: 0
--- !u!114 &11485532 --- !u!114 &11485532
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 126098} m_GameObject: {fileID: 126098}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Padding: m_Padding:
m_Left: 0 m_Left: 0
m_Right: 0 m_Right: 0
m_Top: 0 m_Top: 0
m_Bottom: 0 m_Bottom: 0
m_ChildAlignment: 0 m_ChildAlignment: 0
m_Spacing: 0 m_Spacing: 0
m_ChildForceExpandWidth: 1 m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1 m_ChildForceExpandHeight: 1
  --- !u!114 &11494262
  MonoBehaviour:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 114528}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  m_Name:
  m_EditorClassIdentifier:
  m_Material: {fileID: 0}
  m_Color: {r: .800000072, g: 1, b: 0, a: .501960814}
  m_RaycastTarget: 1
  m_OnCullStateChanged:
  m_PersistentCalls:
  m_Calls: []
  m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  m_Sprite: {fileID: 0}
  m_Type: 1
  m_PreserveAspect: 0
  m_FillCenter: 1
  m_FillMethod: 4
  m_FillAmount: 1
  m_FillClockwise: 1
  m_FillOrigin: 0
--- !u!114 &11498756 --- !u!114 &11498756
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194088} m_GameObject: {fileID: 194088}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .501960814} m_Color: {r: .800000072, g: 1, b: 0, a: .501960814}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!222 &22201528 --- !u!222 &22201528
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 122098} m_GameObject: {fileID: 122098}
--- !u!222 &22210360 --- !u!222 &22210360
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 150266} m_GameObject: {fileID: 150266}
--- !u!222 &22223226 --- !u!222 &22223226
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 116014} m_GameObject: {fileID: 116014}
--- !u!222 &22247322 --- !u!222 &22247322
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172308} m_GameObject: {fileID: 172308}
  --- !u!222 &22254028
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 114528}
  --- !u!222 &22255200
  CanvasRenderer:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 193852}
--- !u!222 &22255938 --- !u!222 &22255938
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 138760} m_GameObject: {fileID: 138760}
--- !u!222 &22267348 --- !u!222 &22267348
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 137786} m_GameObject: {fileID: 137786}
--- !u!222 &22267572 --- !u!222 &22267572
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 156848} m_GameObject: {fileID: 156848}
--- !u!222 &22270862 --- !u!222 &22270862
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 126098} m_GameObject: {fileID: 126098}
--- !u!222 &22281674 --- !u!222 &22281674
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194088} m_GameObject: {fileID: 194088}
--- !u!222 &22296168 --- !u!222 &22296168
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 104452} m_GameObject: {fileID: 104452}
--- !u!224 &22401100 --- !u!224 &22401100
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 122098} m_GameObject: {fileID: 122098}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22454998}  
- {fileID: 22444606} - {fileID: 22444606}
m_Father: {fileID: 22478174} m_Father: {fileID: 22475412}
m_RootOrder: 1 m_RootOrder: 2
m_AnchorMin: {x: .5, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 1, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -2, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22401786 --- !u!224 &22401786
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172308} m_GameObject: {fileID: 172308}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22483410} m_Father: {fileID: 22483410}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 2.5, y: 0} m_AnchoredPosition: {x: 2.5, y: 0}
m_SizeDelta: {x: -5, y: 0} m_SizeDelta: {x: -5, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22409936 --- !u!224 &22409936
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 138760} m_GameObject: {fileID: 138760}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22469574} m_Father: {fileID: 22469574}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22444606 --- !u!224 &22411946
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 137786} m_GameObject: {fileID: 193852}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22401100} m_Father: {fileID: 22468796}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22454998 --- !u!224 &22435482
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 104452} m_GameObject: {fileID: 157290}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 22475412}
  m_RootOrder: 1
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 0, y: 0}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22444606
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 137786}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22401100} m_Father: {fileID: 22401100}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
  --- !u!224 &22454998
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 104452}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children: []
  m_Father: {fileID: 22468796}
  m_RootOrder: 0
  m_AnchorMin: {x: 0, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 0, y: 0}
  m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: .5, y: .5}
--- !u!224 &22463980 --- !u!224 &22463980
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 150266} m_GameObject: {fileID: 150266}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22469574} m_Father: {fileID: 22469574}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
  m_Pivot: {x: .5, y: .5}
  --- !u!224 &22468796
  RectTransform:
  m_ObjectHideFlags: 1
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 100100000}
  m_GameObject: {fileID: 114528}
  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  m_LocalPosition: {x: 0, y: 0, z: 0}
  m_LocalScale: {x: 1, y: 1, z: 1}
  m_Children:
  - {fileID: 22454998}
  - {fileID: 22411946}
  m_Father: {fileID: 22478174}
  m_RootOrder: 1
  m_AnchorMin: {x: .5, y: 0}
  m_AnchorMax: {x: 1, y: 1}
  m_AnchoredPosition: {x: 1, y: 0}
  m_SizeDelta: {x: -2, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22469574 --- !u!224 &22469574
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194088} m_GameObject: {fileID: 194088}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22463980} - {fileID: 22463980}
- {fileID: 22409936} - {fileID: 22409936}
m_Father: {fileID: 22478174} m_Father: {fileID: 22478174}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: .5, y: 1} m_AnchorMax: {x: .5, y: 1}
m_AnchoredPosition: {x: -1, y: 0} m_AnchoredPosition: {x: -1, y: 0}
m_SizeDelta: {x: -2, y: 0} m_SizeDelta: {x: -2, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22475412 --- !u!224 &22475412
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 116014} m_GameObject: {fileID: 116014}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22478174} - {fileID: 22478174}
- {fileID: 22478204} - {fileID: 22435482}
  - {fileID: 22401100}
m_Father: {fileID: 22476196} m_Father: {fileID: 22476196}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22476196 --- !u!224 &22476196
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 126098} m_GameObject: {fileID: 126098}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22483410} - {fileID: 22483410}
- {fileID: 22475412} - {fileID: 22475412}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: .5, y: .5} m_AnchorMin: {x: .5, y: .5}
m_AnchorMax: {x: .5, y: .5} m_AnchorMax: {x: .5, y: .5}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 250, y: 0} m_SizeDelta: {x: 250, y: 0}
m_Pivot: {x: 1, y: 0} m_Pivot: {x: 1, y: 0}
--- !u!224 &22478174 --- !u!224 &22478174
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 133376} m_GameObject: {fileID: 133376}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22469574} - {fileID: 22469574}
- {fileID: 22401100} - {fileID: 22468796}
m_Father: {fileID: 22475412} m_Father: {fileID: 22475412}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0}  
m_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 &22478204  
RectTransform:  
m_ObjectHideFlags: 1  
m_PrefabParentObject: {fileID: 0}  
m_PrefabInternal: {fileID: 100100000}  
m_GameObject: {fileID: 104160}  
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}  
m_LocalPosition: {x: 0, y: 0, z: 0}  
m_LocalScale: {x: 1, y: 1, z: 1}  
m_Children: []  
m_Father: {fileID: 22475412}  
m_RootOrder: 1  
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22483410 --- !u!224 &22483410
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 156848} m_GameObject: {fileID: 156848}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22401786} - {fileID: 22401786}
m_Father: {fileID: 22476196} m_Father: {fileID: 22476196}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: 1} m_Pivot: {x: .5, y: 1}
--- !u!225 &22567868 --- !u!225 &22567868
CanvasGroup: CanvasGroup:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 126098} m_GameObject: {fileID: 126098}
m_Enabled: 1 m_Enabled: 1
m_Alpha: 1 m_Alpha: 1
m_Interactable: 1 m_Interactable: 1
m_BlocksRaycasts: 1 m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0 m_IgnoreParentGroups: 0
--- !u!1001 &100100000 --- !u!1001 &100100000
Prefab: Prefab:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
serializedVersion: 2 serializedVersion: 2
m_Modification: m_Modification:
m_TransformParent: {fileID: 0} m_TransformParent: {fileID: 0}
m_Modifications: m_Modifications:
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_FastFadeDuration propertyPath: m_FastFadeDuration
value: .200000003 value: .100000001
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_SlowFadeDuration propertyPath: m_SlowFadeDuration
value: .5 value: .200000003
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_ContentTransform propertyPath: m_ContentTransform
value: value:
objectReference: {fileID: 22475412} objectReference: {fileID: 22475412}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_SectionPrefab propertyPath: m_SectionPrefab
value: value:
objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2} objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_MenuSectionPrefab propertyPath: m_MenuSectionPrefab
value: value:
objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2} objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2}
m_RemovedComponents: [] m_RemovedComponents: []
m_ParentPrefab: {fileID: 0} m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 126098} m_RootGameObject: {fileID: 126098}
m_IsPrefabParent: 1 m_IsPrefabParent: 1
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &121376 --- !u!1 &121376
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22409126} - 224: {fileID: 22409126}
- 222: {fileID: 22266612} - 222: {fileID: 22266612}
- 114: {fileID: 11461446} - 114: {fileID: 11461446}
- 114: {fileID: 11496274} - 114: {fileID: 11496274}
- 114: {fileID: 11436568} - 114: {fileID: 11436568}
m_Layer: 5 m_Layer: 5
m_Name: ToggleDisplay m_Name: ToggleDisplay
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &121536 --- !u!1 &121536
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22446728} - 224: {fileID: 22446728}
- 222: {fileID: 22259916} - 222: {fileID: 22259916}
- 114: {fileID: 11418436} - 114: {fileID: 11418436}
m_Layer: 5 m_Layer: 5
m_Name: Selected m_Name: Selected
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &130136 --- !u!1 &130136
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22444842} - 224: {fileID: 22444842}
- 222: {fileID: 22269896} - 222: {fileID: 22269896}
- 114: {fileID: 11449350} - 114: {fileID: 11449350}
- 114: {fileID: 11489918} - 114: {fileID: 11489918}
- 114: {fileID: 11421724} - 114: {fileID: 11421724}
m_Layer: 5 m_Layer: 5
m_Name: ToggleEdit m_Name: ToggleEdit
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &130812 --- !u!1 &130812
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22478272} - 224: {fileID: 22478272}
- 114: {fileID: 11431788} - 114: {fileID: 11431788}
- 114: {fileID: 11494744} - 114: {fileID: 11494744}
m_Layer: 5 m_Layer: 5
m_Name: FlightMenuSection m_Name: FlightMenuSection
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &151828 --- !u!1 &151828
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22485856} - 224: {fileID: 22485856}
- 222: {fileID: 22274980} - 222: {fileID: 22274980}
- 114: {fileID: 11408784} - 114: {fileID: 11408784}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &172700 --- !u!1 &172700
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22483442} - 224: {fileID: 22483442}
- 222: {fileID: 22246486} - 222: {fileID: 22246486}
- 114: {fileID: 11462740} - 114: {fileID: 11462740}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &178618 --- !u!1 &178618
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22469204} - 224: {fileID: 22469204}
- 222: {fileID: 22219086} - 222: {fileID: 22219086}
- 114: {fileID: 11484356} - 114: {fileID: 11484356}
m_Layer: 5 m_Layer: 5
m_Name: Selected m_Name: Selected
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!114 &11408784 --- !u!114 &11408784
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 151828} m_GameObject: {fileID: 151828}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1} m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 10 m_FontSize: 10
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 4 m_Alignment: 4
m_RichText: 1 m_RichText: 1
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: DISPLAY m_Text: DISPLAY
--- !u!114 &11418436 --- !u!114 &11418436
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121536} m_GameObject: {fileID: 121536}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .784313738} m_Color: {r: .800000072, g: 1, b: 0, a: .784313738}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11421724 --- !u!114 &11421724
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130136} m_GameObject: {fileID: 130136}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Navigation: m_Navigation:
m_Mode: 3 m_Mode: 3
m_SelectOnUp: {fileID: 0} m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0} m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0} m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0} m_SelectOnRight: {fileID: 0}
m_Transition: 1 m_Transition: 1
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
m_ColorMultiplier: 1 m_ColorMultiplier: 1
m_FadeDuration: .100000001 m_FadeDuration: .100000001
m_SpriteState: m_SpriteState:
m_HighlightedSprite: {fileID: 0} m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0} m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0} m_DisabledSprite: {fileID: 0}
m_AnimationTriggers: m_AnimationTriggers:
m_NormalTrigger: Normal m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 11449350} m_TargetGraphic: {fileID: 11449350}
toggleTransition: 1 toggleTransition: 1
graphic: {fileID: 11484356} graphic: {fileID: 11484356}
m_Group: {fileID: 0} m_Group: {fileID: 0}
onValueChanged: onValueChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 11494744} - m_Target: {fileID: 11494744}
m_MethodName: SetEditorVisible m_MethodName: SetEditorVisible
m_Mode: 0 m_Mode: 0
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0 m_IntArgument: 0
m_FloatArgument: 0 m_FloatArgument: 0
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null Culture=neutral, PublicKeyToken=null
m_IsOn: 0 m_IsOn: 0
--- !u!114 &11431788 --- !u!114 &11431788
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130812} m_GameObject: {fileID: 130812}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 15 m_PreferredHeight: 15
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11436568 --- !u!114 &11436568
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121376} m_GameObject: {fileID: 121376}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Navigation: m_Navigation:
m_Mode: 3 m_Mode: 3
m_SelectOnUp: {fileID: 0} m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0} m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0} m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0} m_SelectOnRight: {fileID: 0}
m_Transition: 1 m_Transition: 1
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1}
m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1}
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
m_ColorMultiplier: 1 m_ColorMultiplier: 1
m_FadeDuration: .100000001 m_FadeDuration: .100000001
m_SpriteState: m_SpriteState:
m_HighlightedSprite: {fileID: 0} m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0} m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0} m_DisabledSprite: {fileID: 0}
m_AnimationTriggers: m_AnimationTriggers:
m_NormalTrigger: Normal m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 11461446} m_TargetGraphic: {fileID: 11461446}
toggleTransition: 1 toggleTransition: 1
graphic: {fileID: 11418436} graphic: {fileID: 11418436}
m_Group: {fileID: 0} m_Group: {fileID: 0}
onValueChanged: onValueChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 11494744} - m_Target: {fileID: 11494744}
m_MethodName: SetDisplayVisible m_MethodName: SetDisplayVisible
m_Mode: 0 m_Mode: 0
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0 m_IntArgument: 0
m_FloatArgument: 0 m_FloatArgument: 0
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null Culture=neutral, PublicKeyToken=null
m_IsOn: 0 m_IsOn: 0
--- !u!114 &11449350 --- !u!114 &11449350
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130136} m_GameObject: {fileID: 130136}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .501960814} m_Color: {r: .800000072, g: 1, b: 0, a: .501960814}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11461446 --- !u!114 &11461446
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121376} m_GameObject: {fileID: 121376}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .501960814} m_Color: {r: .800000072, g: 1, b: 0, a: .501960814}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11462740 --- !u!114 &11462740
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172700} m_GameObject: {fileID: 172700}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1} m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 10 m_FontSize: 10
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 4 m_Alignment: 4
m_RichText: 1 m_RichText: 1
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: EDIT m_Text: EDIT
--- !u!114 &11484356 --- !u!114 &11484356
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 178618} m_GameObject: {fileID: 178618}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: .784313738} m_Color: {r: .800000072, g: 1, b: 0, a: .784313738}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11489918 --- !u!114 &11489918
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130136} m_GameObject: {fileID: 130136}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 20 m_PreferredHeight: 20
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11494744 --- !u!114 &11494744
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130812} m_GameObject: {fileID: 130812}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -1842827791, guid: a3a55138b08428847a08c7b48fe72efe, type: 3} m_Script: {fileID: -1842827791, guid: a3a55138b08428847a08c7b48fe72efe, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_DisplayToggle: {fileID: 11436568} m_DisplayToggle: {fileID: 11436568}
m_DisplayText: {fileID: 11408784} m_DisplayText: {fileID: 11408784}
m_EditToggle: {fileID: 11421724} m_EditToggle: {fileID: 11421724}
--- !u!114 &11496274 --- !u!114 &11496274
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121376} m_GameObject: {fileID: 121376}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 20 m_PreferredHeight: 20
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!222 &22219086 --- !u!222 &22219086
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 178618} m_GameObject: {fileID: 178618}
--- !u!222 &22246486 --- !u!222 &22246486
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172700} m_GameObject: {fileID: 172700}
--- !u!222 &22259916 --- !u!222 &22259916
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121536} m_GameObject: {fileID: 121536}
--- !u!222 &22266612 --- !u!222 &22266612
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121376} m_GameObject: {fileID: 121376}
--- !u!222 &22269896 --- !u!222 &22269896
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130136} m_GameObject: {fileID: 130136}
--- !u!222 &22274980 --- !u!222 &22274980
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 151828} m_GameObject: {fileID: 151828}
--- !u!224 &22409126 --- !u!224 &22409126
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121376} m_GameObject: {fileID: 121376}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22446728} - {fileID: 22446728}
- {fileID: 22485856} - {fileID: 22485856}
m_Father: {fileID: 22478272} m_Father: {fileID: 22478272}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: .75, y: 1} m_AnchorMax: {x: .75, y: 1}
m_AnchoredPosition: {x: -1, y: 0} m_AnchoredPosition: {x: -1, y: 0}
m_SizeDelta: {x: -2, y: 0} m_SizeDelta: {x: -2, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22444842 --- !u!224 &22444842
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130136} m_GameObject: {fileID: 130136}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22469204} - {fileID: 22469204}
- {fileID: 22483442} - {fileID: 22483442}
m_Father: {fileID: 22478272} m_Father: {fileID: 22478272}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: .75, y: 0} m_AnchorMin: {x: .75, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 1, y: 0} m_AnchoredPosition: {x: 1, y: 0}
m_SizeDelta: {x: -2, y: 0} m_SizeDelta: {x: -2, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22446728 --- !u!224 &22446728
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 121536} m_GameObject: {fileID: 121536}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22409126} m_Father: {fileID: 22409126}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22469204 --- !u!224 &22469204
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 178618} m_GameObject: {fileID: 178618}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22444842} m_Father: {fileID: 22444842}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22478272 --- !u!224 &22478272
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130812} m_GameObject: {fileID: 130812}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22409126} - {fileID: 22409126}
- {fileID: 22444842} - {fileID: 22444842}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22483442 --- !u!224 &22483442
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 172700} m_GameObject: {fileID: 172700}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22444842} m_Father: {fileID: 22444842}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22485856 --- !u!224 &22485856
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 151828} m_GameObject: {fileID: 151828}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22409126} m_Father: {fileID: 22409126}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!1001 &100100000 --- !u!1001 &100100000
Prefab: Prefab:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
serializedVersion: 2 serializedVersion: 2
m_Modification: m_Modification:
m_TransformParent: {fileID: 0} m_TransformParent: {fileID: 0}
m_Modifications: m_Modifications:
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value: value:
objectReference: {fileID: 11494744} objectReference: {fileID: 11494744}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: SetEditorVisible value: SetEditorVisible
objectReference: {fileID: 0} objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Colors.m_NormalColor.r
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Colors.m_NormalColor.b
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Colors.m_HighlightedColor.r
  value: .467545569
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Colors.m_HighlightedColor.g
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Colors.m_HighlightedColor.b
  value: .448529422
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Colors.m_NormalColor.g
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Colors.m_PressedColor.r
  value: .800000072
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Colors.m_PressedColor.g
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 0}
  propertyPath: m_Colors.m_PressedColor.b
  value: 0
  objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_ParentPrefab: {fileID: 0} m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 130812} m_RootGameObject: {fileID: 130812}
m_IsPrefabParent: 1 m_IsPrefabParent: 1
   
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!29 &1 --- !u!29 &1
SceneSettings: SceneSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PVSData: m_PVSData:
m_PVSObjectsArray: [] m_PVSObjectsArray: []
m_PVSPortalsArray: [] m_PVSPortalsArray: []
m_OcclusionBakeSettings: m_OcclusionBakeSettings:
smallestOccluder: 5 smallestOccluder: 5
smallestHole: .25 smallestHole: .25
backfaceThreshold: 100 backfaceThreshold: 100
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 6
m_Fog: 0 m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1} m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3 m_FogMode: 3
m_FogDensity: .00999999978 m_FogDensity: .00999999978
m_LinearFogStart: 0 m_LinearFogStart: 0
m_LinearFogEnd: 300 m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1} m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1} m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1} m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
m_AmbientIntensity: 1 m_AmbientIntensity: 1
m_AmbientMode: 3 m_AmbientMode: 3
m_SkyboxMaterial: {fileID: 0} m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: .5 m_HaloStrength: .5
m_FlareStrength: 1 m_FlareStrength: 1
m_FlareFadeSpeed: 3 m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0} m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0 m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128 m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1 m_ReflectionBounces: 1
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
--- !u!157 &3 --- !u!157 &3
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 5 serializedVersion: 5
m_GIWorkflowMode: 1 m_GIWorkflowMode: 1
m_LightmapsMode: 1 m_LightmapsMode: 1
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
m_IndirectOutputScale: 1 m_IndirectOutputScale: 1
m_AlbedoBoost: 1 m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1 m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0 m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0 m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0 m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings: m_LightmapEditorSettings:
serializedVersion: 3 serializedVersion: 3
m_Resolution: 2 m_Resolution: 2
m_BakeResolution: 40 m_BakeResolution: 40
m_TextureWidth: 1024 m_TextureWidth: 1024
m_TextureHeight: 1024 m_TextureHeight: 1024
m_AOMaxDistance: 1 m_AOMaxDistance: 1
m_Padding: 2 m_Padding: 2
m_CompAOExponent: 0 m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1 m_TextureCompression: 1
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherRayCount: 1024 m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0} m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25 m_RuntimeCPUUsage: 25
--- !u!196 &4 --- !u!196 &4
NavMeshSettings: NavMeshSettings:
serializedVersion: 2 serializedVersion: 2
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_BuildSettings: m_BuildSettings:
serializedVersion: 2 serializedVersion: 2
agentRadius: .5 agentRadius: .5
agentHeight: 2 agentHeight: 2
agentSlope: 45 agentSlope: 45
agentClimb: .400000006 agentClimb: .400000006
ledgeDropHeight: 0 ledgeDropHeight: 0
maxJumpAcrossDistance: 0 maxJumpAcrossDistance: 0
accuratePlacement: 0 accuratePlacement: 0
minRegionArea: 2 minRegionArea: 2
cellSize: .166666672 cellSize: .166666672
manualCellSize: 0 manualCellSize: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &476101859 --- !u!1 &476101859
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 476101860} - 224: {fileID: 476101860}
- 222: {fileID: 476101862} - 222: {fileID: 476101862}
- 114: {fileID: 476101861} - 114: {fileID: 476101861}
m_Layer: 5 m_Layer: 5
m_Name: Background-Flight m_Name: Background-Flight
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!224 &476101860 --- !u!224 &476101860
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 476101859} m_GameObject: {fileID: 476101859}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 1866791882} m_Father: {fileID: 1866791882}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!114 &476101861 --- !u!114 &476101861
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 476101859} m_GameObject: {fileID: 476101859}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0 m_RaycastTarget: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 21300000, guid: 0115c816d260a0947976c8ea804febbc, type: 3} m_Sprite: {fileID: 21300000, guid: 0115c816d260a0947976c8ea804febbc, type: 3}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!222 &476101862 --- !u!222 &476101862
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 476101859} m_GameObject: {fileID: 476101859}
--- !u!1 &533639931 --- !u!1001 &719682886
GameObject: Prefab:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} serializedVersion: 2
m_PrefabInternal: {fileID: 0} m_Modification:
serializedVersion: 4 m_TransformParent: {fileID: 1866791882}
m_Component: m_Modifications:
- 224: {fileID: 533639932} - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
- 114: {fileID: 533639933} propertyPath: m_LocalPosition.x
m_Layer: 5 value: 0
m_Name: Space objectReference: {fileID: 0}
m_TagString: Untagged - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
m_Icon: {fileID: 0} propertyPath: m_LocalPosition.y
m_NavMeshLayer: 0 value: 0
m_StaticEditorFlags: 0 objectReference: {fileID: 0}
m_IsActive: 1 - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
--- !u!224 &533639932 propertyPath: m_LocalPosition.z
RectTransform: value: 0
m_ObjectHideFlags: 0 objectReference: {fileID: 0}
m_PrefabParentObject: {fileID: 0} - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
m_PrefabInternal: {fileID: 0} propertyPath: m_LocalRotation.x
m_GameObject: {fileID: 533639931} value: 0
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} objectReference: {fileID: 0}
m_LocalPosition: {x: 0, y: 0, z: 0} - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
m_LocalScale: {x: 1, y: 1, z: 1} propertyPath: m_LocalRotation.y
m_Children: [] value: 0
m_Father: {fileID: 1587294051} objectReference: {fileID: 0}
m_RootOrder: 1 - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
m_AnchorMin: {x: 0, y: 0} propertyPath: m_LocalRotation.z
m_AnchorMax: {x: 0, y: 0} value: 0
m_AnchoredPosition: {x: 0, y: 0} objectReference: {fileID: 0}
m_SizeDelta: {x: 0, y: 0} - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
m_Pivot: {x: .5, y: .5} propertyPath: m_LocalRotation.w
--- !u!114 &533639933 value: 1
MonoBehaviour: objectReference: {fileID: 0}
m_ObjectHideFlags: 0 - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
m_PrefabParentObject: {fileID: 0} propertyPath: m_RootOrder
m_PrefabInternal: {fileID: 0} value: 2
m_GameObject: {fileID: 533639931} objectReference: {fileID: 0}
m_Enabled: 1 - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
m_EditorHideFlags: 0 propertyPath: m_AnchoredPosition.x
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} value: 0
m_Name: objectReference: {fileID: 0}
m_EditorClassIdentifier: - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
m_IgnoreLayout: 0 propertyPath: m_AnchoredPosition.y
m_MinWidth: -1 value: 0
m_MinHeight: -1 objectReference: {fileID: 0}
m_PreferredWidth: -1 - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
m_PreferredHeight: -1 propertyPath: m_SizeDelta.x
m_FlexibleWidth: -1 value: 250
m_FlexibleHeight: -1 objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.y
  value: 74
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMin.x
  value: .5
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMin.y
  value: .5
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMax.x
  value: .5
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMax.y
  value: .5
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Pivot.x
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Pivot.y
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMin.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMax.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 125
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.y
  value: -27
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.x
  value: 242
  objectReference: {fileID: 0}
  - target: {fileID: 22435482, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.y
  value: 8
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMin.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMax.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 125
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.y
  value: -11.5
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.x
  value: 242
  objectReference: {fileID: 0}
  - target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.y
  value: 15
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMin.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMax.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 125
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.y
  value: -42.5
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.x
  value: 242
  objectReference: {fileID: 0}
  - target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.y
  value: 15
  objectReference: {fileID: 0}
  - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMin.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMax.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 125
  objectReference: {fileID: 0}
  - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.x
  value: 250
  objectReference: {fileID: 0}
  - target: {fileID: 22483410, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.y
  value: 20
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMin.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchorMax.y
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.x
  value: 125
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_AnchoredPosition.y
  value: -47
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.x
  value: 250
  objectReference: {fileID: 0}
  - target: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_SizeDelta.y
  value: 54
  objectReference: {fileID: 0}
  - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
  value: SetControlBarVisible
  objectReference: {fileID: 0}
  - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
  value: SetDisplayStackVisible
  objectReference: {fileID: 0}
  - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_HighlightedColor.r
  value: .467545569
  objectReference: {fileID: 0}
  - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_HighlightedColor.g
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_HighlightedColor.b
  value: .448529422
  objectReference: {fileID: 0}
  - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_PressedColor.r
  value: .800000072
  objectReference: {fileID: 0}
  - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_PressedColor.g
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_PressedColor.b
  value: 0
  objectReference: {fileID: 0}
  - target: {fileID: 11485338, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_PressedColor.a
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_HighlightedColor.r
  value: .467545569
  objectReference: {fileID: 0}
  - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_HighlightedColor.g
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_HighlightedColor.b
  value: .448529422
  objectReference: {fileID: 0}
  - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_PressedColor.r
  value: .800000072
  objectReference: {fileID: 0}
  - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_PressedColor.g
  value: 1
  objectReference: {fileID: 0}
  - target: {fileID: 11415068, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  propertyPath: m_Colors.m_PressedColor.b
  value: 0
  objectReference: {fileID: 0}
  m_RemovedComponents: []
  m_ParentPrefab: {fileID: 100100000, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}
  m_IsPrefabParent: 0
--- !u!224 &1026898450 stripped --- !u!224 &1026898450 stripped
RectTransform: RectTransform:
m_PrefabParentObject: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f, m_PrefabParentObject: {fileID: 22476196, guid: a41f85cb0b8964f43947e85b3e833c0f,
type: 2} type: 2}
m_PrefabInternal: {fileID: 1220268543} m_PrefabInternal: {fileID: 719682886}
--- !u!1001 &1220268543  
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: 47  
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: -11.5  
objectReference: {fileID: 0}  
- target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.x  
value: 242  
objectReference: {fileID: 0}  
- target: {fileID: 22478174, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.y  
value: 15  
objectReference: {fileID: 0}  
- target: {fileID: 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: -33.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: 27  
objectReference: {fileID: 0}  
- target: {fileID: 11461688, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_PreferredHeight  
value: 15  
objectReference: {fileID: 0}  
- target: {fileID: 11451984, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_PreferredHeight  
value: 15  
objectReference: {fileID: 0}  
- target: {fileID: 150266, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Name  
value: Selected  
objectReference: {fileID: 0}  
- target: {fileID: 138760, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Name  
value: Text  
objectReference: {fileID: 0}  
- target: {fileID: 104452, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Name  
value: Selected  
objectReference: {fileID: 0}  
- target: {fileID: 137786, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Name  
value: Text  
objectReference: {fileID: 0}  
- target: {fileID: 11465882, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_FontData.m_FontSize  
value: 10  
objectReference: {fileID: 0}  
- target: {fileID: 11403342, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_FontData.m_FontSize  
value: 10  
objectReference: {fileID: 0}  
- target: {fileID: 22469574, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.x  
value: -1  
objectReference: {fileID: 0}  
- target: {fileID: 22469574, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.x  
value: -2  
objectReference: {fileID: 0}  
- target: {fileID: 22469574, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.y  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22469574, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.y  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.x  
value: 1  
objectReference: {fileID: 0}  
- target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.x  
value: -2  
objectReference: {fileID: 0}  
- target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_AnchoredPosition.y  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 22401100, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_SizeDelta.y  
value: 0  
objectReference: {fileID: 0}  
- target: {fileID: 11443382, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_PreferredHeight  
value: 15  
objectReference: {fileID: 0}  
- target: {fileID: 11424646, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Padding.m_Left  
value: 4  
objectReference: {fileID: 0}  
- target: {fileID: 11424646, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Padding.m_Right  
value: 4  
objectReference: {fileID: 0}  
- target: {fileID: 11424646, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Padding.m_Top  
value: 4  
objectReference: {fileID: 0}  
- target: {fileID: 11424646, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Padding.m_Bottom  
value: 4  
objectReference: {fileID: 0}  
- target: {fileID: 11424646, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
propertyPath: m_Spacing  
value: 4  
objectReference: {fileID: 0}  
m_RemovedComponents: []  
m_ParentPrefab: {fileID: 100100000, guid: a41f85cb0b8964f43947e85b3e833c0f, type: 2}  
m_IsPrefabParent: 0  
--- !u!1 &1398276586 --- !u!1 &1398276586
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 4: {fileID: 1398276590} - 4: {fileID: 1398276590}
- 114: {fileID: 1398276589} - 114: {fileID: 1398276589}
- 114: {fileID: 1398276588} - 114: {fileID: 1398276588}
- 114: {fileID: 1398276587} - 114: {fileID: 1398276587}
m_Layer: 0 m_Layer: 0
m_Name: EventSystem m_Name: EventSystem
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!114 &1398276587 --- !u!114 &1398276587
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1398276586} m_GameObject: {fileID: 1398276586}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_ForceModuleActive: 0 m_ForceModuleActive: 0
--- !u!114 &1398276588 --- !u!114 &1398276588
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1398276586} m_GameObject: {fileID: 1398276586}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical m_VerticalAxis: Vertical
m_SubmitButton: Submit m_SubmitButton: Submit
m_CancelButton: Cancel m_CancelButton: Cancel
m_InputActionsPerSecond: 10 m_InputActionsPerSecond: 10
m_RepeatDelay: .5 m_RepeatDelay: .5
m_ForceModuleActive: 0 m_ForceModuleActive: 0
--- !u!114 &1398276589 --- !u!114 &1398276589
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1398276586} m_GameObject: {fileID: 1398276586}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0} m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1 m_sendNavigationEvents: 1
m_DragThreshold: 5 m_DragThreshold: 5
--- !u!4 &1398276590 --- !u!4 &1398276590
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1398276586} m_GameObject: {fileID: 1398276586}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 2 m_RootOrder: 2
--- !u!224 &1587294051 stripped  
RectTransform:  
m_PrefabParentObject: {fileID: 22475412, guid: a41f85cb0b8964f43947e85b3e833c0f,  
type: 2}  
m_PrefabInternal: {fileID: 1220268543}  
--- !u!1 &1866791878 --- !u!1 &1866791878
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 1866791882} - 224: {fileID: 1866791882}
- 223: {fileID: 1866791881} - 223: {fileID: 1866791881}
- 114: {fileID: 1866791880} - 114: {fileID: 1866791880}
- 114: {fileID: 1866791879} - 114: {fileID: 1866791879}
m_Layer: 5 m_Layer: 5
m_Name: Canvas m_Name: Canvas
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!114 &1866791879 --- !u!114 &1866791879
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1866791878} m_GameObject: {fileID: 1866791878}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1 m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0 m_BlockingObjects: 0
m_BlockingMask: m_BlockingMask:
serializedVersion: 2 serializedVersion: 2
m_Bits: 4294967295 m_Bits: 4294967295
--- !u!114 &1866791880 --- !u!114 &1866791880
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1866791878} m_GameObject: {fileID: 1866791878}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_UiScaleMode: 0 m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100 m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1 m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600} m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0 m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0 m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3 m_PhysicalUnit: 3
m_FallbackScreenDPI: 96 m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96 m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1 m_DynamicPixelsPerUnit: 1
--- !u!223 &1866791881 --- !u!223 &1866791881
Canvas: Canvas:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1866791878} m_GameObject: {fileID: 1866791878}
m_Enabled: 1 m_Enabled: 1
serializedVersion: 2 serializedVersion: 2
m_RenderMode: 0 m_RenderMode: 0
m_Camera: {fileID: 0} m_Camera: {fileID: 0}
m_PlaneDistance: 100 m_PlaneDistance: 100
m_PixelPerfect: 0 m_PixelPerfect: 0
m_ReceivesEvents: 1 m_ReceivesEvents: 1
m_OverrideSorting: 0 m_OverrideSorting: 0
m_OverridePixelPerfect: 0 m_OverridePixelPerfect: 0
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!224 &1866791882 --- !u!224 &1866791882
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1866791878} m_GameObject: {fileID: 1866791878}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 2037475081} - {fileID: 2037475081}
- {fileID: 476101860} - {fileID: 476101860}
- {fileID: 1026898450} - {fileID: 1026898450}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0} m_Pivot: {x: 0, y: 0}
--- !u!1 &2037475080 --- !u!1 &2037475080
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 2037475081} - 224: {fileID: 2037475081}
- 222: {fileID: 2037475083} - 222: {fileID: 2037475083}
- 114: {fileID: 2037475082} - 114: {fileID: 2037475082}
m_Layer: 5 m_Layer: 5
m_Name: Background-Editor m_Name: Background-Editor
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!224 &2037475081 --- !u!224 &2037475081
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2037475080} m_GameObject: {fileID: 2037475080}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 1866791882} m_Father: {fileID: 1866791882}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!114 &2037475082 --- !u!114 &2037475082
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2037475080} m_GameObject: {fileID: 2037475080}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0 m_RaycastTarget: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 21300000, guid: b0e2a09d07dbbcb40b0d4db43cd044f9, type: 3} m_Sprite: {fileID: 21300000, guid: b0e2a09d07dbbcb40b0d4db43cd044f9, type: 3}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!222 &2037475083 --- !u!222 &2037475083
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2037475080} m_GameObject: {fileID: 2037475080}
--- !u!1 &2134872726 --- !u!1 &2134872726
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 4: {fileID: 2134872731} - 4: {fileID: 2134872731}
- 20: {fileID: 2134872730} - 20: {fileID: 2134872730}
- 92: {fileID: 2134872729} - 92: {fileID: 2134872729}
- 124: {fileID: 2134872728} - 124: {fileID: 2134872728}
- 81: {fileID: 2134872727} - 81: {fileID: 2134872727}
m_Layer: 0 m_Layer: 0
m_Name: Main Camera m_Name: Main Camera
m_TagString: MainCamera m_TagString: MainCamera
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!81 &2134872727 --- !u!81 &2134872727
AudioListener: AudioListener:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2134872726} m_GameObject: {fileID: 2134872726}
m_Enabled: 1 m_Enabled: 1
--- !u!124 &2134872728 --- !u!124 &2134872728
Behaviour: Behaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2134872726} m_GameObject: {fileID: 2134872726}
m_Enabled: 1 m_Enabled: 1
--- !u!92 &2134872729 --- !u!92 &2134872729
Behaviour: Behaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2134872726} m_GameObject: {fileID: 2134872726}
m_Enabled: 1 m_Enabled: 1
--- !u!20 &2134872730 --- !u!20 &2134872730
Camera: Camera:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2134872726} m_GameObject: {fileID: 2134872726}
m_Enabled: 1 m_Enabled: 1
serializedVersion: 2 serializedVersion: 2
m_ClearFlags: 2 m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438} m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438}
m_NormalizedViewPortRect: m_NormalizedViewPortRect:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 0 y: 0
width: 1 width: 1
height: 1 height: 1
near clip plane: .300000012 near clip plane: .300000012
far clip plane: 1000 far clip plane: 1000
field of view: 60 field of view: 60
orthographic: 1 orthographic: 1
orthographic size: 5 orthographic size: 5
m_Depth: -1 m_Depth: -1
m_CullingMask: m_CullingMask:
serializedVersion: 2 serializedVersion: 2
m_Bits: 4294967295 m_Bits: 4294967295
m_RenderingPath: -1 m_RenderingPath: -1
m_TargetTexture: {fileID: 0} m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0 m_TargetDisplay: 0
m_TargetEye: 3 m_TargetEye: 3
m_HDR: 0 m_HDR: 0
m_OcclusionCulling: 1 m_OcclusionCulling: 1
m_StereoConvergence: 10 m_StereoConvergence: 10
m_StereoSeparation: .0219999999 m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0 m_StereoMirrorMode: 0
--- !u!4 &2134872731 --- !u!4 &2134872731
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2134872726} m_GameObject: {fileID: 2134872726}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
   
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Unity namespace KerbalEngineer.Unity
{ {
using System; using System;
using System.Collections; using System.Collections;
using UnityEngine; using UnityEngine;
   
[RequireComponent(typeof(CanvasGroup))] [RequireComponent(typeof(CanvasGroup))]
public class CanvasGroupFader : MonoBehaviour public class CanvasGroupFader : MonoBehaviour
{ {
private CanvasGroup m_CanvasGroup; private CanvasGroup m_CanvasGroup;
private IEnumerator m_FadeCoroutine; private IEnumerator m_FadeCoroutine;
   
public bool fading public bool IsFading
{ {
get get
{ {
return m_FadeCoroutine != null; return m_FadeCoroutine != null;
} }
} }
   
/// <summary> /// <summary>
/// Fades the canvas group to a specified alpha using the supplied blocking state during fade with optional callback. /// Fades the canvas group to a specified alpha using the supplied blocking state during fade with optional callback.
/// </summary> /// </summary>
public void FadeTo(float alpha, float duration, Action callback = null) public void FadeTo(float alpha, float duration, Action callback = null)
{ {
if (m_CanvasGroup == null) if (m_CanvasGroup == null)
{ {
return; return;
} }
   
Fade(m_CanvasGroup.alpha, alpha, duration, callback); Fade(m_CanvasGroup.alpha, alpha, duration, callback);
} }
   
/// <summary> /// <summary>
/// Sets the alpha value of the canvas group. /// Sets the alpha value of the canvas group.
/// </summary> /// </summary>
public void SetAlpha(float alpha) public void SetAlpha(float alpha)
{ {
if (m_CanvasGroup == null) if (m_CanvasGroup == null)
{ {
return; return;
} }
   
alpha = Mathf.Clamp01(alpha); alpha = Mathf.Clamp01(alpha);
m_CanvasGroup.alpha = alpha; m_CanvasGroup.alpha = alpha;
} }
   
protected virtual void Awake() protected virtual void Awake()
{ {
// cache components // cache components
m_CanvasGroup = GetComponent<CanvasGroup>(); m_CanvasGroup = GetComponent<CanvasGroup>();
} }
   
/// <summary> /// <summary>
/// Starts a fade from one alpha value to another with callback. /// Starts a fade from one alpha value to another with callback.
/// </summary> /// </summary>
private void Fade(float from, float to, float duration, Action callback) private void Fade(float from, float to, float duration, Action callback)
{ {
if (m_FadeCoroutine != null) if (m_FadeCoroutine != null)
{ {
StopCoroutine(m_FadeCoroutine); StopCoroutine(m_FadeCoroutine);
} }
   
m_FadeCoroutine = FadeCoroutine(from, to, duration, callback); m_FadeCoroutine = FadeCoroutine(from, to, duration, callback);
StartCoroutine(m_FadeCoroutine); StartCoroutine(m_FadeCoroutine);
} }
   
/// <summary> /// <summary>
/// Coroutine that handles the fading. /// Coroutine that handles the fading.
/// </summary> /// </summary>
private IEnumerator FadeCoroutine(float from, float to, float duration, Action callback) private IEnumerator FadeCoroutine(float from, float to, float duration, Action callback)
{ {
  // wait for end of frame so that only the last call to fade that frame is honoured.
  yield return new WaitForEndOfFrame();
   
float progress = 0.0f; float progress = 0.0f;
   
while (progress <= 1.0f) while (progress <= 1.0f)
{ {
progress += Time.deltaTime / duration; progress += Time.deltaTime / duration;
SetAlpha(Mathf.Lerp(from, to, progress)); SetAlpha(Mathf.Lerp(from, to, progress));
yield return null; yield return null;
} }
   
print(m_CanvasGroup.alpha); print(m_CanvasGroup.alpha);
callback?.Invoke(); if (callback != null)
  callback.Invoke();
   
m_FadeCoroutine = null; m_FadeCoroutine = null;
} }
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Unity.Flight namespace KerbalEngineer.Unity.Flight
{ {
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.UI; using UnityEngine.UI;
   
  [RequireComponent(typeof(RectTransform))]
public class FlightMenu : CanvasGroupFader, IPointerEnterHandler, IPointerExitHandler public class FlightMenu : CanvasGroupFader, IPointerEnterHandler, IPointerExitHandler
{ {
[SerializeField] [SerializeField]
private Toggle m_ShowEngineerToggle = null; private Toggle m_ShowEngineerToggle = null;
   
[SerializeField] [SerializeField]
private Toggle m_ControlBarToggle = null; private Toggle m_ControlBarToggle = null;
   
[SerializeField] [SerializeField]
private GameObject m_MenuSectionPrefab = null; private GameObject m_MenuSectionPrefab = null;
   
[SerializeField] [SerializeField]
private Transform m_ContentTransform = null; private Transform m_SectionsTransform = null;
   
[SerializeField] [SerializeField]
private float m_FastFadeDuration = 0.2f; private float m_FastFadeDuration = 0.2f;
   
[SerializeField] [SerializeField]
private float m_SlowFadeDuration = 1.0f; private float m_SlowFadeDuration = 1.0f;
   
private IFlightAppLauncher m_FlightAppLauncher; private IFlightAppLauncher m_FlightAppLauncher;
  private RectTransform m_RectTransform;
   
public void OnPointerEnter(PointerEventData eventData) public void OnPointerEnter(PointerEventData eventData)
{ {
FadeIn(); FadeIn();
} }
   
public void OnPointerExit(PointerEventData eventData) public void OnPointerExit(PointerEventData eventData)
{ {
// slow-fade out if the application launcher button is off // slow-fade out if the application launcher button is off
if (m_FlightAppLauncher != null && m_FlightAppLauncher.isOn == false) if (m_FlightAppLauncher != null && m_FlightAppLauncher.IsOn == false)
{ {
FadeTo(0.0f, m_SlowFadeDuration, Destroy); FadeTo(0.0f, m_SlowFadeDuration, Destroy);
} }
} }
   
/// <summary> /// <summary>
/// Fades out and destroys the menu. /// Fades out and destroys the menu.
/// </summary> /// </summary>
public void Close() public void Close()
{ {
FadeTo(0.0f, m_FastFadeDuration, Destroy); FadeTo(0.0f, m_FastFadeDuration, Destroy);
} }
   
/// <summary> /// <summary>
/// Fades in the menu. /// Fades in the menu.
/// </summary> /// </summary>
public void FadeIn() public void FadeIn()
{ {
FadeTo(1.0f, m_FastFadeDuration); FadeTo(1.0f, m_FastFadeDuration);
} }
   
/// <summary> /// <summary>
  /// Creates a new custom section.
  /// </summary>
  public void NewCustomSection()
  {
  if (m_FlightAppLauncher != null)
  {
  CreateSectionControl(m_FlightAppLauncher.NewCustomSection());
  }
  }
   
  /// <summary>
/// Sets the control bar visiblity. /// Sets the control bar visiblity.
/// </summary> /// </summary>
public void SetControlBar(bool visible) public void SetControlBarVisible(bool visible)
{ {
if (m_FlightAppLauncher != null) if (m_FlightAppLauncher != null)
{ {
m_FlightAppLauncher.controlBar = visible; m_FlightAppLauncher.IsControlBarVisible = visible;
  }
  }
   
  /// <summary>
  /// Sets the display stack visibility.
  /// </summary>
  public void SetDisplayStackVisible(bool visible)
  {
  if (m_FlightAppLauncher != null)
  {
  m_FlightAppLauncher.IsDisplayStackVisible = visible;
} }
} }
   
/// <summary> /// <summary>
/// Sets a reference to the flight app launcher object. /// Sets a reference to the flight app launcher object.
/// </summary> /// </summary>
public void SetFlightAppLauncher(IFlightAppLauncher flightAppLauncher) public void SetFlightAppLauncher(IFlightAppLauncher flightAppLauncher)
{ {
if (flightAppLauncher == null) if (flightAppLauncher == null)
{ {
return; return;
} }
   
m_FlightAppLauncher = flightAppLauncher; m_FlightAppLauncher = flightAppLauncher;
   
// create section controls // create section controls
CreateSectionControls(m_FlightAppLauncher.GetStockSections()); CreateSectionControls(m_FlightAppLauncher.GetStockSections());
CreateSectionControls(m_FlightAppLauncher.GetCustomSections()); CreateSectionControls(m_FlightAppLauncher.GetCustomSections());
} }
   
/// <summary> protected override void Awake()
/// Sets the display stack visibility. {
/// </summary> base.Awake();
public void SetShowEngineer(bool visible)  
{ // cache components
if (m_FlightAppLauncher != null) m_RectTransform = GetComponent<RectTransform>();
{  
m_FlightAppLauncher.showEngineer = visible;  
}  
} }
   
protected virtual void Start() protected virtual void Start()
{ {
// set starting alpha to zero and fade in // set starting alpha to zero and fade in
SetAlpha(0.0f); SetAlpha(0.0f);
FadeIn(); FadeIn();
} }
   
protected virtual void Update() protected virtual void Update()
{ {
  if (m_FlightAppLauncher == null)
  {
  return;
  }
   
// set toggle states to match the actual states // set toggle states to match the actual states
if (m_FlightAppLauncher != null) SetToggle(m_ShowEngineerToggle, m_FlightAppLauncher.IsDisplayStackVisible);
{ SetToggle(m_ControlBarToggle, m_FlightAppLauncher.IsControlBarVisible);
SetToggle(m_ShowEngineerToggle, m_FlightAppLauncher.showEngineer);  
SetToggle(m_ControlBarToggle, m_FlightAppLauncher.controlBar); // update anchor position
  if (m_RectTransform != null)
  {
  m_RectTransform.position = m_FlightAppLauncher.GetAnchor();
  m_FlightAppLauncher.ClampToScreen(m_RectTransform);
} }
} }
   
/// <summary> /// <summary>
/// Sets a given toggle to the specified state with null checking. /// Sets a given toggle to the specified state with null checking.
/// </summary> /// </summary>
private static void SetToggle(Toggle toggle, bool state) private static void SetToggle(Toggle toggle, bool state)
{ {
if (toggle != null) if (toggle != null)
{ {
toggle.isOn = state; toggle.isOn = state;
} }
} }
   
/// <summary> /// <summary>
/// Creates a list of section controls from a given list of sections. /// Creates a menu section control.
/// </summary> /// </summary>
private void CreateSectionControls(IList<ISectionModule> sections) private void CreateSectionControl(ISectionModule section)
{ {
if (sections == null || m_MenuSectionPrefab == null || m_ContentTransform == null) GameObject menuSectionObject = Instantiate(m_MenuSectionPrefab);
{ if (menuSectionObject != null)
return; {
} menuSectionObject.transform.SetParent(m_SectionsTransform, false);
   
for (int i = 0; i < sections.Count; i++)  
{  
ISectionModule section = sections[i];  
if (section == null)  
{  
continue;  
}  
   
GameObject menuSectionObject = Instantiate(m_MenuSectionPrefab);  
if (menuSectionObject == null)  
{  
continue;  
}  
   
menuSectionObject.transform.SetParent(m_ContentTransform, false);  
   
FlightMenuSection menuSection = menuSectionObject.GetComponent<FlightMenuSection>(); FlightMenuSection menuSection = menuSectionObject.GetComponent<FlightMenuSection>();
if (menuSection != null) if (menuSection != null)
{ {
menuSection.SetAssignedSection(section); menuSection.SetAssignedSection(section);
} }
} }
} }
   
/// <summary> /// <summary>
  /// Creates a list of section controls from a given list of sections.
  /// </summary>
  private void CreateSectionControls(IList<ISectionModule> sections)
  {
  if (sections == null || m_MenuSectionPrefab == null || m_SectionsTransform == null)
  {
  return;
  }
   
  for (int i = 0; i < sections.Count; i++)
  {
  ISectionModule section = sections[i];
  if (section != null)
  {
  CreateSectionControl(section);
  }
  }
  }
   
  /// <summary>
/// Destroys the game object. /// Destroys the game object.
/// </summary> /// </summary>
private void Destroy() private void Destroy()
{ {
// disable game object first due to an issue within unity 5.2.4f1 that shows a single frame at full opaque alpha just before destruction // disable game object first due to an issue within unity 5.2.4f1 that shows a single frame at full opaque alpha just before destruction
gameObject.SetActive(false); gameObject.SetActive(false);
Destroy(gameObject); Destroy(gameObject);
} }
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Unity.Flight namespace KerbalEngineer.Unity.Flight
{ {
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
   
public class FlightMenuSection : MonoBehaviour public class FlightMenuSection : MonoBehaviour
{ {
[SerializeField] [SerializeField]
private Toggle m_DisplayToggle = null; private Toggle m_DisplayToggle = null;
   
[SerializeField] [SerializeField]
private Text m_DisplayText = null; private Text m_DisplayText = null;
   
[SerializeField] [SerializeField]
private Toggle m_EditToggle = null; private Toggle m_EditToggle = null;
   
private ISectionModule m_Section; private ISectionModule m_Section;
   
/// <summary> /// <summary>
/// Gets or sets the section's editor visibility. /// Gets or sets the section's editor visibility.
/// </summary> /// </summary>
public bool editorVisible public bool IsEditorVisible
{ {
get get
{ {
if (m_EditToggle != null) if (m_EditToggle != null)
{ {
return m_EditToggle.isOn; return m_EditToggle.isOn;
} }
   
return true; return true;
} }
set set
{ {
if (m_EditToggle != null) if (m_EditToggle != null)
{ {
m_EditToggle.isOn = value; m_EditToggle.isOn = value;
} }
} }
} }
   
/// <summary> /// <summary>
/// Sets the assigned section to be handled by the menu object. /// Sets the assigned section to be handled by the menu object.
/// </summary> /// </summary>
public void SetAssignedSection(ISectionModule section) public void SetAssignedSection(ISectionModule section)
{ {
if (section == null) if (section == null)
{ {
return; return;
} }
   
m_Section = section; m_Section = section;
} }
   
/// <summary> /// <summary>
/// Sets the section's display visibility. /// Sets the section's display visibility.
/// </summary> /// </summary>
public void SetDisplayVisible(bool visible) public void SetDisplayVisible(bool visible)
{ {
if (m_Section != null) if (m_Section != null)
{ {
m_Section.IsVisible = visible; m_Section.IsVisible = visible;
} }
} }
   
/// <summary> /// <summary>
/// Sets the section's editor visibility. /// Sets the section's editor visibility.
/// </summary> /// </summary>
public void SetEditorVisible(bool visible) public void SetEditorVisible(bool visible)
{ {
if (m_Section != null) if (m_Section != null)
{ {
m_Section.IsEditorVisible = visible; m_Section.IsEditorVisible = visible;
} }
} }
   
protected virtual void Update() protected virtual void Update()
{ {
UpdateControls(); UpdateControls();
} }
   
/// <summary> /// <summary>
/// Updates the menu section's controls. /// Updates the menu section's controls.
/// </summary> /// </summary>
private void UpdateControls() private void UpdateControls()
{ {
if (m_Section == null) if (m_Section == null || m_Section.IsDeleted)
{ {
  Destroy(gameObject);
return; return;
} }
   
// display visible // display visible
if (m_DisplayToggle != null) if (m_DisplayToggle != null)
{ {
m_DisplayToggle.isOn = m_Section.IsVisible; m_DisplayToggle.isOn = m_Section.IsVisible;
} }
   
// display name // display name
if (m_DisplayText != null) if (m_DisplayText != null)
{ {
m_DisplayText.text = m_Section.Name; m_DisplayText.text = m_Section.Name.ToUpperInvariant();
} }
   
// editor visible // editor visible
if (m_EditToggle != null) if (m_EditToggle != null)
{ {
m_EditToggle.isOn = m_Section.IsEditorVisible; m_EditToggle.isOn = m_Section.IsEditorVisible;
} }
} }
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Unity.Flight namespace KerbalEngineer.Unity.Flight
{ {
using System.Collections.Generic; using System.Collections.Generic;
  using UnityEngine;
   
public interface IFlightAppLauncher public interface IFlightAppLauncher
{ {
bool controlBar { get; set; } bool IsControlBarVisible { get; set; }
   
bool isOn { get; } bool IsDisplayStackVisible { get; set; }
   
bool showEngineer { get; set; } bool IsOn { get; }
   
  void ClampToScreen(RectTransform rectTransform);
   
  Vector3 GetAnchor();
   
IList<ISectionModule> GetCustomSections(); IList<ISectionModule> GetCustomSections();
   
IList<ISectionModule> GetStockSections(); IList<ISectionModule> GetStockSections();
   
  ISectionModule NewCustomSection();
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Unity.Flight namespace KerbalEngineer.Unity.Flight
{ {
public interface ISectionModule public interface ISectionModule
{ {
  bool IsDeleted { get; }
   
bool IsEditorVisible { get; set; } bool IsEditorVisible { get; set; }
   
bool IsVisible { get; set; } bool IsVisible { get; set; }
   
string Name { get; } string Name { get; }
} }
} }
// //
// 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> /// <summary>
/// Gets the anchor position for pop-up content. /// Gets the anchor position for pop-up content.
/// </summary> /// </summary>
public Vector3 GetAnchor() public Vector3 GetAnchor()
{ {
if (m_Button == null) if (m_Button == null)
{ {
return Vector3.zero; return Vector3.zero;
} }
   
Vector3 anchor = m_Button.GetAnchor(); Vector3 anchor = m_Button.GetAnchor();
   
anchor.x -= 3.0f; anchor.x -= 3.0f;
   
return anchor; 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.SetFalse();
  }
  }
   
  /// <summary>
  /// Enables and sets the button to on.
  /// </summary>
  public void SetOn()
  {
  Enable();
   
  if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.True)
  {
m_Button.SetTrue(); m_Button.SetTrue();
} }
} }
   
/// <summary>  
/// Enables and sets the button to on.  
/// </summary>  
public void SetOn()  
{  
Enable();  
   
if (m_Button != null && m_Button.toggleButton.CurrentState != UIRadioButton.State.True)  
{  
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();
} }
} }
} }
// //
// 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 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) 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.Editor namespace KerbalEngineer.Editor
{ {
[KSPAddon(KSPAddon.Startup.EditorAny, false)] [KSPAddon(KSPAddon.Startup.EditorAny, false)]
public class BuildAppLauncher : AppLauncherButton public class BuildAppLauncher : AppLauncherButton
{ {
protected override void OnFalse() protected override void OnFalse()
{ {
if (BuildAdvanced.Instance != null) if (BuildAdvanced.Instance != null)
{ {
BuildAdvanced.Instance.Visible = false; BuildAdvanced.Instance.Visible = false;
} }
} }
   
protected override void OnTrue() protected override void OnTrue()
{ {
if (BuildAdvanced.Instance != null) if (BuildAdvanced.Instance != null)
{ {
BuildAdvanced.Instance.Visible = true; BuildAdvanced.Instance.Visible = true;
} }
} }
   
protected virtual void Update() protected virtual void Update()
{ {
if (BuildAdvanced.Instance == null) if (BuildAdvanced.Instance == null)
{ {
return; return;
} }
   
// check if vessel is currently under construction with the presence of a root part // check if vessel is currently under construction with the presence of a root part
if (EditorLogic.RootPart != null) if (EditorLogic.RootPart != null)
{ {
// set button state based on existing visibility // set button state based on existing visibility
isOn = BuildAdvanced.Instance.Visible; IsOn = BuildAdvanced.Instance.Visible;
} }
else else
{ {
Disable(); Disable();
} }
} }
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2016 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Flight namespace KerbalEngineer.Flight
{ {
using System.Collections.Generic; using System.Collections.Generic;
  using KSP.UI;
using Sections; using Sections;
using Unity.Flight; using Unity.Flight;
using UnityEngine; using UnityEngine;
   
[KSPAddon(KSPAddon.Startup.Flight, false)] [KSPAddon(KSPAddon.Startup.Flight, false)]
public class FlightAppLauncher : AppLauncherButton, IFlightAppLauncher public class FlightAppLauncher : AppLauncherButton, IFlightAppLauncher
{ {
private static FlightAppLauncher m_Instance; private static FlightAppLauncher m_Instance;
private FlightMenu m_FlightMenu; private FlightMenu m_FlightMenu;
private GameObject m_MenuObject; private GameObject m_MenuObject;
private GameObject m_MenuPrefab; private GameObject m_MenuPrefab;
   
public IList<ISectionModule> GetCustomSections { get; }  
   
/// <summary> /// <summary>
/// Gets the current instance of the FlightAppLauncher object. /// Gets the current instance of the FlightAppLauncher object.
/// </summary> /// </summary>
public static FlightAppLauncher instance public static FlightAppLauncher Instance
{ {
get get
{ {
return m_Instance; return m_Instance;
} }
} }
   
/// <summary> /// <summary>
  /// Clamps the given rect transform within the screen bounds.
  /// </summary>
  public void ClampToScreen(RectTransform rectTransform)
  {
  UIMasterController.ClampToScreen(rectTransform, Vector2.zero);
  }
   
  /// <summary>
  /// Gets a list of custom sections.
  /// </summary>
  IList<ISectionModule> IFlightAppLauncher.GetCustomSections()
  {
  return new List<ISectionModule>(SectionLibrary.CustomSections.ToArray());
  }
   
  /// <summary>
  /// Gets a list of stock sections.
  /// </summary>
  public IList<ISectionModule> GetStockSections()
  {
  return new List<ISectionModule>(SectionLibrary.StockSections.ToArray());
  }
   
  /// <summary>
/// Gets or sets the control bar's visibility. /// Gets or sets the control bar's visibility.
/// </summary> /// </summary>
public bool controlBar public bool IsControlBarVisible
{ {
get get
{ {
if (DisplayStack.Instance != null) if (DisplayStack.Instance != null)
{ {
return DisplayStack.Instance.ShowControlBar; return DisplayStack.Instance.ShowControlBar;
} }
   
return false; return false;
} }
set set
{ {
if (DisplayStack.Instance != null) if (DisplayStack.Instance != null)
{ {
DisplayStack.Instance.ShowControlBar = value; DisplayStack.Instance.ShowControlBar = value;
} }
} }
} }
   
IList<ISectionModule> IFlightAppLauncher.GetCustomSections()  
{  
return new List<ISectionModule>(SectionLibrary.CustomSections.ToArray());  
}  
   
public IList<ISectionModule> GetStockSections()  
{  
return new List<ISectionModule>(SectionLibrary.StockSections.ToArray());  
}  
   
/// <summary> /// <summary>
/// Gets or sets the display stack's visibility. /// Gets or sets the display stack's visibility.
/// </summary> /// </summary>
public bool showEngineer public bool IsDisplayStackVisible
{ {
get get
{ {
if (DisplayStack.Instance != null) if (DisplayStack.Instance != null)
{ {
return DisplayStack.Instance.Hidden == false; return DisplayStack.Instance.Hidden == false;
} }
   
return false; return false;
} }
set set
{ {
if (DisplayStack.Instance != null) if (DisplayStack.Instance != null)
{ {
DisplayStack.Instance.Hidden = !value; DisplayStack.Instance.Hidden = !value;
} }
} }
  }
   
  /// <summary>
  /// Creates and initialises a new custom section.
  /// </summary>
  public ISectionModule NewCustomSection()
  {
  SectionModule section = new SectionModule
  {
  Name = "Custom " + (SectionLibrary.CustomSections.Count + 1),
  Abbreviation = "CUST " + (SectionLibrary.CustomSections.Count + 1),
  IsVisible = true,
  IsCustom = true,
  IsEditorVisible = true
  };
   
  SectionLibrary.CustomSections.Add(section);
   
  return section;
} }
   
protected override void Awake() protected override void Awake()
{ {
base.Awake(); base.Awake();
   
// set singleton instance // set singleton instance
m_Instance = this; m_Instance = this;
   
// cache menu prefab // cache menu prefab
if (m_MenuPrefab == null && AssetBundleLoader.prefabs != null) if (m_MenuPrefab == null && AssetBundleLoader.Prefabs != null)
{ {
m_MenuPrefab = AssetBundleLoader.prefabs.LoadAsset<GameObject>("FlightMenu"); m_MenuPrefab = AssetBundleLoader.Prefabs.LoadAsset<GameObject>("FlightMenu");
} }
} }
   
protected override void OnFalse() protected override void OnFalse()
{ {
Close(); Close();
} }
   
protected override void OnHover() protected override void OnHover()
{ {
Open(); Open();
} }
   
protected override void OnHoverOut() protected override void OnHoverOut()
{ {
if (isOn == false) if (IsOn == false)
{ {
Close(); Close();
} }
} }
   
protected override void OnTrue() protected override void OnTrue()
{ {
Open(); Open();
} }
   
/// <summary> /// <summary>
/// Closes the menu. /// Closes the menu.
/// </summary> /// </summary>
private void Close() private void Close()
{ {
if (m_FlightMenu != null) if (m_FlightMenu != null)
{ {
m_FlightMenu.Close(); m_FlightMenu.Close();
} }
else else
{ {
Destroy(m_MenuObject); Destroy(m_MenuObject);
} }
} }
   
/// <summary> /// <summary>
/// Opens the menu. /// Opens the menu.
/// </summary> /// </summary>
private void Open() private void Open()
{ {
// fade menu in if already open // fade menu in if already open
if (m_FlightMenu != null) if (m_FlightMenu != null)
{ {
m_FlightMenu.FadeIn(); m_FlightMenu.FadeIn();
return; return;
} }
   
if (m_MenuPrefab == null || m_MenuObject != null) if (m_MenuPrefab == null || m_MenuObject != null)
{ {
return; return;
} }
   
// create object // create object
m_MenuObject = Instantiate(m_MenuPrefab, GetAnchor(), Quaternion.identity) as GameObject; m_MenuObject = Instantiate(m_MenuPrefab, GetAnchor(), Quaternion.identity) as GameObject;
if (m_MenuObject == null) if (m_MenuObject == null)
{ {
return; return;
} }
   
// set object as a child of the main canvas // set object as a child of the main canvas
m_MenuObject.transform.SetParent(MainCanvasUtil.MainCanvas.transform); m_MenuObject.transform.SetParent(MainCanvasUtil.MainCanvas.transform);
   
// set menu's reference to this object for cross-communication // set menu's reference to this object for cross-communication
m_FlightMenu = m_MenuObject.GetComponent<FlightMenu>(); m_FlightMenu = m_MenuObject.GetComponent<FlightMenu>();
if (m_FlightMenu != null) if (m_FlightMenu != null)
{ {
m_FlightMenu.SetFlightAppLauncher(this); m_FlightMenu.SetFlightAppLauncher(this);
} }
} }
} }
} }
  //
  // Kerbal Engineer Redux
  //
  // Copyright (C) 2014 CYBUTEK
  //
  // This program is free software: you can redistribute it and/or modify
  // it under the terms of the GNU General Public License as published by
  // the Free Software Foundation, either version 3 of the License, or
  // (at your option) any later version.
  //
  // This program is distributed in the hope that it will be useful,
  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  // GNU General Public License for more details.
  //
  // You should have received a copy of the GNU General Public License
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
  //
 
  namespace KerbalEngineer.Flight.Readouts.Miscellaneous
  {
  #region Using Directives
 
  using Sections;
  using UnityEngine;
  using VesselSimulator;
 
  #endregion
 
  public class LogSimToggle : ReadoutModule
  {
  #region Constructors
 
  public LogSimToggle()
  {
  this.Name = "Log Simulation";
  this.Category = ReadoutCategory.GetCategory("Miscellaneous");
  this.HelpString = "Shows a button that allows you to make the next run of the simulation code dump extra debugging output.";
  this.IsDefault = false;
  }
 
  #endregion
 
  #region Methods
 
  public override void Draw(SectionModule section)
  {
  GUILayout.BeginHorizontal();
  GUILayout.Label("Log Simulation: ", this.NameStyle);
  SimManager.logOutput = GUILayout.Toggle(SimManager.logOutput, "ENABLED", this.ButtonStyle);
  GUILayout.EndHorizontal();
  }
 
  #endregion
  }
  }
// //
// Copyright (C) 2015 CYBUTEK // Copyright (C) 2015 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Flight.Readouts namespace KerbalEngineer.Flight.Readouts
{ {
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Miscellaneous; using Miscellaneous;
using Orbital; using Orbital;
using Orbital.ManoeuvreNode; using Orbital.ManoeuvreNode;
using Rendezvous; using Rendezvous;
using Settings; using Settings;
using Surface; using Surface;
using Thermal; using Thermal;
using Vessel; using Vessel;
using AltitudeSeaLevel = Surface.AltitudeSeaLevel; using AltitudeSeaLevel = Surface.AltitudeSeaLevel;
using ApoapsisHeight = Orbital.ApoapsisHeight; using ApoapsisHeight = Orbital.ApoapsisHeight;
using OrbitalPeriod = Orbital.OrbitalPeriod; using OrbitalPeriod = Orbital.OrbitalPeriod;
using PeriapsisHeight = Orbital.PeriapsisHeight; using PeriapsisHeight = Orbital.PeriapsisHeight;
using SemiMajorAxis = Orbital.SemiMajorAxis; using SemiMajorAxis = Orbital.SemiMajorAxis;
using SemiMinorAxis = Orbital.SemiMinorAxis; using SemiMinorAxis = Orbital.SemiMinorAxis;
using TimeToApoapsis = Orbital.TimeToApoapsis; using TimeToApoapsis = Orbital.TimeToApoapsis;
using TimeToPeriapsis = Orbital.TimeToPeriapsis; using TimeToPeriapsis = Orbital.TimeToPeriapsis;
   
public static class ReadoutLibrary public static class ReadoutLibrary
{ {
private static List<ReadoutModule> readouts = new List<ReadoutModule>(); private static List<ReadoutModule> readouts = new List<ReadoutModule>();
   
/// <summary> /// <summary>
/// Sets up and populates the readout library with the stock readouts. /// Sets up and populates the readout library with the stock readouts.
/// </summary> /// </summary>
static ReadoutLibrary() static ReadoutLibrary()
{ {
try try
{ {
ReadoutCategory.SetCategory("Orbital", "Readout for orbital manovoeures."); ReadoutCategory.SetCategory("Orbital", "Readout for orbital manovoeures.");
ReadoutCategory.SetCategory("Surface", "Surface and atmospheric readouts."); ReadoutCategory.SetCategory("Surface", "Surface and atmospheric readouts.");
ReadoutCategory.SetCategory("Vessel", "Vessel performance statistics."); ReadoutCategory.SetCategory("Vessel", "Vessel performance statistics.");
ReadoutCategory.SetCategory("Rendezvous", "Readouts for rendezvous manovoeures."); ReadoutCategory.SetCategory("Rendezvous", "Readouts for rendezvous manovoeures.");
ReadoutCategory.SetCategory("Thermal", "Thermal characteristics readouts."); ReadoutCategory.SetCategory("Thermal", "Thermal characteristics readouts.");
ReadoutCategory.SetCategory("Miscellaneous", "Miscellaneous readouts."); ReadoutCategory.SetCategory("Miscellaneous", "Miscellaneous readouts.");
ReadoutCategory.Selected = ReadoutCategory.GetCategory("Orbital"); ReadoutCategory.Selected = ReadoutCategory.GetCategory("Orbital");
   
// Orbital // Orbital
readouts.Add(new ApoapsisHeight()); readouts.Add(new ApoapsisHeight());
readouts.Add(new PeriapsisHeight()); readouts.Add(new PeriapsisHeight());
readouts.Add(new TimeToApoapsis()); readouts.Add(new TimeToApoapsis());
readouts.Add(new TimeToPeriapsis()); readouts.Add(new TimeToPeriapsis());
readouts.Add(new Inclination()); readouts.Add(new Inclination());
readouts.Add(new TimeToEquatorialAscendingNode()); readouts.Add(new TimeToEquatorialAscendingNode());
readouts.Add(new TimeToEquatorialDescendingNode()); readouts.Add(new TimeToEquatorialDescendingNode());
readouts.Add(new AngleToEquatorialAscendingNode()); readouts.Add(new AngleToEquatorialAscendingNode());
readouts.Add(new AngleToEquatorialDescendingNode()); readouts.Add(new AngleToEquatorialDescendingNode());
readouts.Add(new Eccentricity()); readouts.Add(new Eccentricity());
readouts.Add(new OrbitalSpeed()); readouts.Add(new OrbitalSpeed());
readouts.Add(new OrbitalPeriod()); readouts.Add(new OrbitalPeriod());
readouts.Add(new CurrentSoi()); readouts.Add(new CurrentSoi());
readouts.Add(new LongitudeOfAscendingNode()); readouts.Add(new LongitudeOfAscendingNode());
readouts.Add(new LongitudeOfPeriapsis()); readouts.Add(new LongitudeOfPeriapsis());
readouts.Add(new ArgumentOfPeriapsis()); readouts.Add(new ArgumentOfPeriapsis());
readouts.Add(new TrueAnomaly()); readouts.Add(new TrueAnomaly());
readouts.Add(new MeanAnomaly()); readouts.Add(new MeanAnomaly());
readouts.Add(new MeanAnomalyAtEpoc()); readouts.Add(new MeanAnomalyAtEpoc());
readouts.Add(new EccentricAnomaly()); readouts.Add(new EccentricAnomaly());
readouts.Add(new SemiMajorAxis()); readouts.Add(new SemiMajorAxis());
readouts.Add(new SemiMinorAxis()); readouts.Add(new SemiMinorAxis());
readouts.Add(new AngleToPrograde()); readouts.Add(new AngleToPrograde());
readouts.Add(new AngleToRetrograde()); readouts.Add(new AngleToRetrograde());
readouts.Add(new NodeProgradeDeltaV()); readouts.Add(new NodeProgradeDeltaV());
readouts.Add(new NodeNormalDeltaV()); readouts.Add(new NodeNormalDeltaV());
readouts.Add(new NodeRadialDeltaV()); readouts.Add(new NodeRadialDeltaV());
readouts.Add(new NodeTotalDeltaV()); readouts.Add(new NodeTotalDeltaV());
readouts.Add(new NodeBurnTime()); readouts.Add(new NodeBurnTime());
readouts.Add(new NodeHalfBurnTime()); readouts.Add(new NodeHalfBurnTime());
readouts.Add(new NodeTimeToManoeuvre()); readouts.Add(new NodeTimeToManoeuvre());
readouts.Add(new NodeTimeToHalfBurn()); readouts.Add(new NodeTimeToHalfBurn());
readouts.Add(new NodeAngleToPrograde()); readouts.Add(new NodeAngleToPrograde());
readouts.Add(new NodeAngleToRetrograde()); readouts.Add(new NodeAngleToRetrograde());
readouts.Add(new PostBurnApoapsis()); readouts.Add(new PostBurnApoapsis());
readouts.Add(new PostBurnPeriapsis()); readouts.Add(new PostBurnPeriapsis());
readouts.Add(new SpeedAtApoapsis()); readouts.Add(new SpeedAtApoapsis());
readouts.Add(new SpeedAtPeriapsis()); readouts.Add(new SpeedAtPeriapsis());
readouts.Add(new TimeToAtmosphere()); readouts.Add(new TimeToAtmosphere());
   
// Surface // Surface
readouts.Add(new AltitudeSeaLevel()); readouts.Add(new AltitudeSeaLevel());
readouts.Add(new AltitudeTerrain()); readouts.Add(new AltitudeTerrain());
readouts.Add(new VerticalSpeed()); readouts.Add(new VerticalSpeed());
readouts.Add(new VerticalAcceleration()); readouts.Add(new VerticalAcceleration());
readouts.Add(new HorizontalSpeed()); readouts.Add(new HorizontalSpeed());
readouts.Add(new HorizontalAcceleration()); readouts.Add(new HorizontalAcceleration());
readouts.Add(new MachNumber()); readouts.Add(new MachNumber());
readouts.Add(new Latitude()); readouts.Add(new Latitude());
readouts.Add(new Longitude()); readouts.Add(new Longitude());
readouts.Add(new GeeForce()); readouts.Add(new GeeForce());
readouts.Add(new TerminalVelocity()); readouts.Add(new TerminalVelocity());
readouts.Add(new AtmosphericEfficiency()); readouts.Add(new AtmosphericEfficiency());
readouts.Add(new Biome()); readouts.Add(new Biome());
readouts.Add(new Situation()); readouts.Add(new Situation());
readouts.Add(new Slope()); readouts.Add(new Slope());
readouts.Add(new ImpactTime()); readouts.Add(new ImpactTime());
readouts.Add(new ImpactLongitude()); readouts.Add(new ImpactLongitude());
readouts.Add(new ImpactLatitude()); readouts.Add(new ImpactLatitude());
readouts.Add(new ImpactAltitude()); readouts.Add(new ImpactAltitude());
readouts.Add(new ImpactBiome()); readouts.Add(new ImpactBiome());
   
// Vessel // Vessel
readouts.Add(new Name()); readouts.Add(new Name());
readouts.Add(new DeltaVStaged()); readouts.Add(new DeltaVStaged());
readouts.Add(new DeltaVCurrent()); readouts.Add(new DeltaVCurrent());
readouts.Add(new DeltaVTotal()); readouts.Add(new DeltaVTotal());
readouts.Add(new DeltaVCurrentTotal()); readouts.Add(new DeltaVCurrentTotal());
readouts.Add(new SpecificImpulse()); readouts.Add(new SpecificImpulse());
readouts.Add(new Mass()); readouts.Add(new Mass());
readouts.Add(new Thrust()); readouts.Add(new Thrust());
readouts.Add(new ThrustToWeight()); readouts.Add(new ThrustToWeight());
readouts.Add(new ThrustOffsetAngle()); readouts.Add(new ThrustOffsetAngle());
readouts.Add(new ThrustTorque()); readouts.Add(new ThrustTorque());
readouts.Add(new SurfaceThrustToWeight()); readouts.Add(new SurfaceThrustToWeight());
readouts.Add(new Acceleration()); readouts.Add(new Acceleration());
readouts.Add(new SuicideBurnAltitude()); readouts.Add(new SuicideBurnAltitude());
readouts.Add(new SuicideBurnDistance()); readouts.Add(new SuicideBurnDistance());
readouts.Add(new SuicideBurnDeltaV()); readouts.Add(new SuicideBurnDeltaV());
readouts.Add(new IntakeAirUsage()); readouts.Add(new IntakeAirUsage());
readouts.Add(new IntakeAirDemand()); readouts.Add(new IntakeAirDemand());
readouts.Add(new IntakeAirSupply()); readouts.Add(new IntakeAirSupply());
readouts.Add(new IntakeAirDemandSupply()); readouts.Add(new IntakeAirDemandSupply());
readouts.Add(new PartCount()); readouts.Add(new PartCount());
readouts.Add(new Heading()); readouts.Add(new Heading());
readouts.Add(new Pitch()); readouts.Add(new Pitch());
readouts.Add(new Roll()); readouts.Add(new Roll());
readouts.Add(new HeadingRate()); readouts.Add(new HeadingRate());
readouts.Add(new PitchRate()); readouts.Add(new PitchRate());
readouts.Add(new RollRate()); readouts.Add(new RollRate());
   
// Rendezvous // Rendezvous
readouts.Add(new TargetSelector()); readouts.Add(new TargetSelector());
readouts.Add(new PhaseAngle()); readouts.Add(new PhaseAngle());
readouts.Add(new InterceptAngle()); readouts.Add(new InterceptAngle());
readouts.Add(new RelativeVelocity()); readouts.Add(new RelativeVelocity());
readouts.Add(new RelativeSpeed()); readouts.Add(new RelativeSpeed());
readouts.Add(new RelativeInclination()); readouts.Add(new RelativeInclination());
readouts.Add(new TimeToRelativeAscendingNode()); readouts.Add(new TimeToRelativeAscendingNode());
readouts.Add(new TimeToRelativeDescendingNode()); readouts.Add(new TimeToRelativeDescendingNode());
readouts.Add(new AngleToRelativeAscendingNode()); readouts.Add(new AngleToRelativeAscendingNode());
readouts.Add(new AngleToRelativeDescendingNode()); readouts.Add(new AngleToRelativeDescendingNode());
readouts.Add(new Rendezvous.AltitudeSeaLevel()); readouts.Add(new Rendezvous.AltitudeSeaLevel());
readouts.Add(new Rendezvous.ApoapsisHeight()); readouts.Add(new Rendezvous.ApoapsisHeight());
readouts.Add(new Rendezvous.PeriapsisHeight()); readouts.Add(new Rendezvous.PeriapsisHeight());
readouts.Add(new Rendezvous.TimeToApoapsis()); readouts.Add(new Rendezvous.TimeToApoapsis());
readouts.Add(new Rendezvous.TimeToPeriapsis()); readouts.Add(new Rendezvous.TimeToPeriapsis());
readouts.Add(new Distance()); readouts.Add(new Distance());
readouts.Add(new Rendezvous.OrbitalPeriod()); readouts.Add(new Rendezvous.OrbitalPeriod());
readouts.Add(new Rendezvous.SemiMajorAxis()); readouts.Add(new Rendezvous.SemiMajorAxis());
readouts.Add(new Rendezvous.SemiMinorAxis()); readouts.Add(new Rendezvous.SemiMinorAxis());
readouts.Add(new Rendezvous.RelativeRadialVelocity()); readouts.Add(new Rendezvous.RelativeRadialVelocity());
readouts.Add(new Rendezvous.TimeToRendezvous()); readouts.Add(new Rendezvous.TimeToRendezvous());
   
// Thermal // Thermal
readouts.Add(new InternalFlux()); readouts.Add(new InternalFlux());
readouts.Add(new ConvectionFlux()); readouts.Add(new ConvectionFlux());
readouts.Add(new RadiationFlux()); readouts.Add(new RadiationFlux());
readouts.Add(new CriticalPart()); readouts.Add(new CriticalPart());
readouts.Add(new CriticalTemperature()); readouts.Add(new CriticalTemperature());
readouts.Add(new CriticalSkinTemperature()); readouts.Add(new CriticalSkinTemperature());
readouts.Add(new CriticalThermalPercentage()); readouts.Add(new CriticalThermalPercentage());
readouts.Add(new HottestPart()); readouts.Add(new HottestPart());
readouts.Add(new HottestTemperature()); readouts.Add(new HottestTemperature());
readouts.Add(new HottestSkinTemperature()); readouts.Add(new HottestSkinTemperature());
readouts.Add(new CoolestPart()); readouts.Add(new CoolestPart());
readouts.Add(new CoolestTemperature()); readouts.Add(new CoolestTemperature());
readouts.Add(new CoolestSkinTemperature()); readouts.Add(new CoolestSkinTemperature());
   
// Misc // Misc
readouts.Add(new Separator()); readouts.Add(new Separator());
readouts.Add(new GuiSizeAdjustor()); readouts.Add(new GuiSizeAdjustor());
readouts.Add(new SimulationDelay()); readouts.Add(new SimulationDelay());
readouts.Add(new VectoredThrustToggle()); readouts.Add(new VectoredThrustToggle());
readouts.Add(new SystemTime()); readouts.Add(new SystemTime());
  readouts.Add(new LogSimToggle());
   
LoadHelpStrings(); LoadHelpStrings();
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
/// <summary> /// <summary>
/// Gets and sets the available readout modules. /// Gets and sets the available readout modules.
/// </summary> /// </summary>
public static List<ReadoutModule> Readouts public static List<ReadoutModule> Readouts
{ {
get get
{ {
return readouts; return readouts;
} }
set set
{ {
readouts = value; readouts = value;
} }
} }
   
/// <summary> /// <summary>
/// Gets a list of readout modules which are associated with the specified category. /// Gets a list of readout modules which are associated with the specified category.
/// </summary> /// </summary>
public static List<ReadoutModule> GetCategory(ReadoutCategory category) public static List<ReadoutModule> GetCategory(ReadoutCategory category)
{ {
return readouts.Where(r => r.Category == category).ToList(); return readouts.Where(r => r.Category == category).ToList();
} }
   
/// <summary> /// <summary>
/// Gets a readout module with the specified name or class name. (Returns null if not found.) /// Gets a readout module with the specified name or class name. (Returns null if not found.)
/// </summary> /// </summary>
public static ReadoutModule GetReadout(string name) public static ReadoutModule GetReadout(string name)
{ {
return readouts.FirstOrDefault(r => r.Name == name || r.GetType().Name == name || r.Category + "." + r.GetType().Name == name); return readouts.FirstOrDefault(r => r.Name == name || r.GetType().Name == name || r.Category + "." + r.GetType().Name == name);
} }
   
/// <summary> /// <summary>
/// Resets all the readout modules. /// Resets all the readout modules.
/// </summary> /// </summary>
public static void Reset() public static void Reset()
{ {
foreach (ReadoutModule readout in readouts) foreach (ReadoutModule readout in readouts)
{ {
readout.Reset(); readout.Reset();
} }
} }
   
/// <summary> /// <summary>
/// Loads the help strings from file. /// Loads the help strings from file.
/// </summary> /// </summary>
private static void LoadHelpStrings() private static void LoadHelpStrings()
{ {
try try
{ {
SettingHandler handler = SettingHandler.Load("HelpStrings.xml"); SettingHandler handler = SettingHandler.Load("HelpStrings.xml");
foreach (ReadoutModule readout in readouts) foreach (ReadoutModule readout in readouts)
{ {
readout.HelpString = handler.GetSet(readout.Category + "." + readout.GetType().Name, readout.HelpString); readout.HelpString = handler.GetSet(readout.Category + "." + readout.GetType().Name, readout.HelpString);
} }
handler.Save("HelpStrings.xml"); handler.Save("HelpStrings.xml");
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2014 CYBUTEK // Copyright (C) 2014 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
#region Using Directives #region Using Directives
   
using KerbalEngineer.Extensions; using KerbalEngineer.Extensions;
using KerbalEngineer.Flight.Sections; using KerbalEngineer.Flight.Sections;
using System; using System;
   
#endregion #endregion
   
namespace KerbalEngineer.Flight.Readouts.Surface namespace KerbalEngineer.Flight.Readouts.Surface
{ {
public class HorizontalSpeed : ReadoutModule public class HorizontalSpeed : ReadoutModule
{ {
#region Constructors #region Constructors
   
public HorizontalSpeed() public HorizontalSpeed()
{ {
this.Name = "Horizontal Speed"; this.Name = "Horizontal Speed";
this.Category = ReadoutCategory.GetCategory("Surface"); this.Category = ReadoutCategory.GetCategory("Surface");
this.HelpString = "Shows the vessel's horizontal speed across a celestial body's surface."; this.HelpString = "Shows the vessel's horizontal speed across a celestial body's surface.";
this.IsDefault = true; this.IsDefault = true;
} }
   
#endregion #endregion
   
#region Methods: public #region Methods: public
   
public override void Draw(SectionModule section) public override void Draw(SectionModule section)
{ {
// Used to do this but the bug-fix to horizontalSrfSpeed in KSP 1.0.3 actually made it worse so workaround this.DrawLine(FlightGlobals.ActiveVessel.horizontalSrfSpeed.ToSpeed(), section.IsHud);
//this.DrawLine(FlightGlobals.ActiveVessel.horizontalSrfSpeed.ToSpeed(), section.IsHud);  
var ves = FlightGlobals.ActiveVessel; // This workaround was used for KSP 1.0.3 and 1.0.4 where horizontalSrfSpeed was really badly broken
double horizSpeed = Math.Sqrt(ves.srfSpeed * ves.srfSpeed - ves.verticalSpeed * ves.verticalSpeed); //var ves = FlightGlobals.ActiveVessel;
this.DrawLine(horizSpeed.ToSpeed(), section.IsHud); //double horizSpeed = Math.Sqrt(ves.srfSpeed * ves.srfSpeed - ves.verticalSpeed * ves.verticalSpeed);
  //this.DrawLine(horizSpeed.ToSpeed(), section.IsHud);
} }
   
#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
{ {
} }
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");
} }
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 OnGUI() private void OnGUI()
{ {
if (FlightEngineerCore.IsDisplayable == false) if (FlightEngineerCore.IsDisplayable == false)
{ {
return; return;
} }
   
this.position = GUILayout.Window(this.GetInstanceID(), this.position, this.Window, "EDIT SECTION - " + this.ParentSection.Name.ToUpper(), this.windowStyle).ClampToScreen(); this.position = GUILayout.Window(this.GetInstanceID(), this.position, this.Window, "EDIT SECTION - " + this.ParentSection.Name.ToUpper(), this.windowStyle).ClampToScreen();
this.ParentSection.EditorPositionX = this.position.x; this.ParentSection.EditorPositionX = this.position.x;
this.ParentSection.EditorPositionY = this.position.y; this.ParentSection.EditorPositionY = this.position.y;
} }
   
/// <summary> /// <summary>
/// Draws the available readouts panel. /// Draws the available readouts panel.
/// </summary> /// </summary>
private void DrawAvailableReadouts() private void DrawAvailableReadouts()
{ {
GUI.skin = HighLogic.Skin; GUI.skin = HighLogic.Skin;
this.scrollPositionAvailable = GUILayout.BeginScrollView(this.scrollPositionAvailable, false, true, GUILayout.Height(200.0f)); this.scrollPositionAvailable = GUILayout.BeginScrollView(this.scrollPositionAvailable, false, true, GUILayout.Height(200.0f));
GUI.skin = null; GUI.skin = null;
   
GUILayout.Label("AVAILABLE", this.panelTitleStyle); GUILayout.Label("AVAILABLE", this.panelTitleStyle);
   
foreach (var readout in ReadoutLibrary.GetCategory(ReadoutCategory.Selected)) foreach (var readout in ReadoutLibrary.GetCategory(ReadoutCategory.Selected))
{ {
if (!this.ParentSection.ReadoutModules.Contains(readout) || readout.Cloneable) if (!this.ParentSection.ReadoutModules.Contains(readout) || readout.Cloneable)
{ {
GUILayout.BeginHorizontal(GUILayout.Height(30.0f)); GUILayout.BeginHorizontal(GUILayout.Height(30.0f));
GUILayout.Label(readout.Name, this.readoutNameStyle); GUILayout.Label(readout.Name, this.readoutNameStyle);
readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f)); readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f));
if (GUILayout.Button("INSTALL", this.readoutButtonStyle, GUILayout.Width(125.0f))) if (GUILayout.Button("INSTALL", this.readoutButtonStyle, GUILayout.Width(125.0f)))
{ {
this.ParentSection.ReadoutModules.Add(readout); this.ParentSection.ReadoutModules.Add(readout);
} }
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
   
this.ShowHelpMessage(readout); this.ShowHelpMessage(readout);
} }
} }
   
GUILayout.EndScrollView(); GUILayout.EndScrollView();
} }
   
/// <summary> /// <summary>
/// Draws the categories list drop down UI. /// Draws the categories list drop down UI.
/// </summary> /// </summary>
private void DrawCategories() private void DrawCategories()
{ {
foreach (var category in ReadoutCategory.Categories) foreach (var category in ReadoutCategory.Categories)
{ {
var description = category.Description; var description = category.Description;
if (description.Length > 50) if (description.Length > 50)
{ {
description = description.Substring(0, 50 - 1) + "..."; description = description.Substring(0, 50 - 1) + "...";
} }
   
if (GUILayout.Button("<b>" + category.Name.ToUpper() + "</b>" + (string.IsNullOrEmpty(category.Description) ? string.Empty : "\n<i>" + description + "</i>"), category == ReadoutCategory.Selected ? this.categoryButtonActiveStyle : this.categoryButtonStyle)) if (GUILayout.Button("<b>" + category.Name.ToUpper() + "</b>" + (string.IsNullOrEmpty(category.Description) ? string.Empty : "\n<i>" + description + "</i>"), category == ReadoutCategory.Selected ? this.categoryButtonActiveStyle : this.categoryButtonStyle))
{ {
ReadoutCategory.Selected = category; ReadoutCategory.Selected = category;
this.categoryList.enabled = false; this.categoryList.enabled = false;
} }
} }
} }
   
/// <summary> /// <summary>
/// Draws the readoutCategories selection list. /// Draws the readoutCategories selection list.
/// </summary> /// </summary>
private void DrawCategorySelector() private void DrawCategorySelector()
{ {
this.categoryList.enabled = GUILayout.Toggle(this.categoryList.enabled, "▼ SELECTED CATEGORY: " + ReadoutCategory.Selected.ToString().ToUpper() + " ▼", this.categoryTitleButtonStyle); this.categoryList.enabled = GUILayout.Toggle(this.categoryList.enabled, "▼ SELECTED CATEGORY: " + ReadoutCategory.Selected.ToString().ToUpper() + " ▼", this.categoryTitleButtonStyle);
if (Event.current.type == EventType.repaint) if (Event.current.type == EventType.repaint)
{ {
this.categoryList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position)); this.categoryList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position));
} }
} }
   
/// <summary> /// <summary>
/// Draws the options for editing custom sections. /// Draws the options for editing custom sections.
/// </summary> /// </summary>
private void DrawCustomOptions() private void DrawCustomOptions()
{ {
GUILayout.BeginHorizontal(GUILayout.Height(25.0f)); GUILayout.BeginHorizontal(GUILayout.Height(25.0f));
this.ParentSection.Name = GUILayout.TextField(this.ParentSection.Name, this.textStyle); this.ParentSection.Name = GUILayout.TextField(this.ParentSection.Name, this.textStyle);
var isShowingInControlBar = !string.IsNullOrEmpty(this.ParentSection.Abbreviation); var isShowingInControlBar = !string.IsNullOrEmpty(this.ParentSection.Abbreviation);
this.ParentSection.Abbreviation = GUILayout.TextField(this.ParentSection.Abbreviation, this.textStyle, GUILayout.Width(75.0f)); this.ParentSection.Abbreviation = GUILayout.TextField(this.ParentSection.Abbreviation, this.textStyle, GUILayout.Width(75.0f));
   
ParentSection.IsHud = GUILayout.Toggle(this.ParentSection.IsHud, "HUD", this.readoutButtonStyle, GUILayout.Width(50.0f)); ParentSection.IsHud = GUILayout.Toggle(this.ParentSection.IsHud, "HUD", this.readoutButtonStyle, GUILayout.Width(50.0f));
if (ParentSection.IsHud) if (ParentSection.IsHud)
{ {
this.ParentSection.IsHudBackground = GUILayout.Toggle(this.ParentSection.IsHudBackground, "BG", this.readoutButtonStyle, GUILayout.Width(50.0f)); this.ParentSection.IsHudBackground = GUILayout.Toggle(this.ParentSection.IsHudBackground, "BG", this.readoutButtonStyle, GUILayout.Width(50.0f));
} }
   
if (this.ParentSection.IsCustom) if (this.ParentSection.IsCustom)
{ {
if (isShowingInControlBar && string.IsNullOrEmpty(this.ParentSection.Abbreviation)) if (isShowingInControlBar && string.IsNullOrEmpty(this.ParentSection.Abbreviation))
{ {
DisplayStack.Instance.RequestResize(); DisplayStack.Instance.RequestResize();
} }
   
if (GUILayout.Button("DELETE SECTION", this.readoutButtonStyle, GUILayout.Width(150.0f))) if (GUILayout.Button("DELETE SECTION", this.readoutButtonStyle, GUILayout.Width(150.0f)))
{ {
this.ParentSection.IsFloating = false; this.ParentSection.IsFloating = false;
this.ParentSection.IsEditorVisible = false; this.ParentSection.IsEditorVisible = false;
  this.ParentSection.IsDeleted = true;
SectionLibrary.CustomSections.Remove(this.ParentSection); SectionLibrary.CustomSections.Remove(this.ParentSection);
DisplayStack.Instance.RequestResize(); DisplayStack.Instance.RequestResize();
} }
} }
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
} }
   
/// <summary> /// <summary>
/// Draws the installed readouts panel. /// Draws the installed readouts panel.
/// </summary> /// </summary>
private void DrawInstalledReadouts() private void DrawInstalledReadouts()
{ {
GUI.skin = HighLogic.Skin; GUI.skin = HighLogic.Skin;
this.scrollPositionInstalled = GUILayout.BeginScrollView(this.scrollPositionInstalled, false, true); this.scrollPositionInstalled = GUILayout.BeginScrollView(this.scrollPositionInstalled, false, true);
GUI.skin = null; GUI.skin = null;
   
GUILayout.Label("INSTALLED", this.panelTitleStyle); GUILayout.Label("INSTALLED", this.panelTitleStyle);
var removeReadout = false; var removeReadout = false;
var removeReadoutIndex = 0; var removeReadoutIndex = 0;
   
for (var i = 0; i < this.ParentSection.ReadoutModules.Count; i++) for (var i = 0; i < this.ParentSection.ReadoutModules.Count; i++)
{ {
var readout = this.ParentSection.ReadoutModules[i]; var readout = this.ParentSection.ReadoutModules[i];
   
GUILayout.BeginHorizontal(GUILayout.Height(30.0f)); GUILayout.BeginHorizontal(GUILayout.Height(30.0f));
GUILayout.Label(readout.Name, this.readoutNameStyle); GUILayout.Label(readout.Name, this.readoutNameStyle);
if (GUILayout.Button("▲", this.readoutButtonStyle, GUILayout.Width(30.0f))) if (GUILayout.Button("▲", this.readoutButtonStyle, GUILayout.Width(30.0f)))
{ {
if (i > 0) if (i > 0)
{ {
this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i - 1]; this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i - 1];
this.ParentSection.ReadoutModules[i - 1] = readout; this.ParentSection.ReadoutModules[i - 1] = readout;
} }
} }
if (GUILayout.Button("▼", this.readoutButtonStyle, GUILayout.Width(30.0f))) if (GUILayout.Button("▼", this.readoutButtonStyle, GUILayout.Width(30.0f)))
{ {
if (i < this.ParentSection.ReadoutModules.Count - 1) if (i < this.ParentSection.ReadoutModules.Count - 1)
{ {
this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i + 1]; this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i + 1];
this.ParentSection.ReadoutModules[i + 1] = readout; this.ParentSection.ReadoutModules[i + 1] = readout;
} }
} }
readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f)); readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f));
if (GUILayout.Button("REMOVE", this.readoutButtonStyle, GUILayout.Width(125.0f))) if (GUILayout.Button("REMOVE", this.readoutButtonStyle, GUILayout.Width(125.0f)))
{ {
removeReadout = true; removeReadout = true;
removeReadoutIndex = i; removeReadoutIndex = i;
} }
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
   
this.ShowHelpMessage(readout); this.ShowHelpMessage(readout);
} }
   
GUILayout.EndScrollView(); GUILayout.EndScrollView();
   
if (removeReadout) if (removeReadout)
{ {
this.ParentSection.ReadoutModules.RemoveAt(removeReadoutIndex); this.ParentSection.ReadoutModules.RemoveAt(removeReadoutIndex);
} }
} }
   
private void DrawPresetButton(Preset preset) private void DrawPresetButton(Preset preset)
{ {
if (!GUILayout.Button("<b>" + preset.Name.ToUpper() + "</b>", this.categoryButtonStyle)) if (!GUILayout.Button("<b>" + preset.Name.ToUpper() + "</b>", this.categoryButtonStyle))
{ {
return; return;
} }
   
this.ParentSection.Name = preset.Name; this.ParentSection.Name = preset.Name;
this.ParentSection.Abbreviation = preset.Abbreviation; this.ParentSection.Abbreviation = preset.Abbreviation;
this.ParentSection.ReadoutModuleNames = preset.ReadoutNames; this.ParentSection.ReadoutModuleNames = preset.ReadoutNames;
this.ParentSection.IsHud = preset.IsHud; this.ParentSection.IsHud = preset.IsHud;
this.ParentSection.IsHudBackground = preset.IsHudBackground; this.ParentSection.IsHudBackground = preset.IsHudBackground;
this.presetList.enabled = false; this.presetList.enabled = false;
} }
   
private void DrawPresetSaveButton() private void DrawPresetSaveButton()
{ {
if (!GUILayout.Button("<b>SAVE PRESET</b>", this.categoryButtonStyle)) if (!GUILayout.Button("<b>SAVE PRESET</b>", this.categoryButtonStyle))
{ {
return; return;
} }
   
this.SavePreset(PresetLibrary.Presets.Find(p => String.Equals(p.Name, this.ParentSection.Name, StringComparison.CurrentCultureIgnoreCase))); this.SavePreset(PresetLibrary.Presets.Find(p => String.Equals(p.Name, this.ParentSection.Name, StringComparison.CurrentCultureIgnoreCase)));
} }
   
/// <summary> /// <summary>
/// Draws the presetsList selection list. /// Draws the presetsList selection list.
/// </summary> /// </summary>
private void DrawPresetSelector() private void DrawPresetSelector()
{ {
this.presetList.enabled = GUILayout.Toggle(this.presetList.enabled, "▼ PRESETS ▼", this.categoryTitleButtonStyle, GUILayout.Width(150.0f)); this.presetList.enabled = GUILayout.Toggle(this.presetList.enabled, "▼ PRESETS ▼", this.categoryTitleButtonStyle, GUILayout.Width(150.0f));
if (Event.current.type == EventType.repaint) if (Event.current.type == EventType.repaint)
{ {
this.presetList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position)); this.presetList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position));
} }
} }
   
/// <summary> /// <summary>
/// Draws the preset list drop down UI. /// Draws the preset list drop down UI.
/// </summary> /// </summary>
private void DrawPresets() private void DrawPresets()
{ {
Preset removePreset = null; Preset removePreset = null;
foreach (var preset in PresetLibrary.Presets) foreach (var preset in PresetLibrary.Presets)
{ {
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
this.DrawPresetButton(preset); this.DrawPresetButton(preset);
if (GUILayout.Button("<b>X</b>", this.categoryButtonStyle, GUILayout.Width(30.0f))) if (GUILayout.Button("<b>X</b>", this.categoryButtonStyle, GUILayout.Width(30.0f)))
{ {
removePreset = preset; removePreset = preset;
} }
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
} }
if (removePreset != null && PresetLibrary.Remove(removePreset)) if (removePreset != null && PresetLibrary.Remove(removePreset))
{ {
this.presetList.Resize = true; this.presetList.Resize = true;
} }
   
this.DrawPresetSaveButton(); this.DrawPresetSaveButton();
} }
   
/// <summary> /// <summary>
/// Initialises all the styles required for this object. /// Initialises all the styles required for this object.
/// </summary> /// </summary>
private void InitialiseStyles() private void InitialiseStyles()
{ {
this.windowStyle = new GUIStyle(HighLogic.Skin.window); this.windowStyle = new GUIStyle(HighLogic.Skin.window);
   
this.categoryButtonStyle = new GUIStyle(HighLogic.Skin.button) this.categoryButtonStyle = new GUIStyle(HighLogic.Skin.button)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(0, 0, 2, 0), margin = new RectOffset(0, 0, 2, 0),
padding = new RectOffset(5, 5, 5, 5), padding = new RectOffset(5, 5, 5, 5),
alignment = TextAnchor.MiddleCenter, alignment = TextAnchor.MiddleCenter,
fontSize = 12, fontSize = 12,
fontStyle = FontStyle.Normal, fontStyle = FontStyle.Normal,
richText = true richText = true
}; };
   
this.categoryButtonActiveStyle = new GUIStyle(this.categoryButtonStyle) this.categoryButtonActiveStyle = new GUIStyle(this.categoryButtonStyle)
{ {
normal = this.categoryButtonStyle.onNormal, normal = this.categoryButtonStyle.onNormal,
hover = this.categoryButtonStyle.onHover hover = this.categoryButtonStyle.onHover
}; };
   
this.panelTitleStyle = new GUIStyle(HighLogic.Skin.label) this.panelTitleStyle = new GUIStyle(HighLogic.Skin.label)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(), padding = new RectOffset(),
alignment = TextAnchor.MiddleLeft, alignment = TextAnchor.MiddleLeft,
fontSize = 12, fontSize = 12,
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
fixedHeight = 30.0f, fixedHeight = 30.0f,
stretchWidth = true stretchWidth = true
}; };
   
this.textStyle = new GUIStyle(HighLogic.Skin.textField) this.textStyle = new GUIStyle(HighLogic.Skin.textField)
{ {
margin = new RectOffset(3, 3, 3, 3), margin = new RectOffset(3, 3, 3, 3),
alignment = TextAnchor.MiddleLeft, alignment = TextAnchor.MiddleLeft,
stretchWidth = true, stretchWidth = true,
stretchHeight = true stretchHeight = true
}; };
   
this.readoutNameStyle = new GUIStyle(HighLogic.Skin.label) this.readoutNameStyle = new GUIStyle(HighLogic.Skin.label)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(10, 0, 0, 0), padding = new RectOffset(10, 0, 0, 0),
alignment = TextAnchor.MiddleLeft, alignment = TextAnchor.MiddleLeft,
fontSize = 12, fontSize = 12,
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
stretchWidth = true, stretchWidth = true,
stretchHeight = true stretchHeight = true
}; };
   
this.readoutButtonStyle = new GUIStyle(HighLogic.Skin.button) this.readoutButtonStyle = new GUIStyle(HighLogic.Skin.button)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(2, 2, 2, 2), margin = new RectOffset(2, 2, 2, 2),
padding = new RectOffset(), padding = new RectOffset(),
alignment = TextAnchor.MiddleCenter, alignment = TextAnchor.MiddleCenter,
fontSize = 12, fontSize = 12,
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
stretchHeight = true stretchHeight = true
}; };
   
this.helpBoxStyle = new GUIStyle(HighLogic.Skin.box) this.helpBoxStyle = new GUIStyle(HighLogic.Skin.box)
{ {
margin = new RectOffset(2, 2, 2, 10), margin = new RectOffset(2, 2, 2, 10),
padding = new RectOffset(10, 10, 10, 10) padding = new RectOffset(10, 10, 10, 10)
}; };
   
this.helpTextStyle = new GUIStyle(HighLogic.Skin.label) this.helpTextStyle = new GUIStyle(HighLogic.Skin.label)
{ {
normal = normal =
{ {
textColor = Color.yellow textColor = Color.yellow
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(), padding = new RectOffset(),
alignment = TextAnchor.MiddleLeft, alignment = TextAnchor.MiddleLeft,
fontSize = 13, fontSize = 13,
fontStyle = FontStyle.Normal, fontStyle = FontStyle.Normal,
stretchWidth = true, stretchWidth = true,
richText = true richText = true
}; };
   
this.categoryTitleButtonStyle = new GUIStyle(this.readoutButtonStyle) this.categoryTitleButtonStyle = new GUIStyle(this.readoutButtonStyle)
{ {
fixedHeight = 30.0f, fixedHeight = 30.0f,
stretchHeight = false stretchHeight = false
}; };
} }
   
private void SavePreset(Preset preset) private void SavePreset(Preset preset)
{ {
if (preset == null) if (preset == null)
{ {
preset = new Preset(); preset = new Preset();
} }
   
preset.Name = this.ParentSection.Name; preset.Name = this.ParentSection.Name;
preset.Abbreviation = this.ParentSection.Abbreviation; preset.Abbreviation = this.ParentSection.Abbreviation;
preset.ReadoutNames = this.ParentSection.ReadoutModuleNames; preset.ReadoutNames = this.ParentSection.ReadoutModuleNames;
preset.IsHud = this.ParentSection.IsHud; preset.IsHud = this.ParentSection.IsHud;
preset.IsHudBackground = this.ParentSection.IsHudBackground; preset.IsHudBackground = this.ParentSection.IsHudBackground;
   
PresetLibrary.Save(preset); PresetLibrary.Save(preset);
} }
   
private void ShowHelpMessage(ReadoutModule readout) private void ShowHelpMessage(ReadoutModule readout)
{ {
if (!readout.ShowHelp) if (!readout.ShowHelp)
{ {
return; return;
} }
   
GUILayout.BeginVertical(this.helpBoxStyle); GUILayout.BeginVertical(this.helpBoxStyle);
GUILayout.Label(!String.IsNullOrEmpty(readout.HelpString) ? readout.HelpString : "Sorry, no help information has been provided for this readout module.", this.helpTextStyle); GUILayout.Label(!String.IsNullOrEmpty(readout.HelpString) ? readout.HelpString : "Sorry, no help information has been provided for this readout module.", this.helpTextStyle);
GUILayout.EndVertical(); GUILayout.EndVertical();
} }
   
/// <summary> /// <summary>
/// Draws the editor window. /// Draws the editor window.
/// </summary> /// </summary>
private void Window(int windowId) private void Window(int windowId)
{ {
try try
{ {
this.DrawCustomOptions(); this.DrawCustomOptions();
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
this.DrawCategorySelector(); this.DrawCategorySelector();
this.DrawPresetSelector(); this.DrawPresetSelector();
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
this.DrawAvailableReadouts(); this.DrawAvailableReadouts();
GUILayout.Space(5.0f); GUILayout.Space(5.0f);
this.DrawInstalledReadouts(); this.DrawInstalledReadouts();
   
if (GUILayout.Button("CLOSE EDITOR", this.categoryTitleButtonStyle)) if (GUILayout.Button("CLOSE EDITOR", this.categoryTitleButtonStyle))
{ {
this.ParentSection.IsEditorVisible = false; this.ParentSection.IsEditorVisible = false;
} }
   
GUI.DragWindow(); GUI.DragWindow();
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
#endregion #endregion
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2014 CYBUTEK // Copyright (C) 2014 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
#region Using Directives #region Using Directives
   
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Xml.Serialization; using System.Xml.Serialization;
   
using KerbalEngineer.Flight.Readouts; using KerbalEngineer.Flight.Readouts;
   
using UnityEngine; using UnityEngine;
   
#endregion #endregion
   
namespace KerbalEngineer.Flight.Sections namespace KerbalEngineer.Flight.Sections
{ {
using Unity.Flight; using Unity.Flight;
/// <summary> /// <summary>
/// Object for management and display of readout modules. /// Object for management and display of readout modules.
/// </summary> /// </summary>
public class SectionModule : ISectionModule public class SectionModule : ISectionModule
{ {
#region Fields #region Fields
   
private SectionEditor editor; private SectionEditor editor;
private bool isHud; private bool isHud;
private int numberOfReadouts; private int numberOfReadouts;
   
#endregion #endregion
   
#region Constructors #region Constructors
   
/// <summary> /// <summary>
/// Creates a new section module. /// Creates a new section module.
/// </summary> /// </summary>
public SectionModule() public SectionModule()
{ {
this.FloatingPositionX = Screen.width * 0.5f - 125.0f; this.FloatingPositionX = Screen.width * 0.5f - 125.0f;
this.FloatingPositionY = 100.0f; this.FloatingPositionY = 100.0f;
this.EditorPositionX = Screen.width * 0.5f - SectionEditor.Width * 0.5f; this.EditorPositionX = Screen.width * 0.5f - SectionEditor.Width * 0.5f;
this.EditorPositionY = Screen.height * 0.5f - SectionEditor.Height * 0.5f; this.EditorPositionY = Screen.height * 0.5f - SectionEditor.Height * 0.5f;
this.ReadoutModules = new List<ReadoutModule>(); this.ReadoutModules = new List<ReadoutModule>();
this.InitialiseStyles(); this.InitialiseStyles();
GuiDisplaySize.OnSizeChanged += this.OnSizeChanged; GuiDisplaySize.OnSizeChanged += this.OnSizeChanged;
} }
   
#endregion #endregion
   
#region Properties #region Properties
   
/// <summary> /// <summary>
/// Gets and sets the abbreviation of the section. /// Gets and sets the abbreviation of the section.
/// </summary> /// </summary>
public string Abbreviation { get; set; } public string Abbreviation { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the X position of the editor window. (Only used for serialisation.) /// Gets and sets the X position of the editor window. (Only used for serialisation.)
/// </summary> /// </summary>
public float EditorPositionX { get; set; } public float EditorPositionX { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the Y position of the editor window. (Only used for serialisation.) /// Gets and sets the Y position of the editor window. (Only used for serialisation.)
/// </summary> /// </summary>
public float EditorPositionY { get; set; } public float EditorPositionY { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the X position of the floating window. (Only used for serialisation.) /// Gets and sets the X position of the floating window. (Only used for serialisation.)
/// </summary> /// </summary>
public float FloatingPositionX { get; set; } public float FloatingPositionX { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the Y position of the floating window. (Only used for serialisation.) /// Gets and sets the Y position of the floating window. (Only used for serialisation.)
/// </summary> /// </summary>
public float FloatingPositionY { get; set; } public float FloatingPositionY { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets whether the section is custom. /// Gets and sets whether the section is custom.
/// </summary> /// </summary>
public bool IsCustom { get; set; } public bool IsCustom { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets whether the section editor is visible. /// Gets and sets whether the section editor is visible.
/// </summary> /// </summary>
public bool IsEditorVisible public bool IsEditorVisible
{ {
get { return this.editor != null; } get { return this.editor != null; }
set set
{ {
if (value && this.editor == null) if (value && this.editor == null)
{ {
this.editor = FlightEngineerCore.Instance.AddSectionEditor(this); this.editor = FlightEngineerCore.Instance.AddSectionEditor(this);
} }
else if (!value && this.editor != null) else if (!value && this.editor != null)
{ {
Object.Destroy(this.editor); Object.Destroy(this.editor);
} }
} }
} }
   
/// <summary> /// <summary>
/// Gets and sets whether the section is in a floating state. /// Gets and sets whether the section is in a floating state.
/// </summary> /// </summary>
public bool IsFloating public bool IsFloating
{ {
get { return this.Window != null; } get { return this.Window != null; }
set set
{ {
if (value && this.Window == null) if (value && this.Window == null)
{ {
this.Window = FlightEngineerCore.Instance.AddSectionWindow(this); this.Window = FlightEngineerCore.Instance.AddSectionWindow(this);
} }
else if (!value && this.Window != null) else if (!value && this.Window != null)
{ {
Object.Destroy(this.Window); Object.Destroy(this.Window);
} }
} }
} }
   
/// <summary> /// <summary>
/// Gets and sets whether the section module is a HUD. /// Gets and sets whether the section module is a HUD.
/// </summary> /// </summary>
public bool IsHud public bool IsHud
{ {
get { return this.isHud; } get { return this.isHud; }
set set
{ {
if (this.isHud == value) if (this.isHud == value)
{ {
return; return;
} }
   
this.isHud = value; this.isHud = value;
if (this.isHud) if (this.isHud)
{ {
this.IsFloating = true; this.IsFloating = true;
} }
if (this.Window != null) if (this.Window != null)
{ {
this.Window.RequestResize(); this.Window.RequestResize();
} }
} }
} }
   
/// <summary> /// <summary>
  /// Gets and sets whether the section module has been deleted.
  /// </summary>
  public bool IsDeleted { get; set; }
   
  /// <summary>
/// Gets and sets whether the section module has a background as a HUD. /// Gets and sets whether the section module has a background as a HUD.
/// </summary> /// </summary>
public bool IsHudBackground { get; set; } public bool IsHudBackground { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the visibility of the section. /// Gets and sets the visibility of the section.
/// </summary> /// </summary>
public bool IsVisible { get; set; } public bool IsVisible { get; set; }
   
/// <summary> /// <summary>
/// Gets the number of drawn readout lines. /// Gets the number of drawn readout lines.
/// </summary> /// </summary>
public int LineCount { get; private set; } public int LineCount { get; private set; }
   
/// <summary> /// <summary>
/// Gets and sets the name of the section. /// Gets and sets the name of the section.
/// </summary> /// </summary>
public string Name { get; set; } public string Name { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the names of the installed readout modules. (Only used with serialisation.) /// Gets and sets the names of the installed readout modules. (Only used with serialisation.)
/// </summary> /// </summary>
public string[] ReadoutModuleNames public string[] ReadoutModuleNames
{ {
get { return this.ReadoutModules.Select(r => r.Category + "." + r.GetType().Name).ToArray(); } get { return this.ReadoutModules.Select(r => r.Category + "." + r.GetType().Name).ToArray(); }
set { this.ReadoutModules = value.Select(ReadoutLibrary.GetReadout).ToList(); } set { this.ReadoutModules = value.Select(ReadoutLibrary.GetReadout).ToList(); }
} }
   
/// <summary> /// <summary>
/// Gets and sets the list of readout modules. /// Gets and sets the list of readout modules.
/// </summary> /// </summary>
[XmlIgnore] [XmlIgnore]
public List<ReadoutModule> ReadoutModules { get; set; } public List<ReadoutModule> ReadoutModules { get; set; }
   
/// <summary> /// <summary>
/// Gets and sets the floating window. /// Gets and sets the floating window.
/// </summary> /// </summary>
[XmlIgnore] [XmlIgnore]
public SectionWindow Window { get; set; } public SectionWindow Window { get; set; }
   
#endregion #endregion
   
#region GUIStyles #region GUIStyles
   
#region Fields #region Fields
   
private GUIStyle boxStyle; private GUIStyle boxStyle;
private GUIStyle buttonStyle; private GUIStyle buttonStyle;
private GUIStyle messageStyle; private GUIStyle messageStyle;
private GUIStyle titleStyle; private GUIStyle titleStyle;
   
#endregion #endregion
   
/// <summary> /// <summary>
/// Initialises all the styles required for this object. /// Initialises all the styles required for this object.
/// </summary> /// </summary>
private void InitialiseStyles() private void InitialiseStyles()
{ {
this.boxStyle = new GUIStyle(HighLogic.Skin.box) this.boxStyle = new GUIStyle(HighLogic.Skin.box)
{ {
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(5, 5, 5, 5) padding = new RectOffset(5, 5, 5, 5)
}; };
   
this.titleStyle = new GUIStyle(HighLogic.Skin.label) this.titleStyle = new GUIStyle(HighLogic.Skin.label)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(2, 0, 5, 2), padding = new RectOffset(2, 0, 5, 2),
fontSize = (int)(13 * GuiDisplaySize.Offset), fontSize = (int)(13 * GuiDisplaySize.Offset),
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
stretchWidth = true stretchWidth = true
}; };
   
this.buttonStyle = new GUIStyle(HighLogic.Skin.button) this.buttonStyle = new GUIStyle(HighLogic.Skin.button)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(0, 0, 5, 3), margin = new RectOffset(0, 0, 5, 3),
padding = new RectOffset(), padding = new RectOffset(),
fontSize = (int)(10 * GuiDisplaySize.Offset), fontSize = (int)(10 * GuiDisplaySize.Offset),
stretchHeight = true, stretchHeight = true,
fixedWidth = 60.0f * GuiDisplaySize.Offset fixedWidth = 60.0f * GuiDisplaySize.Offset
}; };
   
this.messageStyle = new GUIStyle(HighLogic.Skin.label) this.messageStyle = new GUIStyle(HighLogic.Skin.label)
{ {
normal = normal =
{ {
textColor = Color.white textColor = Color.white
}, },
margin = new RectOffset(), margin = new RectOffset(),
padding = new RectOffset(), padding = new RectOffset(),
alignment = TextAnchor.MiddleCenter, alignment = TextAnchor.MiddleCenter,
fontSize = (int)(12 * GuiDisplaySize.Offset), fontSize = (int)(12 * GuiDisplaySize.Offset),
fontStyle = FontStyle.Bold, fontStyle = FontStyle.Bold,
fixedWidth = 220.0f * GuiDisplaySize.Offset, fixedWidth = 220.0f * GuiDisplaySize.Offset,
fixedHeight = 20.0f * GuiDisplaySize.Offset fixedHeight = 20.0f * GuiDisplaySize.Offset
}; };
} }
   
private void OnSizeChanged() private void OnSizeChanged()
{ {
this.InitialiseStyles(); this.InitialiseStyles();
} }
   
#endregion #endregion
   
#region Updating #region Updating
   
/// <summary> /// <summary>
/// Updates all of the internal readout modules at fixed time intervals. /// Updates all of the internal readout modules at fixed time intervals.
/// </summary> /// </summary>
public void FixedUpdate() public void FixedUpdate()
{ {
if (!this.IsVisible) if (!this.IsVisible)
{ {
return; return;
} }
   
foreach (var readout in this.ReadoutModules) foreach (var readout in this.ReadoutModules)
{ {
readout.FixedUpdate(); readout.FixedUpdate();
} }
} }
   
/// <summary> /// <summary>
/// Updates all of the internal readout modules. /// Updates all of the internal readout modules.
/// </summary> /// </summary>
public void Update() public void Update()
{ {
if (!this.IsVisible) if (!this.IsVisible)
{ {
return; return;
} }
   
foreach (var readout in this.ReadoutModules) foreach (var readout in this.ReadoutModules)
{ {
readout.Update(); readout.Update();
} }
   
if (this.numberOfReadouts != this.ReadoutModules.Count) if (this.numberOfReadouts != this.ReadoutModules.Count)
{ {
this.numberOfReadouts = this.ReadoutModules.Count; this.numberOfReadouts = this.ReadoutModules.Count;
if (!this.IsFloating) if (!this.IsFloating)
{ {
DisplayStack.Instance.RequestResize(); DisplayStack.Instance.RequestResize();
} }
else else
{ {
this.Window.RequestResize(); this.Window.RequestResize();
} }
} }
} }
   
#endregion #endregion
   
#region Drawing #region Drawing
   
#region Methods: public #region Methods: public
   
/// <summary> /// <summary>
/// Draws the section and all of the internal readout modules. /// Draws the section and all of the internal readout modules.
/// </summary> /// </summary>
public void Draw() public void Draw()
{ {
if (!this.IsVisible) if (!this.IsVisible)
{ {
return; return;
} }
   
if (!this.IsHud) if (!this.IsHud)
{ {
this.DrawSectionTitleBar(); this.DrawSectionTitleBar();
} }
   
this.DrawReadoutModules(); this.DrawReadoutModules();
} }
   
#endregion #endregion
   
#region Methods: private #region Methods: private
   
/// <summary> /// <summary>
/// Draws all the readout modules. /// Draws all the readout modules.
/// </summary> /// </summary>
private void DrawReadoutModules() private void DrawReadoutModules()
{ {
if (!this.IsHud) if (!this.IsHud)
{ {
GUILayout.BeginVertical(this.boxStyle); GUILayout.BeginVertical(this.boxStyle);
} }
   
this.LineCount = 0; this.LineCount = 0;
if (this.ReadoutModules.Count > 0) if (this.ReadoutModules.Count > 0)
{ {
foreach (var readout in this.ReadoutModules) foreach (var readout in this.ReadoutModules)
{ {
readout.LineCountStart(); readout.LineCountStart();
readout.Draw(this); readout.Draw(this);
readout.LineCountEnd(); readout.LineCountEnd();
this.LineCount += readout.LineCount; this.LineCount += readout.LineCount;
} }
} }
else else
{ {
GUILayout.Label("No readouts are installed.", this.messageStyle); GUILayout.Label("No readouts are installed.", this.messageStyle);
this.LineCount = 1; this.LineCount = 1;
} }
   
if (!this.IsHud) if (!this.IsHud)
{ {
GUILayout.EndVertical(); GUILayout.EndVertical();
} }
} }
   
/// <summary> /// <summary>
/// Draws the section title and action buttons. /// Draws the section title and action buttons.
/// </summary> /// </summary>
private void DrawSectionTitleBar() private void DrawSectionTitleBar()
{ {
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
GUILayout.Label(this.Name.ToUpper(), this.titleStyle); GUILayout.Label(this.Name.ToUpper(), this.titleStyle);
this.IsEditorVisible = GUILayout.Toggle(this.IsEditorVisible, "EDIT", this.buttonStyle); this.IsEditorVisible = GUILayout.Toggle(this.IsEditorVisible, "EDIT", this.buttonStyle);
this.IsFloating = GUILayout.Toggle(this.IsFloating, "FLOAT", this.buttonStyle); this.IsFloating = GUILayout.Toggle(this.IsFloating, "FLOAT", this.buttonStyle);
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
} }
   
#endregion #endregion
   
#endregion #endregion
   
#region Public Methods #region Public Methods
   
public void ClearNullReadouts() public void ClearNullReadouts()
{ {
this.ReadoutModules.RemoveAll(r => r == null); this.ReadoutModules.RemoveAll(r => r == null);
} }
   
#endregion #endregion
} }
} }
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{39806613-E0B7-46E0-89A6-A569EC538CBB}</ProjectGuid> <ProjectGuid>{39806613-E0B7-46E0-89A6-A569EC538CBB}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>KerbalEngineer</RootNamespace> <RootNamespace>KerbalEngineer</RootNamespace>
<AssemblyName>KerbalEngineer</AssemblyName> <AssemblyName>KerbalEngineer</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>false</DebugSymbols> <DebugSymbols>false</DebugSymbols>
<DebugType>none</DebugType> <DebugType>none</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>..\Output\KerbalEngineer\</OutputPath> <OutputPath>..\Output\KerbalEngineer\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<UseVSHostingProcess>false</UseVSHostingProcess> <UseVSHostingProcess>false</UseVSHostingProcess>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType> <DebugType>none</DebugType>
<Optimize>true</Optimize> <Optimize>true</Optimize>
<OutputPath>..\Output\KerbalEngineer\</OutputPath> <OutputPath>..\Output\KerbalEngineer\</OutputPath>
<DefineConstants> <DefineConstants>
</DefineConstants> </DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<UseVSHostingProcess>false</UseVSHostingProcess> <UseVSHostingProcess>false</UseVSHostingProcess>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks> <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AppLauncherButton.cs" /> <Compile Include="AppLauncherButton.cs" />
<Compile Include="AssetBundleLoader.cs" /> <Compile Include="AssetBundleLoader.cs" />
<Compile Include="Control\IControlPanel.cs" /> <Compile Include="Control\IControlPanel.cs" />
<Compile Include="Control\Panels\BuildOverlayPanel.cs" /> <Compile Include="Control\Panels\BuildOverlayPanel.cs" />
<Compile Include="Control\Panels\BuildEngineerPanel.cs" /> <Compile Include="Control\Panels\BuildEngineerPanel.cs" />
<Compile Include="Editor\BuildAdvanced.cs" /> <Compile Include="Editor\BuildAdvanced.cs" />
<Compile Include="Editor\BuildAppLauncher.cs" /> <Compile Include="Editor\BuildAppLauncher.cs" />
<Compile Include="Editor\BuildOverlay.cs" /> <Compile Include="Editor\BuildOverlay.cs" />
<Compile Include="CelestialBodies.cs" /> <Compile Include="CelestialBodies.cs" />
<Compile Include="Editor\BuildOverlayPartInfo.cs" /> <Compile Include="Editor\BuildOverlayPartInfo.cs" />
<Compile Include="Editor\BuildOverlayResources.cs" /> <Compile Include="Editor\BuildOverlayResources.cs" />
<Compile Include="Editor\BuildOverlayVessel.cs" /> <Compile Include="Editor\BuildOverlayVessel.cs" />
<Compile Include="Editor\PartInfoItem.cs" /> <Compile Include="Editor\PartInfoItem.cs" />
<Compile Include="Editor\ResourceInfoItem.cs" /> <Compile Include="Editor\ResourceInfoItem.cs" />
<Compile Include="Extensions\FloatExtensions.cs" /> <Compile Include="Extensions\FloatExtensions.cs" />
<Compile Include="Extensions\OrbitExtensions.cs" /> <Compile Include="Extensions\OrbitExtensions.cs" />
<Compile Include="Extensions\StringExtensions.cs" /> <Compile Include="Extensions\StringExtensions.cs" />
<Compile Include="Flight\ActionMenuGui.cs" /> <Compile Include="Flight\ActionMenuGui.cs" />
<Compile Include="Flight\FlightAppLauncher.cs" /> <Compile Include="Flight\FlightAppLauncher.cs" />
<Compile Include="Flight\Presets\Preset.cs" /> <Compile Include="Flight\Presets\Preset.cs" />
  <Compile Include="Flight\Readouts\Miscellaneous\LogSimToggle.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\SystemTime.cs" /> <Compile Include="Flight\Readouts\Miscellaneous\SystemTime.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\VectoredThrustToggle.cs" /> <Compile Include="Flight\Readouts\Miscellaneous\VectoredThrustToggle.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\Separator.cs" /> <Compile Include="Flight\Readouts\Miscellaneous\Separator.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\GuiSizeAdjustor.cs" /> <Compile Include="Flight\Readouts\Miscellaneous\GuiSizeAdjustor.cs" />
<Compile Include="Flight\Readouts\Orbital\AngleToEquatorialDescendingNode.cs" /> <Compile Include="Flight\Readouts\Orbital\AngleToEquatorialDescendingNode.cs" />
<Compile Include="Flight\Readouts\Orbital\AngleToEquatorialAscendingNode.cs" /> <Compile Include="Flight\Readouts\Orbital\AngleToEquatorialAscendingNode.cs" />
<Compile Include="Flight\Readouts\Orbital\AngleToRetrograde.cs" /> <Compile Include="Flight\Readouts\Orbital\AngleToRetrograde.cs" />
<Compile Include="Flight\Readouts\Orbital\AngleToPrograde.cs" /> <Compile Include="Flight\Readouts\Orbital\AngleToPrograde.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeRadialDeltaV.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeRadialDeltaV.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\ManoeuvreProcessor.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\ManoeuvreProcessor.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToHalfBurn.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToHalfBurn.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToManoeuvre.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToManoeuvre.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeHalfBurnTime.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeHalfBurnTime.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeBurnTime.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeBurnTime.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeAngleToRetrograde.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeAngleToRetrograde.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeNormalDeltaV.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeNormalDeltaV.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeAngleToPrograde.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeAngleToPrograde.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTotalDeltaV.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTotalDeltaV.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeProgradeDeltaV.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeProgradeDeltaV.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\PostBurnApoapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\PostBurnApoapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\PostBurnPeriapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\PostBurnPeriapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\MeanAnomalyAtEpoc.cs" /> <Compile Include="Flight\Readouts\Orbital\MeanAnomalyAtEpoc.cs" />
<Compile Include="Flight\Readouts\Orbital\MeanAnomaly.cs" /> <Compile Include="Flight\Readouts\Orbital\MeanAnomaly.cs" />
<Compile Include="Flight\Readouts\Orbital\EccentricAnomaly.cs" /> <Compile Include="Flight\Readouts\Orbital\EccentricAnomaly.cs" />
<Compile Include="Flight\Readouts\Orbital\ArgumentOfPeriapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\ArgumentOfPeriapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\CurrentSoi.cs" /> <Compile Include="Flight\Readouts\Orbital\CurrentSoi.cs" />
<Compile Include="Flight\Readouts\Orbital\SemiMajorAxis.cs"> <Compile Include="Flight\Readouts\Orbital\SemiMajorAxis.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="Flight\Readouts\Orbital\SpeedAtApoapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\SpeedAtApoapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\SpeedAtPeriapsis.cs"> <Compile Include="Flight\Readouts\Orbital\SpeedAtPeriapsis.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="Flight\Readouts\Orbital\TimeToAtmosphere.cs" /> <Compile Include="Flight\Readouts\Orbital\TimeToAtmosphere.cs" />
<Compile Include="Flight\Readouts\Orbital\TrueAnomaly.cs" /> <Compile Include="Flight\Readouts\Orbital\TrueAnomaly.cs" />
<Compile Include="Flight\Readouts\Orbital\TimeToEquatorialAscendingNode.cs" /> <Compile Include="Flight\Readouts\Orbital\TimeToEquatorialAscendingNode.cs" />
<Compile Include="Flight\Readouts\Orbital\TimeToEquatorialDescendingNode.cs" /> <Compile Include="Flight\Readouts\Orbital\TimeToEquatorialDescendingNode.cs" />
<Compile Include="Flight\Readouts\Rendezvous\RelativeSpeed.cs" /> <Compile Include="Flight\Readouts\Rendezvous\RelativeSpeed.cs" />
<Compile Include="Flight\Readouts\Rendezvous\RelativeVelocity.cs" /> <Compile Include="Flight\Readouts\Rendezvous\RelativeVelocity.cs" />
<Compile Include="Flight\Readouts\Rendezvous\SemiMinorAxis.cs" /> <Compile Include="Flight\Readouts\Rendezvous\SemiMinorAxis.cs" />
<Compile Include="Flight\Readouts\Rendezvous\SemiMajorAxis.cs" /> <Compile Include="Flight\Readouts\Rendezvous\SemiMajorAxis.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TimeToRelativeDescendingNode.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TimeToRelativeDescendingNode.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TimeToRelativeAscendingNode.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TimeToRelativeAscendingNode.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactBiome.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactBiome.cs" />
<Compile Include="Flight\Readouts\Surface\Slope.cs" /> <Compile Include="Flight\Readouts\Surface\Slope.cs" />
<Compile Include="Flight\Readouts\Surface\Biome.cs" /> <Compile Include="Flight\Readouts\Surface\Biome.cs" />
<Compile Include="Flight\Readouts\Surface\HorizontalAcceleration.cs" /> <Compile Include="Flight\Readouts\Surface\HorizontalAcceleration.cs" />
<Compile Include="Flight\Readouts\Surface\VerticalAcceleration.cs" /> <Compile Include="Flight\Readouts\Surface\VerticalAcceleration.cs" />
<Compile Include="Flight\Readouts\Surface\MachNumber.cs" /> <Compile Include="Flight\Readouts\Surface\MachNumber.cs" />
<Compile Include="Flight\Readouts\Thermal\CoolestSkinTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\CoolestSkinTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\CriticalPart.cs" /> <Compile Include="Flight\Readouts\Thermal\CriticalPart.cs" />
<Compile Include="Flight\Readouts\Thermal\CoolestPart.cs" /> <Compile Include="Flight\Readouts\Thermal\CoolestPart.cs" />
<Compile Include="Flight\Readouts\Thermal\CoolestTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\CoolestTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\CriticalThermalPercentage.cs" /> <Compile Include="Flight\Readouts\Thermal\CriticalThermalPercentage.cs" />
<Compile Include="Flight\Readouts\Thermal\CriticalSkinTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\CriticalSkinTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\CriticalTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\CriticalTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\HottestSkinTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\HottestSkinTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\InternalFlux.cs" /> <Compile Include="Flight\Readouts\Thermal\InternalFlux.cs" />
<Compile Include="Flight\Readouts\Thermal\RadiationFlux.cs" /> <Compile Include="Flight\Readouts\Thermal\RadiationFlux.cs" />
<Compile Include="Flight\Readouts\Thermal\ConvectionFlux.cs" /> <Compile Include="Flight\Readouts\Thermal\ConvectionFlux.cs" />
<Compile Include="Flight\Readouts\Thermal\HottestTemperature.cs" /> <Compile Include="Flight\Readouts\Thermal\HottestTemperature.cs" />
<Compile Include="Flight\Readouts\Thermal\HottestPart.cs" /> <Compile Include="Flight\Readouts\Thermal\HottestPart.cs" />
<Compile Include="Flight\Readouts\Thermal\ThermalProcessor.cs" /> <Compile Include="Flight\Readouts\Thermal\ThermalProcessor.cs" />
<Compile Include="Flight\Readouts\Vessel\Name.cs" /> <Compile Include="Flight\Readouts\Vessel\Name.cs" />
<Compile Include="Flight\Readouts\Vessel\AttitudeProcessor.cs" /> <Compile Include="Flight\Readouts\Vessel\AttitudeProcessor.cs" />
<Compile Include="Flight\Readouts\Vessel\DeltaVCurrentTotal.cs" /> <Compile Include="Flight\Readouts\Vessel\DeltaVCurrentTotal.cs" />
<Compile Include="Flight\Readouts\Vessel\PitchRate.cs" /> <Compile Include="Flight\Readouts\Vessel\PitchRate.cs" />
<Compile Include="Flight\Readouts\Vessel\HeadingRate.cs" /> <Compile Include="Flight\Readouts\Vessel\HeadingRate.cs" />
<Compile Include="Flight\Readouts\Vessel\RollRate.cs" /> <Compile Include="Flight\Readouts\Vessel\RollRate.cs" />
<Compile Include="Flight\Readouts\Vessel\Roll.cs" /> <Compile Include="Flight\Readouts\Vessel\Roll.cs" />
<Compile Include="Flight\Readouts\Vessel\Pitch.cs" /> <Compile Include="Flight\Readouts\Vessel\Pitch.cs" />
<Compile Include="Flight\Readouts\Vessel\Heading.cs" /> <Compile Include="Flight\Readouts\Vessel\Heading.cs" />
<Compile Include="Flight\Readouts\Vessel\PartCount.cs" /> <Compile Include="Flight\Readouts\Vessel\PartCount.cs" />
<Compile Include="Flight\Readouts\Vessel\SuicideBurnDeltaV.cs" /> <Compile Include="Flight\Readouts\Vessel\SuicideBurnDeltaV.cs" />
<Compile Include="Flight\Readouts\Vessel\SuicideBurnAltitude.cs" /> <Compile Include="Flight\Readouts\Vessel\SuicideBurnAltitude.cs" />
<Compile Include="Flight\Readouts\Vessel\SuicideBurnDistance.cs" /> <Compile Include="Flight\Readouts\Vessel\SuicideBurnDistance.cs" />
<Compile Include="Flight\Readouts\Vessel\DeltaVCurrent.cs" /> <Compile Include="Flight\Readouts\Vessel\DeltaVCurrent.cs" />
<Compile Include="Flight\Readouts\Vessel\IntakeAirUsage.cs" /> <Compile Include="Flight\Readouts\Vessel\IntakeAirUsage.cs" />
<Compile Include="Flight\Readouts\Vessel\IntakeAirDemandSupply.cs" /> <Compile Include="Flight\Readouts\Vessel\IntakeAirDemandSupply.cs" />
<Compile Include="Flight\Readouts\Vessel\IntakeAirSupply.cs" /> <Compile Include="Flight\Readouts\Vessel\IntakeAirSupply.cs" />
<Compile Include="Flight\Readouts\Vessel\IntakeAirDemand.cs" /> <Compile Include="Flight\Readouts\Vessel\IntakeAirDemand.cs" />
<Compile Include="Flight\Readouts\Miscellaneous\SimulationDelay.cs" /> <Compile Include="Flight\Readouts\Miscellaneous\SimulationDelay.cs" />
<Compile Include="Flight\Readouts\Vessel\SimulationProcessor.cs" /> <Compile Include="Flight\Readouts\Vessel\SimulationProcessor.cs" />
<Compile Include="Flight\Readouts\Vessel\Acceleration.cs" /> <Compile Include="Flight\Readouts\Vessel\Acceleration.cs" />
<Compile Include="Flight\Presets\PresetLibrary.cs" /> <Compile Include="Flight\Presets\PresetLibrary.cs" />
<Compile Include="Flight\Readouts\Vessel\SuicideBurnProcessor.cs" /> <Compile Include="Flight\Readouts\Vessel\SuicideBurnProcessor.cs" />
<Compile Include="Flight\Readouts\Vessel\SurfaceThrustToWeight.cs" /> <Compile Include="Flight\Readouts\Vessel\SurfaceThrustToWeight.cs" />
<Compile Include="Flight\Readouts\Surface\Situation.cs" /> <Compile Include="Flight\Readouts\Surface\Situation.cs" />
<Compile Include="Flight\Readouts\Vessel\ThrustOffsetAngle.cs" /> <Compile Include="Flight\Readouts\Vessel\ThrustOffsetAngle.cs" />
<Compile Include="Flight\Readouts\Vessel\ThrustTorque.cs" /> <Compile Include="Flight\Readouts\Vessel\ThrustTorque.cs" />
<Compile Include="GuiDisplaySize.cs" /> <Compile Include="GuiDisplaySize.cs" />
<Compile Include="Helpers\AngleHelper.cs" /> <Compile Include="Helpers\AngleHelper.cs" />
<Compile Include="Helpers\Averager.cs" /> <Compile Include="Helpers\Averager.cs" />
<Compile Include="Helpers\ForceAccumulator.cs" /> <Compile Include="Helpers\ForceAccumulator.cs" />
<Compile Include="Helpers\TextureHelper.cs" /> <Compile Include="Helpers\TextureHelper.cs" />
<Compile Include="Helpers\Units.cs" /> <Compile Include="Helpers\Units.cs" />
<Compile Include="Helpers\TimeFormatter.cs" /> <Compile Include="Helpers\TimeFormatter.cs" />
<Compile Include="Helpers\XmlHelper.cs" /> <Compile Include="Helpers\XmlHelper.cs" />
<Compile Include="KeyBinding\KeyBinder.cs" /> <Compile Include="KeyBinding\KeyBinder.cs" />
<Compile Include="Control\ControlCentre.cs" /> <Compile Include="Control\ControlCentre.cs" />
<Compile Include="KeyBinding\KeyBindingsObject.cs" /> <Compile Include="KeyBinding\KeyBindingsObject.cs" />
<Compile Include="UIControls\DropDown.cs" /> <Compile Include="UIControls\DropDown.cs" />
<Compile Include="Logger.cs" /> <Compile Include="Logger.cs" />
<Compile Include="EngineerGlobals.cs" /> <Compile Include="EngineerGlobals.cs" />
<Compile Include="Extensions\DoubleExtensions.cs" /> <Compile Include="Extensions\DoubleExtensions.cs" />
<Compile Include="Extensions\PartExtensions.cs" /> <Compile Include="Extensions\PartExtensions.cs" />
<Compile Include="Extensions\PartResourceExtensions.cs" /> <Compile Include="Extensions\PartResourceExtensions.cs" />
<Compile Include="Extensions\RectExtensions.cs" /> <Compile Include="Extensions\RectExtensions.cs" />
<Compile Include="Flight\ActionMenu.cs" /> <Compile Include="Flight\ActionMenu.cs" />
<Compile Include="Flight\DisplayStack.cs" /> <Compile Include="Flight\DisplayStack.cs" />
<Compile Include="Flight\FlightEngineerCore.cs" /> <Compile Include="Flight\FlightEngineerCore.cs" />
<Compile Include="Flight\FlightEngineerModule.cs" /> <Compile Include="Flight\FlightEngineerModule.cs" />
<Compile Include="Flight\IUpdatable.cs" /> <Compile Include="Flight\IUpdatable.cs" />
<Compile Include="Flight\IUpdateRequest.cs" /> <Compile Include="Flight\IUpdateRequest.cs" />
<Compile Include="Flight\Readouts\Orbital\ApoapsisHeight.cs" /> <Compile Include="Flight\Readouts\Orbital\ApoapsisHeight.cs" />
<Compile Include="Flight\Readouts\Orbital\Eccentricity.cs" /> <Compile Include="Flight\Readouts\Orbital\Eccentricity.cs" />
<Compile Include="Flight\Readouts\Orbital\Inclination.cs" /> <Compile Include="Flight\Readouts\Orbital\Inclination.cs" />
<Compile Include="Flight\Readouts\Orbital\LongitudeOfAscendingNode.cs" /> <Compile Include="Flight\Readouts\Orbital\LongitudeOfAscendingNode.cs" />
<Compile Include="Flight\Readouts\Orbital\LongitudeOfPeriapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\LongitudeOfPeriapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\OrbitalPeriod.cs" /> <Compile Include="Flight\Readouts\Orbital\OrbitalPeriod.cs" />
<Compile Include="Flight\Readouts\Orbital\OrbitalSpeed.cs" /> <Compile Include="Flight\Readouts\Orbital\OrbitalSpeed.cs" />
<Compile Include="Flight\Readouts\Orbital\PeriapsisHeight.cs" /> <Compile Include="Flight\Readouts\Orbital\PeriapsisHeight.cs" />
<Compile Include="Flight\Readouts\Orbital\SemiMinorAxis.cs" /> <Compile Include="Flight\Readouts\Orbital\SemiMinorAxis.cs" />
<Compile Include="Flight\Readouts\Orbital\TimeToApoapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\TimeToApoapsis.cs" />
<Compile Include="Flight\Readouts\Orbital\TimeToPeriapsis.cs" /> <Compile Include="Flight\Readouts\Orbital\TimeToPeriapsis.cs" />
<Compile Include="Flight\Readouts\ReadoutCategory.cs" /> <Compile Include="Flight\Readouts\ReadoutCategory.cs" />
<Compile Include="Flight\Readouts\ReadoutLibrary.cs" /> <Compile Include="Flight\Readouts\ReadoutLibrary.cs" />
<Compile Include="Flight\Readouts\ReadoutModule.cs" /> <Compile Include="Flight\Readouts\ReadoutModule.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TimeToPeriapsis.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TimeToPeriapsis.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TimeToApoapsis.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TimeToApoapsis.cs" />
<Compile Include="Flight\Readouts\Rendezvous\PeriapsisHeight.cs" /> <Compile Include="Flight\Readouts\Rendezvous\PeriapsisHeight.cs" />
<Compile Include="Flight\Readouts\Rendezvous\ApoapsisHeight.cs" /> <Compile Include="Flight\Readouts\Rendezvous\ApoapsisHeight.cs" />
<Compile Include="Flight\Readouts\Rendezvous\InterceptAngle.cs" /> <Compile Include="Flight\Readouts\Rendezvous\InterceptAngle.cs" />
<Compile Include="Flight\Readouts\Rendezvous\OrbitalPeriod.cs" /> <Compile Include="Flight\Readouts\Rendezvous\OrbitalPeriod.cs" />
<Compile Include="Flight\Readouts\Rendezvous\Distance.cs" /> <Compile Include="Flight\Readouts\Rendezvous\Distance.cs" />
<Compile Include="Flight\Readouts\Rendezvous\AltitudeSeaLevel.cs" /> <Compile Include="Flight\Readouts\Rendezvous\AltitudeSeaLevel.cs" />
<Compile Include="Flight\Readouts\Rendezvous\AngleToRelativeDescendingNode.cs" /> <Compile Include="Flight\Readouts\Rendezvous\AngleToRelativeDescendingNode.cs" />
<Compile Include="Flight\Readouts\Rendezvous\AngleToRelativeAscendingNode.cs" /> <Compile Include="Flight\Readouts\Rendezvous\AngleToRelativeAscendingNode.cs" />
<Compile Include="Flight\Readouts\Rendezvous\PhaseAngle.cs" /> <Compile Include="Flight\Readouts\Rendezvous\PhaseAngle.cs" />
<Compile Include="Flight\Readouts\Rendezvous\RelativeInclination.cs" /> <Compile Include="Flight\Readouts\Rendezvous\RelativeInclination.cs" />
<Compile Include="Flight\Readouts\Rendezvous\RendezvousProcessor.cs" /> <Compile Include="Flight\Readouts\Rendezvous\RendezvousProcessor.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TargetSelector.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TargetSelector.cs" />
<Compile Include="Flight\Readouts\Surface\AltitudeSeaLevel.cs" /> <Compile Include="Flight\Readouts\Surface\AltitudeSeaLevel.cs" />
<Compile Include="Flight\Readouts\Surface\AltitudeTerrain.cs" /> <Compile Include="Flight\Readouts\Surface\AltitudeTerrain.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactLatitude.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactLatitude.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactAltitude.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactAltitude.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactLongitude.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactLongitude.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactTime.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactTime.cs" />
<Compile Include="Flight\Readouts\Surface\AtmosphericProcessor.cs" /> <Compile Include="Flight\Readouts\Surface\AtmosphericProcessor.cs" />
<Compile Include="Flight\Readouts\Surface\AtmosphericEfficiency.cs" /> <Compile Include="Flight\Readouts\Surface\AtmosphericEfficiency.cs" />
<Compile Include="Flight\Readouts\Surface\GeeForce.cs" /> <Compile Include="Flight\Readouts\Surface\GeeForce.cs" />
<Compile Include="Flight\Readouts\Surface\HorizontalSpeed.cs" /> <Compile Include="Flight\Readouts\Surface\HorizontalSpeed.cs" />
<Compile Include="Flight\Readouts\Surface\ImpactProcessor.cs" /> <Compile Include="Flight\Readouts\Surface\ImpactProcessor.cs" />
<Compile Include="Flight\Readouts\Surface\Latitude.cs" /> <Compile Include="Flight\Readouts\Surface\Latitude.cs" />
<Compile Include="Flight\Readouts\Surface\Longitude.cs" /> <Compile Include="Flight\Readouts\Surface\Longitude.cs" />
<Compile Include="Flight\Readouts\Surface\TerminalVelocity.cs" /> <Compile Include="Flight\Readouts\Surface\TerminalVelocity.cs" />
<Compile Include="Flight\Readouts\Surface\VerticalSpeed.cs" /> <Compile Include="Flight\Readouts\Surface\VerticalSpeed.cs" />
<Compile Include="Flight\Readouts\Vessel\DeltaVStaged.cs" /> <Compile Include="Flight\Readouts\Vessel\DeltaVStaged.cs" />
<Compile Include="Flight\Readouts\Vessel\DeltaVTotal.cs" /> <Compile Include="Flight\Readouts\Vessel\DeltaVTotal.cs" />
<Compile Include="Flight\Readouts\Vessel\Mass.cs" /> <Compile Include="Flight\Readouts\Vessel\Mass.cs" />
<Compile Include="Flight\Readouts\Vessel\Thrust.cs" /> <Compile Include="Flight\Readouts\Vessel\Thrust.cs" />
<Compile Include="Flight\Readouts\Vessel\SpecificImpulse.cs" /> <Compile Include="Flight\Readouts\Vessel\SpecificImpulse.cs" />
<Compile Include="Flight\Readouts\Vessel\ThrustToWeight.cs" /> <Compile Include="Flight\Readouts\Vessel\ThrustToWeight.cs" />
<Compile Include="Flight\Sections\SectionEditor.cs" /> <Compile Include="Flight\Sections\SectionEditor.cs" />
<Compile Include="Flight\Sections\SectionLibrary.cs" /> <Compile Include="Flight\Sections\SectionLibrary.cs" />
<Compile Include="Flight\Sections\SectionModule.cs" /> <Compile Include="Flight\Sections\SectionModule.cs" />
<Compile Include="Flight\Sections\SectionWindow.cs" /> <Compile Include="Flight\Sections\SectionWindow.cs" />
<Compile Include="LogMsg.cs" /> <Compile Include="LogMsg.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Settings\SettingHandler.cs" /> <Compile Include="Settings\SettingHandler.cs" />
<Compile Include="Settings\SettingItem.cs" /> <Compile Include="Settings\SettingItem.cs" />
<Compile Include="TapeDriveAnimator.cs" /> <Compile Include="TapeDriveAnimator.cs" />
<Compile Include="KeyBinding\KeyBindPopup.cs" /> <Compile Include="KeyBinding\KeyBindPopup.cs" />
<Compile Include="UIControls\WindowObject.cs" /> <Compile Include="UIControls\WindowObject.cs" />
<Compile Include="VesselSimulator\AttachNodeSim.cs" /> <Compile Include="VesselSimulator\AttachNodeSim.cs" />
<Compile Include="VesselSimulator\EngineSim.cs" /> <Compile Include="VesselSimulator\EngineSim.cs" />
<Compile Include="Helpers\Pool.cs" /> <Compile Include="Helpers\Pool.cs" />
<Compile Include="VesselSimulator\PartSim.cs" /> <Compile Include="VesselSimulator\PartSim.cs" />
<Compile Include="VesselSimulator\ResourceContainer.cs" /> <Compile Include="VesselSimulator\ResourceContainer.cs" />
<Compile Include="VesselSimulator\SimManager.cs" /> <Compile Include="VesselSimulator\SimManager.cs" />
<Compile Include="VesselSimulator\Simulation.cs" /> <Compile Include="VesselSimulator\Simulation.cs" />
<Compile Include="VesselSimulator\Stage.cs" /> <Compile Include="VesselSimulator\Stage.cs" />
<Compile Include="Flight\Readouts\Rendezvous\RelativeRadialVelocity.cs" /> <Compile Include="Flight\Readouts\Rendezvous\RelativeRadialVelocity.cs" />
<Compile Include="Flight\Readouts\Rendezvous\TimeToRendezvous.cs" /> <Compile Include="Flight\Readouts\Rendezvous\TimeToRendezvous.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Assembly-CSharp"> <Reference Include="Assembly-CSharp">
<HintPath>..\..\Game\KSP_Data\Managed\Assembly-CSharp.dll</HintPath> <HintPath>..\..\Game\KSP_Data\Managed\Assembly-CSharp.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Assembly-CSharp-firstpass"> <Reference Include="Assembly-CSharp-firstpass">
<HintPath>..\..\game\KSP_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\Assembly-CSharp-firstpass.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="KSPAssets"> <Reference Include="KSPAssets">
<HintPath>..\..\game\KSP_Data\Managed\KSPAssets.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\KSPAssets.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="KSPCore"> <Reference Include="KSPCore">
<HintPath>..\..\game\KSP_Data\Managed\KSPCore.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\KSPCore.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="KSPUtil"> <Reference Include="KSPUtil">
<HintPath>..\..\game\KSP_Data\Managed\KSPUtil.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\KSPUtil.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="System"> <Reference Include="System">
<HintPath>..\Game\KSP_Data\Managed\System.dll</HintPath> <HintPath>..\Game\KSP_Data\Managed\System.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="System.Xml"> <Reference Include="System.Xml">
<HintPath>..\Game\KSP_Data\Managed\System.Xml.dll</HintPath> <HintPath>..\Game\KSP_Data\Managed\System.Xml.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="UnityEngine"> <Reference Include="UnityEngine">
<HintPath>..\..\Game\KSP_Data\Managed\UnityEngine.dll</HintPath> <HintPath>..\..\Game\KSP_Data\Managed\UnityEngine.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="UnityEngine.UI"> <Reference Include="UnityEngine.UI">
<HintPath>..\..\game\KSP_Data\Managed\UnityEngine.UI.dll</HintPath> <HintPath>..\..\game\KSP_Data\Managed\UnityEngine.UI.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\KerbalEngineer.Unity\KerbalEngineer.Unity.csproj"> <ProjectReference Include="..\KerbalEngineer.Unity\KerbalEngineer.Unity.csproj">
<Project>{5387bb1e-32b1-4bac-b03f-100570b9554c}</Project> <Project>{5387bb1e-32b1-4bac-b03f-100570b9554c}</Project>
<Name>KerbalEngineer.Unity</Name> <Name>KerbalEngineer.Unity</Name>
<Private>False</Private> <Private>False</Private>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="PostBuildMacros"> <Target Name="PostBuildMacros">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)"> <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="Targets" /> <Output TaskParameter="Assemblies" ItemName="Targets" />
</GetAssemblyIdentity> </GetAssemblyIdentity>
<ItemGroup> <ItemGroup>
<VersionNumber Include="@(Targets->'%(Version)')" /> <VersionNumber Include="@(Targets->'%(Version)')" />
</ItemGroup> </ItemGroup>
</Target> </Target>
<PropertyGroup> <PropertyGroup>
<PostBuildEventDependsOn> <PostBuildEventDependsOn>
$(PostBuildEventDependsOn); $(PostBuildEventDependsOn);
PostBuildMacros; PostBuildMacros;
</PostBuildEventDependsOn> </PostBuildEventDependsOn>
<PostBuildEvent>xcopy "$(SolutionDir)Output\*" "$(SolutionDir)..\Game\GameData\*" /E /Y <PostBuildEvent>xcopy "$(SolutionDir)Output\*" "$(SolutionDir)..\Game\GameData\*" /E /Y
del "$(SolutionDir)Release\*" /Q del "$(SolutionDir)Release\*" /Q
xcopy "$(SolutionDir)Documents\*" "$(SolutionDir)Release\Documents\*" /E /Y xcopy "$(SolutionDir)Documents\*" "$(SolutionDir)Release\Documents\*" /E /Y
7z.exe a -tzip -mx3 "$(SolutionDir)Release\$(ProjectName)-@(VersionNumber).zip" "$(SolutionDir)Output\*" 7z.exe a -tzip -mx3 "$(SolutionDir)Release\$(ProjectName)-@(VersionNumber).zip" "$(SolutionDir)Output\*"
7z.exe a -tzip -mx3 "$(SolutionDir)Release\$(ProjectName)-@(VersionNumber).zip" "$(SolutionDir)Documents\*"</PostBuildEvent> 7z.exe a -tzip -mx3 "$(SolutionDir)Release\$(ProjectName)-@(VersionNumber).zip" "$(SolutionDir)Documents\*"</PostBuildEvent>
</PropertyGroup> </PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">
</Target> </Target>
<Target Name="AfterBuild"> <Target Name="AfterBuild">
</Target> </Target>
--> -->
</Project> </Project>
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2014 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/>.
// //
   
#region Using Directives  
   
using UnityEngine;  
   
using Random = System.Random;  
   
#endregion  
   
namespace KerbalEngineer namespace KerbalEngineer
{ {
  using UnityEngine;
  using Random = System.Random;
   
public class TapeDriveAnimator : PartModule public class TapeDriveAnimator : PartModule
{ {
#region Public Fields [KSPField]
  public string Lights1 = string.Empty;
[KSPField] public string Lights1 = "";  
[KSPField] public float Lights1Speed = 0; [KSPField]
[KSPField] public string Lights2 = ""; public float Lights1Speed = 0;
[KSPField] public float Lights2Speed = 0;  
[KSPField] public string Lights3 = ""; [KSPField]
[KSPField] public float Lights3Speed = 0; public string Lights2 = string.Empty;
[KSPField] public string Lights4 = "";  
[KSPField] public float Lights4Speed = 0; [KSPField]
[KSPField] public string Lights5 = ""; public float Lights2Speed = 0;
[KSPField] public float Lights5Speed = 0;  
[KSPField] public string Lights6 = ""; [KSPField]
[KSPField] public float Lights6Speed = 0; public string Lights3 = string.Empty;
[KSPField] public int MaxReelSpeed = 0;  
[KSPField] public int MaxRepeatTime = 0; [KSPField]
[KSPField] public int MinReelSpeed = 0; public float Lights3Speed = 0;
[KSPField] public int MinRepeatTime = 0;  
[KSPField] public string Reel1 = ""; [KSPField]
[KSPField] public float Reel1SpeedRatio = 1; public string Lights4 = string.Empty;
[KSPField] public string Reel2 = "";  
[KSPField] public float Reel2SpeedRatio = 1; [KSPField]
[KSPField] public float RepeatTimeDenominator = 1; public float Lights4Speed = 0;
[KSPField] public float SpeedChangeAmount = 0;  
[KSPField] public float SpeedDeadZone = 0; [KSPField]
[KSPField] public float SpeedStopZone = 0; public string Lights5 = string.Empty;
[KSPField] public bool UseBakedAnimation = false;  
  [KSPField]
#endregion public float Lights5Speed = 0;
   
#region Private Fields [KSPField]
  public string Lights6 = string.Empty;
private float currentTime;  
private float deltaTime; [KSPField]
private Shader lights1ShaderOff; public float Lights6Speed = 0;
private Transform lights1Transform;  
private Shader lights2ShaderOff; [KSPField]
private Transform lights2Transform; public int MaxReelSpeed = 0;
private Shader lights3ShaderOff;  
private Transform lights3Transform; [KSPField]
private Shader lights4ShaderOff; public int MaxRepeatTime = 0;
private Transform lights4Transform;  
private Shader lights5ShaderOff; [KSPField]
private Transform lights5Transform; public int MinReelSpeed = 0;
private Shader lights6ShaderOff;  
private Transform lights6Transform; [KSPField]
private Shader lightsShaderOn; public int MinRepeatTime = 0;
private Random random;  
private Transform reel1Transform; [KSPField]
private Transform reel2Transform; public string Reel1 = string.Empty;
private float repeatTime;  
private bool sceneIsEditor; [KSPField]
private float speed; public float Reel1SpeedRatio = 1;
private float targetSpeed;  
private Renderer renderer; [KSPField]
private Light light; public string Reel2 = string.Empty;
   
#endregion [KSPField]
  public float Reel2SpeedRatio = 1;
#region Properties  
  [KSPField]
private bool isRunning; public float RepeatTimeDenominator = 1;
   
  [KSPField]
  public float SpeedChangeAmount = 0;
   
  [KSPField]
  public float SpeedDeadZone = 0;
   
  [KSPField]
  public float SpeedStopZone = 0;
   
  [KSPField]
  public bool UseBakedAnimation = false;
   
  private Shader m_ButtonLightOffShader;
  private Shader m_ButtonLightOnShader;
  private Material m_ButtonSet1Material;
  private Material m_ButtonSet2Material;
  private Material m_ButtonSet3Material;
  private Material m_ButtonSet4Material;
  private Material m_ButtonSet5Material;
  private Material m_ButtonSet6Material;
  private float m_CurrentTime;
  private float m_DeltaTime;
  private bool m_IsRunning;
  private Random m_Random;
  private Transform m_Reel1Transform;
  private Transform m_Reel2Transform;
  private float m_RepeatTime;
  private bool m_SceneIsEditor;
  private float m_Speed;
  private float m_TargetSpeed;
   
public bool IsRunning public bool IsRunning
{ {
get { return this.isRunning; } get
  {
  return m_IsRunning;
  }
set set
{ {
this.isRunning = value; m_IsRunning = value;
   
if (this.isRunning) if (m_IsRunning)
{ {
if (this.UseBakedAnimation) if (UseBakedAnimation)
{ {
this.StartBakedAnimation(); StartBakedAnimation();
} }
} }
else else
{ {
if (this.UseBakedAnimation) if (UseBakedAnimation)
{ {
this.StopBakedAnimation(); StopBakedAnimation();
} }
} }
} }
} }
   
#endregion  
   
#region Initialisation  
   
public override void OnStart(StartState state) public override void OnStart(StartState state)
{ {
renderer = GetComponent<Renderer>(); m_Random = new Random();
   
this.random = new Random(); StopBakedAnimation();
  IsRunning = false;
this.StopBakedAnimation();  
this.IsRunning = false;  
   
if (HighLogic.LoadedSceneIsEditor) if (HighLogic.LoadedSceneIsEditor)
{ {
this.part.OnEditorAttach += this.OnEditorAttach; part.OnEditorAttach += OnEditorAttach;
this.part.OnEditorDetach += this.OnEditorDetach; part.OnEditorDetach += OnEditorDetach;
   
this.sceneIsEditor = true; m_SceneIsEditor = true;
   
if (this.part.parent != null) if (part.parent != null)
{ {
this.IsRunning = true; IsRunning = true;
} }
} }
else if (HighLogic.LoadedSceneIsFlight) else if (HighLogic.LoadedSceneIsFlight)
{ {
this.IsRunning = true; IsRunning = true;
} }
   
if (!this.UseBakedAnimation) if (UseBakedAnimation == false)
{ {
this.InitialiseReels(); InitialiseReels();
this.InitialiseLights(); InitialiseLights();
} }
  }
   
  public override void OnUpdate()
  {
  if (UseBakedAnimation)
  {
  return;
  }
   
  m_DeltaTime = m_SceneIsEditor ? Time.deltaTime : TimeWarp.deltaTime;
   
  if (TimeWarp.CurrentRate != 1.0f && TimeWarp.WarpMode != TimeWarp.Modes.LOW)
  {
  return;
  }
   
  if (IsRunning)
  {
  UpdateTimerCycle();
  UpdateSpeed();
  UpdateReels();
  UpdateLights();
  }
  else
  {
  m_TargetSpeed = 0;
   
  if (m_Speed != 0)
  {
  UpdateSpeed();
  UpdateReels();
  UpdateLights();
  }
  }
  }
   
  private static void SetShaderOnMaterial(Material material, Shader shader)
  {
  if (material != null && shader != null)
  {
  material.shader = shader;
  }
  }
   
  private Material GetMaterialOnModelTransform(string transformName)
  {
  Transform modelTransform = GetModelTransform(transformName);
  if (modelTransform != null)
  {
  Renderer renderer = modelTransform.GetComponent<Renderer>();
  if (renderer != null)
  {
  return renderer.material;
  }
  }
   
  return null;
  }
   
  private Transform GetModelTransform(string transformName)
  {
  if (string.IsNullOrEmpty(transformName) == false)
  {
  return part.FindModelTransform(transformName);
  }
   
  return null;
  }
   
  private void InitialiseLights()
  {
  m_ButtonSet1Material = GetMaterialOnModelTransform(Lights1);
  m_ButtonSet2Material = GetMaterialOnModelTransform(Lights2);
  m_ButtonSet3Material = GetMaterialOnModelTransform(Lights3);
  m_ButtonSet4Material = GetMaterialOnModelTransform(Lights4);
  m_ButtonSet5Material = GetMaterialOnModelTransform(Lights5);
  m_ButtonSet6Material = GetMaterialOnModelTransform(Lights6);
   
  m_ButtonLightOffShader = Shader.Find("KSP/Specular");
  m_ButtonLightOnShader = Shader.Find("KSP/Unlit");
} }
   
private void InitialiseReels() private void InitialiseReels()
{ {
if (this.Reel1 != "") if (string.IsNullOrEmpty(Reel1) == false)
{ {
this.reel1Transform = this.part.FindModelTransform(this.Reel1); m_Reel1Transform = part.FindModelTransform(Reel1);
} }
   
if (this.Reel2 != "") if (string.IsNullOrEmpty(Reel2) == false)
{ {
this.reel2Transform = this.part.FindModelTransform(this.Reel2); m_Reel2Transform = part.FindModelTransform(Reel2);
} }
} }
   
private void InitialiseLights() private void OnEditorAttach()
{ {
if (this.Lights1 != "") IsRunning = true;
{ }
this.lights1Transform = this.part.FindModelTransform(this.Lights1);  
this.lights1ShaderOff = renderer.material.shader; private void OnEditorDetach()
} {
  IsRunning = false;
if (this.Lights2 != "") }
{  
this.lights2Transform = this.part.FindModelTransform(this.Lights2); private void StartBakedAnimation()
this.lights2ShaderOff = renderer.material.shader; {
} foreach (Animation animator in part.FindModelAnimators())
  {
if (this.Lights3 != "") animator.Play();
{ }
this.lights3Transform = this.part.FindModelTransform(this.Lights3); }
this.lights3ShaderOff = renderer.material.shader;  
} private void StopBakedAnimation()
  {
if (this.Lights4 != "") foreach (Animation animator in part.FindModelAnimators())
{ {
this.lights4Transform = this.part.FindModelTransform(this.Lights4); animator.Stop();
this.lights4ShaderOff = renderer.material.shader; }
} }
   
if (this.Lights5 != "") private void Update()
{ {
this.lights5Transform = this.part.FindModelTransform(this.Lights5); if (m_SceneIsEditor)
this.lights5ShaderOff = renderer.material.shader; {
} OnUpdate();
  }
if (this.Lights6 != "") }
{  
this.lights6Transform = this.part.FindModelTransform(this.Lights6); private void UpdateButtonMaterial(Material material, float targetSpeed)
this.lights6ShaderOff = renderer.material.shader; {
} if (material == null)
  {
this.lightsShaderOn = Shader.Find("Unlit/Texture"); return;
} }
   
#endregion bool lightsOn;
   
#region Updating if (targetSpeed > 0)
  {
public override void OnUpdate() lightsOn = (m_Speed > targetSpeed);
{ }
if (!this.UseBakedAnimation) else if (targetSpeed < 0)
{ {
this.deltaTime = this.sceneIsEditor ? Time.deltaTime : TimeWarp.deltaTime; lightsOn = (m_Speed < targetSpeed);
  }
if (TimeWarp.CurrentRate != 1.0f && TimeWarp.WarpMode != TimeWarp.Modes.LOW) else
{ {
return; lightsOn = (m_Speed == 0);
} }
   
if (this.IsRunning) SetShaderOnMaterial(material, lightsOn ? m_ButtonLightOnShader : m_ButtonLightOffShader);
{ }
this.UpdateTimerCycle();  
this.UpdateSpeed(); private void UpdateLights()
this.UpdateReels(); {
this.UpdateLights(); UpdateButtonMaterial(m_ButtonSet1Material, Lights1Speed);
  UpdateButtonMaterial(m_ButtonSet2Material, Lights2Speed);
  UpdateButtonMaterial(m_ButtonSet3Material, Lights3Speed);
  UpdateButtonMaterial(m_ButtonSet4Material, Lights4Speed);
  UpdateButtonMaterial(m_ButtonSet5Material, Lights5Speed);
  UpdateButtonMaterial(m_ButtonSet6Material, Lights6Speed);
  }
   
  private void UpdateReels()
  {
  if (m_Reel1Transform != null && m_Speed != 0)
  {
  m_Reel1Transform.transform.Rotate(Vector3.right, m_Speed * Reel1SpeedRatio);
  }
   
  if (m_Reel2Transform != null && m_Speed != 0)
  {
  m_Reel2Transform.transform.Rotate(Vector3.right, m_Speed * Reel2SpeedRatio);
  }
  }
   
  private void UpdateSpeed()
  {
  if (m_Speed < m_TargetSpeed)
  {
  if (m_Speed < m_TargetSpeed - SpeedDeadZone)
  {
  m_Speed += SpeedChangeAmount * m_DeltaTime;
} }
else else
{ {
this.targetSpeed = 0; m_Speed = m_TargetSpeed;
  }
if (this.speed != 0) }
{ else if (m_Speed > m_TargetSpeed)
this.UpdateSpeed(); {
this.UpdateReels(); if (m_Speed > m_TargetSpeed + SpeedDeadZone)
this.UpdateLights(); {
} m_Speed -= SpeedChangeAmount * m_DeltaTime;
} }
} else
} {
  m_Speed = m_TargetSpeed;
private void Update() }
{  
if (this.sceneIsEditor)  
{  
this.OnUpdate();  
}  
}  
   
private void OnEditorAttach()  
{  
this.IsRunning = true;  
}  
   
private void OnEditorDetach()  
{  
this.IsRunning = false;  
}  
   
private void StopBakedAnimation()  
{  
foreach (var animator in this.part.FindModelAnimators())  
{  
animator.Stop();  
}  
}  
   
private void StartBakedAnimation()  
{  
foreach (var animator in this.part.FindModelAnimators())  
{  
animator.Play();  
} }
} }
   
private void UpdateTimerCycle() private void UpdateTimerCycle()
{ {
this.currentTime += this.deltaTime; m_CurrentTime += m_DeltaTime;
   
if (this.currentTime >= this.repeatTime) if (m_CurrentTime >= m_RepeatTime)
{ {
this.targetSpeed = this.random.Next(this.MinReelSpeed, this.MaxReelSpeed); m_TargetSpeed = m_Random.Next(MinReelSpeed, MaxReelSpeed);
   
if (this.targetSpeed > -this.SpeedStopZone && this.targetSpeed < this.SpeedStopZone) if (m_TargetSpeed > -SpeedStopZone && m_TargetSpeed < SpeedStopZone)
{ {
this.targetSpeed = 0; m_TargetSpeed = 0;
} }
   
this.repeatTime = this.random.Next(this.MinRepeatTime, this.MaxRepeatTime); m_RepeatTime = m_Random.Next(MinRepeatTime, MaxRepeatTime);
   
if (this.RepeatTimeDenominator != 0) if (RepeatTimeDenominator != 0)
{ {
this.repeatTime /= this.RepeatTimeDenominator; m_RepeatTime /= RepeatTimeDenominator;
} }
   
this.currentTime -= this.repeatTime; m_CurrentTime -= m_RepeatTime;
} }
} }
   
private void UpdateSpeed()  
{  
if (this.speed < this.targetSpeed)  
{  
if (this.speed < this.targetSpeed - this.SpeedDeadZone)  
{  
this.speed += this.SpeedChangeAmount * this.deltaTime;  
}  
else  
{  
this.speed = this.targetSpeed;  
}  
}  
else if (this.speed > this.targetSpeed)  
{  
if (this.speed > this.targetSpeed + this.SpeedDeadZone)  
{  
this.speed -= this.SpeedChangeAmount * this.deltaTime;  
}  
else  
{  
this.speed = this.targetSpeed;  
}  
}  
}  
   
private void UpdateReels()  
{  
if (this.reel1Transform != null && this.speed != 0)  
{  
this.reel1Transform.transform.Rotate(Vector3.right, this.speed * this.Reel1SpeedRatio);  
}  
   
if (this.reel2Transform != null && this.speed != 0)  
{  
this.reel2Transform.transform.Rotate(Vector3.right, this.speed * this.Reel2SpeedRatio);  
}  
}  
   
private void UpdateLights()  
{  
if (this.lights1Transform != null)  
{  
this.UpdateLightTransform(this.lights1Transform, this.lightsShaderOn, this.lights1ShaderOff, this.Lights1Speed);  
}  
if (this.lights2Transform != null)  
{  
this.UpdateLightTransform(this.lights2Transform, this.lightsShaderOn, this.lights2ShaderOff, this.Lights2Speed);  
}  
if (this.lights3Transform != null)  
{  
this.UpdateLightTransform(this.lights3Transform, this.lightsShaderOn, this.lights3ShaderOff, this.Lights3Speed);  
}  
if (this.lights4Transform != null)  
{  
this.UpdateLightTransform(this.lights4Transform, this.lightsShaderOn, this.lights4ShaderOff, this.Lights4Speed);  
}  
if (this.lights5Transform != null)  
{  
this.UpdateLightTransform(this.lights5Transform, this.lightsShaderOn, this.lights5ShaderOff, this.Lights5Speed);  
}  
if (this.lights6Transform != null)  
{  
this.UpdateLightTransform(this.lights6Transform, this.lightsShaderOn, this.lights6ShaderOff, this.Lights6Speed);  
}  
}  
   
private void UpdateLightTransform(Component lights, Shader on, Shader off, float targetSpeed)  
{  
bool lightsOn;  
   
if (targetSpeed > 0)  
{  
lightsOn = (this.speed > targetSpeed);  
}  
else if (targetSpeed < 0)  
{  
lightsOn = (this.speed < targetSpeed);  
}  
else  
{  
lightsOn = (this.speed == 0);  
}  
   
lights.GetComponent<Renderer>().material.shader = lightsOn ? @on : off;  
}  
   
#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/>.
// //
   
namespace KerbalEngineer.VesselSimulator namespace KerbalEngineer.VesselSimulator
{ {
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using Editor; using Editor;
using Helpers; using Helpers;
using UnityEngine; using UnityEngine;
   
public class EngineSim public class EngineSim
{ {
private static readonly Pool<EngineSim> pool = new Pool<EngineSim>(Create, Reset); private static readonly Pool<EngineSim> pool = new Pool<EngineSim>(Create, Reset);
   
private readonly ResourceContainer resourceConsumptions = new ResourceContainer(); private readonly ResourceContainer resourceConsumptions = new ResourceContainer();
private readonly ResourceContainer resourceFlowModes = new ResourceContainer(); private readonly ResourceContainer resourceFlowModes = new ResourceContainer();
   
public double actualThrust = 0; public double actualThrust = 0;
public bool isActive = false; public bool isActive = false;
public double isp = 0; public double isp = 0;
public PartSim partSim; public PartSim partSim;
public List<AppliedForce> appliedForces = new List<AppliedForce>(); public List<AppliedForce> appliedForces = new List<AppliedForce>();
public float maxMach; public float maxMach;
   
public double thrust = 0; public double thrust = 0;
   
// Add thrust vector to account for directional losses // Add thrust vector to account for directional losses
public Vector3 thrustVec; public Vector3 thrustVec;
   
private static EngineSim Create() private static EngineSim Create()
{ {
return new EngineSim(); return new EngineSim();
} }
   
private static void Reset(EngineSim engineSim) private static void Reset(EngineSim engineSim)
{ {
engineSim.resourceConsumptions.Reset(); engineSim.resourceConsumptions.Reset();
engineSim.resourceFlowModes.Reset(); engineSim.resourceFlowModes.Reset();
engineSim.actualThrust = 0; engineSim.actualThrust = 0;
engineSim.isActive = false; engineSim.isActive = false;
engineSim.isp = 0; engineSim.isp = 0;
for (int i = 0; i < engineSim.appliedForces.Count; i++) for (int i = 0; i < engineSim.appliedForces.Count; i++)
{ {
engineSim.appliedForces[i].Release(); engineSim.appliedForces[i].Release();
} }
engineSim.appliedForces.Clear(); engineSim.appliedForces.Clear();
engineSim.thrust = 0; engineSim.thrust = 0;
engineSim.maxMach = 0f; engineSim.maxMach = 0f;
} }
   
public void Release() public void Release()
{ {
pool.Release(this); pool.Release(this);
} }
   
public static EngineSim New(PartSim theEngine, public static EngineSim New(PartSim theEngine,
double atmosphere, ModuleEngines engineMod,
float machNumber, double atmosphere,
float maxFuelFlow, float machNumber,
float minFuelFlow, bool vectoredThrust,
float thrustPercentage, bool fullThrust,
Vector3 vecThrust, LogMsg log)
FloatCurve atmosphereCurve, {
bool atmChangeFlow, float maxFuelFlow = engineMod.maxFuelFlow;
FloatCurve atmCurve, float minFuelFlow = engineMod.minFuelFlow;
FloatCurve velCurve, float thrustPercentage = engineMod.thrustPercentage;
float currentThrottle, Vector3 vecThrust = CalculateThrustVector(vectoredThrust ? engineMod.thrustTransforms : null, log);
float IspG, FloatCurve atmosphereCurve = engineMod.atmosphereCurve;
bool throttleLocked, bool atmChangeFlow = engineMod.atmChangeFlow;
List<Propellant> propellants, FloatCurve atmCurve = engineMod.useAtmCurve ? engineMod.atmCurve : null;
bool active, FloatCurve velCurve = engineMod.useVelCurve ? engineMod.velCurve : null;
float resultingThrust, float currentThrottle = engineMod.currentThrottle;
List<Transform> thrustTransforms, float IspG = engineMod.g;
LogMsg log) bool throttleLocked = engineMod.throttleLocked || fullThrust;
{ List<Propellant> propellants = engineMod.propellants;
EngineSim engineSim = pool.Borrow(); bool active = engineMod.isOperational;
  float resultingThrust = engineMod.resultingThrust;
  List<Transform> thrustTransforms = engineMod.thrustTransforms;
   
  EngineSim engineSim = pool.Borrow();
   
engineSim.isp = 0.0; engineSim.isp = 0.0;
engineSim.maxMach = 0.0f; engineSim.maxMach = 0.0f;
engineSim.actualThrust = 0.0; engineSim.actualThrust = 0.0;
engineSim.partSim = theEngine; engineSim.partSim = theEngine;
engineSim.isActive = active; engineSim.isActive = active;
engineSim.thrustVec = vecThrust; engineSim.thrustVec = vecThrust;
engineSim.resourceConsumptions.Reset(); engineSim.resourceConsumptions.Reset();
engineSim.resourceFlowModes.Reset(); engineSim.resourceFlowModes.Reset();
engineSim.appliedForces.Clear(); engineSim.appliedForces.Clear();
   
double flowRate = 0.0; double flowRate = 0.0;
if (engineSim.partSim.hasVessel) if (engineSim.partSim.hasVessel)
{ {
if (log != null) log.buf.AppendLine("hasVessel is true"); if (log != null) log.buf.AppendLine("hasVessel is true");
   
float flowModifier = GetFlowModifier(atmChangeFlow, atmCurve, engineSim.partSim.part.atmDensity, velCurve, machNumber, ref engineSim.maxMach); float flowModifier = GetFlowModifier(atmChangeFlow, atmCurve, engineSim.partSim.part.atmDensity, velCurve, machNumber, ref engineSim.maxMach);
engineSim.isp = atmosphereCurve.Evaluate((float)atmosphere); engineSim.isp = atmosphereCurve.Evaluate((float)atmosphere);
engineSim.thrust = GetThrust(Mathf.Lerp(minFuelFlow, maxFuelFlow, GetThrustPercent(thrustPercentage)) * flowModifier, engineSim.isp); engineSim.thrust = GetThrust(Mathf.Lerp(minFuelFlow, maxFuelFlow, GetThrustPercent(thrustPercentage)) * flowModifier, engineSim.isp);
engineSim.actualThrust = engineSim.isActive ? resultingThrust : 0.0; engineSim.actualThrust = engineSim.isActive ? resultingThrust : 0.0;
if (log != null) if (log != null)
{