Binary files /dev/null and b/Assets/Plugins/KerbalEngineer.Unity.dll differ
%YAML 1.1 | |
%TAG !u! tag:unity3d.com,2011: | |
--- !u!1 &104452 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22454998} | |
- 222: {fileID: 22296168} | |
- 114: {fileID: 11459182} | |
m_Layer: 5 | |
m_Name: Selected | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &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: 11482720} | |
- 114: {fileID: 11400468} | |
m_Layer: 5 | |
m_Name: ToggleControlBar | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &116014 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22475412} | |
- 222: {fileID: 22223226} | |
- 114: {fileID: 11424646} | |
m_Layer: 5 | |
m_Name: Content | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &122098 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22401100} | |
- 222: {fileID: 22201528} | |
- 114: {fileID: 11404586} | |
- 114: {fileID: 11461688} | |
- 114: {fileID: 11420706} | |
- 114: {fileID: 11482140} | |
m_Layer: 5 | |
m_Name: NewCustomSection | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &126098 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22476196} | |
- 222: {fileID: 22270862} | |
- 114: {fileID: 11423044} | |
- 114: {fileID: 11485532} | |
- 225: {fileID: 22567868} | |
- 114: {fileID: 11415294} | |
- 114: {fileID: 11447982} | |
- 114: {fileID: 11478508} | |
m_Layer: 5 | |
m_Name: FlightMenu | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &133376 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22478174} | |
- 114: {fileID: 11443382} | |
m_Layer: 5 | |
m_Name: Controls | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &137786 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22444606} | |
- 222: {fileID: 22267348} | |
- 114: {fileID: 11465882} | |
m_Layer: 5 | |
m_Name: Text | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &138760 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22409936} | |
- 222: {fileID: 22255938} | |
- 114: {fileID: 11403342} | |
m_Layer: 5 | |
m_Name: Text | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &150266 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22463980} | |
- 222: {fileID: 22210360} | |
- 114: {fileID: 11475868} | |
m_Layer: 5 | |
m_Name: Selected | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &156848 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22483410} | |
- 222: {fileID: 22267572} | |
- 114: {fileID: 11463504} | |
- 114: {fileID: 11453198} | |
- 114: {fileID: 11400370} | |
m_Layer: 5 | |
m_Name: Titlebar | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
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 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22401786} | |
- 222: {fileID: 22247322} | |
- 114: {fileID: 11439582} | |
m_Layer: 5 | |
m_Name: label | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &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_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &194088 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22469574} | |
- 222: {fileID: 22281674} | |
- 114: {fileID: 11498756} | |
- 114: {fileID: 11483870} | |
- 114: {fileID: 11489252} | |
m_Layer: 5 | |
m_Name: ToggleShowEngineer | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!114 &11400370 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 156848} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_ElementType: 1 | |
--- !u!114 &11400468 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 114528} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Navigation: | |
m_Mode: 3 | |
m_SelectOnUp: {fileID: 0} | |
m_SelectOnDown: {fileID: 0} | |
m_SelectOnLeft: {fileID: 0} | |
m_SelectOnRight: {fileID: 0} | |
m_Transition: 0 | |
m_Colors: | |
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} | |
m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} | |
m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} | |
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} | |
m_ColorMultiplier: 1 | |
m_FadeDuration: .100000001 | |
m_SpriteState: | |
m_HighlightedSprite: {fileID: 0} | |
m_PressedSprite: {fileID: 0} | |
m_DisabledSprite: {fileID: 0} | |
m_AnimationTriggers: | |
m_NormalTrigger: Normal | |
m_HighlightedTrigger: Highlighted | |
m_PressedTrigger: Pressed | |
m_DisabledTrigger: Disabled | |
m_Interactable: 1 | |
m_TargetGraphic: {fileID: 11494262} | |
toggleTransition: 0 | |
graphic: {fileID: 11459182} | |
m_Group: {fileID: 0} | |
onValueChanged: | |
m_PersistentCalls: | |
m_Calls: | |
- m_Target: {fileID: 11415294} | |
m_MethodName: SetControlBarVisible | |
m_Mode: 0 | |
m_Arguments: | |
m_ObjectArgument: {fileID: 0} | |
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine | |
m_IntArgument: 0 | |
m_FloatArgument: 0 | |
m_StringArgument: | |
m_BoolArgument: 0 | |
m_CallState: 2 | |
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, | |
Culture=neutral, PublicKeyToken=null | |
m_IsOn: 0 | |
--- !u!114 &11403342 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 138760} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, 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: SHOW ENGINEER | |
--- !u!114 &11404586 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 122098} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, 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_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 &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: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_ShowEngineerToggle: {fileID: 11489252} | |
m_ControlBarToggle: {fileID: 11400468} | |
m_MenuSectionPrefab: {fileID: 130812, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
m_SectionsTransform: {fileID: 22435482} | |
m_FastFadeDuration: .200000003 | |
m_SlowFadeDuration: .200000003 | |
--- !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: 0 | |
m_Colors: | |
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} | |
m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1} | |
m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1} | |
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} | |
m_ColorMultiplier: 1 | |
m_FadeDuration: .100000001 | |
m_SpriteState: | |
m_HighlightedSprite: {fileID: 0} | |
m_PressedSprite: {fileID: 0} | |
m_DisabledSprite: {fileID: 0} | |
m_AnimationTriggers: | |
m_NormalTrigger: Normal | |
m_HighlightedTrigger: Highlighted | |
m_PressedTrigger: Pressed | |
m_DisabledTrigger: Disabled | |
m_Interactable: 1 | |
m_TargetGraphic: {fileID: 11404586} | |
m_OnClick: | |
m_PersistentCalls: | |
m_Calls: | |
- m_Target: {fileID: 11415294} | |
m_MethodName: NewCustomSection | |
m_Mode: 1 | |
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.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, | |
Culture=neutral, PublicKeyToken=null | |
--- !u!114 &11423044 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 126098} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_HorizontalFit: 0 | |
m_VerticalFit: 2 | |
--- !u!114 &11424646 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 116014} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Padding: | |
m_Left: 4 | |
m_Right: 4 | |
m_Top: 4 | |
m_Bottom: 4 | |
m_ChildAlignment: 0 | |
m_Spacing: 2 | |
m_ChildForceExpandWidth: 1 | |
m_ChildForceExpandHeight: 0 | |
--- !u!114 &11439582 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 172308} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: .800000072, g: 1, b: 0, a: 1} | |
m_RaycastTarget: 0 | |
m_OnCullStateChanged: | |
m_PersistentCalls: | |
m_Calls: [] | |
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, | |
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | |
m_FontData: | |
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} | |
m_FontSize: 12 | |
m_FontStyle: 1 | |
m_BestFit: 0 | |
m_MinSize: 10 | |
m_MaxSize: 40 | |
m_Alignment: 3 | |
m_RichText: 0 | |
m_HorizontalOverflow: 0 | |
m_VerticalOverflow: 0 | |
m_LineSpacing: 1 | |
m_Text: FLIGHT ENGINEER | |
--- !u!114 &11443382 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 133376} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_IgnoreLayout: 0 | |
m_MinWidth: -1 | |
m_MinHeight: -1 | |
m_PreferredWidth: -1 | |
m_PreferredHeight: 18 | |
m_FlexibleWidth: -1 | |
m_FlexibleHeight: -1 | |
--- !u!114 &11447982 | |
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: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, a: 1} | |
m_RaycastTarget: 1 | |
m_OnCullStateChanged: | |
m_PersistentCalls: | |
m_Calls: [] | |
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, | |
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | |
m_Sprite: {fileID: 0} | |
m_Type: 0 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!114 &11453198 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 156848} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_IgnoreLayout: 0 | |
m_MinWidth: -1 | |
m_MinHeight: -1 | |
m_PreferredWidth: -1 | |
m_PreferredHeight: 20 | |
m_FlexibleWidth: -1 | |
m_FlexibleHeight: -1 | |
--- !u!114 &11459182 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 104452} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, 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_Sprite: {fileID: 0} | |
m_Type: 0 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!114 &11461688 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 122098} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_IgnoreLayout: 0 | |
m_MinWidth: -1 | |
m_MinHeight: -1 | |
m_PreferredWidth: -1 | |
m_PreferredHeight: 18 | |
m_FlexibleWidth: -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: 1 | |
m_Bottom: 1 | |
m_ChildAlignment: 0 | |
m_Spacing: 0 | |
m_ChildForceExpandWidth: 1 | |
m_ChildForceExpandHeight: 0 | |
--- !u!114 &11463504 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 156848} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: .600000024, g: .600000024, b: .600000024, a: .784313738} | |
m_RaycastTarget: 1 | |
m_OnCullStateChanged: | |
m_PersistentCalls: | |
m_Calls: [] | |
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, | |
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | |
m_Sprite: {fileID: 0} | |
m_Type: 0 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!114 &11465050 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 193852} | |
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: 1, g: 1, b: 1, 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: 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: 1, g: 1, b: 1, 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 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 150266} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, 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_Sprite: {fileID: 0} | |
m_Type: 0 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!114 &11478508 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 126098} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_ElementType: 1 | |
--- !u!114 &11482140 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 122098} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_ElementType: 3 | |
--- !u!114 &11482720 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 114528} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_ElementType: 4 | |
--- !u!114 &11483870 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 194088} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_ElementType: 4 | |
--- !u!114 &11483978 | |
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 &11485532 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 126098} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Padding: | |
m_Left: 0 | |
m_Right: 0 | |
m_Top: 0 | |
m_Bottom: 0 | |
m_ChildAlignment: 0 | |
m_Spacing: 0 | |
m_ChildForceExpandWidth: 1 | |
m_ChildForceExpandHeight: 1 | |
--- !u!114 &11489252 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 194088} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Navigation: | |
m_Mode: 3 | |
m_SelectOnUp: {fileID: 0} | |
m_SelectOnDown: {fileID: 0} | |
m_SelectOnLeft: {fileID: 0} | |
m_SelectOnRight: {fileID: 0} | |
m_Transition: 0 | |
m_Colors: | |
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} | |
m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} | |
m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} | |
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} | |
m_ColorMultiplier: 1 | |
m_FadeDuration: .100000001 | |
m_SpriteState: | |
m_HighlightedSprite: {fileID: 0} | |
m_PressedSprite: {fileID: 0} | |
m_DisabledSprite: {fileID: 0} | |
m_AnimationTriggers: | |
m_NormalTrigger: Normal | |
m_HighlightedTrigger: Highlighted | |
m_PressedTrigger: Pressed | |
m_DisabledTrigger: Disabled | |
m_Interactable: 1 | |
m_TargetGraphic: {fileID: 11498756} | |
toggleTransition: 0 | |
graphic: {fileID: 11475868} | |
m_Group: {fileID: 0} | |
onValueChanged: | |
m_PersistentCalls: | |
m_Calls: | |
- m_Target: {fileID: 11415294} | |
m_MethodName: SetDisplayStackVisible | |
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 &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: 1, g: 1, b: 1, 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_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 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 194088} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, 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_Sprite: {fileID: 0} | |
m_Type: 1 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!222 &22201528 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 122098} | |
--- !u!222 &22210360 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 150266} | |
--- !u!222 &22223226 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 116014} | |
--- !u!222 &22247322 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 172308} | |
--- !u!222 &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 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 138760} | |
--- !u!222 &22267348 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 137786} | |
--- !u!222 &22267572 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 156848} | |
--- !u!222 &22270862 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 126098} | |
--- !u!222 &22281674 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 194088} | |
--- !u!222 &22296168 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 104452} | |
--- !u!224 &22401100 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 122098} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: | |
- {fileID: 22444606} | |
m_Father: {fileID: 22475412} | |
m_RootOrder: 2 | |
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 &22401786 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 172308} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 22483410} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 2.5, y: 0} | |
m_SizeDelta: {x: -5, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22409936 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 138760} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 22469574} | |
m_RootOrder: 1 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22411946 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 193852} | |
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: 1 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22435482 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
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_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 22401100} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &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 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 150266} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 22469574} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22468796 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 114528} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: | |
- {fileID: 22454998} | |
- {fileID: 22411946} | |
m_Father: {fileID: 22478174} | |
m_RootOrder: 1 | |
m_AnchorMin: {x: .5, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 1, y: 0} | |
m_SizeDelta: {x: -2, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22469574 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 194088} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: | |
- {fileID: 22463980} | |
- {fileID: 22409936} | |
m_Father: {fileID: 22478174} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: .5, y: 1} | |
m_AnchoredPosition: {x: -1, y: 0} | |
m_SizeDelta: {x: -2, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22475412 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 116014} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: | |
- {fileID: 22478174} | |
- {fileID: 22435482} | |
- {fileID: 22401100} | |
m_Father: {fileID: 22476196} | |
m_RootOrder: 1 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 0, y: 0} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22476196 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 126098} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: | |
- {fileID: 22483410} | |
- {fileID: 22475412} | |
m_Father: {fileID: 0} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: .5, y: .5} | |
m_AnchorMax: {x: .5, y: .5} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 250, y: 0} | |
m_Pivot: {x: 1, y: 0} | |
--- !u!224 &22478174 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 133376} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: | |
- {fileID: 22469574} | |
- {fileID: 22468796} | |
m_Father: {fileID: 22475412} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 0, y: 0} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22483410 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 156848} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: | |
- {fileID: 22401786} | |
m_Father: {fileID: 22476196} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 0, y: 0} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: 1} | |
--- !u!225 &22567868 | |
CanvasGroup: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 126098} | |
m_Enabled: 1 | |
m_Alpha: 1 | |
m_Interactable: 1 | |
m_BlocksRaycasts: 1 | |
m_IgnoreParentGroups: 0 | |
--- !u!1001 &100100000 | |
Prefab: | |
m_ObjectHideFlags: 1 | |
serializedVersion: 2 | |
m_Modification: | |
m_TransformParent: {fileID: 0} | |
m_Modifications: | |
- target: {fileID: 0} | |
propertyPath: m_FastFadeDuration | |
value: .100000001 | |
objectReference: {fileID: 0} | |
- target: {fileID: 0} | |
propertyPath: m_SlowFadeDuration | |
value: .200000003 | |
objectReference: {fileID: 0} | |
- target: {fileID: 0} | |
propertyPath: m_ContentTransform | |
value: | |
objectReference: {fileID: 22475412} | |
- target: {fileID: 0} | |
propertyPath: m_SectionPrefab | |
value: | |
objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2} | |
- target: {fileID: 0} | |
propertyPath: m_MenuSectionPrefab | |
value: | |
objectReference: {fileID: 130812, guid: 1755c05344f574d4787a372d34a4e3fb, type: 2} | |
m_RemovedComponents: [] | |
m_ParentPrefab: {fileID: 0} | |
m_RootGameObject: {fileID: 126098} | |
m_IsPrefabParent: 1 | |
%YAML 1.1 | |
%TAG !u! tag:unity3d.com,2011: | |
--- !u!1 &121376 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22409126} | |
- 222: {fileID: 22266612} | |
- 114: {fileID: 11461446} | |
- 114: {fileID: 11436568} | |
- 114: {fileID: 11403482} | |
m_Layer: 5 | |
m_Name: ToggleDisplay | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &121536 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22446728} | |
- 222: {fileID: 22259916} | |
- 114: {fileID: 11418436} | |
m_Layer: 5 | |
m_Name: Selected | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &130136 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22444842} | |
- 222: {fileID: 22269896} | |
- 114: {fileID: 11449350} | |
- 114: {fileID: 11421724} | |
- 114: {fileID: 11411294} | |
m_Layer: 5 | |
m_Name: ToggleEdit | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &130812 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22478272} | |
- 114: {fileID: 11431788} | |
- 114: {fileID: 11494744} | |
m_Layer: 5 | |
m_Name: FlightMenuSection | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &151828 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22485856} | |
- 222: {fileID: 22274980} | |
- 114: {fileID: 11408784} | |
m_Layer: 5 | |
m_Name: Text | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &172700 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22483442} | |
- 222: {fileID: 22246486} | |
- 114: {fileID: 11462740} | |
m_Layer: 5 | |
m_Name: Text | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!1 &178618 | |
GameObject: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 22469204} | |
- 222: {fileID: 22219086} | |
- 114: {fileID: 11484356} | |
m_Layer: 5 | |
m_Name: Selected | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!114 &11403482 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 121376} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_ElementType: 4 | |
--- !u!114 &11408784 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 151828} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, a: 1} | |
m_RaycastTarget: 1 | |
m_OnCullStateChanged: | |
m_PersistentCalls: | |
m_Calls: [] | |
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, | |
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | |
m_FontData: | |
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} | |
m_FontSize: 10 | |
m_FontStyle: 1 | |
m_BestFit: 0 | |
m_MinSize: 10 | |
m_MaxSize: 40 | |
m_Alignment: 4 | |
m_RichText: 1 | |
m_HorizontalOverflow: 0 | |
m_VerticalOverflow: 0 | |
m_LineSpacing: 1 | |
m_Text: DISPLAY | |
--- !u!114 &11411294 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 130136} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_ElementType: 4 | |
--- !u!114 &11418436 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 121536} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, 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_Sprite: {fileID: 0} | |
m_Type: 0 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!114 &11421724 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 130136} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Navigation: | |
m_Mode: 3 | |
m_SelectOnUp: {fileID: 0} | |
m_SelectOnDown: {fileID: 0} | |
m_SelectOnLeft: {fileID: 0} | |
m_SelectOnRight: {fileID: 0} | |
m_Transition: 0 | |
m_Colors: | |
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} | |
m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1} | |
m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1} | |
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} | |
m_ColorMultiplier: 1 | |
m_FadeDuration: .100000001 | |
m_SpriteState: | |
m_HighlightedSprite: {fileID: 0} | |
m_PressedSprite: {fileID: 0} | |
m_DisabledSprite: {fileID: 0} | |
m_AnimationTriggers: | |
m_NormalTrigger: Normal | |
m_HighlightedTrigger: Highlighted | |
m_PressedTrigger: Pressed | |
m_DisabledTrigger: Disabled | |
m_Interactable: 1 | |
m_TargetGraphic: {fileID: 11449350} | |
toggleTransition: 1 | |
graphic: {fileID: 11484356} | |
m_Group: {fileID: 0} | |
onValueChanged: | |
m_PersistentCalls: | |
m_Calls: | |
- m_Target: {fileID: 11494744} | |
m_MethodName: SetEditorVisible | |
m_Mode: 0 | |
m_Arguments: | |
m_ObjectArgument: {fileID: 0} | |
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine | |
m_IntArgument: 0 | |
m_FloatArgument: 0 | |
m_StringArgument: | |
m_BoolArgument: 0 | |
m_CallState: 2 | |
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, | |
Culture=neutral, PublicKeyToken=null | |
m_IsOn: 0 | |
--- !u!114 &11431788 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 130812} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_IgnoreLayout: 0 | |
m_MinWidth: -1 | |
m_MinHeight: -1 | |
m_PreferredWidth: -1 | |
m_PreferredHeight: 18 | |
m_FlexibleWidth: -1 | |
m_FlexibleHeight: -1 | |
--- !u!114 &11436568 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 121376} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Navigation: | |
m_Mode: 3 | |
m_SelectOnUp: {fileID: 0} | |
m_SelectOnDown: {fileID: 0} | |
m_SelectOnLeft: {fileID: 0} | |
m_SelectOnRight: {fileID: 0} | |
m_Transition: 0 | |
m_Colors: | |
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} | |
m_HighlightedColor: {r: .467545569, g: 1, b: .448529422, a: 1} | |
m_PressedColor: {r: .800000072, g: 1, b: 0, a: 1} | |
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} | |
m_ColorMultiplier: 1 | |
m_FadeDuration: .100000001 | |
m_SpriteState: | |
m_HighlightedSprite: {fileID: 0} | |
m_PressedSprite: {fileID: 0} | |
m_DisabledSprite: {fileID: 0} | |
m_AnimationTriggers: | |
m_NormalTrigger: Normal | |
m_HighlightedTrigger: Highlighted | |
m_PressedTrigger: Pressed | |
m_DisabledTrigger: Disabled | |
m_Interactable: 1 | |
m_TargetGraphic: {fileID: 11461446} | |
toggleTransition: 1 | |
graphic: {fileID: 11418436} | |
m_Group: {fileID: 0} | |
onValueChanged: | |
m_PersistentCalls: | |
m_Calls: | |
- m_Target: {fileID: 11494744} | |
m_MethodName: SetDisplayVisible | |
m_Mode: 0 | |
m_Arguments: | |
m_ObjectArgument: {fileID: 0} | |
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine | |
m_IntArgument: 0 | |
m_FloatArgument: 0 | |
m_StringArgument: | |
m_BoolArgument: 0 | |
m_CallState: 2 | |
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, | |
Culture=neutral, PublicKeyToken=null | |
m_IsOn: 0 | |
--- !u!114 &11449350 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 130136} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, 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_Sprite: {fileID: 0} | |
m_Type: 1 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!114 &11461446 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 121376} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, 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_Sprite: {fileID: 0} | |
m_Type: 1 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!114 &11462740 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 172700} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, a: 1} | |
m_RaycastTarget: 1 | |
m_OnCullStateChanged: | |
m_PersistentCalls: | |
m_Calls: [] | |
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, | |
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | |
m_FontData: | |
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} | |
m_FontSize: 10 | |
m_FontStyle: 1 | |
m_BestFit: 0 | |
m_MinSize: 10 | |
m_MaxSize: 40 | |
m_Alignment: 4 | |
m_RichText: 1 | |
m_HorizontalOverflow: 0 | |
m_VerticalOverflow: 0 | |
m_LineSpacing: 1 | |
m_Text: EDIT | |
--- !u!114 &11484356 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 178618} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, 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_Sprite: {fileID: 0} | |
m_Type: 0 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!114 &11494744 | |
MonoBehaviour: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 130812} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -1842827791, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_DisplayToggle: {fileID: 11436568} | |
m_DisplayText: {fileID: 11408784} | |
m_EditToggle: {fileID: 11421724} | |
--- !u!222 &22219086 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 178618} | |
--- !u!222 &22246486 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 172700} | |
--- !u!222 &22259916 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 121536} | |
--- !u!222 &22266612 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 121376} | |
--- !u!222 &22269896 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 130136} | |
--- !u!222 &22274980 | |
CanvasRenderer: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 151828} | |
--- !u!224 &22409126 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 121376} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: | |
- {fileID: 22446728} | |
- {fileID: 22485856} | |
m_Father: {fileID: 22478272} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: .75, y: 1} | |
m_AnchoredPosition: {x: -1, y: 0} | |
m_SizeDelta: {x: -2, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22444842 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 130136} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: | |
- {fileID: 22469204} | |
- {fileID: 22483442} | |
m_Father: {fileID: 22478272} | |
m_RootOrder: 1 | |
m_AnchorMin: {x: .75, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 1, y: 0} | |
m_SizeDelta: {x: -2, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22446728 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 121536} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 22409126} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22469204 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 178618} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 22444842} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22478272 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 130812} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: | |
- {fileID: 22409126} | |
- {fileID: 22444842} | |
m_Father: {fileID: 0} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 0, y: 0} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22483442 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 172700} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 22444842} | |
m_RootOrder: 1 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!224 &22485856 | |
RectTransform: | |
m_ObjectHideFlags: 1 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 100100000} | |
m_GameObject: {fileID: 151828} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 22409126} | |
m_RootOrder: 1 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!1001 &100100000 | |
Prefab: | |
m_ObjectHideFlags: 1 | |
serializedVersion: 2 | |
m_Modification: | |
m_TransformParent: {fileID: 0} | |
m_Modifications: | |
- target: {fileID: 0} | |
propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target | |
value: | |
objectReference: {fileID: 11494744} | |
- target: {fileID: 0} | |
propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName | |
value: SetEditorVisible | |
objectReference: {fileID: 0} | |
- 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} | |
- target: {fileID: 0} | |
propertyPath: m_DisplayToggle | |
value: | |
objectReference: {fileID: 11436568} | |
- target: {fileID: 0} | |
propertyPath: m_Transition | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 0} | |
propertyPath: m_Color.r | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 0} | |
propertyPath: m_Color.g | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 0} | |
propertyPath: m_Color.b | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 0} | |
propertyPath: m_Color.a | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 0} | |
propertyPath: m_ElementType | |
value: 4 | |
objectReference: {fileID: 0} | |
- target: {fileID: 0} | |
propertyPath: m_PreferredHeight | |
value: 18 | |
objectReference: {fileID: 0} | |
m_RemovedComponents: [] | |
m_ParentPrefab: {fileID: 0} | |
m_RootGameObject: {fileID: 130812} | |
m_IsPrefabParent: 1 | |
%YAML 1.1 | |
%TAG !u! tag:unity3d.com,2011: | |
--- !u!29 &1 | |
SceneSettings: | |
m_ObjectHideFlags: 0 | |
m_PVSData: | |
m_PVSObjectsArray: [] | |
m_PVSPortalsArray: [] | |
m_OcclusionBakeSettings: | |
smallestOccluder: 5 | |
smallestHole: .25 | |
backfaceThreshold: 100 | |
--- !u!104 &2 | |
RenderSettings: | |
m_ObjectHideFlags: 0 | |
serializedVersion: 6 | |
m_Fog: 0 | |
m_FogColor: {r: .5, g: .5, b: .5, a: 1} | |
m_FogMode: 3 | |
m_FogDensity: .00999999978 | |
m_LinearFogStart: 0 | |
m_LinearFogEnd: 300 | |
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1} | |
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1} | |
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1} | |
m_AmbientIntensity: 1 | |
m_AmbientMode: 3 | |
m_SkyboxMaterial: {fileID: 0} | |
m_HaloStrength: .5 | |
m_FlareStrength: 1 | |
m_FlareFadeSpeed: 3 | |
m_HaloTexture: {fileID: 0} | |
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} | |
m_DefaultReflectionMode: 0 | |
m_DefaultReflectionResolution: 128 | |
m_ReflectionBounces: 1 | |
m_ReflectionIntensity: 1 | |
m_CustomReflection: {fileID: 0} | |
m_Sun: {fileID: 0} | |
--- !u!157 &3 | |
LightmapSettings: | |
m_ObjectHideFlags: 0 | |
serializedVersion: 5 | |
m_GIWorkflowMode: 1 | |
m_LightmapsMode: 1 | |
m_GISettings: | |
serializedVersion: 2 | |
m_BounceScale: 1 | |
m_IndirectOutputScale: 1 | |
m_AlbedoBoost: 1 | |
m_TemporalCoherenceThreshold: 1 | |
m_EnvironmentLightingMode: 0 | |
m_EnableBakedLightmaps: 0 | |
m_EnableRealtimeLightmaps: 0 | |
m_LightmapEditorSettings: | |
serializedVersion: 3 | |
m_Resolution: 2 | |
m_BakeResolution: 40 | |
m_TextureWidth: 1024 | |
m_TextureHeight: 1024 | |
m_AOMaxDistance: 1 | |
m_Padding: 2 | |
m_CompAOExponent: 0 | |
m_LightmapParameters: {fileID: 0} | |
m_TextureCompression: 1 | |
m_FinalGather: 0 | |
m_FinalGatherRayCount: 1024 | |
m_ReflectionCompression: 2 | |
m_LightmapSnapshot: {fileID: 0} | |
m_RuntimeCPUUsage: 25 | |
--- !u!196 &4 | |
NavMeshSettings: | |
serializedVersion: 2 | |
m_ObjectHideFlags: 0 | |
m_BuildSettings: | |
serializedVersion: 2 | |
agentRadius: .5 | |
agentHeight: 2 | |
agentSlope: 45 | |
agentClimb: .400000006 | |
ledgeDropHeight: 0 | |
maxJumpAcrossDistance: 0 | |
accuratePlacement: 0 | |
minRegionArea: 2 | |
cellSize: .166666672 | |
manualCellSize: 0 | |
m_NavMeshData: {fileID: 0} | |
--- !u!1 &476101859 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 476101860} | |
- 222: {fileID: 476101862} | |
- 114: {fileID: 476101861} | |
m_Layer: 5 | |
m_Name: Background-Flight | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!224 &476101860 | |
RectTransform: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 476101859} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 1866791882} | |
m_RootOrder: 1 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!114 &476101861 | |
MonoBehaviour: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 476101859} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, a: 1} | |
m_RaycastTarget: 0 | |
m_OnCullStateChanged: | |
m_PersistentCalls: | |
m_Calls: [] | |
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, | |
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | |
m_Sprite: {fileID: 21300000, guid: 4105bbb9c3877934f99f89c091ba0b8b, type: 3} | |
m_Type: 0 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!222 &476101862 | |
CanvasRenderer: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 476101859} | |
--- !u!1001 &979972727 | |
Prefab: | |
m_ObjectHideFlags: 0 | |
serializedVersion: 2 | |
m_Modification: | |
m_TransformParent: {fileID: 0} | |
m_Modifications: | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_LocalPosition.x | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_LocalPosition.y | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_LocalPosition.z | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_LocalRotation.x | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_LocalRotation.y | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_LocalRotation.z | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_LocalRotation.w | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_RootOrder | |
value: 3 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_AnchoredPosition.x | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_AnchoredPosition.y | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_SizeDelta.x | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_SizeDelta.y | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_AnchorMin.x | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_AnchorMin.y | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_AnchorMax.x | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_AnchorMax.y | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_Pivot.x | |
value: .5 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478272, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
propertyPath: m_Pivot.y | |
value: .5 | |
objectReference: {fileID: 0} | |
m_RemovedComponents: [] | |
m_ParentPrefab: {fileID: 100100000, guid: 2147dc5ac8aa16a4ca2003dfcd024533, type: 2} | |
m_IsPrefabParent: 0 | |
--- !u!1 &1398276586 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
serializedVersion: 4 | |
m_Component: | |
- 4: {fileID: 1398276590} | |
- 114: {fileID: 1398276589} | |
- 114: {fileID: 1398276588} | |
- 114: {fileID: 1398276587} | |
m_Layer: 0 | |
m_Name: EventSystem | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!114 &1398276587 | |
MonoBehaviour: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 1398276586} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_ForceModuleActive: 0 | |
--- !u!114 &1398276588 | |
MonoBehaviour: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 1398276586} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_HorizontalAxis: Horizontal | |
m_VerticalAxis: Vertical | |
m_SubmitButton: Submit | |
m_CancelButton: Cancel | |
m_InputActionsPerSecond: 10 | |
m_RepeatDelay: .5 | |
m_ForceModuleActive: 0 | |
--- !u!114 &1398276589 | |
MonoBehaviour: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 1398276586} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_FirstSelected: {fileID: 0} | |
m_sendNavigationEvents: 1 | |
m_DragThreshold: 5 | |
--- !u!4 &1398276590 | |
Transform: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 1398276586} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 0} | |
m_RootOrder: 2 | |
--- !u!1001 &1786357829 | |
Prefab: | |
m_ObjectHideFlags: 0 | |
serializedVersion: 2 | |
m_Modification: | |
m_TransformParent: {fileID: 1866791882} | |
m_Modifications: | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_LocalPosition.x | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_LocalPosition.y | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_LocalPosition.z | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_LocalRotation.x | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_LocalRotation.y | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_LocalRotation.z | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_LocalRotation.w | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_RootOrder | |
value: 2 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.x | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.y | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.x | |
value: 250 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.y | |
value: 70 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMin.x | |
value: .5 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMin.y | |
value: .5 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMax.x | |
value: .5 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMax.y | |
value: .5 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_Pivot.x | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_Pivot.y | |
value: 0 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMin.y | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMax.y | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.x | |
value: 125 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.y | |
value: -25 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.x | |
value: 242 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22435482, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.y | |
value: 2 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMin.y | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMax.y | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.x | |
value: 125 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.y | |
value: -13 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.x | |
value: 242 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22478174, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.y | |
value: 18 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMin.y | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMax.y | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.x | |
value: 125 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.y | |
value: -37 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.x | |
value: 242 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22401100, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.y | |
value: 18 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22483410, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMin.y | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22483410, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMax.y | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22483410, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.x | |
value: 125 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22483410, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.x | |
value: 250 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22483410, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.y | |
value: 20 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMin.y | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchorMax.y | |
value: 1 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.x | |
value: 125 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_AnchoredPosition.y | |
value: -45 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.x | |
value: 250 | |
objectReference: {fileID: 0} | |
- target: {fileID: 22475412, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
propertyPath: m_SizeDelta.y | |
value: 50 | |
objectReference: {fileID: 0} | |
m_RemovedComponents: [] | |
m_ParentPrefab: {fileID: 100100000, guid: 2a64d6ba13a07d7438fd2e141e4157a8, type: 2} | |
m_IsPrefabParent: 0 | |
--- !u!1 &1866791878 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 1866791882} | |
- 223: {fileID: 1866791881} | |
- 114: {fileID: 1866791880} | |
- 114: {fileID: 1866791879} | |
m_Layer: 5 | |
m_Name: Canvas | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!114 &1866791879 | |
MonoBehaviour: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 1866791878} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_IgnoreReversedGraphics: 1 | |
m_BlockingObjects: 0 | |
m_BlockingMask: | |
serializedVersion: 2 | |
m_Bits: 4294967295 | |
--- !u!114 &1866791880 | |
MonoBehaviour: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 1866791878} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_UiScaleMode: 0 | |
m_ReferencePixelsPerUnit: 100 | |
m_ScaleFactor: 1 | |
m_ReferenceResolution: {x: 800, y: 600} | |
m_ScreenMatchMode: 0 | |
m_MatchWidthOrHeight: 0 | |
m_PhysicalUnit: 3 | |
m_FallbackScreenDPI: 96 | |
m_DefaultSpriteDPI: 96 | |
m_DynamicPixelsPerUnit: 1 | |
--- !u!223 &1866791881 | |
Canvas: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 1866791878} | |
m_Enabled: 1 | |
serializedVersion: 2 | |
m_RenderMode: 0 | |
m_Camera: {fileID: 0} | |
m_PlaneDistance: 100 | |
m_PixelPerfect: 0 | |
m_ReceivesEvents: 1 | |
m_OverrideSorting: 0 | |
m_OverridePixelPerfect: 0 | |
m_SortingLayerID: 0 | |
m_SortingOrder: 0 | |
--- !u!224 &1866791882 | |
RectTransform: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 1866791878} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 0, y: 0, z: 0} | |
m_Children: | |
- {fileID: 2037475081} | |
- {fileID: 476101860} | |
- {fileID: 2109888477} | |
m_Father: {fileID: 0} | |
m_RootOrder: 1 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 0, y: 0} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: 0, y: 0} | |
--- !u!1 &2037475080 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
serializedVersion: 4 | |
m_Component: | |
- 224: {fileID: 2037475081} | |
- 222: {fileID: 2037475083} | |
- 114: {fileID: 2037475082} | |
m_Layer: 5 | |
m_Name: Background-Editor | |
m_TagString: Untagged | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!224 &2037475081 | |
RectTransform: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 2037475080} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: 0} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 1866791882} | |
m_RootOrder: 0 | |
m_AnchorMin: {x: 0, y: 0} | |
m_AnchorMax: {x: 1, y: 1} | |
m_AnchoredPosition: {x: 0, y: 0} | |
m_SizeDelta: {x: 0, y: 0} | |
m_Pivot: {x: .5, y: .5} | |
--- !u!114 &2037475082 | |
MonoBehaviour: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 2037475080} | |
m_Enabled: 1 | |
m_EditorHideFlags: 0 | |
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} | |
m_Name: | |
m_EditorClassIdentifier: | |
m_Material: {fileID: 0} | |
m_Color: {r: 1, g: 1, b: 1, a: 1} | |
m_RaycastTarget: 0 | |
m_OnCullStateChanged: | |
m_PersistentCalls: | |
m_Calls: [] | |
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, | |
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | |
m_Sprite: {fileID: 21300000, guid: 696e4ea6d01cf324889c1a7fa0c2fb06, type: 3} | |
m_Type: 0 | |
m_PreserveAspect: 0 | |
m_FillCenter: 1 | |
m_FillMethod: 4 | |
m_FillAmount: 1 | |
m_FillClockwise: 1 | |
m_FillOrigin: 0 | |
--- !u!222 &2037475083 | |
CanvasRenderer: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 2037475080} | |
--- !u!224 &2109888477 stripped | |
RectTransform: | |
m_PrefabParentObject: {fileID: 22476196, guid: 2a64d6ba13a07d7438fd2e141e4157a8, | |
type: 2} | |
m_PrefabInternal: {fileID: 1786357829} | |
--- !u!1 &2134872726 | |
GameObject: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
serializedVersion: 4 | |
m_Component: | |
- 4: {fileID: 2134872731} | |
- 20: {fileID: 2134872730} | |
- 92: {fileID: 2134872729} | |
- 124: {fileID: 2134872728} | |
- 81: {fileID: 2134872727} | |
m_Layer: 0 | |
m_Name: Main Camera | |
m_TagString: MainCamera | |
m_Icon: {fileID: 0} | |
m_NavMeshLayer: 0 | |
m_StaticEditorFlags: 0 | |
m_IsActive: 1 | |
--- !u!81 &2134872727 | |
AudioListener: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 2134872726} | |
m_Enabled: 1 | |
--- !u!124 &2134872728 | |
Behaviour: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 2134872726} | |
m_Enabled: 1 | |
--- !u!92 &2134872729 | |
Behaviour: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 2134872726} | |
m_Enabled: 1 | |
--- !u!20 &2134872730 | |
Camera: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 2134872726} | |
m_Enabled: 1 | |
serializedVersion: 2 | |
m_ClearFlags: 2 | |
m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438} | |
m_NormalizedViewPortRect: | |
serializedVersion: 2 | |
x: 0 | |
y: 0 | |
width: 1 | |
height: 1 | |
near clip plane: .300000012 | |
far clip plane: 1000 | |
field of view: 60 | |
orthographic: 1 | |
orthographic size: 5 | |
m_Depth: -1 | |
m_CullingMask: | |
serializedVersion: 2 | |
m_Bits: 4294967295 | |
m_RenderingPath: -1 | |
m_TargetTexture: {fileID: 0} | |
m_TargetDisplay: 0 | |
m_TargetEye: 3 | |
m_HDR: 0 | |
m_OcclusionCulling: 1 | |
m_StereoConvergence: 10 | |
m_StereoSeparation: .0219999999 | |
m_StereoMirrorMode: 0 | |
--- !u!4 &2134872731 | |
Transform: | |
m_ObjectHideFlags: 0 | |
m_PrefabParentObject: {fileID: 0} | |
m_PrefabInternal: {fileID: 0} | |
m_GameObject: {fileID: 2134872726} | |
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
m_LocalPosition: {x: 0, y: 0, z: -10} | |
m_LocalScale: {x: 1, y: 1, z: 1} | |
m_Children: [] | |
m_Father: {fileID: 0} | |
m_RootOrder: 0 | |
using UnityEditor; | // |
// Kerbal Engineer Redux | |
// | |
// Copyright (C) 2016 CYBUTEK | |
// | |
// This program is free software: you can redistribute it and/or modify | |
// it under the terms of the GNU General Public License as published by | |
// the Free Software Foundation, either version 3 of the License, or | |
// (at your option) any later version. | |
// | |
// This program is distributed in the hope that it will be useful, | |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
// GNU General Public License for more details. | |
// You should have received a copy of the GNU General Public License | |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
// | |
using UnityEditor; | |
using UnityEngine; | using UnityEngine; |
public class BuildAssetBundles : MonoBehaviour | public class BuildAssetBundles : MonoBehaviour |
{ | { |
[MenuItem("Assets/Build Asset Bundles")] | [MenuItem("Build/Asset Bundles")] |
public static void Build() | public static void Build() |
{ | { |
BuildPipeline.BuildAssetBundles(Application.dataPath + "/../Output/KerbalEngineer", BuildAssetBundleOptions.UncompressedAssetBundle); | BuildPipeline.BuildAssetBundles(Application.dataPath + "/../Output/KerbalEngineer", BuildAssetBundleOptions.UncompressedAssetBundle); |
} | } |
} | } |
Binary files /dev/null and b/Assets/Testing/background-editor.png differ
Binary files /dev/null and b/Assets/Testing/background-flight.png differ
Added: Asset bundle loading and integration. | |
Changed: Thermal flux is now correctly indicated in kilowatts. | Changed: Thermal flux is now correctly indicated in kilowatts. |
Changed: Complete rewrite of code underpinning the stock toolbar icons. | |
Changed: Flight Engineer toolbar menu recreated using Unity UI. | |
Changed: Replaced occurances of IMGUI using RenderingManager to use OnGUI directly. | |
Fixed: Toggling the 'Control Bar' now appropriately resizes the display stack. | |
1.0.19.4, 12-02-16 | 1.0.19.4, 12-02-16 |
Fixed: Only 'STAGE_STACK_FLOW' and 'STAGE_STACK_FLOW_BALANCE' resources include surface mounted parts as fuel targets. | Fixed: Only 'STAGE_STACK_FLOW' and 'STAGE_STACK_FLOW_BALANCE' resources include surface mounted parts as fuel targets. |
Fixed: Fairing mass being doubled in the VAB (removed workaround for a KSP bug which has been fixed). | Fixed: Fairing mass being doubled in the VAB (removed workaround for a KSP bug which has been fixed). |
1.0.19.3, 09-02-16 | 1.0.19.3, 09-02-16 |
Fixed: Fuel cross-feed from surface attached parts. | Fixed: Fuel cross-feed from surface attached parts. |
1.0.19.2, 19-11-15 | 1.0.19.2, 19-11-15 |
Rebuild for KSP 1.0.5.1028 silent update. | Rebuild for KSP 1.0.5.1028 silent update. |
1.0.19.1, 09-11-15 | 1.0.19.1, 09-11-15 |
Added: Key binding editor accessible under 'Settings' on the Build Engineer. | Added: Key binding editor accessible under 'Settings' on the Build Engineer. |
Added: Added current vessel name readout. (antplant) | Added: Added current vessel name readout. (antplant) |
Added: 'Relative Radial Velocity' and 'Time To Rendezvous' readouts. (itwtx) | Added: 'Relative Radial Velocity' and 'Time To Rendezvous' readouts. (itwtx) |
Added: Readout help strings. (harryyoung) | Added: Readout help strings. (harryyoung) |
Changed: The 'Torque' value in the editor is now precise to two decimal places. | Changed: The 'Torque' value in the editor is now precise to two decimal places. |
Changed: Time formatting reference (Kerbin/Earth) is now based on the in-game setting. | Changed: Time formatting reference (Kerbin/Earth) is now based on the in-game setting. |
Changed: Eccentric Anomaly, Mean Anomaly and Mean Anomaly At Epoc now display in degrees rather than radians. | Changed: Eccentric Anomaly, Mean Anomaly and Mean Anomaly At Epoc now display in degrees rather than radians. |
Fixed: Optimised time formatting. (itwtx) | Fixed: Optimised time formatting. (itwtx) |
Fixed: TimeToAtmosphere checks that the Apoapsis is outside atmosphere. (Kerbas-ad-astra) | Fixed: TimeToAtmosphere checks that the Apoapsis is outside atmosphere. (Kerbas-ad-astra) |
Fixed: Issue with stage priority flow. Caused Rapier calculations to fail if LF and O are drawn from different tanks. (Padishar) | Fixed: Issue with stage priority flow. Caused Rapier calculations to fail if LF and O are drawn from different tanks. (Padishar) |
Fixed: Issue with angle to prograde/retrograde calculations on highly inclined orbits. | Fixed: Issue with angle to prograde/retrograde calculations on highly inclined orbits. |
Fixed: Editor input locks not being reset when a scene change is forced (e.g. via Kerbal Construction Time). | Fixed: Editor input locks not being reset when a scene change is forced (e.g. via Kerbal Construction Time). |
Fixed: Roll axis readout now shows the correct sign. | Fixed: Roll axis readout now shows the correct sign. |
Removed: Time Formatter readout as it's not required anymore. | Removed: Time Formatter readout as it's not required anymore. |
1.0.18.0 | 1.0.18.0 |
Added: Orbital readouts - "Speed at Periapsis" and "Speed at Apoapsis". (Padishar) | Added: Orbital readouts - "Speed at Periapsis" and "Speed at Apoapsis". (Padishar) |
Added: Manoeuvre readouts - "Post-burn Apoapsis" and "Post-burn Periapsis". (Padishar) | Added: Manoeuvre readouts - "Post-burn Apoapsis" and "Post-burn Periapsis". (Padishar) |
Added: Orbital readout - "Time to Atmosphere". | Added: Orbital readout - "Time to Atmosphere". |
Fixed: Synched the minimum simulation time sliders and stopped them from snapping back after 999ms. (saybur) | Fixed: Synched the minimum simulation time sliders and stopped them from snapping back after 999ms. (saybur) |
Fixed: Added workaround for the bug in Vessel.horizontalSrfSpeed (Padishar) | Fixed: Added workaround for the bug in Vessel.horizontalSrfSpeed (Padishar) |
Fixed: Physically insignificant part mass was not being correctly cascaded down through multiple parent parts. | Fixed: Physically insignificant part mass was not being correctly cascaded down through multiple parent parts. |
Fixed: Intake air demand calculation not working. | Fixed: Intake air demand calculation not working. |
Fixed: Some build engineer settings labels do not scale with UI size. | Fixed: Some build engineer settings labels do not scale with UI size. |
1.0.17.0 | 1.0.17.0 |
Added: 'Mach Number' readout under the 'Surface' category and included it on the default surface HUD. | Added: 'Mach Number' readout under the 'Surface' category and included it on the default surface HUD. |
Added: Stock sections in the Flight Engineer can now become HUDs. | Added: Stock sections in the Flight Engineer can now become HUDs. |
Added 'Thermal' readouts category including: | Added 'Thermal' readouts category including: |
Internal Flux | Internal Flux |
Convection Flux | Convection Flux |
Radiation Flux | Radiation Flux |
Critical Part Name | Critical Part Name |
Critical Part Temperature | Critical Part Temperature |
Critical Part Skin Temperature | Critical Part Skin Temperature |
Critical Part Thermal Percentage of Max Temperature | Critical Part Thermal Percentage of Max Temperature |
Hottest Part Name | Hottest Part Name |
Hottest Part Temperature | Hottest Part Temperature |
Hottest Part Skin Temperature | Hottest Part Skin Temperature |
Coldest Part Name | Coldest Part Name |
Coldest Part Temperature | Coldest Part Temperature |
Coldest Part Skin Temperature | Coldest Part Skin Temperature |
Changed: Mach on the Build Engineer now accurate to 2 decimal places. | Changed: Mach on the Build Engineer now accurate to 2 decimal places. |
Changed: Max mach in the Build Engineer defaults to 1.00 even when no jet engines are present. | Changed: Max mach in the Build Engineer defaults to 1.00 even when no jet engines are present. |
Changed: Increased eccentricity readout to 5 decimal places. | Changed: Increased eccentricity readout to 5 decimal places. |
Changed: Implemented Sarbian's object pooling. | Changed: Implemented Sarbian's object pooling. |
Changed: The default selected body is now assigned via 'Planitarium.Home'. | Changed: The default selected body is now assigned via 'Planitarium.Home'. |
Changed: HUDs to clamp fully inside the screen instead of allowing them to run off the edge by a certain amount. | Changed: HUDs to clamp fully inside the screen instead of allowing them to run off the edge by a certain amount. |
Fixed: Physically insignificant part mass is now associated with the parent part. | Fixed: Physically insignificant part mass is now associated with the parent part. |
Fixed: Longitude and Latitude readouts now use a KER formatter instead of Squad's incorrect implementation. | Fixed: Longitude and Latitude readouts now use a KER formatter instead of Squad's incorrect implementation. |
Fixed: Possible null reference in the Rendezvous Processor. | Fixed: Possible null reference in the Rendezvous Processor. |
Fixed: Fairing mass issues introduced with regards to simulation changes. | Fixed: Fairing mass issues introduced with regards to simulation changes. |
Fixed: Use of per-propellant fuel flow mode override. | Fixed: Use of per-propellant fuel flow mode override. |
Fixed: Burn times calculated for jet engines. | Fixed: Burn times calculated for jet engines. |
Fixed: Thrust issues introduced with Sarbian's simulation alterations. | Fixed: Thrust issues introduced with Sarbian's simulation alterations. |
Fixed: Issue where HUDs positioned close to the top/bottom of the screen could be pushed out of position. | Fixed: Issue where HUDs positioned close to the top/bottom of the screen could be pushed out of position. |
1.0.16.6, 02-05-15 | 1.0.16.6, 02-05-15 |
Fixed: Separately staged fairing mass jettisons are now calculated in the editor. | Fixed: Separately staged fairing mass jettisons are now calculated in the editor. |
1.0.16.5, 02-05-2015 | 1.0.16.5, 02-05-2015 |
Fixed: Delta-V not being correctly calculated. | Fixed: Delta-V not being correctly calculated. |
Changed: Editor locking now uses the InputLockManager. | Changed: Editor locking now uses the InputLockManager. |
1.0.16.4, 01-05-2015 | 1.0.16.4, 01-05-2015 |
Fixed: Physically insignificant part mass is now accounted for. | Fixed: Physically insignificant part mass is now accounted for. |
Changed: Module mass accounted for as it now makes its way onto the launch pad (e.g. fairings). | Changed: Module mass accounted for as it now makes its way onto the launch pad (e.g. fairings). |
Various optimisations: | Various optimisations: |
Object pooling. | Object pooling. |
Removed LINQ expressions. | Removed LINQ expressions. |
Converted foreach to for loops. | Converted foreach to for loops. |
1.0.16.3, 27-04-2015 | 1.0.16.3, 27-04-2015 |
Fixed issue with the toolbar icons not being created. | Fixed issue with the toolbar icons not being created. |
Removed superfluous 'm/s' on the mach slider in the build engineer. | Removed superfluous 'm/s' on the mach slider in the build engineer. |
1.0.16.2, 27-04-2015 | 1.0.16.2, 27-04-2015 |
Changed the atmospheric slider on the build engineer to default to 0km when changing bodies. | Changed the atmospheric slider on the build engineer to default to 0km when changing bodies. |
1.0.16.1, 26-04-2015, KSP Build #828 | 1.0.16.1, 26-04-2015, KSP Build #828 |
Merged Sarbian's mach adjustments. | Merged Sarbian's mach adjustments. |
Fixed bugs relating to thrust and atmosphere/velocity curves. | Fixed bugs relating to thrust and atmosphere/velocity curves. |
Changed the atmospheric slider on the Build Engineer to work based on altitude. | Changed the atmospheric slider on the Build Engineer to work based on altitude. |
Changed the atmospheric slider to clamp to the maximum altitude for the selected body. | Changed the atmospheric slider to clamp to the maximum altitude for the selected body. |
Changed the velocity slider to clamp to the maximum usable mach value for the current vessel. | Changed the velocity slider to clamp to the maximum usable mach value for the current vessel. |
1.0.16.0, 25-04-2015, KSP Build #821 | 1.0.16.0, 25-04-2015, KSP Build #821 |
Fixed errors relating to KSP 1.0 update. | Fixed errors relating to KSP 1.0 update. |
Fixed fuel simulation to account for new thrust system. | Fixed fuel simulation to account for new thrust system. |
Fixed atmospheric engines to use the new velocity curve. | Fixed atmospheric engines to use the new velocity curve. |
Fixed atmospheric readouts to work with the new atmospheric model. | Fixed atmospheric readouts to work with the new atmospheric model. |
1.0.15.2, 13-02-2015 | 1.0.15.2, 13-02-2015 |
Padishar's Fixes: | Padishar's Fixes: |
Fixed: Calculation of per-stage resource mass. | Fixed: Calculation of per-stage resource mass. |
1.0.15.1, 13-02-2015 | 1.0.15.1, 13-02-2015 |
Rebuild | Rebuild |
1.0.15.0, 08-02-2015 | 1.0.15.0, 08-02-2015 |
Padishar's Fixes: | Padishar's Fixes: |
Added: Support KIDS ISP thrust correction. | Added: Support KIDS ISP thrust correction. |
Fixed: Log spam for stage priority mode. | Fixed: Log spam for stage priority mode. |
Fixed: Locked tanks preventing simulation from staging. | Fixed: Locked tanks preventing simulation from staging. |
Fixed: No flow and all vessel modes to respect flow states. | Fixed: No flow and all vessel modes to respect flow states. |
1.0.14.1, 28-12-2014 | 1.0.14.1, 28-12-2014 |
Fixed: Missing texture on the ER-7500 model. | Fixed: Missing texture on the ER-7500 model. |
1.0.14.0, 28-12-2014 | 1.0.14.0, 28-12-2014 |
Added: Career mode that limits the Flight Engineer by: | Added: Career mode that limits the Flight Engineer by: |
- Requiring an Engineer Kerbal of any level, or placement of an Engineer Chip or ER-7500 part. | - Requiring an Engineer Kerbal of any level, or placement of an Engineer Chip or ER-7500 part. |
- Tracking station level 3 enables Flight Engineer everywhere. | - Tracking station level 3 enables Flight Engineer everywhere. |
Added: New readouts to the orbital category: | Added: New readouts to the orbital category: |
- Mean Anomaly at Epoc | - Mean Anomaly at Epoc |
Added: New readouts to the miscellaneous category: | Added: New readouts to the miscellaneous category: |
- System Time | - System Time |
Added: Editor Overlay Tab's X position is now changable in the BuildOverlay.xml settings file. | Added: Editor Overlay Tab's X position is now changable in the BuildOverlay.xml settings file. |
Changed: Editor Overlay Tabs start position moved over as to not overlap the parts menu. | Changed: Editor Overlay Tabs start position moved over as to not overlap the parts menu. |
Fixed: Bug where STAGE_PRIORITY_FLOW resources would not be corrently disabled/enabled. | Fixed: Bug where STAGE_PRIORITY_FLOW resources would not be corrently disabled/enabled. |
Fixed: Issue with the formatting large Mass and Cost values. | Fixed: Issue with the formatting large Mass and Cost values. |
Fixed: Error when loading the Engineer7500 part model. | Fixed: Error when loading the Engineer7500 part model. |
1.0.13.1, 16-12-2014 | 1.0.13.1, 16-12-2014 |
Fixed: Issue with manoeuvre node readouts and low tier tracking station. | Fixed: Issue with manoeuvre node readouts and low tier tracking station. |
1.0.13.0, 16-12-2014 | 1.0.13.0, 16-12-2014 |
Updated for KSP version 0.90 | Updated for KSP version 0.90 |
Added: New readouts to the vessel category: | Added: New readouts to the vessel category: |
- Heading Rate | - Heading Rate |
- Pitch Rate | - Pitch Rate |
- Roll Rate | - Roll Rate |
Changed: Simulation to look for fuel lines that use CModuleFuelLine module. | Changed: Simulation to look for fuel lines that use CModuleFuelLine module. |
Fixed: Editor Overlay now loads the saved visibility value properly. | Fixed: Editor Overlay now loads the saved visibility value properly. |
Fixed: Altitude (Terrain) will no longer give a reading below sea level. | Fixed: Altitude (Terrain) will no longer give a reading below sea level. |
Fixed: Suicide burn now uses radar altitude that clamps to sea level. | Fixed: Suicide burn now uses radar altitude that clamps to sea level. |
1.0.12.0, 01-12-2014 | 1.0.12.0, 01-12-2014 |
Added: Setting in Build Engineer to enable/disable vectored thrust calculations. | Added: Setting in Build Engineer to enable/disable vectored thrust calculations. |
Added: Thrust torque field in Build Engineer (courtesy of mic_e). | Added: Thrust torque field in Build Engineer (courtesy of mic_e). |
Added: New readouts to the vessel category: | Added: New readouts to the vessel category: |
- Thrust Offset Angle (courtesy of mic_e) | - Thrust Offset Angle (courtesy of mic_e) |
- Thrust Torque (courtesy of mic_e) | - Thrust Torque (courtesy of mic_e) |
- Part Count: stage/total | - Part Count: stage/total |
- Heading | - Heading |
- Pitch | - Pitch |
- Roll | - Roll |
Added: New readouts to the surface category: | Added: New readouts to the surface category: |
- Situation | - Situation |
Added: New readouts to the miscellaneous category: | Added: New readouts to the miscellaneous category: |
- Vectored Thrust Toggle | - Vectored Thrust Toggle |
Fixed: The category selection within the section editors now do not always reset back to 'Orbital'. | Fixed: The category selection within the section editors now do not always reset back to 'Orbital'. |
Fixed: Issue where the vessel simulation can sometimes permanently freeze. | Fixed: Issue where the vessel simulation can sometimes permanently freeze. |
Fixed: Issue where the vessel simulation would not show updates when the delay was set lower than the frame rate. | Fixed: Issue where the vessel simulation would not show updates when the delay was set lower than the frame rate. |
1.0.11.3, 11-11-2014 | 1.0.11.3, 11-11-2014 |
Changed: Gravity measurements for Isp to 9.82. | Changed: Gravity measurements for Isp to 9.82. |
1.0.11.2, 10-11-2014 | 1.0.11.2, 10-11-2014 |
Changed: Gravity measurements for Isp calculations from 9.81 to 9.8066 for accuracy. | Changed: Gravity measurements for Isp calculations from 9.81 to 9.8066 for accuracy. |
Changed: Manoeuvre node burn times are now more accurate. | Changed: Manoeuvre node burn times are now more accurate. |
Fixed: Bug in the manoeuvre node burn time calculations where it was not averaging acceleration correctly. | Fixed: Bug in the manoeuvre node burn time calculations where it was not averaging acceleration correctly. |
1.0.11.1, 07-11-2014 | 1.0.11.1, 07-11-2014 |
Changed: Build Engineer now shows stage part count as well as total. | Changed: Build Engineer now shows stage part count as well as total. |
Changed: Build Overlay Vessel tab data: | Changed: Build Overlay Vessel tab data: |
DeltaV: stage / total | DeltaV: stage / total |
Mass: stage / total | Mass: stage / total |
TWR: start (max) <- shows for bottom stage only. | TWR: start (max) <- shows for bottom stage only. |
Parts: stage / total | Parts: stage / total |
Fixed: Issue with the vessel tab vanishing from the editor. | Fixed: Issue with the vessel tab vanishing from the editor. |
1.0.11.0, 06-11-2014 | 1.0.11.0, 06-11-2014 |
Added: New readouts to the orbital category: | Added: New readouts to the orbital category: |
- Current SOI | - Current SOI |
- Manoeuvre Node DeltaV (Prograde) | - Manoeuvre Node DeltaV (Prograde) |
- Manoeuvre Node DeltaV (Normal) | - Manoeuvre Node DeltaV (Normal) |
- Manoeuvre Node DeltaV (Radial) | - Manoeuvre Node DeltaV (Radial) |
- Manoeuvre Node DeltaV (Total) | - Manoeuvre Node DeltaV (Total) |
- Manoeuvre Node Burn Time | - Manoeuvre Node Burn Time |
- Manoeuvre Node Half Burn Time | - Manoeuvre Node Half Burn Time |
- Manoeuvre Node Angle to Prograde | - Manoeuvre Node Angle to Prograde |
- Manoeuvre Node Angle to Retrograde | - Manoeuvre Node Angle to Retrograde |
- Time to Manoeuvre Node | - Time to Manoeuvre Node |
- Time to Manoeuvre Burn | - Time to Manoeuvre Burn |
Added: Readout help strings by ClassyJakey. | Added: Readout help strings by ClassyJakey. |
Fixed: Issue with separators in HUDs. | Fixed: Issue with separators in HUDs. |
Fixed: Issue with HUDs with backgrounds that have no displayed lines. | Fixed: Issue with HUDs with backgrounds that have no displayed lines. |
Padishar's Fixes: | Padishar's Fixes: |
Fixed: Issue with multicouplers when attached to parent by bottom node. | Fixed: Issue with multicouplers when attached to parent by bottom node. |
Fixed: Issue with sepratrons on solid rocket boosters. | Fixed: Issue with sepratrons on solid rocket boosters. |
1.0.10.0, 19-10-2014 | 1.0.10.0, 19-10-2014 |
UPDATE NOTICE: If you are updating from a previous version of Kerbal Engineer 1.0, please | UPDATE NOTICE: If you are updating from a previous version of Kerbal Engineer 1.0, please |
delete the 'Settings/SectionLibrary.xml' file, or remove the old install first. This will | delete the 'Settings/SectionLibrary.xml' file, or remove the old install first. This will |
reset the Flight Engineer sections to their default values and enable the new HUD functionality. | reset the Flight Engineer sections to their default values and enable the new HUD functionality. |
Added: New reaouts to the vessel category: | Added: New reaouts to the vessel category: |
- Suicide Burn Altitude (height above terrain to start burn) | - Suicide Burn Altitude (height above terrain to start burn) |
- Suicide Burn Distance (distance to suicide burn altitude) | - Suicide Burn Distance (distance to suicide burn altitude) |
- Suicide Burn DeltaV (velocity change required to zero vertical speed) | - Suicide Burn DeltaV (velocity change required to zero vertical speed) |
*** F5 for safety and use at your own risk! *** | *** F5 for safety and use at your own risk! *** |
Added: HUD type sections to the Flight Engineer. | Added: HUD type sections to the Flight Engineer. |
Added: HUD sections can have a smoked background for easy visibility. | Added: HUD sections can have a smoked background for easy visibility. |
Added: 'Switch to Target' button on the Target Selector readout. | Added: 'Switch to Target' button on the Target Selector readout. |
Changed: The default installed readouts to reduce new user brain melt. | Changed: The default installed readouts to reduce new user brain melt. |
Fixed: Flight Engineer not saving its hidden state. | Fixed: Flight Engineer not saving its hidden state. |
Fixed: Bug in the phase angle calculations. | Fixed: Bug in the phase angle calculations. |
Fixed: Bug where the Build Engineer would stay locked after hiding with the shortcut key. | Fixed: Bug where the Build Engineer would stay locked after hiding with the shortcut key. |
1.0.9.3, 08-10-2014 | 1.0.9.3, 08-10-2014 |
Added: Title of the build engineer in compact mode now shows if you are using atmospheric data. | Added: Title of the build engineer in compact mode now shows if you are using atmospheric data. |
Added: New readout to the surface category: | Added: New readout to the surface category: |
- Vertical Acceleration | - Vertical Acceleration |
- Horizontal Acceleration | - Horizontal Acceleration |
Changed: Atmospheric efficiency readout now shows as a percentage. | Changed: Atmospheric efficiency readout now shows as a percentage. |
Changed: Atmospheric settings (pressure/velocity) in the editor condensed onto a single line. | Changed: Atmospheric settings (pressure/velocity) in the editor condensed onto a single line. |
Fixed: Bug where the overlays in the editor would stay open outside of parts screen. | Fixed: Bug where the overlays in the editor would stay open outside of parts screen. |
1.0.9.2, 07-10-2014 | 1.0.9.2, 07-10-2014 |
Updated for KSP v0.25.0 | Updated for KSP v0.25.0 |
Changed: Prettyfied Latitude and Longitude readouts. | Changed: Prettyfied Latitude and Longitude readouts. |
Changed: ModuleLandingGear now uses the physical significance flag. | Changed: ModuleLandingGear now uses the physical significance flag. |
Changed: Updated MiniAVC to 1.0.2.4. | Changed: Updated MiniAVC to 1.0.2.4. |
1.0.9.1, 17-09-2014 | 1.0.9.1, 17-09-2014 |
Fixed: Part size bug caused by TweakScale's cost calculator. | Fixed: Part size bug caused by TweakScale's cost calculator. |
1.0.9.0, 15-09-2014 | 1.0.9.0, 15-09-2014 |
Added: Build Engineer now also implements the '\' backslash show/hide shortcut. | Added: Build Engineer now also implements the '\' backslash show/hide shortcut. |
Added: New readouts to the vessel category: | Added: New readouts to the vessel category: |
- Current Stage DeltaV | - Current Stage DeltaV |
- Surface Thrust to Weight Ratio | - Surface Thrust to Weight Ratio |
Added: New editor overlay system. | Added: New editor overlay system. |
- Sleeker design. | - Sleeker design. |
- Hover over part information options: | - Hover over part information options: |
- Name only | - Name only |
- Middle click to show | - Middle click to show |
- Always show | - Always show |
- Slide out overlay displays: | - Slide out overlay displays: |
- Vessel information | - Vessel information |
- Resources list | - Resources list |
Fixed: Cost calculation now works with mods implementing IPartCostModifier. | Fixed: Cost calculation now works with mods implementing IPartCostModifier. |
1.0.8.1, 06-09-2014 | 1.0.8.1, 06-09-2014 |
Fixed: Bug which caused rendezvous readouts to freeze the game or show all zeros. | Fixed: Bug which caused rendezvous readouts to freeze the game or show all zeros. |
1.0.8.0, 06-09-2014 | 1.0.8.0, 06-09-2014 |
Added: New readouts to the vessel category: | Added: New readouts to the vessel category: |
- Intake Air (Usage) | - Intake Air (Usage) |
Added: New readouts to the rendezvous category: | Added: New readouts to the rendezvous category: |
- Relative Velocity | - Relative Velocity |
- Relative Speed | - Relative Speed |
Fixed: An issue where deltaV would not be calculated whilst flying. | Fixed: An issue where deltaV would not be calculated whilst flying. |
Fixed: NullRef whilst loading the in flight Action Menu. | Fixed: NullRef whilst loading the in flight Action Menu. |
1.0.7.1, 02-09-2014 | 1.0.7.1, 02-09-2014 |
Changed: Reversed Intake Air readout from 'S/D' to 'D/S' for easier reading. | Changed: Reversed Intake Air readout from 'S/D' to 'D/S' for easier reading. |
Changed: Increased Intake Air readout precision to 4 decimal places. | Changed: Increased Intake Air readout precision to 4 decimal places. |
Fixed: Issue where Intake Air supply was not representative of total supply. | Fixed: Issue where Intake Air supply was not representative of total supply. |
Fixed: Bug where actual thrust does not reset to zero on deactivated engines. | Fixed: Bug where actual thrust does not reset to zero on deactivated engines. |
Fixed: Thrust now scales with velocity for atmospheric engines. (Padishar's fix) | Fixed: Thrust now scales with velocity for atmospheric engines. (Padishar's fix) |
1.0.7.0, 01-09-2014 | 1.0.7.0, 01-09-2014 |
Added: Part count information to the Build Engineer. | Added: Part count information to the Build Engineer. |
Added: Reset button to the G-Force readout. | Added: Reset button to the G-Force readout. |
Added: Preset system to the Flight Engineer. | Added: Preset system to the Flight Engineer. |
Added: New stock presets: | Added: New stock presets: |
- Orbital | - Orbital |
- Surface | - Surface |
- Vessel | - Vessel |
- Rendezvous | - Rendezvous |
Added: New readouts to the orbital category: | Added: New readouts to the orbital category: |
- True Anomaly | - True Anomaly |
- Eccentric Anomaly | - Eccentric Anomaly |
- Mean Anomaly | - Mean Anomaly |
- Argument of Periapsis | - Argument of Periapsis |
- Angle to Prograde | - Angle to Prograde |
- Angle to Retrograde | - Angle to Retrograde |
Added: New readouts to the vessel category: | Added: New readouts to the vessel category: |
- Intake Air (Demand) | - Intake Air (Demand) |
- Intake Air (Supply) | - Intake Air (Supply) |
- Intake Air (Supply/Demand) | - Intake Air (Supply/Demand) |
Added: New readouts to the rendezvous category. | Added: New readouts to the rendezvous category. |
- Semi-major Axis | - Semi-major Axis |
- Semi-minor Axis | - Semi-minor Axis |
Added: Time formatter which can show time as referenced by any celestial body. | Added: Time formatter which can show time as referenced by any celestial body. |
Added: New readouts to the miscellaneous category: | Added: New readouts to the miscellaneous category: |
- Time Reference Adjuster | - Time Reference Adjuster |
Changed: Moved Sim Delay readout into the Miscellaneous category. | Changed: Moved Sim Delay readout into the Miscellaneous category. |
Changed: Updated MiniAVC to v1.0.2.3. | Changed: Updated MiniAVC to v1.0.2.3. |
Fixed: Issues with large value wrap around in the Flight Engineer. | Fixed: Issues with large value wrap around in the Flight Engineer. |
Fixed: Bug in the phase angle calculation. | Fixed: Bug in the phase angle calculation. |
1.0.6.0, 23-08-2014 | 1.0.6.0, 23-08-2014 |
Added: Time and Angle to equatorial ascending/descending nodes in the orbital display. | Added: Time and Angle to equatorial ascending/descending nodes in the orbital display. |
Added: Time and Angle to relative ascending/descending nodes in the rendezvous display. | Added: Time and Angle to relative ascending/descending nodes in the rendezvous display. |
Added: Overlay tooltip information delay adjustment slider to the Build Engineer settings. | Added: Overlay tooltip information delay adjustment slider to the Build Engineer settings. |
Added: Ability to rename the stock displays in the Flight Engineer. | Added: Ability to rename the stock displays in the Flight Engineer. |
Changed: Build Engineer is now hidden when not in parts view. | Changed: Build Engineer is now hidden when not in parts view. |
Changed: Custom display panels will only show in the control bar if an abbreviation is set. | Changed: Custom display panels will only show in the control bar if an abbreviation is set. |
Changed: Licensing and readme structures are now more verbose to satisfy the new add-on rules. | Changed: Licensing and readme structures are now more verbose to satisfy the new add-on rules. |
Fixed: Updated MiniAVC to v1.0.2.1 (fixes remote check bug as well as other minor bugs). | Fixed: Updated MiniAVC to v1.0.2.1 (fixes remote check bug as well as other minor bugs). |
1.0.5.0, 13-08-2014 | 1.0.5.0, 13-08-2014 |
Added: Acceleration readout to the Vessel category (current / maximum). | Added: Acceleration readout to the Vessel category (current / maximum). |
Added: Category library system for the Flight Engineer readouts. | Added: Category library system for the Flight Engineer readouts. |
Added: Drop-down category selection to better support the new system. | Added: Drop-down category selection to better support the new system. |
Changed: Misc category now called Miscellaneous (this will cause previously added readouts from this category to vanish). | Changed: Misc category now called Miscellaneous (this will cause previously added readouts from this category to vanish). |
Fixed: Bug with the Build Engineer toolbar button. | Fixed: Bug with the Build Engineer toolbar button. |
Fixed: Some buggyness when trying to close the bodies drop-down in the Build Engineer via the button. | Fixed: Some buggyness when trying to close the bodies drop-down in the Build Engineer via the button. |
Fixed: Flight Engineer toolbar menu now hides when hiding the GUI with F2. | Fixed: Flight Engineer toolbar menu now hides when hiding the GUI with F2. |
Fixed: Flight Engineer toolbar button now disables when in module mode and no engineer is running. | Fixed: Flight Engineer toolbar button now disables when in module mode and no engineer is running. |
1.0.4.0, 12-08-2014 | 1.0.4.0, 12-08-2014 |
Added: Better stock toolbar support in the flight engineer. | Added: Better stock toolbar support in the flight engineer. |
Added: Dynamically generated celestial body library for supporting add-ons that modify the star system. | Added: Dynamically generated celestial body library for supporting add-ons that modify the star system. |
Changed: Reference bodies are now listed with a nestable menu system. | Changed: Reference bodies are now listed with a nestable menu system. |
Changed: Extended logging system has been improved. | Changed: Extended logging system has been improved. |
Changed: Swapped out integrated MiniAVC in place of the official bundle version. | Changed: Swapped out integrated MiniAVC in place of the official bundle version. |
Changed: Increased general distance precision to 1 decimal place. | Changed: Increased general distance precision to 1 decimal place. |
Changed: Increased Semi-major/minor axis precision to 3 decimal places. | Changed: Increased Semi-major/minor axis precision to 3 decimal places. |
Fixed: Impact altitude was mistakenly formatted as an angle, it is now formatted correctly as a distance. | Fixed: Impact altitude was mistakenly formatted as an angle, it is now formatted correctly as a distance. |
1.0.3.0, 30-07-2014 | 1.0.3.0, 30-07-2014 |
Added: Integrated KSP-AVC support with MiniAVC. | Added: Integrated KSP-AVC support with MiniAVC. |
Added: Setting to change the simulation delay in the Build Engineer. | Added: Setting to change the simulation delay in the Build Engineer. |
Added: Setting to enable and disable the build overlay system. | Added: Setting to enable and disable the build overlay system. |
Added: Burn time to Delta-V readouts. | Added: Burn time to Delta-V readouts. |
Added: Atmospheric readouts fully support FAR. | Added: Atmospheric readouts fully support FAR. |
Added: Atmospheric readouts are disabled with NEAR. | Added: Atmospheric readouts are disabled with NEAR. |
Changed: Force formatting inversely scales decimal precision with value. | Changed: Force formatting inversely scales decimal precision with value. |
Fixed: Flickering in VAB and Vessel display. | Fixed: Flickering in VAB and Vessel display. |
Fixed: Bug saving the GUI display size. | Fixed: Bug saving the GUI display size. |
1.0.2.0, 27-07-2014 | 1.0.2.0, 27-07-2014 |
Added: Separator readout module under Misc in the Flight Engineer. | Added: Separator readout module under Misc in the Flight Engineer. |
Added: Adjustable GUI display size. | Added: Adjustable GUI display size. |
Added: Display size can be adjusted in the Build Engineer settings. | Added: Display size can be adjusted in the Build Engineer settings. |
Added: Misc readout for adjusting display size in the Flight Engineer. | Added: Misc readout for adjusting display size in the Flight Engineer. |
Changed: The rendezvous readout for the target's Orbital Period has higher precision. | Changed: The rendezvous readout for the target's Orbital Period has higher precision. |
Fixed: White toolbar icon by manually importing the texture if it cannot be found in the game database. | Fixed: White toolbar icon by manually importing the texture if it cannot be found in the game database. |
Fixed: Engines that have a minimum thrust are now calculated properly. (Thanks to nosscire.) | Fixed: Engines that have a minimum thrust are now calculated properly. (Thanks to nosscire.) |
Fixed: Compact collapse mode is now saved in the Build Engineer. | Fixed: Compact collapse mode is now saved in the Build Engineer. |
1.0.1.0, 26-07-2014 | 1.0.1.0, 26-07-2014 |
Added: Part-less Flight Engineer. | Added: Part-less Flight Engineer. |
Added: Ability to collapse the Build Engineer into compact mode from left or right. | Added: Ability to collapse the Build Engineer into compact mode from left or right. |
Added: Settings in Build Engineer for compact collapse mode and partless/module Flight Engineer. | Added: Settings in Build Engineer for compact collapse mode and partless/module Flight Engineer. |
Added: Biome, Impact Biome and Slope readouts. | Added: Biome, Impact Biome and Slope readouts. |
Added: Extra logging and exception handling. | Added: Extra logging and exception handling. |
Added: The original Engineer Chip part. | Added: The original Engineer Chip part. |
Added: "Show Engineer" toggle on the Flight Engineer toolbar. | Added: "Show Engineer" toggle on the Flight Engineer toolbar. |
Changed: Extended logging system now also writes to the standard KSP logs. | Changed: Extended logging system now also writes to the standard KSP logs. |
Changed: Extended logging saves next to the .dll file. | Changed: Extended logging saves next to the .dll file. |
Changed: ER7500 part has no physical significance. | Changed: ER7500 part has no physical significance. |
Fixed: ActionMenu and DisplayStack destruction bug. | Fixed: ActionMenu and DisplayStack destruction bug. |
1.0.0.1, 24-07-2014 | 1.0.0.1, 24-07-2014 |
Added: Stock toolbar support in the Flight Engineer. | Added: Stock toolbar support in the Flight Engineer. |
Changed: Orbital Period has higher precision. | Changed: Orbital Period has higher precision. |
Fixed: Various NullRefs in editor window and overlay. | Fixed: Various NullRefs in editor window and overlay. |
1.0.0.0, 24-07-2014 | 1.0.0.0, 24-07-2014 |
Initial release for public testing. | Initial release for public testing. |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> |
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> | <PropertyGroup> |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
<ProductVersion>10.0.20506</ProductVersion> | <ProductVersion>10.0.20506</ProductVersion> |
<SchemaVersion>2.0</SchemaVersion> | <SchemaVersion>2.0</SchemaVersion> |
<ProjectGuid>{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}</ProjectGuid> | <ProjectGuid>{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}</ProjectGuid> |
<OutputType>Library</OutputType> | <OutputType>Library</OutputType> |
<AssemblyName>Assembly-CSharp-Editor</AssemblyName> | <AssemblyName>Assembly-CSharp-Editor</AssemblyName> |
<FileAlignment>512</FileAlignment> | <FileAlignment>512</FileAlignment> |
<ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | <ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> |
<TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier> | <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier> |
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> | <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> |
<TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile> | <TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile> |
<CompilerResponseFile></CompilerResponseFile> | <CompilerResponseFile></CompilerResponseFile> |
<UnityProjectType>Editor:5</UnityProjectType> | <UnityProjectType>Editor:5</UnityProjectType> |
<UnityBuildTarget>WebPlayer:6</UnityBuildTarget> | <UnityBuildTarget>StandaloneWindows:5</UnityBuildTarget> |
<UnityVersion>5.2.4f1</UnityVersion> | <UnityVersion>5.2.4f1</UnityVersion> |
<RootNamespace></RootNamespace> | <RootNamespace></RootNamespace> |
<LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion> | <LangVersion Condition=" '$(VisualStudioVersion)' != '10.0' ">4</LangVersion> |
</PropertyGroup> | </PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
<DebugType>pdbonly</DebugType> | <DebugType>pdbonly</DebugType> |
<Optimize>false</Optimize> | <Optimize>false</Optimize> |
<OutputPath>Temp\UnityVS_bin\Debug\</OutputPath> | <OutputPath>Temp\UnityVS_bin\Debug\</OutputPath> |
<IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath> | <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath> |
<ErrorReport>prompt</ErrorReport> | <ErrorReport>prompt</ErrorReport> |
<WarningLevel>4</WarningLevel> | <WarningLevel>4</WarningLevel> |
<DefineConstants>DEBUG;TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_WEBPLAYER;ENABLE_SUBSTANCE;WEBPLUG;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants> | <DefineConstants>DEBUG;TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants> |
<AllowUnsafeBlocks>false</AllowUnsafeBlocks> | <AllowUnsafeBlocks>false</AllowUnsafeBlocks> |
</PropertyGroup> | </PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
<DebugType>pdbonly</DebugType> | <DebugType>pdbonly</DebugType> |
<Optimize>false</Optimize> | <Optimize>false</Optimize> |
<OutputPath>Temp\UnityVS_bin\Release\</OutputPath> | <OutputPath>Temp\UnityVS_bin\Release\</OutputPath> |
<IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath> | <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath> |
<ErrorReport>prompt</ErrorReport> | <ErrorReport>prompt</ErrorReport> |
<WarningLevel>4</WarningLevel> | <WarningLevel>4</WarningLevel> |
<DefineConstants>TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_WEBPLAYER;ENABLE_SUBSTANCE;WEBPLUG;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants> | <DefineConstants>TRACE;UNITY_5_2_4;UNITY_5_2;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_2D_PHYSICS;ENABLE_4_6_FEATURES;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_REFLECTION_BUFFERS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN</DefineConstants> |
<AllowUnsafeBlocks>false</AllowUnsafeBlocks> | <AllowUnsafeBlocks>false</AllowUnsafeBlocks> |
</PropertyGroup> | </PropertyGroup> |
<ItemGroup> | <ItemGroup> |
<Reference Include="mscorlib" /> | <Reference Include="mscorlib" /> |
<Reference Include="System" /> | <Reference Include="System" /> |
<Reference Include="System.XML" /> | <Reference Include="System.XML" /> |
<Reference Include="System.Core" /> | <Reference Include="System.Core" /> |
<Reference Include="Boo.Lang" /> | <Reference Include="Boo.Lang" /> |
<Reference Include="UnityScript.Lang" /> | <Reference Include="UnityScript.Lang" /> |
<Reference Include="System.Runtime.Serialization" /> | |
<Reference Include="System.Xml.Linq" /> | |
<Reference Include="UnityEngine"> | <Reference Include="UnityEngine"> |
<HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor"> | <Reference Include="UnityEditor"> |
<HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEngine.Advertisements"> | <Reference Include="UnityEngine.Advertisements"> |
<HintPath>Library\UnityAssemblies\UnityEngine.Advertisements.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEngine.Advertisements.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.Advertisements"> | <Reference Include="UnityEditor.Advertisements"> |
<HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEngine.UI"> | <Reference Include="UnityEngine.UI"> |
<HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.UI"> | <Reference Include="UnityEditor.UI"> |
<HintPath>Library\UnityAssemblies\UnityEditor.UI.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.UI.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEngine.Networking"> | <Reference Include="UnityEngine.Networking"> |
<HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.Networking"> | <Reference Include="UnityEditor.Networking"> |
<HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEngine.Analytics"> | <Reference Include="UnityEngine.Analytics"> |
<HintPath>Library\UnityAssemblies\UnityEngine.Analytics.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEngine.Analytics.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.Graphs"> | <Reference Include="UnityEditor.Graphs"> |
<HintPath>Library\UnityAssemblies\UnityEditor.Graphs.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.Graphs.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.Android.Extensions"> | <Reference Include="UnityEditor.Android.Extensions"> |
<HintPath>Library\UnityAssemblies\UnityEditor.Android.Extensions.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.Android.Extensions.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.iOS.Extensions"> | <Reference Include="UnityEditor.iOS.Extensions"> |
<HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.WP8.Extensions"> | <Reference Include="UnityEditor.WP8.Extensions"> |
<HintPath>Library\UnityAssemblies\UnityEditor.WP8.Extensions.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.WP8.Extensions.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.Metro.Extensions"> | <Reference Include="UnityEditor.Metro.Extensions"> |
<HintPath>Library\UnityAssemblies\UnityEditor.Metro.Extensions.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.Metro.Extensions.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.Tizen.Extensions"> | <Reference Include="UnityEditor.Tizen.Extensions"> |
<HintPath>Library\UnityAssemblies\UnityEditor.Tizen.Extensions.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.Tizen.Extensions.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.SamsungTV.Extensions"> | <Reference Include="UnityEditor.SamsungTV.Extensions"> |
<HintPath>Library\UnityAssemblies\UnityEditor.SamsungTV.Extensions.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.SamsungTV.Extensions.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.WebGL.Extensions"> | <Reference Include="UnityEditor.WebGL.Extensions"> |
<HintPath>Library\UnityAssemblies\UnityEditor.WebGL.Extensions.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.WebGL.Extensions.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.LinuxStandalone.Extensions"> | <Reference Include="UnityEditor.LinuxStandalone.Extensions"> |
<HintPath>Library\UnityAssemblies\UnityEditor.LinuxStandalone.Extensions.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.LinuxStandalone.Extensions.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.WindowsStandalone.Extensions"> | <Reference Include="UnityEditor.WindowsStandalone.Extensions"> |
<HintPath>Library\UnityAssemblies\UnityEditor.WindowsStandalone.Extensions.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.WindowsStandalone.Extensions.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.OSXStandalone.Extensions"> | <Reference Include="UnityEditor.OSXStandalone.Extensions"> |
<HintPath>Library\UnityAssemblies\UnityEditor.OSXStandalone.Extensions.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.OSXStandalone.Extensions.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="SyntaxTree.VisualStudio.Unity.Bridge"> | <Reference Include="SyntaxTree.VisualStudio.Unity.Bridge"> |
<HintPath>Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll</HintPath> | <HintPath>Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.Networking"> | |
<HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath> | |
</Reference> | |
<Reference Include="UnityEngine.Advertisements"> | |
<HintPath>Library\UnityAssemblies\UnityEngine.Advertisements.dll</HintPath> | |
</Reference> | |
<Reference Include="UnityEditor.UI"> | |
<HintPath>Library\UnityAssemblies\UnityEditor.UI.dll</HintPath> | |
</Reference> | |
<Reference Include="UnityEngine.Analytics"> | |
<HintPath>Library\UnityAssemblies\UnityEngine.Analytics.dll</HintPath> | |
</Reference> | |
<Reference Include="UnityEngine.Networking"> | |
<HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath> | |
</Reference> | |
<Reference Include="UnityEditor.Advertisements"> | |
<HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath> | |
</Reference> | |
<Reference Include="UnityEngine.UI"> | |
<HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath> | |
</Reference> | |
<Reference Include="Mono.Cecil"> | <Reference Include="Mono.Cecil"> |
<HintPath>Library\UnityAssemblies\Mono.Cecil.dll</HintPath> | <HintPath>Library\UnityAssemblies\Mono.Cecil.dll</HintPath> |
</Reference> | </Reference> |
<Reference Include="UnityEditor.iOS.Extensions.Xcode"> | <Reference Include="UnityEditor.iOS.Extensions.Xcode"> |
<HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Xcode.dll</HintPath> | <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Xcode.dll</HintPath> |
</Reference> | |
<Reference Include="KerbalEngineer.Unity"> | |
<HintPath>Assets\Plugins\KerbalEngineer.Unity.dll</HintPath> | |
</Reference> | </Reference> |
</ItemGroup> | </ItemGroup> |
<ItemGroup> | <ItemGroup> |
<Compile Include="Assets\Scripts\Editor\BuildAssetBundles.cs" /> | <Compile Include="Assets\Scripts\Editor\BuildAssetBundles.cs" /> |
</ItemGroup> | </ItemGroup> |
<Import Project="$(MSBuildExtensionsPath)\SyntaxTree\UnityVS\2015\UnityVS.CSharp.targets" /> | <Import Project="$(MSBuildExtensionsPath)\SyntaxTree\UnityVS\2015\UnityVS.CSharp.targets" /> |
</Project> | </Project> |
// | |
// Kerbal Engineer Redux | |
// | |
// Copyright (C) 2016 CYBUTEK | |
// | |
// This program is free software: you can redistribute it and/or modify | |
// it under the terms of the GNU General Public License as published by | |
// the Free Software Foundation, either version 3 of the License, or | |
// (at your option) any later version. | |
// | |
// This program is distributed in the hope that it will be useful, | |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
// GNU General Public License for more details. | |
// You should have received a copy of the GNU General Public License | |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
// | |
namespace KerbalEngineer.Unity | |
{ | |
using System; | |
using System.Collections; | |
using UnityEngine; | |
[RequireComponent(typeof(CanvasGroup))] | |
public class CanvasGroupFader : MonoBehaviour | |
{ | |
private CanvasGroup m_CanvasGroup; | |
private IEnumerator m_FadeCoroutine; | |
public bool IsFading | |
{ | |
get | |
{ | |
return m_FadeCoroutine != null; | |
} | |
} | |
/// <summary> | |
/// Fades the canvas group to a specified alpha using the supplied blocking state during fade with optional callback. | |
/// </summary> | |
public void FadeTo(float alpha, float duration, Action callback = null) | |
{ | |
if (m_CanvasGroup == null) | |
{ | |
return; | |
} | |
Fade(m_CanvasGroup.alpha, alpha, duration, callback); | |
} | |
/// <summary> | |
/// Sets the alpha value of the canvas group. | |
/// </summary> | |
public void SetAlpha(float alpha) | |
{ | |
if (m_CanvasGroup == null) | |
{ | |
return; | |
} | |
alpha = Mathf.Clamp01(alpha); | |
m_CanvasGroup.alpha = alpha; | |
} | |
protected virtual void Awake() | |
{ | |
// cache components | |
m_CanvasGroup = GetComponent<CanvasGroup>(); | |
} | |
/// <summary> | |
/// Starts a fade from one alpha value to another with callback. | |
/// </summary> | |
private void Fade(float from, float to, float duration, Action callback) | |
{ | |
if (m_FadeCoroutine != null) | |
{ | |
StopCoroutine(m_FadeCoroutine); | |
} | |
m_FadeCoroutine = FadeCoroutine(from, to, duration, callback); | |
StartCoroutine(m_FadeCoroutine); | |
} | |
/// <summary> | |
/// Coroutine that handles the fading. | |
/// </summary> | |
private IEnumerator FadeCoroutine(float from, float to, float duration, Action callback) | |
{ | |
// 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; | |
while (progress <= 1.0f) | |
{ | |
progress += Time.deltaTime / duration; | |
SetAlpha(Mathf.Lerp(from, to, progress)); | |
yield return null; | |
} | |
print(m_CanvasGroup.alpha); | |
callback?.Invoke(); | |
m_FadeCoroutine = null; | |
} | |
} | |
} |
// | |
// Kerbal Engineer Redux | |
// | |
// Copyright (C) 2016 CYBUTEK | |
// | |
// This program is free software: you can redistribute it and/or modify | |
// it under the terms of the GNU General Public License as published by | |
// the Free Software Foundation, either version 3 of the License, or | |
// (at your option) any later version. | |
// | |
// This program is distributed in the hope that it will be useful, | |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
// GNU General Public License for more details. | |
// You should have received a copy of the GNU General Public License | |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
// | |
namespace KerbalEngineer.Unity.Flight | |
{ | |
using System.Collections.Generic; | |
using UnityEngine; | |
using UnityEngine.EventSystems; | |
using UnityEngine.UI; | |
[RequireComponent(typeof(RectTransform))] | |
public class FlightMenu : CanvasGroupFader, IPointerEnterHandler, IPointerExitHandler | |
{ | |
[SerializeField] | |
private Toggle m_ShowEngineerToggle = null; | |
[SerializeField] | |
private Toggle m_ControlBarToggle = null; | |
[SerializeField] | |
private GameObject m_MenuSectionPrefab = null; | |
[SerializeField] | |
private Transform m_SectionsTransform = null; | |
[SerializeField] | |
private float m_FastFadeDuration = 0.2f; | |
[SerializeField] | |
private float m_SlowFadeDuration = 1.0f; | |
private IFlightAppLauncher m_FlightAppLauncher; | |
private RectTransform m_RectTransform; | |
public void OnPointerEnter(PointerEventData eventData) | |
{ | |
FadeIn(); | |
} | |
public void OnPointerExit(PointerEventData eventData) | |
{ | |
// slow-fade out if the application launcher button is off | |
if (m_FlightAppLauncher != null && m_FlightAppLauncher.IsOn == false) | |
{ | |
FadeTo(0.0f, m_SlowFadeDuration, Destroy); | |
} | |
} | |
/// <summary> | |
/// Fades out and destroys the menu. | |
/// </summary> | |
public void Close() | |
{ | |
FadeTo(0.0f, m_FastFadeDuration, Destroy); | |
} | |
/// <summary> | |
/// Fades in the menu. | |
/// </summary> | |
public void FadeIn() | |
{ | |
FadeTo(1.0f, m_FastFadeDuration); | |
} | |
/// <summary> | |
/// Creates a new custom section. | |
/// </summary> | |
public void NewCustomSection() | |
{ | |
if (m_FlightAppLauncher != null) | |
{ | |
CreateSectionControl(m_FlightAppLauncher.NewCustomSection()); | |
} | |
} | |
/// <summary> | |
/// Sets the control bar visiblity. | |
/// </summary> | |
public void SetControlBarVisible(bool visible) | |
{ | |
if (m_FlightAppLauncher != null) | |
{ | |
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> | |
/// Sets a reference to the flight app launcher object. | |
/// </summary> | |
public void SetFlightAppLauncher(IFlightAppLauncher flightAppLauncher) | |
{ | |
if (flightAppLauncher == null) | |
{ | |
return; | |
} | |
m_FlightAppLauncher = flightAppLauncher; | |
// create section controls | |
CreateSectionControls(m_FlightAppLauncher.GetStockSections()); | |
CreateSectionControls(m_FlightAppLauncher.GetCustomSections()); | |
} | |
protected override void Awake() | |
{ | |
base.Awake(); | |
// cache components | |
m_RectTransform = GetComponent<RectTransform>(); | |
} | |
protected virtual void Start() | |
{ | |
// set starting alpha to zero and fade in | |
SetAlpha(0.0f); | |
FadeIn(); | |
} | |
protected virtual void Update() | |
{ | |
if (m_FlightAppLauncher == null) | |
{ | |
return; | |
} | |
// set toggle states to match the actual states | |
SetToggle(m_ShowEngineerToggle, m_FlightAppLauncher.IsDisplayStackVisible); | |
SetToggle(m_ControlBarToggle, m_FlightAppLauncher.IsControlBarVisible); | |
// update anchor position | |
if (m_RectTransform != null) | |
{ | |
m_RectTransform.position = m_FlightAppLauncher.GetAnchor(); | |
m_FlightAppLauncher.ClampToScreen(m_RectTransform); | |
} | |
} | |
/// <summary> | |
/// Sets a given toggle to the specified state with null checking. | |
/// </summary> | |
private static void SetToggle(Toggle toggle, bool state) | |
{ | |
if (toggle != null) | |
{ | |
toggle.isOn = state; | |
} | |
} | |
/// <summary> | |
/// Creates a menu section control. | |
/// </summary> | |
private void CreateSectionControl(ISectionModule section) | |
{ | |
GameObject menuSectionObject = Instantiate(m_MenuSectionPrefab); | |
if (menuSectionObject != null) | |
{ | |
// apply ksp theme to the created menu section object | |
m_FlightAppLauncher.ApplyTheme(menuSectionObject); | |
menuSectionObject.transform.SetParent(m_SectionsTransform, false); | |
FlightMenuSection menuSection = menuSectionObject.GetComponent<FlightMenuSection>(); | |
if (menuSection != null) | |
{ | |
menuSection.SetAssignedSection(section); | |
} | |
} | |
} | |
/// <summary> | |
/// Creates a list of section controls from a given list of sections. | |
/// </summary> | |
private void CreateSectionControls(IList<ISectionModule> sections) | |
{ | |
if (sections == null || m_MenuSectionPrefab == null || m_SectionsTransform == null) | |
{ | |
return; | |
} | |
for (int i = 0; i < sections.Count; i++) | |
{ | |
ISectionModule section = sections[i]; | |
if (section != null) | |
{ | |
CreateSectionControl(section); | |
} | |
} | |
} | |
/// <summary> | |
/// Destroys the game object. | |
/// </summary> | |
private void Destroy() | |
{ | |
// disable game object first due to an issue within unity 5.2.4f1 that shows a single frame at full opaque alpha just before destruction | |
gameObject.SetActive(false); | |
Destroy(gameObject); | |
} | |
} | |
} |
// | |
// Kerbal Engineer Redux | |
// | |
// Copyright (C) 2016 CYBUTEK | |
// | |
// This program is free software: you can redistribute it and/or modify | |
// it under the terms of the GNU General Public License as published by | |
// the Free Software Foundation, either version 3 of the License, or | |
// (at your option) any later version. | |
// | |
// This program is distributed in the hope that it will be useful, | |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
// GNU General Public License for more details. | |
// You should have received a copy of the GNU General Public License | |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
// | |
namespace KerbalEngineer.Unity.Flight | |
{ | |
using UnityEngine; | |
using UnityEngine.UI; | |
public class FlightMenuSection : MonoBehaviour | |
{ | |
[SerializeField] | |
private Toggle m_DisplayToggle = null; | |
[SerializeField] | |
private Text m_DisplayText = null; | |
[SerializeField] | |
private Toggle m_EditToggle = null; | |
private ISectionModule m_Section; | |
/// <summary> | |
/// Gets or sets the section's editor visibility. | |
/// </summary> | |
public bool IsEditorVisible | |
{ | |
get | |
{ | |
if (m_EditToggle != null) | |
{ | |
return m_EditToggle.isOn; | |
} | |
return true; | |
} | |
set | |
{ | |
if (m_EditToggle != null) | |
{ | |
m_EditToggle.isOn = value; | |
} | |
} | |
} | |
/// <summary> | |
/// Sets the assigned section to be handled by the menu object. | |
/// </summary> | |
public void SetAssignedSection(ISectionModule section) | |
{ | |
if (section == null) | |
{ | |
return; | |
} | |
m_Section = section; | |
} | |
/// <summary> | |
/// Sets the section's display visibility. | |
/// </summary> | |
public void SetDisplayVisible(bool visible) | |
{ | |
if (m_Section != null) | |
{ | |
m_Section.IsVisible = visible; | |
} | |
} | |
/// <summary> | |
/// Sets the section's editor visibility. | |
/// </summary> | |
public void SetEditorVisible(bool visible) | |
{ | |
if (m_Section != null) | |
{ | |
m_Section.IsEditorVisible = visible; | |
} | |
} | |
protected virtual void Update() | |
{ | |
UpdateControls(); | |
} | |
/// <summary> | |
/// Updates the menu section's controls. | |
/// </summary> | |
private void UpdateControls() | |
{ | |
if (m_Section == null || m_Section.IsDeleted) | |
{ | |
Destroy(gameObject); | |
return; | |
} | |
// display visible | |
if (m_DisplayToggle != null) | |
{ | |
m_DisplayToggle.isOn = m_Section.IsVisible; | |
} | |
// display name | |
if (m_DisplayText != null) | |
{ | |
m_DisplayText.text = m_Section.Name.ToUpperInvariant(); | |
} | |
// editor visible | |
if (m_EditToggle != null) | |
{ | |
m_EditToggle.isOn = m_Section.IsEditorVisible; | |
} | |
} | |
} | |
} |
// | |
// Kerbal Engineer Redux | |
// | |
// Copyright (C) 2016 CYBUTEK | |
// | |
// This program is free software: you can redistribute it and/or modify | |
// it under the terms of the GNU General Public License as published by | |
// the Free Software Foundation, either version 3 of the License, or | |
// (at your option) any later version. | |
// | |
// This program is distributed in the hope that it will be useful, | |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
// GNU General Public License for more details. | |
// You should have received a copy of the GNU General Public License | |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
// | |
namespace KerbalEngineer.Unity.Flight | |
{ | |
using System.Collections.Generic; | |
using UnityEngine; | |
public interface IFlightAppLauncher | |
{ | |
bool IsControlBarVisible { get; set; } | |
bool IsDisplayStackVisible { get; set; } | |
bool IsOn { get; } | |
void ApplyTheme(GameObject gameObject); | |
void ClampToScreen(RectTransform rectTransform); | |
Vector3 GetAnchor(); | |
IList<ISectionModule> GetCustomSections(); | |
IList<ISectionModule> GetStockSections(); | |
ISectionModule NewCustomSection(); | |
} | |
} |
// | |
// Kerbal Engineer Redux | |
// | |
// Copyright (C) 2016 CYBUTEK | |
// | |
// This program is free software: you can redistribute it and/or modify | |
// it under the terms of the GNU General Public License as published by | |
// the Free Software Foundation, either version 3 of the License, or | |
// (at your option) any later version. | |
// | |
// This program is distributed in the hope that it will be useful, | |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
// GNU General Public License for more details. | |
// You should have received a copy of the GNU General Public License | |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
// | |
namespace KerbalEngineer.Unity.Flight | |
{ | |
public interface ISectionModule | |
{ | |
bool IsDeleted { get; } | |
bool IsEditorVisible { get; set; } | |
bool IsVisible { get; set; } | |
string Name { get; } | |
} | |
} |
<?xml version="1.0" encoding="utf-8"?> | |
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | |
<PropertyGroup> | |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |
<ProjectGuid>{5387BB1E-32B1-4BAC-B03F-100570B9554C}</ProjectGuid> | |
<OutputType>Library</OutputType> | |
<AppDesignerFolder>Properties</AppDesignerFolder> | |
<RootNamespace>KerbalEngineer.Unity</RootNamespace> | |
<AssemblyName>KerbalEngineer.Unity</AssemblyName> | |
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> | |
<FileAlignment>512</FileAlignment> | |
</PropertyGroup> | |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |
<DebugSymbols>true</DebugSymbols> | |
<DebugType>full</DebugType> | |
<Optimize>false</Optimize> | |
<OutputPath>bin\Debug\</OutputPath> | |
<DefineConstants>DEBUG;TRACE</DefineConstants> | |
<ErrorReport>prompt</ErrorReport> | |
<WarningLevel>4</WarningLevel> | |
</PropertyGroup> | |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | |
<DebugType>none</DebugType> | |
<Optimize>true</Optimize> | |
<OutputPath>..\Output\KerbalEngineer\</OutputPath> | |
<DefineConstants> | |
</DefineConstants> | |
<ErrorReport>prompt</ErrorReport> | |
<WarningLevel>4</WarningLevel> | |
</PropertyGroup> | |
<ItemGroup> | |
<Compile Include="CanvasGroupFader.cs" /> | |
<Compile Include="Flight\FlightMenu.cs" /> | |
<Compile Include="Flight\FlightMenuSection.cs" /> | |
<Compile Include="Flight\IFlightAppLauncher.cs" /> | |
<Compile Include="Flight\ISectionModule.cs" /> | |
<Compile Include="Properties\AssemblyInfo.cs" /> | |
<Compile Include="UI\TextStyle.cs" /> | |
<Compile Include="UI\StyleApplicator.cs" /> | |
</ItemGroup> | |
<ItemGroup> | |
<Reference Include="System"> | |
<HintPath>..\..\game\KSP_Data\Managed\System.dll</HintPath> | |
<Private>False</Private> | |
</Reference> | |
<Reference Include="UnityEngine"> | |
<HintPath>..\..\game\KSP_Data\Managed\UnityEngine.dll</HintPath> | |
<Private>False</Private> | |
</Reference> | |
<Reference Include="UnityEngine.UI"> | |
<HintPath>..\..\game\KSP_Data\Managed\UnityEngine.UI.dll</HintPath> | |
<Private>False</Private> | |
</Reference> | |
</ItemGroup> | |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | |
<PropertyGroup> | |
<PostBuildEvent>copy "$(TargetPath)" "$(SolutionDir)Assets\Plugins" /Y</PostBuildEvent> | |
</PropertyGroup> | |
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. | |
Other similar extension points exist, see Microsoft.Common.targets. | |
<Target Name="BeforeBuild"> | |
</Target> | |
<Target Name="AfterBuild"> | |
</Target> | |
--> | |
</Project> |
using System.Reflection; | |
using System.Runtime.InteropServices; | |
[assembly: AssemblyTitle("KerbalEngineer.Unity")] | |
[assembly: AssemblyProduct("KerbalEngineer.Unity")] | |
[assembly: AssemblyCopyright("Copyright © CYBUTEK 2016")] | |
[assembly: ComVisible(false)] | |
[assembly: Guid("5387bb1e-32b1-4bac-b03f-100570b9554c")] | |
[assembly: AssemblyVersion("1.0.0.0")] | |
[assembly: AssemblyFileVersion("1.0.0.0")] |
// | |
// Kerbal Engineer Redux | |
// | |
// Copyright (C) 2016 CYBUTEK | |
// | |
// This program is free software: you can redistribute it and/or modify | |
// it under the terms of the GNU General Public License as published by | |
// the Free Software Foundation, either version 3 of the License, or | |
// (at your option) any later version. | |
// | |
// This program is distributed in the hope that it will be useful, | |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
// GNU General Public License for more details. | |
// You should have received a copy of the GNU General Public License | |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
// | |
namespace KerbalEngineer.Unity.UI | |
{ | |
using UnityEngine; | |
using UnityEngine.UI; | |
public class StyleApplicator : MonoBehaviour | |
{ | |
public enum ElementTypes | |
{ | |
None, | |
Window, | |
Box, | |
Button, | |
ButtonToggle | |
} | |
[SerializeField] | |
private ElementTypes m_ElementType = ElementTypes.None; | |
/// <summary> | |
/// Gets the UI element type used by the ThemeManager for selecting how to apply the theme. | |
/// </summary> | |
public ElementTypes ElementType | |
{ | |
get | |
{ | |
return m_ElementType; | |
} | |
} | |
/// <summary> | |
/// Sets a the applicator to apply the selected sprite to an attached image component. | |
/// </summary> | |
public void SetImage(Sprite sprite, Image.Type type) | |
{ | |
Image image = GetComponent<Image>(); | |
if (image == null) | |
{ | |
return; | |
} | |
image.sprite = sprite; | |
image.type = type; | |
} | |
/// <summary> | |
/// Sets the applicator to apply the specified values to an attached selectable component. | |
/// </summary> | |
public void SetSelectable(TextStyle textStyle, Sprite normal, Sprite highlight, Sprite pressed, Sprite disabled) | |
{ | |
if (textStyle != null) | |
{ | |
Text text = GetComponentInChildren<Text>(); | |
if (text != null) | |
{ | |
if (textStyle.Font != null) | |
{ | |
text.font = textStyle.Font; | |
} | |
text.fontStyle = textStyle.Style; | |
text.fontSize = textStyle.Size; | |
text.color = textStyle.Colour; | |
} | |
} | |
Selectable selectable = GetComponent<Selectable>(); | |
if (selectable != null) | |
{ | |
selectable.image.sprite = normal; | |
selectable.image.type = Image.Type.Sliced; | |
selectable.transition = Selectable.Transition.SpriteSwap; | |
SpriteState spriteState = selectable.spriteState; | |
spriteState.highlightedSprite = highlight; | |
spriteState.pressedSprite = pressed; | |
spriteState.disabledSprite = disabled; | |
selectable.spriteState = spriteState; | |
} | |
} | |
/// <summary> | |
/// Sets the applicator to apply the specified values to an attached toggle component. | |
/// </summary> | |
public void SetToggle(TextStyle textStyle, Sprite normal, Sprite highlight, Sprite pressed, Sprite disabled) | |
{ | |
SetSelectable(textStyle, normal, highlight, pressed, disabled); | |
Image toggleImage = GetComponent<Toggle>()?.graphic as Image; | |
if (toggleImage != null) | |
{ | |
toggleImage.sprite = pressed; | |
toggleImage.type = Image.Type.Sliced; | |
} | |
} | |
} | |
} |
namespace KerbalEngineer.Unity.UI | |
{ | |
using UnityEngine; | |
public class TextStyle | |
{ | |
private Color m_Colour; | |
private Font m_Font; | |
private int m_Size; | |
private FontStyle m_Style; | |
public Color Colour | |
{ | |
get | |
{ | |
return m_Colour; | |
} | |
set | |
{ | |
m_Colour = value; | |
} | |
} | |
public Font Font | |
{ | |
get | |
{ | |
return m_Font; | |
} | |
set | |
{ | |
m_Font = value; | |
} | |
} | |
public int Size | |
{ | |
get | |
{ | |
return m_Size; | |
} | |
set | |
{ | |
m_Size = value; | |
} | |
} | |
public FontStyle Style | |
{ | |
get | |
{ | |
return m_Style; | |
} | |
set | |
{ | |
m_Style = value; | |
} | |
} | |
} | |
} |
| |
Microsoft Visual Studio Solution File, Format Version 12.00 | Microsoft Visual Studio Solution File, Format Version 12.00 |
# Visual Studio 2015 | # Visual Studio 2015 |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer.CSharp.Editor", "KerbalEngineer.CSharp.Editor.csproj", "{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}" | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer.CSharp.Editor", "KerbalEngineer.CSharp.Editor.csproj", "{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}" |
EndProject | EndProject |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer", "KerbalEngineer\KerbalEngineer.csproj", "{39806613-E0B7-46E0-89A6-A569EC538CBB}" | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer", "KerbalEngineer\KerbalEngineer.csproj", "{39806613-E0B7-46E0-89A6-A569EC538CBB}" |
EndProject | |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KerbalEngineer.Unity", "KerbalEngineer.Unity\KerbalEngineer.Unity.csproj", "{5387BB1E-32B1-4BAC-B03F-100570B9554C}" | |
EndProject | EndProject |
Global | Global |
GlobalSection(SolutionConfigurationPlatforms) = preSolution | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
Debug|Any CPU = Debug|Any CPU | Debug|Any CPU = Debug|Any CPU |
Release|Any CPU = Release|Any CPU | Release|Any CPU = Release|Any CPU |
EndGlobalSection | EndGlobalSection |
GlobalSection(ProjectConfigurationPlatforms) = postSolution | GlobalSection(ProjectConfigurationPlatforms) = postSolution |
{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Debug|Any CPU.Build.0 = Debug|Any CPU | {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Debug|Any CPU.Build.0 = Debug|Any CPU |
{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Release|Any CPU.ActiveCfg = Release|Any CPU | {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Release|Any CPU.ActiveCfg = Release|Any CPU |
{D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Release|Any CPU.Build.0 = Release|Any CPU | {D7B7C6CE-6B5A-CE40-5B7C-9D0E6583E469}.Release|Any CPU.Build.0 = Release|Any CPU |
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | {39806613-E0B7-46E0-89A6-A569EC538CBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Debug|Any CPU.Build.0 = Debug|Any CPU | {39806613-E0B7-46E0-89A6-A569EC538CBB}.Debug|Any CPU.Build.0 = Debug|Any CPU |
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Release|Any CPU.ActiveCfg = Release|Any CPU | {39806613-E0B7-46E0-89A6-A569EC538CBB}.Release|Any CPU.ActiveCfg = Release|Any CPU |
{39806613-E0B7-46E0-89A6-A569EC538CBB}.Release|Any CPU.Build.0 = Release|Any CPU | {39806613-E0B7-46E0-89A6-A569EC538CBB}.Release|Any CPU.Build.0 = Release|Any CPU |
{5387BB1E-32B1-4BAC-B03F-100570B9554C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |
{5387BB1E-32B1-4BAC-B03F-100570B9554C}.Debug|Any CPU.Build.0 = Debug|Any CPU | |
{5387BB1E-32B1-4BAC-B03F-100570B9554C}.Release|Any CPU.ActiveCfg = Release|Any CPU | |
{5387BB1E-32B1-4BAC-B03F-100570B9554C}.Release|Any CPU.Build.0 = Release|Any CPU | |
EndGlobalSection | EndGlobalSection |
GlobalSection(SolutionProperties) = preSolution | GlobalSection(SolutionProperties) = preSolution |
HideSolutionNode = FALSE | HideSolutionNode = FALSE |
EndGlobalSection | EndGlobalSection |
EndGlobal | EndGlobal |
// | // |
// Kerbal Engineer Redux | // Kerbal Engineer Redux |
// | // |
// Copyright (C) 2016 CYBUTEK | // Copyright (C) 2016 CYBUTEK |
// | // |
// This program is free software: you can redistribute it and/or modify | // This program is free software: you can redistribute it and/or modify |
// it under the terms of the GNU General Public License as published by | // it under the terms of the GNU General Public License as published by |
// the Free Software Foundation, either version 3 of the License, or | // the Free Software Foundation, either version 3 of the License, or |
// (at your option) any later version. | // (at your option) any later version. |
// | // |
// This program is distributed in the hope that it will be useful, | // This program is distributed in the hope that it will be useful, |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// GNU General Public License for more details. | // GNU General Public License for more details. |
// You should have received a copy of the GNU General Public License | // You should have received a copy of the GNU General Public License |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | // along with this program. If not, see <http://www.gnu.org/licenses/>. |
// | // |
namespace KerbalEngineer | namespace KerbalEngineer |
{ | { |
using KSP.UI; | using KSP.UI; |
using KSP.UI.Screens; | using KSP.UI.Screens; |
using UnityEngine; | using UnityEngine; |
public class AppLauncherButton : MonoBehaviour | public class AppLauncherButton : MonoBehaviour |
{ | { |
private static Texture m_IconTexture; | |
private 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. | |
/// </summary> | |
public Vector3 GetAnchor() | |
{ | |
if (m_Button == null) | |
{ | |
return Vector3.zero; | |
} | |
Vector3 anchor = m_Button.GetAnchor(); | |
anchor.x -= 3.0f; | |
return anchor; | |
} | |
/// <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 | |
if (m_IconTexture == null && AssetBundleLoader.Images != null) | |
{ | |
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) |
{ | { |
Texture iconTexture = GameDatabase.Instance.GetTexture("KerbalEngineer/Textures/ToolbarIcon", false); | 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, iconTexture); | |
} | } |
OnReady(); | OnReady(); |
} | } |
private void OnGUIApplicationLauncherUnreadifying(GameScenes scene) | private void OnGUIApplicationLauncherUnreadifying(GameScenes scene) |
{ | { |
// remove button | // remove button |
if (ApplicationLauncher.Instance != null && m_Button != null) | if (ApplicationLauncher.Instance != null && m_Button != null) |
{ | { |
ApplicationLauncher.Instance.RemoveModApplication(m_Button); | ApplicationLauncher.Instance.RemoveModApplication(m_Button); |
} | } |
OnUnreadifying(); | OnUnreadifying(); |
} | } |
} | } |
} | } |
namespace KerbalEngineer | // |
// Kerbal Engineer Redux | |
// | |
// Copyright (C) 2016 CYBUTEK | |
// | |
// This program is free software: you can redistribute it and/or modify | |
// it under the terms of the GNU General Public License as published by | |
// the Free Software Foundation, either version 3 of the License, or | |
// (at your option) any later version. | |
// | |
// This program is distributed in the hope that it will be useful, | |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
// GNU General Public License for more details. | |
// You should have received a copy of the GNU General Public License | |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
// | |
namespace KerbalEngineer | |
{ | { |
using UnityEngine; | using UnityEngine; |
[KSPAddon(KSPAddon.Startup.Instantly, false)] | [KSPAddon(KSPAddon.Startup.Instantly, false)] |
public class AssetBundleLoader : MonoBehaviour | public class AssetBundleLoader : MonoBehaviour |
{ | { |
private static AssetBundle m_Images; | private static AssetBundle m_Images; |
private static AssetBundle m_Prefabs; | private static AssetBundle m_Prefabs; |
/// <summary> | /// <summary> |
/// Gets the loaded images asset bundle. | /// Gets the loaded images asset bundle. |
/// </summary> | /// </summary> |
public static AssetBundle images | public static AssetBundle Images |
{ | { |
get | get |
{ | { |
return m_Images; | return m_Images; |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Gets the loaded prefabs asset bundle. | /// Gets the loaded prefabs asset bundle. |
/// </summary> | /// </summary> |
public static AssetBundle prefabs | public static AssetBundle Prefabs |
{ | { |
get | get |
{ | { |
return m_Prefabs; | return m_Prefabs; |
} | } |
} | } |
protected virtual void Awake() | protected virtual void Awake() |
{ | { |
string bundlePath = EngineerGlobals.AssemblyPath; | string bundlePath = EngineerGlobals.AssemblyPath; |
m_Images = AssetBundle.CreateFromFile(bundlePath + "/images"); | m_Images = AssetBundle.CreateFromFile(bundlePath + "/images"); |
m_Prefabs = AssetBundle.CreateFromFile(bundlePath + "/prefabs"); | m_Prefabs = AssetBundle.CreateFromFile(bundlePath + "/prefabs"); |
} | } |
} | } |
} | } |
// | // |
// Kerbal Engineer Redux | // Kerbal Engineer Redux |
// | // |
// Copyright (C) 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) 2014 CYBUTEK | // Copyright (C) 2014 CYBUTEK |
// | // |
// This program is free software: you can redistribute it and/or modify | // This program is free software: you can redistribute it and/or modify |
// it under the terms of the GNU General Public License as published by | // it under the terms of the GNU General Public License as published by |
// the Free Software Foundation, either version 3 of the License, or | // the Free Software Foundation, either version 3 of the License, or |
// (at your option) any later version. | // (at your option) any later version. |
// | // |
// This program is distributed in the hope that it will be useful, | // This program is distributed in the hope that it will be useful, |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// GNU General Public License for more details. | // GNU General Public License for more details. |
// | // |
// You should have received a copy of the GNU General Public License | // You should have received a copy of the GNU General Public License |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | // along with this program. If not, see <http://www.gnu.org/licenses/>. |
// | // |
#region Using Directives | #region Using Directives |
using System; | using System; |
using UnityEngine; | using UnityEngine; |
#endregion | #endregion |
namespace KerbalEngineer.Flight | namespace KerbalEngineer.Flight |
{ | { |
using KSP.UI.Screens; | using KSP.UI.Screens; |
/// <summary> | /// <summary> |
/// Graphical controller for section interaction in the form of a menu system. | /// Graphical controller for section interaction in the form of a menu system. |
/// </summary> | /// </summary> |
[KSPAddon(KSPAddon.Startup.Flight, false)] | //[KSPAddon(KSPAddon.Startup.Flight, false)] |
public class ActionMenu : MonoBehaviour | public class ActionMenu : MonoBehaviour |
{ | { |
#region Fields | #region Fields |
private ActionMenuGui actionMenuGui; | private ActionMenuGui actionMenuGui; |
private ApplicationLauncherButton button; | private ApplicationLauncherButton button; |
#endregion | #endregion |
#region Methods: protected | #region Methods: protected |
protected void Awake() | protected void Awake() |
{ | { |
try | try |
{ | { |
GameEvents.onGUIApplicationLauncherReady.Add(this.OnGuiAppLauncherReady); | GameEvents.onGUIApplicationLauncherReady.Add(this.OnGuiAppLauncherReady); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
Logger.Log("ActionMenu was created."); | Logger.Log("ActionMenu was created."); |
} | } |
protected void Start() | protected void Start() |
{ | { |
if (button == null) | if (button == null) |
{ | { |
OnGuiAppLauncherReady(); | OnGuiAppLauncherReady(); |
} | } |
} | } |
protected void OnDestroy() | protected void OnDestroy() |
{ | { |
try | try |
{ | { |
GameEvents.onGUIApplicationLauncherReady.Remove(this.OnGuiAppLauncherReady); | GameEvents.onGUIApplicationLauncherReady.Remove(this.OnGuiAppLauncherReady); |
GameEvents.onHideUI.Remove(this.OnHide); | GameEvents.onHideUI.Remove(this.OnHide); |
GameEvents.onShowUI.Remove(this.OnShow); | GameEvents.onShowUI.Remove(this.OnShow); |
if (button != null) | if (button != null) |
{ | { |
ApplicationLauncher.Instance.RemoveModApplication(this.button); | ApplicationLauncher.Instance.RemoveModApplication(this.button); |
} | } |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
Logger.Log("ActionMenu was destroyed."); | Logger.Log("ActionMenu was destroyed."); |
} | } |
protected void Update() | protected void Update() |
{ | { |
try | try |
{ | { |
if (this.button == null) | if (this.button == null) |
{ | { |
return; | return; |
} | } |
if (FlightEngineerCore.IsDisplayable && this.button.toggleButton.Interactable == false) | if (FlightEngineerCore.IsDisplayable && this.button.toggleButton.Interactable == false) |
{ | { |
this.button.Enable(); | this.button.Enable(); |
} | } |
else if (!FlightEngineerCore.IsDisplayable && this.button.toggleButton.Interactable) | else if (!FlightEngineerCore.IsDisplayable && this.button.toggleButton.Interactable) |
{ | { |
this.button.Disable(); | this.button.Disable(); |
} | } |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
#endregion | #endregion |
#region Methods: private | #region Methods: private |
private void OnFalse() | private void OnFalse() |
{ | { |
try | try |
{ | { |
this.actionMenuGui.enabled = false; | this.actionMenuGui.enabled = false; |
this.actionMenuGui.StayOpen = false; | this.actionMenuGui.StayOpen = false; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
private void OnGuiAppLauncherReady() | private void OnGuiAppLauncherReady() |
{ | { |
try | try |
{ | { |
this.button = ApplicationLauncher.Instance.AddModApplication( | this.button = ApplicationLauncher.Instance.AddModApplication( |
this.OnTrue, | this.OnTrue, |
this.OnFalse, | this.OnFalse, |
this.OnHover, | this.OnHover, |
this.OnHoverOut, | this.OnHoverOut, |
null, | null, |
null, | null, |
ApplicationLauncher.AppScenes.ALWAYS, | ApplicationLauncher.AppScenes.ALWAYS, |
GameDatabase.Instance.GetTexture("KerbalEngineer/Textures/ToolbarIcon", false)); | GameDatabase.Instance.GetTexture("KerbalEngineer/Textures/ToolbarIcon", false)); |
this.actionMenuGui = this.button.gameObject.AddComponent<ActionMenuGui>(); | this.actionMenuGui = this.button.gameObject.AddComponent<ActionMenuGui>(); |
this.actionMenuGui.transform.parent = this.button.transform; | this.actionMenuGui.transform.parent = this.button.transform; |
ApplicationLauncher.Instance.EnableMutuallyExclusive(this.button); | ApplicationLauncher.Instance.EnableMutuallyExclusive(this.button); |
GameEvents.onHideUI.Add(this.OnHide); | GameEvents.onHideUI.Add(this.OnHide); |
GameEvents.onShowUI.Add(this.OnShow); | GameEvents.onShowUI.Add(this.OnShow); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
private void OnHide() | private void OnHide() |
{ | { |
try | try |
{ | { |
this.actionMenuGui.Hidden = true; | this.actionMenuGui.Hidden = true; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
private void OnHover() | private void OnHover() |
{ | { |
try | try |
{ | { |
this.actionMenuGui.enabled = true; | this.actionMenuGui.enabled = true; |
this.actionMenuGui.Hovering = true; | this.actionMenuGui.Hovering = true; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
private void OnHoverOut() | private void OnHoverOut() |
{ | { |
try | try |
{ | { |
this.actionMenuGui.Hovering = false; | this.actionMenuGui.Hovering = false; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
private void OnShow() | private void OnShow() |
{ | { |
try | try |
{ | { |
this.actionMenuGui.Hidden = false; | this.actionMenuGui.Hidden = false; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
private void OnTrue() | private void OnTrue() |
{ | { |
try | try |
{ | { |
this.actionMenuGui.enabled = true; | this.actionMenuGui.enabled = true; |
this.actionMenuGui.StayOpen = true; | this.actionMenuGui.StayOpen = true; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
#endregion | #endregion |
} | } |
} | } |
// | // |
// Kerbal Engineer Redux | // Kerbal Engineer Redux |
// | // |
// Copyright (C) 2014 CYBUTEK | // Copyright (C) 2014 CYBUTEK |
// | // |
// This program is free software: you can redistribute it and/or modify | // This program is free software: you can redistribute it and/or modify |
// it under the terms of the GNU General Public License as published by | // it under the terms of the GNU General Public License as published by |
// the Free Software Foundation, either version 3 of the License, or | // the Free Software Foundation, either version 3 of the License, or |
// (at your option) any later version. | // (at your option) any later version. |
// | // |
// This program is distributed in the hope that it will be useful, | // This program is distributed in the hope that it will be useful, |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// GNU General Public License for more details. | // GNU General Public License for more details. |
// | // |
// You should have received a copy of the GNU General Public License | // You should have received a copy of the GNU General Public License |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | // along with this program. If not, see <http://www.gnu.org/licenses/>. |
// | // |
#region Using Directives | #region Using Directives |
using System; | using System; |
using System.Collections.Generic; | using System.Collections.Generic; |
using System.Linq; | using System.Linq; |
using KerbalEngineer.Extensions; | using KerbalEngineer.Extensions; |
using KerbalEngineer.Flight.Sections; | using KerbalEngineer.Flight.Sections; |
using KerbalEngineer.Settings; | using KerbalEngineer.Settings; |
using UnityEngine; | using UnityEngine; |
#endregion | #endregion |
namespace KerbalEngineer.Flight | namespace KerbalEngineer.Flight |
{ | { |
using KeyBinding; | using KeyBinding; |
using Upgradeables; | using Upgradeables; |
/// <summary> | /// <summary> |
/// Graphical controller for displaying stacked sections. | /// Graphical controller for displaying stacked sections. |
/// </summary> | /// </summary> |
[KSPAddon(KSPAddon.Startup.Flight, false)] | [KSPAddon(KSPAddon.Startup.Flight, false)] |
public class DisplayStack : MonoBehaviour | public class DisplayStack : MonoBehaviour |
{ | { |
#region Fields | #region Fields |
private GUIStyle buttonStyle; | private GUIStyle buttonStyle; |
private int numberOfStackSections; | private int numberOfStackSections; |
private bool resizeRequested; | private bool resizeRequested; |
private bool showControlBar = true; | private bool showControlBar = true; |
private GUIStyle titleStyle; | private GUIStyle titleStyle; |
private int windowId; | private int windowId; |
private Rect windowPosition; | private Rect windowPosition; |
private GUIStyle windowStyle; | private GUIStyle windowStyle; |
#endregion | #endregion |
#region Properties | #region Properties |
/// <summary> | /// <summary> |
/// Gets the current instance of the DisplayStack. | /// Gets the current instance of the DisplayStack. |
/// </summary> | /// </summary> |
public static DisplayStack Instance { get; private set; } | public static DisplayStack Instance { get; private set; } |
public bool Hidden { get; set; } | public bool Hidden { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets the visibility of the control bar. | /// Gets and sets the visibility of the control bar. |
/// </summary> | /// </summary> |
public bool ShowControlBar | public bool ShowControlBar |
{ | { |
get { return this.showControlBar; } | get { return this.showControlBar; } |
set { this.showControlBar = value; } | set |
{ | |
if (showControlBar != value) | |
{ | |
this.showControlBar = value; | |
RequestResize(); | |
} | |
} | |
} | } |
#endregion | #endregion |
#region Methods: public | #region Methods: public |
/// <summary> | /// <summary> |
/// Request that the display stack's size is reset in the next draw call. | /// Request that the display stack's size is reset in the next draw call. |
/// </summary> | /// </summary> |
public void RequestResize() | public void RequestResize() |
{ | { |
this.resizeRequested = true; | this.resizeRequested = true; |
} | } |
#endregion | #endregion |
#region Methods: protected | #region Methods: protected |
/// <summary> | /// <summary> |
/// Sets the instance to this object. | /// Sets the instance to this object. |
/// </summary> | /// </summary> |
protected void Awake() | protected void Awake() |
{ | { |
try | try |
{ | { |
if (Instance == null) | if (Instance == null) |
{ | { |
Instance = this; | Instance = this; |
GuiDisplaySize.OnSizeChanged += this.OnSizeChanged; | GuiDisplaySize.OnSizeChanged += this.OnSizeChanged; |
Logger.Log("ActionMenu->Awake"); | Logger.Log("ActionMenu->Awake"); |
} | } |
else | else |
{ | { |
Destroy(this); | Destroy(this); |
} | } |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Runs when the object is destroyed. | /// Runs when the object is destroyed. |
/// </summary> | /// </summary> |
protected void OnDestroy() | protected void OnDestroy() |
{ | { |
try | try |
{ | { |
this.Save(); | this.Save(); |
RenderingManager.RemoveFromPostDrawQueue(0, this.Draw); | |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
Logger.Log("ActionMenu->OnDestroy"); | Logger.Log("ActionMenu->OnDestroy"); |
} | } |
/// <summary> | /// <summary> |
/// Initialises the object's state on creation. | /// Initialises the object's state on creation. |
/// </summary> | /// </summary> |
protected void Start() | protected void Start() |
{ | { |
try | try |
{ | { |
this.windowId = this.GetHashCode(); | this.windowId = this.GetHashCode(); |
this.InitialiseStyles(); | this.InitialiseStyles(); |
this.Load(); | this.Load(); |
RenderingManager.AddToPostDrawQueue(0, this.Draw); | |
Logger.Log("ActionMenu->Start"); | Logger.Log("ActionMenu->Start"); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
protected void Update() | protected void Update() |
{ | { |
try | try |
{ | { |
if (!FlightEngineerCore.IsDisplayable) | if (!FlightEngineerCore.IsDisplayable) |
{ | { |
return; | return; |
} | } |
if (Input.GetKeyDown(KeyBinder.FlightShowHide)) | if (Input.GetKeyDown(KeyBinder.FlightShowHide)) |
{ | { |
this.Hidden = !this.Hidden; | this.Hidden = !this.Hidden; |
} | } |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
#endregion | #endregion |
#region Methods: private | #region Methods: private |
/// <summary> | /// <summary> |
/// Called to draw the display stack when the UI is enabled. | /// Called to draw the display stack when the UI is enabled. |
/// </summary> | /// </summary> |
private void Draw() | private void OnGUI() |
{ | { |
try | try |
{ | { |
if (!FlightEngineerCore.IsDisplayable) | if (!FlightEngineerCore.IsDisplayable) |
{ | { |
return; | return; |
} | } |
if (this.resizeRequested || this.numberOfStackSections != SectionLibrary.NumberOfStackSections) | if (this.resizeRequested || this.numberOfStackSections != SectionLibrary.NumberOfStackSections) |
{ | { |
this.numberOfStackSections = SectionLibrary.NumberOfStackSections; | this.numberOfStackSections = SectionLibrary.NumberOfStackSections; |
this.windowPosition.width = 0; | this.windowPosition.width = 0; |
this.windowPosition.height = 0; | this.windowPosition.height = 0; |
this.resizeRequested = false; | this.resizeRequested = false; |
} | } |
if (!this.Hidden && (SectionLibrary.NumberOfStackSections > 0 || this.ShowControlBar)) | if (!this.Hidden && (SectionLibrary.NumberOfStackSections > 0 || this.ShowControlBar)) |
{ | { |
var shouldCentre = this.windowPosition.min == Vector2.zero; | var shouldCentre = this.windowPosition.min == Vector2.zero; |
GUI.skin = null; | GUI.skin = null; |
this.windowPosition = GUILayout.Window(this.windowId, this.windowPosition, this.Window, string.Empty, this.windowStyle).ClampToScreen(); | this.windowPosition = GUILayout.Window(this.windowId, this.windowPosition, this.Window, string.Empty, this.windowStyle).ClampToScreen(); |
if (shouldCentre) | if (shouldCentre) |
{ | { |
this.windowPosition.center = new Vector2(Screen.width * 0.5f, Screen.height * 0.5f); | this.windowPosition.center = new Vector2(Screen.width * 0.5f, Screen.height * 0.5f); |
} | } |
} | } |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Draws the control bar. | /// Draws the control bar. |
/// </summary> | /// </summary> |
private void DrawControlBar() | private void DrawControlBar() |
{ | { |
GUILayout.Label("FLIGHT ENGINEER " + EngineerGlobals.ASSEMBLY_VERSION, this.titleStyle); | GUILayout.Label("FLIGHT ENGINEER " + EngineerGlobals.ASSEMBLY_VERSION, this.titleStyle); |
this.DrawControlBarButtons(SectionLibrary.StockSections); | this.DrawControlBarButtons(SectionLibrary.StockSections); |
this.DrawControlBarButtons(SectionLibrary.CustomSections); | this.DrawControlBarButtons(SectionLibrary.CustomSections); |
} | } |
/// <summary> | /// <summary> |
/// Draws a button list for a set of sections. | /// Draws a button list for a set of sections. |
/// </summary> | /// </summary> |
private void DrawControlBarButtons(IEnumerable<SectionModule> sections) | private void DrawControlBarButtons(IEnumerable<SectionModule> sections) |
{ | { |
var index = 0; | var index = 0; |
foreach (var section in sections.Where(s => !string.IsNullOrEmpty(s.Abbreviation) || !s.IsCustom)) | foreach (var section in sections.Where(s => !string.IsNullOrEmpty(s.Abbreviation) || !s.IsCustom)) |
{ | { |
if (index % 4 == 0) | if (index % 4 == 0) |
{ | { |
if (index > 0) | if (index > 0) |
{ | { |
GUILayout.EndHorizontal(); | GUILayout.EndHorizontal(); |
} | } |
GUILayout.BeginHorizontal(); | GUILayout.BeginHorizontal(); |
} | } |
section.IsVisible = GUILayout.Toggle(section.IsVisible, section.Abbreviation.ToUpper(), this.buttonStyle); | section.IsVisible = GUILayout.Toggle(section.IsVisible, section.Abbreviation.ToUpper(), this.buttonStyle); |
index++; | index++; |
} | } |
if (index > 0) | if (index > 0) |
{ | { |
GUILayout.EndHorizontal(); | GUILayout.EndHorizontal(); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Draws a list of sections. | /// Draws a list of sections. |
/// </summary> | /// </summary> |
private void DrawSections(IEnumerable<SectionModule> sections) | private void DrawSections(IEnumerable<SectionModule> sections) |
{ | { |
foreach (var section in sections) | foreach (var section in sections) |
{ | { |
if (!section.IsFloating) | if (!section.IsFloating) |
{ | { |
section.Draw(); | section.Draw(); |
} | } |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Initialises all the styles required for this object. | /// Initialises all the styles required for this object. |
/// </summary> | /// </summary> |
private void InitialiseStyles() | private void InitialiseStyles() |
{ | { |
this.windowStyle = new GUIStyle(HighLogic.Skin.window) | this.windowStyle = new GUIStyle(HighLogic.Skin.window) |
{ | { |
margin = new RectOffset(), | margin = new RectOffset(), |
padding = new RectOffset(5, 5, 0, 5) | padding = new RectOffset(5, 5, 0, 5) |
}; | }; |
this.titleStyle = new GUIStyle(HighLogic.Skin.label) | this.titleStyle = new GUIStyle(HighLogic.Skin.label) |
{ | { |
margin = new RectOffset(0, 0, 5, 3), | margin = new RectOffset(0, 0, 5, 3), |
padding = new RectOffset(), | padding = new RectOffset(), |
alignment = TextAnchor.MiddleCenter, | alignment = TextAnchor.MiddleCenter, |
fontSize = (int)(13 * GuiDisplaySize.Offset), | fontSize = (int)(13 * GuiDisplaySize.Offset), |
fontStyle = FontStyle.Bold, | fontStyle = FontStyle.Bold, |
stretchWidth = true | stretchWidth = true |
}; | }; |
this.buttonStyle = new GUIStyle(HighLogic.Skin.button) | this.buttonStyle = new GUIStyle(HighLogic.Skin.button) |
{ | { |
normal = | normal = |
{ | { |
textColor = Color.white | textColor = Color.white |
}, | }, |
margin = new RectOffset(), | margin = new RectOffset(), |
padding = new RectOffset(), | padding = new RectOffset(), |
alignment = TextAnchor.MiddleCenter, | alignment = TextAnchor.MiddleCenter, |
fontSize = (int)(11 * GuiDisplaySize.Offset), | fontSize = (int)(11 * GuiDisplaySize.Offset), |
fontStyle = FontStyle.Bold, | fontStyle = FontStyle.Bold, |
fixedWidth = 60.0f * GuiDisplaySize.Offset, | fixedWidth = 60.0f * GuiDisplaySize.Offset, |
fixedHeight = 25.0f * GuiDisplaySize.Offset, | fixedHeight = 25.0f * GuiDisplaySize.Offset, |
}; | }; |
} | } |
/// <summary> | /// <summary> |
/// Load the stack's state. | /// Load the stack's state. |
/// </summary> | /// </summary> |
private void Load() | private void Load() |
{ | { |
try | try |
{ | { |
var handler = SettingHandler.Load("DisplayStack.xml"); | var handler = SettingHandler.Load("DisplayStack.xml"); |
this.Hidden = handler.Get("hidden", this.Hidden); | this.Hidden = handler.Get("hidden", this.Hidden); |
this.ShowControlBar = handler.Get("showControlBar", this.ShowControlBar); | this.ShowControlBar = handler.Get("showControlBar", this.ShowControlBar); |
this.windowPosition.x = handler.Get("windowPositionX", this.windowPosition.x); | this.windowPosition.x = handler.Get("windowPositionX", this.windowPosition.x); |
this.windowPosition.y = handler.Get("windowPositionY", this.windowPosition.y); | this.windowPosition.y = handler.Get("windowPositionY", this.windowPosition.y); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex, "DisplayStack->Load"); | Logger.Exception(ex, "DisplayStack->Load"); |
} | } |
} | } |
private void OnSizeChanged() | private void OnSizeChanged() |
{ | { |
this.InitialiseStyles(); | this.InitialiseStyles(); |
this.RequestResize(); | this.RequestResize(); |
} | } |
/// <summary> | /// <summary> |
/// Saves the stack's state. | /// Saves the stack's state. |
/// </summary> | /// </summary> |
private void Save() | private void Save() |
{ | { |
try | try |
{ | { |
var handler = new SettingHandler(); | var handler = new SettingHandler(); |
handler.Set("hidden", this.Hidden); | handler.Set("hidden", this.Hidden); |
handler.Set("showControlBar", this.ShowControlBar); | handler.Set("showControlBar", this.ShowControlBar); |
handler.Set("windowPositionX", this.windowPosition.x); | handler.Set("windowPositionX", this.windowPosition.x); |
handler.Set("windowPositionY", this.windowPosition.y); | handler.Set("windowPositionY", this.windowPosition.y); |
handler.Save("DisplayStack.xml"); | handler.Save("DisplayStack.xml"); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex, "DisplayStack->Save"); | Logger.Exception(ex, "DisplayStack->Save"); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Draws the display stack window. | /// Draws the display stack window. |
/// </summary> | /// </summary> |
private void Window(int windowId) | private void Window(int windowId) |
{ | { |
try | try |
{ | { |
if (this.ShowControlBar) | if (this.ShowControlBar) |
{ | { |
this.DrawControlBar(); | this.DrawControlBar(); |
} | } |
if (SectionLibrary.NumberOfStackSections > 0) | if (SectionLibrary.NumberOfStackSections > 0) |
{ | { |
this.DrawSections(SectionLibrary.StockSections); | this.DrawSections(SectionLibrary.StockSections); |
this.DrawSections(SectionLibrary.CustomSections); | this.DrawSections(SectionLibrary.CustomSections); |
} | } |
GUI.DragWindow(); | GUI.DragWindow(); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex, "DisplayStack->Widnow"); | Logger.Exception(ex, "DisplayStack->Widnow"); |
} | } |
} | } |
#endregion | #endregion |
} | } |
} | } |
// | |
// Kerbal Engineer Redux | |
// | |
// Copyright (C) 2016 CYBUTEK | |
// | |
// This program is free software: you can redistribute it and/or modify | |
// it under the terms of the GNU General Public License as published by | |
// the Free Software Foundation, either version 3 of the License, or | |
// (at your option) any later version. | |
// | |
// This program is distributed in the hope that it will be useful, | |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
// GNU General Public License for more details. | |
// You should have received a copy of the GNU General Public License | |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
// | |
namespace KerbalEngineer.Flight | |
{ | |
using System.Collections.Generic; | |
using KSP.UI; | |
using Sections; | |
using Unity.Flight; | |
using UnityEngine; | |
[KSPAddon(KSPAddon.Startup.Flight, false)] | |
public class FlightAppLauncher : AppLauncherButton, IFlightAppLauncher | |
{ | |
private static FlightAppLauncher m_Instance; | |
private FlightMenu m_FlightMenu; | |
private GameObject m_MenuObject; | |
private GameObject m_MenuPrefab; | |
/// <summary> | |
/// Gets the current instance of the FlightAppLauncher object. | |
/// </summary> | |
public static FlightAppLauncher Instance | |
{ | |
get | |
{ | |
return m_Instance; | |
} | |
} | |
/// <summary> | |
/// Applies the KSP theme to a game object and its children. | |
/// </summary> | |
public void ApplyTheme(GameObject gameObject) | |
{ | |
StyleManager.Process(gameObject); | |
} | |
/// <summary> | |
/// Clamps the given rect transform within the screen bounds. | |
/// </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> | |
IList<ISectionModule> IFlightAppLauncher.GetStockSections() | |
{ | |
return new List<ISectionModule>(SectionLibrary.StockSections.ToArray()); | |
} | |
/// <summary> | |
/// Gets or sets the control bar's visibility. | |
/// </summary> | |
public bool IsControlBarVisible | |
{ | |
get | |
{ | |
if (DisplayStack.Instance != null) | |
{ | |
return DisplayStack.Instance.ShowControlBar; | |
} | |
return false; | |
} | |
set | |
{ | |
if (DisplayStack.Instance != null) | |
{ | |
DisplayStack.Instance.ShowControlBar = value; | |
} | |
} | |
} | |
/// <summary> | |
/// Gets or sets the display stack's visibility. | |
/// </summary> | |
public bool IsDisplayStackVisible | |
{ | |
get | |
{ | |
if (DisplayStack.Instance != null) | |
{ | |
return DisplayStack.Instance.Hidden == false; | |
} | |
return false; | |
} | |
set | |
{ | |
if (DisplayStack.Instance != null) | |
{ | |
DisplayStack.Instance.Hidden = !value; | |
} | |
} | |
} | |
/// <summary> | |
/// Creates and initialises a new custom section. | |
/// </summary> | |
public ISectionModule NewCustomSection() | |
{ | |
SectionModule section = new SectionModule | |
{ | |
Name = "Custom " + (SectionLibrary.CustomSections.Count + 1), | |
Abbreviation = "CUST " + (SectionLibrary.CustomSections.Count + 1), | |
IsVisible = true, | |
IsCustom = true, | |
IsEditorVisible = true | |
}; | |
SectionLibrary.CustomSections.Add(section); | |
return section; | |
} | |
protected override void Awake() | |
{ | |
base.Awake(); | |
// set singleton instance | |
m_Instance = this; | |
// cache menu prefab | |
if (m_MenuPrefab == null && AssetBundleLoader.Prefabs != null) | |
{ | |
m_MenuPrefab = AssetBundleLoader.Prefabs.LoadAsset<GameObject>("FlightMenu"); | |
} | |
} | |
protected override void OnFalse() | |
{ | |
Close(); | |
} | |
protected override void OnHover() | |
{ | |
Open(); | |
} | |
protected override void OnHoverOut() | |
{ | |
if (IsOn == false) | |
{ | |
Close(); | |
} | |
} | |
protected override void OnTrue() | |
{ | |
Open(); | |
} | |
/// <summary> | |
/// Closes the menu. | |
/// </summary> | |
private void Close() | |
{ | |
if (m_FlightMenu != null) | |
{ | |
m_FlightMenu.Close(); | |
} | |
else if (m_MenuObject != null) | |
{ | |
Destroy(m_MenuObject); | |
} | |
} | |
/// <summary> | |
/// Opens the menu. | |
/// </summary> | |
private void Open() | |
{ | |
// fade menu in if already open | |
if (m_FlightMenu != null) | |
{ | |
m_FlightMenu.FadeIn(); | |
return; | |
} | |
if (m_MenuPrefab == null || m_MenuObject != null) | |
{ | |
return; | |
} | |
// create object | |
m_MenuObject = Instantiate(m_MenuPrefab, GetAnchor(), Quaternion.identity) as GameObject; | |
if (m_MenuObject == null) | |
{ | |
return; | |
} | |
StyleManager.Process(m_MenuObject); | |
// set object as a child of the main canvas | |
m_MenuObject.transform.SetParent(MainCanvasUtil.MainCanvas.transform); | |
// set menu's reference to this object for cross-communication | |
m_FlightMenu = m_MenuObject.GetComponent<FlightMenu>(); | |
if (m_FlightMenu != null) | |
{ | |
m_FlightMenu.SetFlightAppLauncher(this); | |
} | |
} | |
} | |
} |
// | // |
// Kerbal Engineer Redux | // Kerbal Engineer Redux |
// | // |
// Copyright (C) 2014 CYBUTEK | // Copyright (C) 2014 CYBUTEK |
// | // |
// This program is free software: you can redistribute it and/or modify | // This program is free software: you can redistribute it and/or modify |
// it under the terms of the GNU General Public License as published by | // it under the terms of the GNU General Public License as published by |
// the Free Software Foundation, either version 3 of the License, or | // the Free Software Foundation, either version 3 of the License, or |
// (at your option) any later version. | // (at your option) any later version. |
// | // |
// This program is distributed in the hope that it will be useful, | // This program is distributed in the hope that it will be useful, |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// GNU General Public License for more details. | // GNU General Public License for more details. |
// | // |
// You should have received a copy of the GNU General Public License | // You should have received a copy of the GNU General Public License |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | // along with this program. If not, see <http://www.gnu.org/licenses/>. |
// | // |
#region Using Directives | #region Using Directives |
#endregion | #endregion |
namespace KerbalEngineer.Flight | namespace KerbalEngineer.Flight |
{ | { |
#region Using Directives | #region Using Directives |
using System; | using System; |
using System.Collections.Generic; | using System.Collections.Generic; |
using System.Linq; | using System.Linq; |
using Extensions; | using Extensions; |
using Readouts; | using Readouts; |
using Sections; | using Sections; |
using Settings; | using Settings; |
using UnityEngine; | using UnityEngine; |
using VesselSimulator; | using VesselSimulator; |
#endregion | #endregion |
/// <summary> | /// <summary> |
/// Core management system for the Flight Engineer. | /// Core management system for the Flight Engineer. |
/// </summary> | /// </summary> |
[KSPAddon(KSPAddon.Startup.Flight, false)] | [KSPAddon(KSPAddon.Startup.Flight, false)] |
public sealed class FlightEngineerCore : MonoBehaviour | public sealed class FlightEngineerCore : MonoBehaviour |
{ | { |
#region Instance | #region Instance |
/// <summary> | /// <summary> |
/// Gets the current instance of FlightEngineerCore. | /// Gets the current instance of FlightEngineerCore. |
/// </summary> | /// </summary> |
public static FlightEngineerCore Instance { get; private set; } | public static FlightEngineerCore Instance { get; private set; } |
#endregion | #endregion |
#region Fields | #region Fields |
private static bool isCareerMode = true; | private static bool isCareerMode = true; |
private static bool isKerbalLimited = true; | private static bool isKerbalLimited = true; |
private static bool isTrackingStationLimited = true; | private static bool isTrackingStationLimited = true; |
#endregion | #endregion |
#region Constructors | #region Constructors |
static FlightEngineerCore() | static FlightEngineerCore() |
{ | { |
try | try |
{ | { |
var handler = SettingHandler.Load("FlightEngineerCore.xml"); | var handler = SettingHandler.Load("FlightEngineerCore.xml"); |
handler.Get("isCareerMode", ref isCareerMode); | handler.Get("isCareerMode", ref isCareerMode); |
handler.Get("isKerbalLimited", ref isKerbalLimited); | handler.Get("isKerbalLimited", ref isKerbalLimited); |
handler.Get("isTrackingStationLimited", ref isTrackingStationLimited); | handler.Get("isTrackingStationLimited", ref isTrackingStationLimited); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
#endregion | #endregion |
#region Properties | #region Properties |
/// <summary> | /// <summary> |
/// Gets and sets whether to the Flight Engineer should be run using career limitations. | /// Gets and sets whether to the Flight Engineer should be run using career limitations. |
/// </summary> | /// </summary> |
public static bool IsCareerMode | public static bool IsCareerMode |
{ | { |
get { return isCareerMode; } | get { return isCareerMode; } |
set | set |
{ | { |
try | try |
{ | { |
if (isCareerMode != value) | if (isCareerMode != value) |
{ | { |
var handler = SettingHandler.Load("FlightEngineerCore.xml"); | var handler = SettingHandler.Load("FlightEngineerCore.xml"); |
handler.Set("isCareerMode", value); | handler.Set("isCareerMode", value); |
handler.Save("FlightEngineerCore.xml"); | handler.Save("FlightEngineerCore.xml"); |
} | } |
isCareerMode = value; | isCareerMode = value; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Gets whether the FlightEngineer should be displayed. | /// Gets whether the FlightEngineer should be displayed. |
/// </summary> | /// </summary> |
public static bool IsDisplayable | public static bool IsDisplayable |
{ | { |
get | get |
{ | { |
if (MainCanvasUtil.MainCanvas.enabled == false) | |
{ | |
return false; | |
} | |
if (isCareerMode) | if (isCareerMode) |
{ | { |
if (isKerbalLimited && FlightGlobals.ActiveVessel.GetVesselCrew().Exists(c => c.experienceTrait.TypeName == "Engineer")) | if (isKerbalLimited && FlightGlobals.ActiveVessel.GetVesselCrew().Exists(c => c.experienceTrait.TypeName == "Engineer")) |
{ | { |
return true; | return true; |
} | } |
if (isTrackingStationLimited && ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.TrackingStation) == 1.0f) | if (isTrackingStationLimited && ScenarioUpgradeableFacilities.GetFacilityLevel(SpaceCenterFacility.TrackingStation) == 1.0f) |
{ | { |
return true; | return true; |
} | } |
return FlightGlobals.ActiveVessel.parts.Any(p => p.HasModule<FlightEngineerModule>()); | return FlightGlobals.ActiveVessel.parts.Any(p => p.HasModule<FlightEngineerModule>()); |
} | } |
return true; | return true; |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Gets and sets whether to the Flight Engineer should be kerbal limited. | /// Gets and sets whether to the Flight Engineer should be kerbal limited. |
/// </summary> | /// </summary> |
public static bool IsKerbalLimited | public static bool IsKerbalLimited |
{ | { |
get { return isKerbalLimited; } | get { return isKerbalLimited; } |
set | set |
{ | { |
try | try |
{ | { |
if (isKerbalLimited != value) | if (isKerbalLimited != value) |
{ | { |
var handler = SettingHandler.Load("FlightEngineerCore.xml"); | var handler = SettingHandler.Load("FlightEngineerCore.xml"); |
handler.Set("isKerbalLimited", value); | handler.Set("isKerbalLimited", value); |
handler.Save("FlightEngineerCore.xml"); | handler.Save("FlightEngineerCore.xml"); |
} | } |
isKerbalLimited = value; | isKerbalLimited = value; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Gets and sets whether to the Flight Engineer should be tracking station limited. | /// Gets and sets whether to the Flight Engineer should be tracking station limited. |
/// </summary> | /// </summary> |
public static bool IsTrackingStationLimited | public static bool IsTrackingStationLimited |
{ | { |
get { return isTrackingStationLimited; } | get { return isTrackingStationLimited; } |
set | set |
{ | { |
try | try |
{ | { |
if (isTrackingStationLimited != value) | if (isTrackingStationLimited != value) |
{ | { |
var handler = SettingHandler.Load("FlightEngineerCore.xml"); | var handler = SettingHandler.Load("FlightEngineerCore.xml"); |
handler.Set("isTrackingStationLimited", value); | handler.Set("isTrackingStationLimited", value); |
handler.Save("FlightEngineerCore.xml"); | handler.Save("FlightEngineerCore.xml"); |
} | } |
isTrackingStationLimited = value; | isTrackingStationLimited = value; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Gets the editor windows for sections with open editors. | /// Gets the editor windows for sections with open editors. |
/// </summary> | /// </summary> |
public List<SectionEditor> SectionEditors { get; private set; } | public List<SectionEditor> SectionEditors { get; private set; } |
/// <summary> | /// <summary> |
/// Gets the section windows for floating sections. | /// Gets the section windows for floating sections. |
/// </summary> | /// </summary> |
public List<SectionWindow> SectionWindows { get; private set; } | public List<SectionWindow> SectionWindows { get; private set; } |
/// <summary> | /// <summary> |
/// Gets the list of currently running updatable modules. | /// Gets the list of currently running updatable modules. |
/// </summary> | /// </summary> |
public List<IUpdatable> UpdatableModules { get; private set; } | public List<IUpdatable> UpdatableModules { get; private set; } |
#endregion | #endregion |
#region Methods | #region Methods |
/// <summary> | /// <summary> |
/// Creates a section editor, adds it to the FlightEngineerCore and returns a reference to it. | /// Creates a section editor, adds it to the FlightEngineerCore and returns a reference to it. |
/// </summary> | /// </summary> |
public SectionEditor AddSectionEditor(SectionModule section) | public SectionEditor AddSectionEditor(SectionModule section) |
{ | { |
try | try |
{ | { |
var editor = this.gameObject.AddComponent<SectionEditor>(); | var editor = this.gameObject.AddComponent<SectionEditor>(); |
editor.ParentSection = section; | editor.ParentSection = section; |
editor.Position = new Rect(section.EditorPositionX, section.EditorPositionY, SectionEditor.Width, SectionEditor.Height); | editor.Position = new Rect(section.EditorPositionX, section.EditorPositionY, SectionEditor.Width, SectionEditor.Height); |
this.SectionEditors.Add(editor); | this.SectionEditors.Add(editor); |
return editor; | return editor; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
return null; | return null; |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Creates a section window, adds it to the FlightEngineerCore and returns a reference to it. | /// Creates a section window, adds it to the FlightEngineerCore and returns a reference to it. |
/// </summary> | /// </summary> |
public SectionWindow AddSectionWindow(SectionModule section) | public SectionWindow AddSectionWindow(SectionModule section) |
{ | { |
try | try |
{ | { |
var window = this.gameObject.AddComponent<SectionWindow>(); | var window = this.gameObject.AddComponent<SectionWindow>(); |
window.ParentSection = section; | window.ParentSection = section; |
window.WindowPosition = new Rect(section.FloatingPositionX, section.FloatingPositionY, 0, 0); | window.WindowPosition = new Rect(section.FloatingPositionX, section.FloatingPositionY, 0, 0); |
this.SectionWindows.Add(window); | this.SectionWindows.Add(window); |
return window; | return window; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
return null; | return null; |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Adds an updatable object to be automatically updated every frame and will ignore duplicate objects. | /// Adds an updatable object to be automatically updated every frame and will ignore duplicate objects. |
/// </summary> | /// </summary> |
public void AddUpdatable(IUpdatable updatable) | public void AddUpdatable(IUpdatable updatable) |
{ | { |
try | try |
{ | { |
if (!this.UpdatableModules.Contains(updatable)) | if (!this.UpdatableModules.Contains(updatable)) |
{ | { |
this.UpdatableModules.Add(updatable); | this.UpdatableModules.Add(updatable); |
} | } |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Create base Flight Engineer child objects. | /// Create base Flight Engineer child objects. |
/// </summary> | /// </summary> |
private void Awake() | private void Awake() |
{ | { |
try | try |
{ | { |
Instance = this; | Instance = this; |
this.SectionWindows = new List<SectionWindow>(); | this.SectionWindows = new List<SectionWindow>(); |
this.SectionEditors = new List<SectionEditor>(); | this.SectionEditors = new List<SectionEditor>(); |
this.UpdatableModules = new List<IUpdatable>(); | this.UpdatableModules = new List<IUpdatable>(); |
SimManager.UpdateModSettings(); | SimManager.UpdateModSettings(); |
Logger.Log("FlightEngineerCore->Awake"); | Logger.Log("FlightEngineerCore->Awake"); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Fixed update all required Flight Engineer objects. | /// Fixed update all required Flight Engineer objects. |
/// </summary> | /// </summary> |
private void FixedUpdate() | private void FixedUpdate() |
{ | { |
try | try |
{ | { |
SectionLibrary.FixedUpdate(); | SectionLibrary.FixedUpdate(); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Force the destruction of child objects on core destruction. | /// Force the destruction of child objects on core destruction. |
/// </summary> | /// </summary> |
private void OnDestroy() | private void OnDestroy() |
{ | { |
try | try |
{ | { |
SectionLibrary.Save(); | SectionLibrary.Save(); |
foreach (var window in this.SectionWindows) | foreach (var window in this.SectionWindows) |
{ | { |
print("[FlightEngineer]: Destroying Floating Window for " + window.ParentSection.Name); | print("[FlightEngineer]: Destroying Floating Window for " + window.ParentSection.Name); |
Destroy(window); | Destroy(window); |
} | } |
foreach (var editor in this.SectionEditors) | foreach (var editor in this.SectionEditors) |
{ | { |
print("[FlightEngineer]: Destroying Editor Window for " + editor.ParentSection.Name); | print("[FlightEngineer]: Destroying Editor Window for " + editor.ParentSection.Name); |
Destroy(editor); | Destroy(editor); |
} | } |
Logger.Log("FlightEngineerCore->OnDestroy"); | Logger.Log("FlightEngineerCore->OnDestroy"); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Initialises the object's state on creation. | /// Initialises the object's state on creation. |
/// </summary> | /// </summary> |
private void Start() | private void Start() |
{ | { |
try | try |
{ | { |
SectionLibrary.Load(); | SectionLibrary.Load(); |
ReadoutLibrary.Reset(); | ReadoutLibrary.Reset(); |
Logger.Log("FlightEngineerCore->Start"); | Logger.Log("FlightEngineerCore->Start"); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Update all required Flight Engineer objects. | /// Update all required Flight Engineer objects. |
/// </summary> | /// </summary> |
private void Update() | private void Update() |
{ | { |
try | try |
{ | { |
SectionLibrary.Update(); | SectionLibrary.Update(); |
this.UpdateModules(); | this.UpdateModules(); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Update all updatable modules. | /// Update all updatable modules. |
/// </summary> | /// </summary> |
private void UpdateModules() | private void UpdateModules() |
{ | { |
try | try |
{ | { |
foreach (var updatable in this.UpdatableModules) | foreach (var updatable in this.UpdatableModules) |
{ | { |
if (updatable is IUpdateRequest) | if (updatable is IUpdateRequest) |
{ | { |
var request = updatable as IUpdateRequest; | var request = updatable as IUpdateRequest; |
if (request.UpdateRequested) | if (request.UpdateRequested) |
{ | { |
updatable.Update(); | updatable.Update(); |
request.UpdateRequested = false; | request.UpdateRequested = false; |
} | } |
} | } |
else | else |
{ | { |
updatable.Update(); | updatable.Update(); |
} | } |
} | } |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
#endregion | #endregion |
} | } |
} | } |
// | // |
// Kerbal Engineer Redux | // Kerbal Engineer Redux |
// | // |
// Copyright (C) 2014 CYBUTEK | // Copyright (C) 2014 CYBUTEK |
// | // |
// This program is free software: you can redistribute it and/or modify | // This program is free software: you can redistribute it and/or modify |
// it under the terms of the GNU General Public License as published by | // it under the terms of the GNU General Public License as published by |
// the Free Software Foundation, either version 3 of the License, or | // the Free Software Foundation, either version 3 of the License, or |
// (at your option) any later version. | // (at your option) any later version. |
// | // |
// This program is distributed in the hope that it will be useful, | // This program is distributed in the hope that it will be useful, |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// GNU General Public License for more details. | // GNU General Public License for more details. |
// | // |
// You should have received a copy of the GNU General Public License | // You should have received a copy of the GNU General Public License |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | // along with this program. If not, see <http://www.gnu.org/licenses/>. |
// | // |
#region Using Directives | #region Using Directives |
using System; | using System; |
using KerbalEngineer.Extensions; | using KerbalEngineer.Extensions; |
using KerbalEngineer.Flight.Presets; | using KerbalEngineer.Flight.Presets; |
using KerbalEngineer.Flight.Readouts; | using KerbalEngineer.Flight.Readouts; |
using KerbalEngineer.UIControls; | using KerbalEngineer.UIControls; |
using UnityEngine; | using UnityEngine; |
#endregion | #endregion |
namespace KerbalEngineer.Flight.Sections | namespace KerbalEngineer.Flight.Sections |
{ | { |
public class SectionEditor : MonoBehaviour | public class SectionEditor : MonoBehaviour |
{ | { |
#region Constants | #region Constants |
public const float Height = 500.0f; | public const float Height = 500.0f; |
public const float Width = 500.0f; | public const float Width = 500.0f; |
#endregion | #endregion |
#region Fields | #region Fields |
private GUIStyle categoryButtonActiveStyle; | private GUIStyle categoryButtonActiveStyle; |
private GUIStyle categoryButtonStyle; | private GUIStyle categoryButtonStyle; |
private DropDown categoryList; | private DropDown categoryList; |
private GUIStyle categoryTitleButtonStyle; | private GUIStyle categoryTitleButtonStyle; |
private GUIStyle helpBoxStyle; | private GUIStyle helpBoxStyle; |
private GUIStyle helpTextStyle; | private GUIStyle helpTextStyle; |
private GUIStyle panelTitleStyle; | private GUIStyle panelTitleStyle; |
private Rect position; | private Rect position; |
private DropDown presetList; | private DropDown presetList; |
private GUIStyle readoutButtonStyle; | private GUIStyle readoutButtonStyle; |
private GUIStyle readoutNameStyle; | private GUIStyle readoutNameStyle; |
private Vector2 scrollPositionAvailable; | private Vector2 scrollPositionAvailable; |
private Vector2 scrollPositionInstalled; | private Vector2 scrollPositionInstalled; |
private GUIStyle textStyle; | private GUIStyle textStyle; |
private GUIStyle windowStyle; | private GUIStyle windowStyle; |
#endregion | #endregion |
#region Properties | #region Properties |
/// <summary> | /// <summary> |
/// Gets and sets the parent section for the section editor. | /// Gets and sets the parent section for the section editor. |
/// </summary> | /// </summary> |
public SectionModule ParentSection { get; set; } | public SectionModule ParentSection { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets the window position. | /// Gets and sets the window position. |
/// </summary> | /// </summary> |
public Rect Position | public Rect Position |
{ | { |
get { return this.position; } | get { return this.position; } |
set { this.position = value; } | set { this.position = value; } |
} | } |
#endregion | #endregion |
#region Methods: protected | #region Methods: protected |
protected void Awake() | protected void Awake() |
{ | { |
try | try |
{ | { |
this.categoryList = this.gameObject.AddComponent<DropDown>(); | this.categoryList = this.gameObject.AddComponent<DropDown>(); |
this.categoryList.DrawCallback = this.DrawCategories; | this.categoryList.DrawCallback = this.DrawCategories; |
this.presetList = this.gameObject.AddComponent<DropDown>(); | this.presetList = this.gameObject.AddComponent<DropDown>(); |
this.presetList.DrawCallback = this.DrawPresets; | this.presetList.DrawCallback = this.DrawPresets; |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Runs when the object is destroyed. | /// Runs when the object is destroyed. |
/// </summary> | /// </summary> |
protected void OnDestroy() | protected void OnDestroy() |
{ | { |
try | try |
{ | { |
RenderingManager.RemoveFromPostDrawQueue(0, this.Draw); | |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Initialises the object's state on creation. | /// Initialises the object's state on creation. |
/// </summary> | /// </summary> |
protected void Start() | protected void Start() |
{ | { |
try | try |
{ | { |
this.InitialiseStyles(); | this.InitialiseStyles(); |
//ReadoutCategory.Selected = ReadoutCategory.GetCategory("Orbital"); | //ReadoutCategory.Selected = ReadoutCategory.GetCategory("Orbital"); |
RenderingManager.AddToPostDrawQueue(0, this.Draw); | |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
#endregion | #endregion |
#region Methods: private | #region Methods: private |
/// <summary> | /// <summary> |
/// Called to draw the editor when the UI is enabled. | /// Called to draw the editor when the UI is enabled. |
/// </summary> | /// </summary> |
private void Draw() | private void OnGUI() |
{ | { |
if (FlightEngineerCore.IsDisplayable == false) | |
{ | |
return; | |
} | |
this.position = GUILayout.Window(this.GetInstanceID(), this.position, this.Window, "EDIT SECTION - " + this.ParentSection.Name.ToUpper(), this.windowStyle).ClampToScreen(); | this.position = GUILayout.Window(this.GetInstanceID(), this.position, this.Window, "EDIT SECTION - " + this.ParentSection.Name.ToUpper(), this.windowStyle).ClampToScreen(); |
this.ParentSection.EditorPositionX = this.position.x; | this.ParentSection.EditorPositionX = this.position.x; |
this.ParentSection.EditorPositionY = this.position.y; | this.ParentSection.EditorPositionY = this.position.y; |
} | } |
/// <summary> | /// <summary> |
/// Draws the available readouts panel. | /// Draws the available readouts panel. |
/// </summary> | /// </summary> |
private void DrawAvailableReadouts() | private void DrawAvailableReadouts() |
{ | { |
GUI.skin = HighLogic.Skin; | GUI.skin = HighLogic.Skin; |
this.scrollPositionAvailable = GUILayout.BeginScrollView(this.scrollPositionAvailable, false, true, GUILayout.Height(200.0f)); | this.scrollPositionAvailable = GUILayout.BeginScrollView(this.scrollPositionAvailable, false, true, GUILayout.Height(200.0f)); |
GUI.skin = null; | GUI.skin = null; |
GUILayout.Label("AVAILABLE", this.panelTitleStyle); | GUILayout.Label("AVAILABLE", this.panelTitleStyle); |
foreach (var readout in ReadoutLibrary.GetCategory(ReadoutCategory.Selected)) | foreach (var readout in ReadoutLibrary.GetCategory(ReadoutCategory.Selected)) |
{ | { |
if (!this.ParentSection.ReadoutModules.Contains(readout) || readout.Cloneable) | if (!this.ParentSection.ReadoutModules.Contains(readout) || readout.Cloneable) |
{ | { |
GUILayout.BeginHorizontal(GUILayout.Height(30.0f)); | GUILayout.BeginHorizontal(GUILayout.Height(30.0f)); |
GUILayout.Label(readout.Name, this.readoutNameStyle); | GUILayout.Label(readout.Name, this.readoutNameStyle); |
readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f)); | readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f)); |
if (GUILayout.Button("INSTALL", this.readoutButtonStyle, GUILayout.Width(125.0f))) | if (GUILayout.Button("INSTALL", this.readoutButtonStyle, GUILayout.Width(125.0f))) |
{ | { |
this.ParentSection.ReadoutModules.Add(readout); | this.ParentSection.ReadoutModules.Add(readout); |
} | } |
GUILayout.EndHorizontal(); | GUILayout.EndHorizontal(); |
this.ShowHelpMessage(readout); | this.ShowHelpMessage(readout); |
} | } |
} | } |
GUILayout.EndScrollView(); | GUILayout.EndScrollView(); |
} | } |
/// <summary> | /// <summary> |
/// Draws the categories list drop down UI. | /// Draws the categories list drop down UI. |
/// </summary> | /// </summary> |
private void DrawCategories() | private void DrawCategories() |
{ | { |
foreach (var category in ReadoutCategory.Categories) | foreach (var category in ReadoutCategory.Categories) |
{ | { |
var description = category.Description; | var description = category.Description; |
if (description.Length > 50) | if (description.Length > 50) |
{ | { |
description = description.Substring(0, 50 - 1) + "..."; | description = description.Substring(0, 50 - 1) + "..."; |
} | } |
if (GUILayout.Button("<b>" + category.Name.ToUpper() + "</b>" + (string.IsNullOrEmpty(category.Description) ? string.Empty : "\n<i>" + description + "</i>"), category == ReadoutCategory.Selected ? this.categoryButtonActiveStyle : this.categoryButtonStyle)) | if (GUILayout.Button("<b>" + category.Name.ToUpper() + "</b>" + (string.IsNullOrEmpty(category.Description) ? string.Empty : "\n<i>" + description + "</i>"), category == ReadoutCategory.Selected ? this.categoryButtonActiveStyle : this.categoryButtonStyle)) |
{ | { |
ReadoutCategory.Selected = category; | ReadoutCategory.Selected = category; |
this.categoryList.enabled = false; | this.categoryList.enabled = false; |
} | } |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Draws the readoutCategories selection list. | /// Draws the readoutCategories selection list. |
/// </summary> | /// </summary> |
private void DrawCategorySelector() | private void DrawCategorySelector() |
{ | { |
this.categoryList.enabled = GUILayout.Toggle(this.categoryList.enabled, "▼ SELECTED CATEGORY: " + ReadoutCategory.Selected.ToString().ToUpper() + " ▼", this.categoryTitleButtonStyle); | this.categoryList.enabled = GUILayout.Toggle(this.categoryList.enabled, "▼ SELECTED CATEGORY: " + ReadoutCategory.Selected.ToString().ToUpper() + " ▼", this.categoryTitleButtonStyle); |
if (Event.current.type == EventType.repaint) | if (Event.current.type == EventType.repaint) |
{ | { |
this.categoryList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position)); | this.categoryList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position)); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Draws the options for editing custom sections. | /// Draws the options for editing custom sections. |
/// </summary> | /// </summary> |
private void DrawCustomOptions() | private void DrawCustomOptions() |
{ | { |
GUILayout.BeginHorizontal(GUILayout.Height(25.0f)); | GUILayout.BeginHorizontal(GUILayout.Height(25.0f)); |
this.ParentSection.Name = GUILayout.TextField(this.ParentSection.Name, this.textStyle); | this.ParentSection.Name = GUILayout.TextField(this.ParentSection.Name, this.textStyle); |
var isShowingInControlBar = !string.IsNullOrEmpty(this.ParentSection.Abbreviation); | var isShowingInControlBar = !string.IsNullOrEmpty(this.ParentSection.Abbreviation); |
this.ParentSection.Abbreviation = GUILayout.TextField(this.ParentSection.Abbreviation, this.textStyle, GUILayout.Width(75.0f)); | this.ParentSection.Abbreviation = GUILayout.TextField(this.ParentSection.Abbreviation, this.textStyle, GUILayout.Width(75.0f)); |
ParentSection.IsHud = GUILayout.Toggle(this.ParentSection.IsHud, "HUD", this.readoutButtonStyle, GUILayout.Width(50.0f)); | ParentSection.IsHud = GUILayout.Toggle(this.ParentSection.IsHud, "HUD", this.readoutButtonStyle, GUILayout.Width(50.0f)); |
if (ParentSection.IsHud) | if (ParentSection.IsHud) |
{ | { |
this.ParentSection.IsHudBackground = GUILayout.Toggle(this.ParentSection.IsHudBackground, "BG", this.readoutButtonStyle, GUILayout.Width(50.0f)); | this.ParentSection.IsHudBackground = GUILayout.Toggle(this.ParentSection.IsHudBackground, "BG", this.readoutButtonStyle, GUILayout.Width(50.0f)); |
} | } |
if (this.ParentSection.IsCustom) | if (this.ParentSection.IsCustom) |
{ | { |
if (isShowingInControlBar && string.IsNullOrEmpty(this.ParentSection.Abbreviation)) | if (isShowingInControlBar && string.IsNullOrEmpty(this.ParentSection.Abbreviation)) |
{ | { |
DisplayStack.Instance.RequestResize(); | DisplayStack.Instance.RequestResize(); |
} | } |
if (GUILayout.Button("DELETE SECTION", this.readoutButtonStyle, GUILayout.Width(150.0f))) | if (GUILayout.Button("DELETE SECTION", this.readoutButtonStyle, GUILayout.Width(150.0f))) |
{ | { |
this.ParentSection.IsFloating = false; | this.ParentSection.IsFloating = false; |
this.ParentSection.IsEditorVisible = false; | this.ParentSection.IsEditorVisible = false; |
this.ParentSection.IsDeleted = true; | |
SectionLibrary.CustomSections.Remove(this.ParentSection); | SectionLibrary.CustomSections.Remove(this.ParentSection); |
DisplayStack.Instance.RequestResize(); | DisplayStack.Instance.RequestResize(); |
} | } |
} | } |
GUILayout.EndHorizontal(); | GUILayout.EndHorizontal(); |
} | } |
/// <summary> | /// <summary> |
/// Draws the installed readouts panel. | /// Draws the installed readouts panel. |
/// </summary> | /// </summary> |
private void DrawInstalledReadouts() | private void DrawInstalledReadouts() |
{ | { |
GUI.skin = HighLogic.Skin; | GUI.skin = HighLogic.Skin; |
this.scrollPositionInstalled = GUILayout.BeginScrollView(this.scrollPositionInstalled, false, true); | this.scrollPositionInstalled = GUILayout.BeginScrollView(this.scrollPositionInstalled, false, true); |
GUI.skin = null; | GUI.skin = null; |
GUILayout.Label("INSTALLED", this.panelTitleStyle); | GUILayout.Label("INSTALLED", this.panelTitleStyle); |
var removeReadout = false; | var removeReadout = false; |
var removeReadoutIndex = 0; | var removeReadoutIndex = 0; |
for (var i = 0; i < this.ParentSection.ReadoutModules.Count; i++) | for (var i = 0; i < this.ParentSection.ReadoutModules.Count; i++) |
{ | { |
var readout = this.ParentSection.ReadoutModules[i]; | var readout = this.ParentSection.ReadoutModules[i]; |
GUILayout.BeginHorizontal(GUILayout.Height(30.0f)); | GUILayout.BeginHorizontal(GUILayout.Height(30.0f)); |
GUILayout.Label(readout.Name, this.readoutNameStyle); | GUILayout.Label(readout.Name, this.readoutNameStyle); |
if (GUILayout.Button("▲", this.readoutButtonStyle, GUILayout.Width(30.0f))) | if (GUILayout.Button("▲", this.readoutButtonStyle, GUILayout.Width(30.0f))) |
{ | { |
if (i > 0) | if (i > 0) |
{ | { |
this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i - 1]; | this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i - 1]; |
this.ParentSection.ReadoutModules[i - 1] = readout; | this.ParentSection.ReadoutModules[i - 1] = readout; |
} | } |
} | } |
if (GUILayout.Button("▼", this.readoutButtonStyle, GUILayout.Width(30.0f))) | if (GUILayout.Button("▼", this.readoutButtonStyle, GUILayout.Width(30.0f))) |
{ | { |
if (i < this.ParentSection.ReadoutModules.Count - 1) | if (i < this.ParentSection.ReadoutModules.Count - 1) |
{ | { |
this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i + 1]; | this.ParentSection.ReadoutModules[i] = this.ParentSection.ReadoutModules[i + 1]; |
this.ParentSection.ReadoutModules[i + 1] = readout; | this.ParentSection.ReadoutModules[i + 1] = readout; |
} | } |
} | } |
readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f)); | readout.ShowHelp = GUILayout.Toggle(readout.ShowHelp, "?", this.readoutButtonStyle, GUILayout.Width(30.0f)); |
if (GUILayout.Button("REMOVE", this.readoutButtonStyle, GUILayout.Width(125.0f))) | if (GUILayout.Button("REMOVE", this.readoutButtonStyle, GUILayout.Width(125.0f))) |
{ | { |
removeReadout = true; | removeReadout = true; |
removeReadoutIndex = i; | removeReadoutIndex = i; |
} | } |
GUILayout.EndHorizontal(); | GUILayout.EndHorizontal(); |
this.ShowHelpMessage(readout); | this.ShowHelpMessage(readout); |
} | } |
GUILayout.EndScrollView(); | GUILayout.EndScrollView(); |
if (removeReadout) | if (removeReadout) |
{ | { |
this.ParentSection.ReadoutModules.RemoveAt(removeReadoutIndex); | this.ParentSection.ReadoutModules.RemoveAt(removeReadoutIndex); |
} | } |
} | } |
private void DrawPresetButton(Preset preset) | private void DrawPresetButton(Preset preset) |
{ | { |
if (!GUILayout.Button("<b>" + preset.Name.ToUpper() + "</b>", this.categoryButtonStyle)) | if (!GUILayout.Button("<b>" + preset.Name.ToUpper() + "</b>", this.categoryButtonStyle)) |
{ | { |
return; | return; |
} | } |
this.ParentSection.Name = preset.Name; | this.ParentSection.Name = preset.Name; |
this.ParentSection.Abbreviation = preset.Abbreviation; | this.ParentSection.Abbreviation = preset.Abbreviation; |
this.ParentSection.ReadoutModuleNames = preset.ReadoutNames; | this.ParentSection.ReadoutModuleNames = preset.ReadoutNames; |
this.ParentSection.IsHud = preset.IsHud; | this.ParentSection.IsHud = preset.IsHud; |
this.ParentSection.IsHudBackground = preset.IsHudBackground; | this.ParentSection.IsHudBackground = preset.IsHudBackground; |
this.presetList.enabled = false; | this.presetList.enabled = false; |
} | } |
private void DrawPresetSaveButton() | private void DrawPresetSaveButton() |
{ | { |
if (!GUILayout.Button("<b>SAVE PRESET</b>", this.categoryButtonStyle)) | if (!GUILayout.Button("<b>SAVE PRESET</b>", this.categoryButtonStyle)) |
{ | { |
return; | return; |
} | } |
this.SavePreset(PresetLibrary.Presets.Find(p => String.Equals(p.Name, this.ParentSection.Name, StringComparison.CurrentCultureIgnoreCase))); | this.SavePreset(PresetLibrary.Presets.Find(p => String.Equals(p.Name, this.ParentSection.Name, StringComparison.CurrentCultureIgnoreCase))); |
} | } |
/// <summary> | /// <summary> |
/// Draws the presetsList selection list. | /// Draws the presetsList selection list. |
/// </summary> | /// </summary> |
private void DrawPresetSelector() | private void DrawPresetSelector() |
{ | { |
this.presetList.enabled = GUILayout.Toggle(this.presetList.enabled, "▼ PRESETS ▼", this.categoryTitleButtonStyle, GUILayout.Width(150.0f)); | this.presetList.enabled = GUILayout.Toggle(this.presetList.enabled, "▼ PRESETS ▼", this.categoryTitleButtonStyle, GUILayout.Width(150.0f)); |
if (Event.current.type == EventType.repaint) | if (Event.current.type == EventType.repaint) |
{ | { |
this.presetList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position)); | this.presetList.SetPosition(GUILayoutUtility.GetLastRect().Translate(this.position)); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Draws the preset list drop down UI. | /// Draws the preset list drop down UI. |
/// </summary> | /// </summary> |
private void DrawPresets() | private void DrawPresets() |
{ | { |
Preset removePreset = null; | Preset removePreset = null; |
foreach (var preset in PresetLibrary.Presets) | foreach (var preset in PresetLibrary.Presets) |
{ | { |
GUILayout.BeginHorizontal(); | GUILayout.BeginHorizontal(); |
this.DrawPresetButton(preset); | this.DrawPresetButton(preset); |
if (GUILayout.Button("<b>X</b>", this.categoryButtonStyle, GUILayout.Width(30.0f))) | if (GUILayout.Button("<b>X</b>", this.categoryButtonStyle, GUILayout.Width(30.0f))) |
{ | { |
removePreset = preset; | removePreset = preset; |
} | } |
GUILayout.EndHorizontal(); | GUILayout.EndHorizontal(); |
} | } |
if (removePreset != null && PresetLibrary.Remove(removePreset)) | if (removePreset != null && PresetLibrary.Remove(removePreset)) |
{ | { |
this.presetList.Resize = true; | this.presetList.Resize = true; |
} | } |
this.DrawPresetSaveButton(); | this.DrawPresetSaveButton(); |
} | } |
/// <summary> | /// <summary> |
/// Initialises all the styles required for this object. | /// Initialises all the styles required for this object. |
/// </summary> | /// </summary> |
private void InitialiseStyles() | private void InitialiseStyles() |
{ | { |
this.windowStyle = new GUIStyle(HighLogic.Skin.window); | this.windowStyle = new GUIStyle(HighLogic.Skin.window); |
this.categoryButtonStyle = new GUIStyle(HighLogic.Skin.button) | this.categoryButtonStyle = new GUIStyle(HighLogic.Skin.button) |
{ | { |
normal = | normal = |
{ | { |
textColor = Color.white | textColor = Color.white |
}, | }, |
margin = new RectOffset(0, 0, 2, 0), | margin = new RectOffset(0, 0, 2, 0), |
padding = new RectOffset(5, 5, 5, 5), | padding = new RectOffset(5, 5, 5, 5), |
alignment = TextAnchor.MiddleCenter, | alignment = TextAnchor.MiddleCenter, |
fontSize = 12, | fontSize = 12, |
fontStyle = FontStyle.Normal, | fontStyle = FontStyle.Normal, |
richText = true | richText = true |
}; | }; |
this.categoryButtonActiveStyle = new GUIStyle(this.categoryButtonStyle) | this.categoryButtonActiveStyle = new GUIStyle(this.categoryButtonStyle) |
{ | { |
normal = this.categoryButtonStyle.onNormal, | normal = this.categoryButtonStyle.onNormal, |
hover = this.categoryButtonStyle.onHover | hover = this.categoryButtonStyle.onHover |
}; | }; |
this.panelTitleStyle = new GUIStyle(HighLogic.Skin.label) | this.panelTitleStyle = new GUIStyle(HighLogic.Skin.label) |
{ | { |
normal = | normal = |
{ | { |
textColor = Color.white | textColor = Color.white |
}, | }, |
margin = new RectOffset(), | margin = new RectOffset(), |
padding = new RectOffset(), | padding = new RectOffset(), |
alignment = TextAnchor.MiddleLeft, | alignment = TextAnchor.MiddleLeft, |
fontSize = 12, | fontSize = 12, |
fontStyle = FontStyle.Bold, | fontStyle = FontStyle.Bold, |
fixedHeight = 30.0f, | fixedHeight = 30.0f, |
stretchWidth = true | stretchWidth = true |
}; | }; |
this.textStyle = new GUIStyle(HighLogic.Skin.textField) | this.textStyle = new GUIStyle(HighLogic.Skin.textField) |
{ | { |
margin = new RectOffset(3, 3, 3, 3), | margin = new RectOffset(3, 3, 3, 3), |
alignment = TextAnchor.MiddleLeft, | alignment = TextAnchor.MiddleLeft, |
stretchWidth = true, | stretchWidth = true, |
stretchHeight = true | stretchHeight = true |
}; | }; |
this.readoutNameStyle = new GUIStyle(HighLogic.Skin.label) | this.readoutNameStyle = new GUIStyle(HighLogic.Skin.label) |
{ | { |
normal = | normal = |
{ | { |
textColor = Color.white | textColor = Color.white |
}, | }, |
margin = new RectOffset(), | margin = new RectOffset(), |
padding = new RectOffset(10, 0, 0, 0), | padding = new RectOffset(10, 0, 0, 0), |
alignment = TextAnchor.MiddleLeft, | alignment = TextAnchor.MiddleLeft, |
fontSize = 12, | fontSize = 12, |
fontStyle = FontStyle.Bold, | fontStyle = FontStyle.Bold, |
stretchWidth = true, | stretchWidth = true, |
stretchHeight = true | stretchHeight = true |
}; | }; |
this.readoutButtonStyle = new GUIStyle(HighLogic.Skin.button) | this.readoutButtonStyle = new GUIStyle(HighLogic.Skin.button) |
{ | { |
normal = | normal = |
{ | { |
textColor = Color.white | textColor = Color.white |
}, | }, |
margin = new RectOffset(2, 2, 2, 2), | margin = new RectOffset(2, 2, 2, 2), |
padding = new RectOffset(), | padding = new RectOffset(), |
alignment = TextAnchor.MiddleCenter, | alignment = TextAnchor.MiddleCenter, |
fontSize = 12, | fontSize = 12, |
fontStyle = FontStyle.Bold, | fontStyle = FontStyle.Bold, |
stretchHeight = true | stretchHeight = true |
}; | }; |
this.helpBoxStyle = new GUIStyle(HighLogic.Skin.box) | this.helpBoxStyle = new GUIStyle(HighLogic.Skin.box) |
{ | { |
margin = new RectOffset(2, 2, 2, 10), | margin = new RectOffset(2, 2, 2, 10), |
padding = new RectOffset(10, 10, 10, 10) | padding = new RectOffset(10, 10, 10, 10) |
}; | }; |
this.helpTextStyle = new GUIStyle(HighLogic.Skin.label) | this.helpTextStyle = new GUIStyle(HighLogic.Skin.label) |
{ | { |
normal = | normal = |
{ | { |
textColor = Color.yellow | textColor = Color.yellow |
}, | }, |
margin = new RectOffset(), | margin = new RectOffset(), |
padding = new RectOffset(), | padding = new RectOffset(), |
alignment = TextAnchor.MiddleLeft, | alignment = TextAnchor.MiddleLeft, |
fontSize = 13, | fontSize = 13, |
fontStyle = FontStyle.Normal, | fontStyle = FontStyle.Normal, |
stretchWidth = true, | stretchWidth = true, |
richText = true | richText = true |
}; | }; |
this.categoryTitleButtonStyle = new GUIStyle(this.readoutButtonStyle) | this.categoryTitleButtonStyle = new GUIStyle(this.readoutButtonStyle) |
{ | { |
fixedHeight = 30.0f, | fixedHeight = 30.0f, |
stretchHeight = false | stretchHeight = false |
}; | }; |
} | } |
private void SavePreset(Preset preset) | private void SavePreset(Preset preset) |
{ | { |
if (preset == null) | if (preset == null) |
{ | { |
preset = new Preset(); | preset = new Preset(); |
} | } |
preset.Name = this.ParentSection.Name; | preset.Name = this.ParentSection.Name; |
preset.Abbreviation = this.ParentSection.Abbreviation; | preset.Abbreviation = this.ParentSection.Abbreviation; |
preset.ReadoutNames = this.ParentSection.ReadoutModuleNames; | preset.ReadoutNames = this.ParentSection.ReadoutModuleNames; |
preset.IsHud = this.ParentSection.IsHud; | preset.IsHud = this.ParentSection.IsHud; |
preset.IsHudBackground = this.ParentSection.IsHudBackground; | preset.IsHudBackground = this.ParentSection.IsHudBackground; |
PresetLibrary.Save(preset); | PresetLibrary.Save(preset); |
} | } |
private void ShowHelpMessage(ReadoutModule readout) | private void ShowHelpMessage(ReadoutModule readout) |
{ | { |
if (!readout.ShowHelp) | if (!readout.ShowHelp) |
{ | { |
return; | return; |
} | } |
GUILayout.BeginVertical(this.helpBoxStyle); | GUILayout.BeginVertical(this.helpBoxStyle); |
GUILayout.Label(!String.IsNullOrEmpty(readout.HelpString) ? readout.HelpString : "Sorry, no help information has been provided for this readout module.", this.helpTextStyle); | GUILayout.Label(!String.IsNullOrEmpty(readout.HelpString) ? readout.HelpString : "Sorry, no help information has been provided for this readout module.", this.helpTextStyle); |
GUILayout.EndVertical(); | GUILayout.EndVertical(); |
} | } |
/// <summary> | /// <summary> |
/// Draws the editor window. | /// Draws the editor window. |
/// </summary> | /// </summary> |
private void Window(int windowId) | private void Window(int windowId) |
{ | { |
try | try |
{ | { |
this.DrawCustomOptions(); | this.DrawCustomOptions(); |
GUILayout.BeginHorizontal(); | GUILayout.BeginHorizontal(); |
this.DrawCategorySelector(); | this.DrawCategorySelector(); |
this.DrawPresetSelector(); | this.DrawPresetSelector(); |
GUILayout.EndHorizontal(); | GUILayout.EndHorizontal(); |
this.DrawAvailableReadouts(); | this.DrawAvailableReadouts(); |
GUILayout.Space(5.0f); | GUILayout.Space(5.0f); |
this.DrawInstalledReadouts(); | this.DrawInstalledReadouts(); |
if (GUILayout.Button("CLOSE EDITOR", this.categoryTitleButtonStyle)) | if (GUILayout.Button("CLOSE EDITOR", this.categoryTitleButtonStyle)) |
{ | { |
this.ParentSection.IsEditorVisible = false; | this.ParentSection.IsEditorVisible = false; |
} | } |
GUI.DragWindow(); | GUI.DragWindow(); |
} | } |
catch (Exception ex) | catch (Exception ex) |
{ | { |
Logger.Exception(ex); | Logger.Exception(ex); |
} | } |
} | } |
#endregion | #endregion |
} | } |
} | } |
// | // |
// Kerbal Engineer Redux | // Kerbal Engineer Redux |
// | // |
// Copyright (C) 2014 CYBUTEK | // Copyright (C) 2014 CYBUTEK |
// | // |
// This program is free software: you can redistribute it and/or modify | // This program is free software: you can redistribute it and/or modify |
// it under the terms of the GNU General Public License as published by | // it under the terms of the GNU General Public License as published by |
// the Free Software Foundation, either version 3 of the License, or | // the Free Software Foundation, either version 3 of the License, or |
// (at your option) any later version. | // (at your option) any later version. |
// | // |
// This program is distributed in the hope that it will be useful, | // This program is distributed in the hope that it will be useful, |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// GNU General Public License for more details. | // GNU General Public License for more details. |
// | // |
// You should have received a copy of the GNU General Public License | // You should have received a copy of the GNU General Public License |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | // along with this program. If not, see <http://www.gnu.org/licenses/>. |
// | // |
#region Using Directives | #region Using Directives |
using System.Collections.Generic; | using System.Collections.Generic; |
using System.Linq; | using System.Linq; |
using System.Xml.Serialization; | using System.Xml.Serialization; |
using KerbalEngineer.Flight.Readouts; | using KerbalEngineer.Flight.Readouts; |
using UnityEngine; | using UnityEngine; |
#endregion | #endregion |
namespace KerbalEngineer.Flight.Sections | namespace KerbalEngineer.Flight.Sections |
{ | { |
using Unity.Flight; | |
/// <summary> | /// <summary> |
/// Object for management and display of readout modules. | /// Object for management and display of readout modules. |
/// </summary> | /// </summary> |
public class SectionModule | public class SectionModule : ISectionModule |
{ | { |
#region Fields | #region Fields |
private SectionEditor editor; | private SectionEditor editor; |
private bool isHud; | private bool isHud; |
private int numberOfReadouts; | private int numberOfReadouts; |
#endregion | #endregion |
#region Constructors | #region Constructors |
/// <summary> | /// <summary> |
/// Creates a new section module. | /// Creates a new section module. |
/// </summary> | /// </summary> |
public SectionModule() | public SectionModule() |
{ | { |
this.FloatingPositionX = Screen.width * 0.5f - 125.0f; | this.FloatingPositionX = Screen.width * 0.5f - 125.0f; |
this.FloatingPositionY = 100.0f; | this.FloatingPositionY = 100.0f; |
this.EditorPositionX = Screen.width * 0.5f - SectionEditor.Width * 0.5f; | this.EditorPositionX = Screen.width * 0.5f - SectionEditor.Width * 0.5f; |
this.EditorPositionY = Screen.height * 0.5f - SectionEditor.Height * 0.5f; | this.EditorPositionY = Screen.height * 0.5f - SectionEditor.Height * 0.5f; |
this.ReadoutModules = new List<ReadoutModule>(); | this.ReadoutModules = new List<ReadoutModule>(); |
this.InitialiseStyles(); | this.InitialiseStyles(); |
GuiDisplaySize.OnSizeChanged += this.OnSizeChanged; | GuiDisplaySize.OnSizeChanged += this.OnSizeChanged; |
} | } |
#endregion | #endregion |
#region Properties | #region Properties |
/// <summary> | /// <summary> |
/// Gets and sets the abbreviation of the section. | /// Gets and sets the abbreviation of the section. |
/// </summary> | /// </summary> |
public string Abbreviation { get; set; } | public string Abbreviation { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets the X position of the editor window. (Only used for serialisation.) | /// Gets and sets the X position of the editor window. (Only used for serialisation.) |
/// </summary> | /// </summary> |
public float EditorPositionX { get; set; } | public float EditorPositionX { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets the Y position of the editor window. (Only used for serialisation.) | /// Gets and sets the Y position of the editor window. (Only used for serialisation.) |
/// </summary> | /// </summary> |
public float EditorPositionY { get; set; } | public float EditorPositionY { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets the X position of the floating window. (Only used for serialisation.) | /// Gets and sets the X position of the floating window. (Only used for serialisation.) |
/// </summary> | /// </summary> |
public float FloatingPositionX { get; set; } | public float FloatingPositionX { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets the Y position of the floating window. (Only used for serialisation.) | /// Gets and sets the Y position of the floating window. (Only used for serialisation.) |
/// </summary> | /// </summary> |
public float FloatingPositionY { get; set; } | public float FloatingPositionY { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets whether the section is custom. | /// Gets and sets whether the section is custom. |
/// </summary> | /// </summary> |
public bool IsCustom { get; set; } | public bool IsCustom { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets whether the section editor is visible. | /// Gets and sets whether the section editor is visible. |
/// </summary> | /// </summary> |
public bool IsEditorVisible | public bool IsEditorVisible |
{ | { |
get { return this.editor != null; } | get { return this.editor != null; } |
set | set |
{ | { |
if (value && this.editor == null) | if (value && this.editor == null) |
{ | { |
this.editor = FlightEngineerCore.Instance.AddSectionEditor(this); | this.editor = FlightEngineerCore.Instance.AddSectionEditor(this); |
} | } |
else if (!value && this.editor != null) | else if (!value && this.editor != null) |
{ | { |
Object.Destroy(this.editor); | Object.Destroy(this.editor); |
} | } |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Gets and sets whether the section is in a floating state. | /// Gets and sets whether the section is in a floating state. |
/// </summary> | /// </summary> |
public bool IsFloating | public bool IsFloating |
{ | { |
get { return this.Window != null; } | get { return this.Window != null; } |
set | set |
{ | { |
if (value && this.Window == null) | if (value && this.Window == null) |
{ | { |
this.Window = FlightEngineerCore.Instance.AddSectionWindow(this); | this.Window = FlightEngineerCore.Instance.AddSectionWindow(this); |
} | } |
else if (!value && this.Window != null) | else if (!value && this.Window != null) |
{ | { |
Object.Destroy(this.Window); | Object.Destroy(this.Window); |
} | } |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Gets and sets whether the section module is a HUD. | /// Gets and sets whether the section module is a HUD. |
/// </summary> | /// </summary> |
public bool IsHud | public bool IsHud |
{ | { |
get { return this.isHud; } | get { return this.isHud; } |
set | set |
{ | { |
if (this.isHud == value) | if (this.isHud == value) |
{ | { |
return; | return; |
} | } |
this.isHud = value; | this.isHud = value; |
if (this.isHud) | if (this.isHud) |
{ | { |
this.IsFloating = true; | this.IsFloating = true; |
} | } |
if (this.Window != null) | if (this.Window != null) |
{ | { |
this.Window.RequestResize(); | this.Window.RequestResize(); |
} | } |
} | } |
} | } |
/// <summary> | |
/// Gets and sets whether the section module has been deleted. | |
/// </summary> | |
public bool IsDeleted { get; set; } | |
/// <summary> | /// <summary> |
/// Gets and sets whether the section module has a background as a HUD. | /// Gets and sets whether the section module has a background as a HUD. |
/// </summary> | /// </summary> |
public bool IsHudBackground { get; set; } | public bool IsHudBackground { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets the visibility of the section. | /// Gets and sets the visibility of the section. |
/// </summary> | /// </summary> |
public bool IsVisible { get; set; } | public bool IsVisible { get; set; } |
/// <summary> | /// <summary> |
/// Gets the number of drawn readout lines. | /// Gets the number of drawn readout lines. |
/// </summary> | /// </summary> |
public int LineCount { get; private set; } | public int LineCount { get; private set; } |
/// <summary> | /// <summary> |
/// Gets and sets the name of the section. | /// Gets and sets the name of the section. |
/// </summary> | /// </summary> |
public string Name { get; set; } | public string Name { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets the names of the installed readout modules. (Only used with serialisation.) | /// Gets and sets the names of the installed readout modules. (Only used with serialisation.) |
/// </summary> | /// </summary> |
public string[] ReadoutModuleNames | public string[] ReadoutModuleNames |
{ | { |
get { return this.ReadoutModules.Select(r => r.Category + "." + r.GetType().Name).ToArray(); } | get { return this.ReadoutModules.Select(r => r.Category + "." + r.GetType().Name).ToArray(); } |
set { this.ReadoutModules = value.Select(ReadoutLibrary.GetReadout).ToList(); } | set { this.ReadoutModules = value.Select(ReadoutLibrary.GetReadout).ToList(); } |
} | } |
/// <summary> | /// <summary> |
/// Gets and sets the list of readout modules. | /// Gets and sets the list of readout modules. |
/// </summary> | /// </summary> |
[XmlIgnore] | [XmlIgnore] |
public List<ReadoutModule> ReadoutModules { get; set; } | public List<ReadoutModule> ReadoutModules { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets the floating window. | /// Gets and sets the floating window. |
/// </summary> | /// </summary> |
[XmlIgnore] | [XmlIgnore] |
public SectionWindow Window { get; set; } | public SectionWindow Window { get; set; } |
#endregion | #endregion |
#region GUIStyles | #region GUIStyles |
#region Fields | #region Fields |
private GUIStyle boxStyle; | private GUIStyle boxStyle; |
private GUIStyle buttonStyle; | private GUIStyle buttonStyle; |
private GUIStyle messageStyle; | private GUIStyle messageStyle; |
private GUIStyle titleStyle; | private GUIStyle titleStyle; |
#endregion | #endregion |
/// <summary> | /// <summary> |
/// Initialises all the styles required for this object. | /// Initialises all the styles required for this object. |
/// </summary> | /// </summary> |
private void InitialiseStyles() | private void InitialiseStyles() |
{ | { |
this.boxStyle = new GUIStyle(HighLogic.Skin.box) | this.boxStyle = new GUIStyle(HighLogic.Skin.box) |
{ | { |
margin = new RectOffset(), | margin = new RectOffset(), |
padding = new RectOffset(5, 5, 5, 5) | padding = new RectOffset(5, 5, 5, 5) |
}; | }; |
this.titleStyle = new GUIStyle(HighLogic.Skin.label) | this.titleStyle = new GUIStyle(HighLogic.Skin.label) |
{ | { |
normal = | normal = |
{ | { |
textColor = Color.white | textColor = Color.white |
}, | }, |
margin = new RectOffset(), | margin = new RectOffset(), |
padding = new RectOffset(2, 0, 5, 2), | padding = new RectOffset(2, 0, 5, 2), |
fontSize = (int)(13 * GuiDisplaySize.Offset), | fontSize = (int)(13 * GuiDisplaySize.Offset), |
fontStyle = FontStyle.Bold, | fontStyle = FontStyle.Bold, |
stretchWidth = true | stretchWidth = true |
}; | }; |
this.buttonStyle = new GUIStyle(HighLogic.Skin.button) | this.buttonStyle = new GUIStyle(HighLogic.Skin.button) |
{ | { |
normal = | normal = |
{ | { |
textColor = Color.white | textColor = Color.white |
}, | }, |
margin = new RectOffset(0, 0, 5, 3), | margin = new RectOffset(0, 0, 5, 3), |
padding = new RectOffset(), | padding = new RectOffset(), |
fontSize = (int)(10 * GuiDisplaySize.Offset), | fontSize = (int)(10 * GuiDisplaySize.Offset), |
stretchHeight = true, | stretchHeight = true, |
fixedWidth = 60.0f * GuiDisplaySize.Offset | fixedWidth = 60.0f * GuiDisplaySize.Offset |
}; | }; |
this.messageStyle = new GUIStyle(HighLogic.Skin.label) | this.messageStyle = new GUIStyle(HighLogic.Skin.label) |
{ | { |
normal = | normal = |
{ | { |
textColor = Color.white | textColor = Color.white |
}, | }, |
margin = new RectOffset(), | margin = new RectOffset(), |
padding = new RectOffset(), | padding = new RectOffset(), |
alignment = TextAnchor.MiddleCenter, | alignment = TextAnchor.MiddleCenter, |
fontSize = (int)(12 * GuiDisplaySize.Offset), | fontSize = (int)(12 * GuiDisplaySize.Offset), |
fontStyle = FontStyle.Bold, | fontStyle = FontStyle.Bold, |
fixedWidth = 220.0f * GuiDisplaySize.Offset, | fixedWidth = 220.0f * GuiDisplaySize.Offset, |
fixedHeight = 20.0f * GuiDisplaySize.Offset | fixedHeight = 20.0f * GuiDisplaySize.Offset |
}; | }; |
} | } |
private void OnSizeChanged() | private void OnSizeChanged() |
{ | { |
this.InitialiseStyles(); | this.InitialiseStyles(); |
} | } |
#endregion | #endregion |
#region Updating | #region Updating |
/// <summary> | /// <summary> |
/// Updates all of the internal readout modules at fixed time intervals. | /// Updates all of the internal readout modules at fixed time intervals. |
/// </summary> | /// </summary> |
public void FixedUpdate() | public void FixedUpdate() |
{ | { |
if (!this.IsVisible) | if (!this.IsVisible) |
{ | { |
return; | return; |
} | } |
foreach (var readout in this.ReadoutModules) | foreach (var readout in this.ReadoutModules) |
{ | { |
readout.FixedUpdate(); | readout.FixedUpdate(); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Updates all of the internal readout modules. | /// Updates all of the internal readout modules. |
/// </summary> | /// </summary> |
public void Update() | public void Update() |
{ | { |
if (!this.IsVisible) | if (!this.IsVisible) |
{ | { |
return; | return; |
} | } |
foreach (var readout in this.ReadoutModules) | foreach (var readout in this.ReadoutModules) |
{ | { |
readout.Update(); | readout.Update(); |
} | } |
if (this.numberOfReadouts != this.ReadoutModules.Count) | if (this.numberOfReadouts != this.ReadoutModules.Count) |
{ | { |
this.numberOfReadouts = this.ReadoutModules.Count; | this.numberOfReadouts = this.ReadoutModules.Count; |
if (!this.IsFloating) | if (!this.IsFloating) |
{ | { |
DisplayStack.Instance.RequestResize(); | DisplayStack.Instance.RequestResize(); |
} | } |
else | else |
{ | { |
this.Window.RequestResize(); | this.Window.RequestResize(); |
} | } |
} | } |
} | } |
#endregion | #endregion |
#region Drawing | #region Drawing |
#region Methods: public | #region Methods: public |
/// <summary> | /// <summary> |
/// Draws the section and all of the internal readout modules. | /// Draws the section and all of the internal readout modules. |
/// </summary> | /// </summary> |
public void Draw() | public void Draw() |
{ | { |
if (!this.IsVisible) | if (!this.IsVisible) |
{ | { |
return; | return; |
} | } |
if (!this.IsHud) | if (!this.IsHud) |
{ | { |
this.DrawSectionTitleBar(); | this.DrawSectionTitleBar(); |
} | } |
this.DrawReadoutModules(); | this.DrawReadoutModules(); |
} | } |
#endregion | #endregion |
#region Methods: private | #region Methods: private |
/// <summary> | /// <summary> |
/// Draws all the readout modules. | /// Draws all the readout modules. |
/// </summary> | /// </summary> |
private void DrawReadoutModules() | private void DrawReadoutModules() |
{ | { |
if (!this.IsHud) | if (!this.IsHud) |
{ | { |
GUILayout.BeginVertical(this.boxStyle); | GUILayout.BeginVertical(this.boxStyle); |
} | } |
this.LineCount = 0; | this.LineCount = 0; |
if (this.ReadoutModules.Count > 0) | if (this.ReadoutModules.Count > 0) |
{ | { |
foreach (var readout in this.ReadoutModules) | foreach (var readout in this.ReadoutModules) |
{ | { |
readout.LineCountStart(); | readout.LineCountStart(); |
readout.Draw(this); | readout.Draw(this); |
readout.LineCountEnd(); | readout.LineCountEnd(); |
this.LineCount += readout.LineCount; | this.LineCount += readout.LineCount; |
} | } |
} | } |
else | else |
{ | { |
GUILayout.Label("No readouts are installed.", this.messageStyle); | GUILayout.Label("No readouts are installed.", this.messageStyle); |
this.LineCount = 1; | this.LineCount = 1; |
} | } |
if (!this.IsHud) | if (!this.IsHud) |
{ | { |
GUILayout.EndVertical(); | GUILayout.EndVertical(); |
} | } |
} | } |
/// <summary> | /// <summary> |
/// Draws the section title and action buttons. | /// Draws the section title and action buttons. |
/// </summary> | /// </summary> |
private void DrawSectionTitleBar() | private void DrawSectionTitleBar() |
{ | { |
GUILayout.BeginHorizontal(); | GUILayout.BeginHorizontal(); |
GUILayout.Label(this.Name.ToUpper(), this.titleStyle); | GUILayout.Label(this.Name.ToUpper(), this.titleStyle); |
this.IsEditorVisible = GUILayout.Toggle(this.IsEditorVisible, "EDIT", this.buttonStyle); | this.IsEditorVisible = GUILayout.Toggle(this.IsEditorVisible, "EDIT", this.buttonStyle); |
this.IsFloating = GUILayout.Toggle(this.IsFloating, "FLOAT", this.buttonStyle); | this.IsFloating = GUILayout.Toggle(this.IsFloating, "FLOAT", this.buttonStyle); |
GUILayout.EndHorizontal(); | GUILayout.EndHorizontal(); |
} | } |
#endregion | #endregion |
#endregion | #endregion |
#region Public Methods | #region Public Methods |
public void ClearNullReadouts() | public void ClearNullReadouts() |
{ | { |
this.ReadoutModules.RemoveAll(r => r == null); | this.ReadoutModules.RemoveAll(r => r == null); |
} | } |
#endregion | #endregion |
} | } |
} | } |
// | // |
// Kerbal Engineer Redux | // Kerbal Engineer Redux |
// | // |
// Copyright (C) 2014 CYBUTEK | // Copyright (C) 2014 CYBUTEK |
// | // |
// This program is free software: you can redistribute it and/or modify | // This program is free software: you can redistribute it and/or modify |
// it under the terms of the GNU General Public License as published by | // it under the terms of the GNU General Public License as published by |
// the Free Software Foundation, either version 3 of the License, or | // the Free Software Foundation, either version 3 of the License, or |
// (at your option) any later version. | // (at your option) any later version. |
// | // |
// This program is distributed in the hope that it will be useful, | // This program is distributed in the hope that it will be useful, |
// but WITHOUT ANY WARRANTY; without even the implied warranty of | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// GNU General Public License for more details. | // GNU General Public License for more details. |
// | // |
// You should have received a copy of the GNU General Public License | // You should have received a copy of the GNU General Public License |
// along with this program. If not, see <http://www.gnu.org/licenses/>. | // along with this program. If not, see <http://www.gnu.org/licenses/>. |
// | // |
#region Using Directives | #region Using Directives |
using KerbalEngineer.Extensions; | using KerbalEngineer.Extensions; |
using KerbalEngineer.Helpers; | using KerbalEngineer.Helpers; |
using UnityEngine; | using UnityEngine; |
#endregion | #endregion |
namespace KerbalEngineer.Flight.Sections | namespace KerbalEngineer.Flight.Sections |
{ | { |
public class SectionWindow : MonoBehaviour | public class SectionWindow : MonoBehaviour |
{ | { |
#region Fields | #region Fields |
private bool resizeRequested; | private bool resizeRequested; |
private int windowId; | private int windowId; |
private Rect windowPosition; | private Rect windowPosition; |
#endregion | #endregion |
#region Properties | #region Properties |
/// <summary> | /// <summary> |
/// Gets and sets the parent section for the floating section window. | /// Gets and sets the parent section for the floating section window. |
/// </summary> | /// </summary> |
public SectionModule ParentSection { get; set; } | public SectionModule ParentSection { get; set; } |
/// <summary> | /// <summary> |
/// Gets and sets the window position. | /// Gets and sets the window position. |
/// </summary> | /// </summary> |
public Rect WindowPosition | public Rect WindowPosition |
{ | { |
get { return this.windowPosition; } | get { return this.windowPosition; } |
set { this.windowPosition = value; } | set { this.windowPosition = value; } |
} | } |
#endregion | #endregion |
#region GUIStyles | #region GUIStyles |
#region Fields | #region Fields |
private GUIStyle hudWindowBgStyle; | private GUIStyle hudWindowBgStyle; |
private GUIStyle hudWindowStyle; | private GUIStyle hudWindowStyle; |
private GUIStyle windowStyle; | private GUIStyle windowStyle; |
#endregion | #endregion |
/// <summary> | /// <summary> |
/// Initialises all the styles required for this object. | /// Initialises all the styles required for this object. |
/// </summary> | /// </summary> |
private void InitialiseStyles() | private void InitialiseStyles() |
{ | { |
this.windowStyle = new GUIStyle(HighLogic.Skin.window) | this.windowStyle = new GUIStyle(HighLogic.Skin.window) |
{ | { |
margin = new RectOffset(), | margin = new RectOffset(), |
padding = new RectOffset(5, 5, 0, 5), | padding = new RectOffset(5, 5, 0, 5), |
}; | }; |
this.hudWindowStyle = new GUIStyle(this.windowStyle) | this.hudWindowStyle = new GUIStyle(this.windowStyle) |
{ | { |
normal = | normal = |
{ | { |
background = null | background = null |
}, | }, |
onNormal = | onNormal = |
{ | { |
background = null | background = null |
}, | }, |
padding = new RectOffset(5, 5, 0, 8), | padding = new RectOffset(5, 5, 0, 8), |
}; | }; |
this.hudWindowBgStyle = new GUIStyle(this.hudWindowStyle) | this.hudWindowBgStyle = new GUIStyle(this.hudWindowStyle) |
{ | { |
normal = | normal = |
{ | { |
background = TextureHelper.CreateTextureFromColour(new Color(0.0f, 0.0f, 0.0f, 0.5f)) | background = TextureHelper.CreateTextureFromColour(new Color(0.0f, 0.0f, 0.0f, 0.5f)) |
}, | }, |
onNormal = | onNormal = |
{ | { |
background = TextureHelper.CreateTextureFromColour(new Color(0.0f, 0.0f, 0.0f, 0.5f)) | background = TextureHelper.CreateTextureFromColour(new Color(0.0f, 0.0f, 0.0f, 0.5f)) |
} | } |
}; | }; |
} | } |
private void OnSizeChanged() | private void OnSizeChanged() |
{ | { |
this.InitialiseStyles(); | this.InitialiseStyles(); |
this.RequestResize(); | this.RequestResize(); |
} | } |
#endregion | #endregion |
#region Drawing | #region Drawing |
/// <summary> | /// <summary> |
/// Called to draw the floating section window when the UI is enabled. | /// Called to draw the floating section window when the UI is enabled. |
/// </summary> | /// </summary> |
private void Draw() | private void OnGUI() |
{ | { |
if (this.ParentSection == null || !this.ParentSection.IsVisible || (DisplayStack.Instance.Hidden && !this.ParentSection.IsHud) || !FlightEngineerCore.IsDisplayable) | if (this.ParentSection == null || !this.ParentSection.IsVisible || (DisplayStack.Instance.Hidden && !this.ParentSection.IsHud) || !FlightEngineerCore.IsDisplayable) |
{ | { |
return; | return; |
} | } |
if (this.resizeRequested) | if (this.resizeRequested) |
{ | { |
this.windowPosition.width = 0; | this.windowPosition.width = 0; |
this.windowPosition.height = 0; | this.windowPosition.height = 0; |
this.resizeRequested = false; | this.resizeRequested = false; |
} | } |
GUI.skin = null; | GUI.skin = null; |
this.windowPosition = GUILayout.Window(this.windowId, this.windowPosition, this.Window, string.Empty, | this.windowPosition = GUILayout.Window(this.windowId, this.windowPosition, this.Window, string.Empty, |
(!this.ParentSection.IsHud || this.ParentSection.IsEditorVisible) ? this.windowStyle | (!this.ParentSection.IsHud || this.ParentSection.IsEditorVisible) ? this.windowStyle |
: this.ParentSection.IsHudBackground && this.ParentSection.LineCount > 0 | : this.ParentSection.IsHudBackground && this.ParentSection.LineCount > 0 |
? this.hudWindowBgStyle | ? this.hudWindowBgStyle |
: this.hudWindowStyle); | : this.hudWindowStyle); |
windowPosition = (ParentSection.IsHud) ? windowPosition.ClampInsideScreen() : windowPosition.ClampToScreen(); | windowPosition = (ParentSection.IsHud) ? windowPosition.ClampInsideScreen() : windowPosition.ClampToScreen(); |
this.ParentSection.FloatingPositionX = this.windowPosition.x; | this.ParentSection.FloatingPositionX = this.windowPosition.x; |
this.ParentSection.FloatingPositionY = this.windowPosition.y; | this.ParentSection.FloatingPositionY = this.windowPosition.y; |
} | } |
/// <summary> | /// <summary> |
/// Draws the floating section window. | /// Draws the floating section window. |
/// </summary> | /// </summary> |
private void Window(int windowId) | private void Window(int windowId) |
{ | { |
this.ParentSection.Draw(); | this.ParentSection.Draw(); |
if (!this.ParentSection.IsHud || this.ParentSection.IsEditorVisible) | if (!this.ParentSection.IsHud || this.ParentSection.IsEditorVisible) |
{ | { |
GUI.DragWindow(); | GUI.DragWindow(); |
} | } |
} | } |
#endregion | #endregion |
#region Destruction | #region Destruction |
/// <summary> | /// <summary> |
/// Runs when the object is destroyed. | /// Runs when the object is destroyed. |
/// </summary> | /// </summary> |
private void OnDestroy() | private void OnDestroy() |
{ | { |
RenderingManager.RemoveFromPostDrawQueue(0, this.Draw); | |
GuiDisplaySize.OnSizeChanged -= this.OnSizeChanged; | GuiDisplaySize.OnSizeChanged -= this.OnSizeChanged; |
} | } |
#endregion | #endregion |
#region Methods | #region Methods |
/// <summary> | /// <summary> |
/// Request that the floating section window's size is reset in the next draw call. | /// Request that the floating section window's size is reset in the next draw call. |
/// </summary> | /// </summary> |
public void RequestResize() | public void RequestResize() |
{ | { |
this.resizeRequested = true; | this.resizeRequested = true; |
} | } |
#endregion | #endregion |
#region Methods: private | #region Methods: private |
/// <summary> | /// <summary> |
/// Initialises the object's state on creation. | /// Initialises the object's state on creation. |
/// </summary> | /// </summary> |
private void Start() | private void Start() |
{ | { |
this.windowId = this.GetHashCode(); | this.windowId = this.GetHashCode(); |
this.InitialiseStyles(); | this.InitialiseStyles(); |
RenderingManager.AddToPostDrawQueue(0, this.Draw); | |
GuiDisplaySize.OnSizeChanged += this.OnSizeChanged; | GuiDisplaySize.OnSizeChanged += this.OnSizeChanged; |
} | } |
#endregion | #endregion |
} | } |
} | } |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> |
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
<PropertyGroup> | <PropertyGroup> |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
<ProjectGuid>{39806613-E0B7-46E0-89A6-A569EC538CBB}</ProjectGuid> | <ProjectGuid>{39806613-E0B7-46E0-89A6-A569EC538CBB}</ProjectGuid> |
<OutputType>Library</OutputType> | <OutputType>Library</OutputType> |
<AppDesignerFolder>Properties</AppDesignerFolder> | <AppDesignerFolder>Properties</AppDesignerFolder> |
<RootNamespace>KerbalEngineer</RootNamespace> | <RootNamespace>KerbalEngineer</RootNamespace> |
<AssemblyName>KerbalEngineer</AssemblyName> | <AssemblyName>KerbalEngineer</AssemblyName> |
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> | <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> |
<FileAlignment>512</FileAlignment> | <FileAlignment>512</FileAlignment> |
</PropertyGroup> | </PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
<DebugSymbols>false</DebugSymbols> | <DebugSymbols>false</DebugSymbols> |
<DebugType>none</DebugType> | <DebugType>none</DebugType> |
<Optimize>false</Optimize> | <Optimize>false</Optimize> |
<OutputPath>..\Output\KerbalEngineer\</OutputPath> | <OutputPath>..\Output\KerbalEngineer\</OutputPath> |
<DefineConstants>DEBUG;TRACE</DefineConstants> | <DefineConstants>DEBUG;TRACE</DefineConstants> |
<ErrorReport>prompt</ErrorReport> | <ErrorReport>prompt</ErrorReport> |
<WarningLevel>4</WarningLevel> | <WarningLevel>4</WarningLevel> |
<UseVSHostingProcess>false</UseVSHostingProcess> | <UseVSHostingProcess>false</UseVSHostingProcess> |
</PropertyGroup> | </PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
<DebugType>none</DebugType> | <DebugType>none</DebugType> |
<Optimize>true</Optimize> | <Optimize>true</Optimize> |
<OutputPath>..\Output\KerbalEngineer\</OutputPath> | <OutputPath>..\Output\KerbalEngineer\</OutputPath> |
<DefineConstants> | <DefineConstants> |
</DefineConstants> | </DefineConstants> |
<ErrorReport>prompt</ErrorReport> | <ErrorReport>prompt</ErrorReport> |
<WarningLevel>4</WarningLevel> | <WarningLevel>4</WarningLevel> |
<UseVSHostingProcess>false</UseVSHostingProcess> | <UseVSHostingProcess>false</UseVSHostingProcess> |
<AllowUnsafeBlocks>false</AllowUnsafeBlocks> | <AllowUnsafeBlocks>false</AllowUnsafeBlocks> |
</PropertyGroup> | </PropertyGroup> |
<ItemGroup> | <ItemGroup> |
<Compile Include="AppLauncherButton.cs" /> | <Compile Include="AppLauncherButton.cs" /> |
<Compile Include="AssetBundleLoader.cs" /> | <Compile Include="AssetBundleLoader.cs" /> |
<Compile Include="Control\IControlPanel.cs" /> | <Compile Include="Control\IControlPanel.cs" /> |
<Compile Include="Control\Panels\BuildOverlayPanel.cs" /> | <Compile Include="Control\Panels\BuildOverlayPanel.cs" /> |
<Compile Include="Control\Panels\BuildEngineerPanel.cs" /> | <Compile Include="Control\Panels\BuildEngineerPanel.cs" /> |
<Compile Include="Editor\BuildAdvanced.cs" /> | <Compile Include="Editor\BuildAdvanced.cs" /> |
<Compile Include="Editor\BuildAppLauncher.cs" /> | <Compile Include="Editor\BuildAppLauncher.cs" /> |
<Compile Include="Editor\BuildOverlay.cs" /> | <Compile Include="Editor\BuildOverlay.cs" /> |
<Compile Include="CelestialBodies.cs" /> | <Compile Include="CelestialBodies.cs" /> |
<Compile Include="Editor\BuildOverlayPartInfo.cs" /> | <Compile Include="Editor\BuildOverlayPartInfo.cs" /> |
<Compile Include="Editor\BuildOverlayResources.cs" /> | <Compile Include="Editor\BuildOverlayResources.cs" /> |
<Compile Include="Editor\BuildOverlayVessel.cs" /> | <Compile Include="Editor\BuildOverlayVessel.cs" /> |
<Compile Include="Editor\PartInfoItem.cs" /> | <Compile Include="Editor\PartInfoItem.cs" /> |
<Compile Include="Editor\ResourceInfoItem.cs" /> | <Compile Include="Editor\ResourceInfoItem.cs" /> |
<Compile Include="Extensions\FloatExtensions.cs" /> | <Compile Include="Extensions\FloatExtensions.cs" /> |
<Compile Include="Extensions\OrbitExtensions.cs" /> | <Compile Include="Extensions\OrbitExtensions.cs" /> |
<Compile Include="Extensions\StringExtensions.cs" /> | <Compile Include="Extensions\StringExtensions.cs" /> |
<Compile Include="Flight\ActionMenuGui.cs" /> | <Compile Include="Flight\ActionMenuGui.cs" /> |
<Compile Include="Flight\FlightAppLauncher.cs" /> | <Compile Include="Flight\FlightAppLauncher.cs" /> |
<Compile Include="Flight\Presets\Preset.cs" /> | <Compile Include="Flight\Presets\Preset.cs" /> |
<Compile Include="Flight\Readouts\Miscellaneous\SystemTime.cs" /> | <Compile Include="Flight\Readouts\Miscellaneous\SystemTime.cs" /> |
<Compile Include="Flight\Readouts\Miscellaneous\VectoredThrustToggle.cs" /> | <Compile Include="Flight\Readouts\Miscellaneous\VectoredThrustToggle.cs" /> |
<Compile Include="Flight\Readouts\Miscellaneous\Separator.cs" /> | <Compile Include="Flight\Readouts\Miscellaneous\Separator.cs" /> |
<Compile Include="Flight\Readouts\Miscellaneous\GuiSizeAdjustor.cs" /> | <Compile Include="Flight\Readouts\Miscellaneous\GuiSizeAdjustor.cs" /> |
<Compile Include="Flight\Readouts\Orbital\AngleToEquatorialDescendingNode.cs" /> | <Compile Include="Flight\Readouts\Orbital\AngleToEquatorialDescendingNode.cs" /> |
<Compile Include="Flight\Readouts\Orbital\AngleToEquatorialAscendingNode.cs" /> | <Compile Include="Flight\Readouts\Orbital\AngleToEquatorialAscendingNode.cs" /> |
<Compile Include="Flight\Readouts\Orbital\AngleToRetrograde.cs" /> | <Compile Include="Flight\Readouts\Orbital\AngleToRetrograde.cs" /> |
<Compile Include="Flight\Readouts\Orbital\AngleToPrograde.cs" /> | <Compile Include="Flight\Readouts\Orbital\AngleToPrograde.cs" /> |
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeRadialDeltaV.cs" /> | <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeRadialDeltaV.cs" /> |
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\ManoeuvreProcessor.cs" /> | <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\ManoeuvreProcessor.cs" /> |
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToHalfBurn.cs" /> | <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToHalfBurn.cs" /> |
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToManoeuvre.cs" /> | <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeTimeToManoeuvre.cs" /> |
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeHalfBurnTime.cs" /> | <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeHalfBurnTime.cs" /> |
<Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeBurnTime.cs" /> | <Compile Include="Flight\Readouts\Orbital\ManoeuvreNode\NodeBurnTime.cs" /&g |