Show part info tooltips for highlighted parts.
Show part info tooltips for highlighted parts.

 Binary files a/Assets/Plugins/KerbalEngineer.Unity.dll and b/Assets/Plugins/KerbalEngineer.Unity.dll differ
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &115950 --- !u!1 &115950
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22465080} - 224: {fileID: 22465080}
- 222: {fileID: 22224666} - 222: {fileID: 22224666}
- 114: {fileID: 11463020} - 114: {fileID: 11463020}
- 114: {fileID: 11473370} - 114: {fileID: 11473370}
- 114: {fileID: 11452824} - 114: {fileID: 11452824}
m_Layer: 5 m_Layer: 5
m_Name: Titlebar m_Name: Titlebar
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &147848 --- !u!1 &147848
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22498172} - 224: {fileID: 22498172}
- 222: {fileID: 22241544} - 222: {fileID: 22241544}
- 114: {fileID: 11472350} - 114: {fileID: 11472350}
- 114: {fileID: 11482324} - 114: {fileID: 11482324}
- 114: {fileID: 11478236} - 114: {fileID: 11478236}
m_Layer: 5 m_Layer: 5
m_Name: Close m_Name: Close
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &153670 --- !u!1 &153670
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22461526} - 224: {fileID: 22461526}
- 222: {fileID: 22240064} - 222: {fileID: 22240064}
- 114: {fileID: 11470056} - 114: {fileID: 11470056}
- 114: {fileID: 11400662} - 114: {fileID: 11400662}
- 114: {fileID: 11453036} - 114: {fileID: 11453036}
- 225: {fileID: 22579498} - 225: {fileID: 22579498}
- 114: {fileID: 11464560} - 114: {fileID: 11464560}
- 114: {fileID: 11409628} - 114: {fileID: 11409628}
m_Layer: 5 m_Layer: 5
m_Name: Window m_Name: Window
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &158314 --- !u!1 &158314
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22418124} - 224: {fileID: 22418124}
- 222: {fileID: 22254660} - 222: {fileID: 22254660}
- 114: {fileID: 11457960} - 114: {fileID: 11457960}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &173368 --- !u!1 &173368
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22447524} - 224: {fileID: 22447524}
- 114: {fileID: 11403752} - 114: {fileID: 11403752}
- 114: {fileID: 11450476} - 114: {fileID: 11450476}
m_Layer: 5 m_Layer: 5
m_Name: Padding m_Name: Padding
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &182900 --- !u!1 &182900
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22456320} - 224: {fileID: 22456320}
- 114: {fileID: 11481312} - 114: {fileID: 11481312}
- 114: {fileID: 11443188} - 114: {fileID: 11443188}
- 222: {fileID: 22252016} - 222: {fileID: 22252016}
- 114: {fileID: 11454192} - 114: {fileID: 11454192}
- 114: {fileID: 11486264} - 114: {fileID: 11486264}
m_Layer: 5 m_Layer: 5
m_Name: Content m_Name: Content
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!1 &194536 --- !u!1 &194536
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 224: {fileID: 22474276} - 224: {fileID: 22474276}
- 222: {fileID: 22295052} - 222: {fileID: 22295052}
- 114: {fileID: 11464580} - 114: {fileID: 11464580}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!114 &11400662 --- !u!114 &11400662
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 153670} m_GameObject: {fileID: 153670}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 604723565, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} m_Script: {fileID: 604723565, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Title: {fileID: 11464580} m_Title: {fileID: 11464580}
m_Content: {fileID: 22456320} m_Content: {fileID: 22456320}
--- !u!114 &11403752 --- !u!114 &11403752
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 173368} m_GameObject: {fileID: 173368}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Padding: m_Padding:
m_Left: 5 m_Left: 5
m_Right: 5 m_Right: 5
m_Top: 5 m_Top: 5
m_Bottom: 5 m_Bottom: 5
m_ChildAlignment: 0 m_ChildAlignment: 0
m_Spacing: 0 m_Spacing: 0
m_ChildForceExpandWidth: 1 m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1 m_ChildForceExpandHeight: 1
--- !u!114 &11409628 --- !u!114 &11409628
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 153670} m_GameObject: {fileID: 153670}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_HorizontalFit: 0 m_HorizontalFit: 0
m_VerticalFit: 2 m_VerticalFit: 2
--- !u!114 &11443188 --- !u!114 &11443188
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 182900} m_GameObject: {fileID: 182900}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_HorizontalFit: 0 m_HorizontalFit: 0
m_VerticalFit: 2 m_VerticalFit: 2
--- !u!114 &11450476 --- !u!114 &11450476
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 173368} m_GameObject: {fileID: 173368}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_HorizontalFit: 0 m_HorizontalFit: 0
m_VerticalFit: 2 m_VerticalFit: 2
--- !u!114 &11452824 --- !u!114 &11452824
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 115950} m_GameObject: {fileID: 115950}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_IgnoreLayout: 0 m_IgnoreLayout: 0
m_MinWidth: -1 m_MinWidth: -1
m_MinHeight: -1 m_MinHeight: -1
m_PreferredWidth: -1 m_PreferredWidth: -1
m_PreferredHeight: 20 m_PreferredHeight: 20
m_FlexibleWidth: -1 m_FlexibleWidth: -1
m_FlexibleHeight: -1 m_FlexibleHeight: -1
--- !u!114 &11453036 --- !u!114 &11453036
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 153670} m_GameObject: {fileID: 153670}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_ElementType: 1 m_ElementType: 1
--- !u!114 &11454192 --- !u!114 &11454192
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 182900} m_GameObject: {fileID: 182900}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11457960 --- !u!114 &11457960
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158314} m_GameObject: {fileID: 158314}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 12 m_FontSize: 12
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 4 m_Alignment: 4
m_RichText: 0 m_RichText: 0
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: X m_Text: X
--- !u!114 &11463020 --- !u!114 &11463020
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 115950} m_GameObject: {fileID: 115950}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .600000024, g: .600000024, b: .600000024, a: .784313738} m_Color: {r: .600000024, g: .600000024, b: .600000024, a: .784313738}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11464560 --- !u!114 &11464560
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 153670} m_GameObject: {fileID: 153670}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Padding: m_Padding:
m_Left: 0 m_Left: 0
m_Right: 0 m_Right: 0
m_Top: 0 m_Top: 0
m_Bottom: 0 m_Bottom: 0
m_ChildAlignment: 0 m_ChildAlignment: 0
m_Spacing: 0 m_Spacing: 0
m_ChildForceExpandWidth: 1 m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0 m_ChildForceExpandHeight: 0
--- !u!114 &11464580 --- !u!114 &11464580
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194536} m_GameObject: {fileID: 194536}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: .800000072, g: 1, b: 0, a: 1} m_Color: {r: .800000072, g: 1, b: 0, a: 1}
m_RaycastTarget: 0 m_RaycastTarget: 0
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 12 m_FontSize: 12
m_FontStyle: 1 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 10
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 3 m_Alignment: 3
m_RichText: 0 m_RichText: 0
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: New Text m_Text: New Text
--- !u!114 &11470056 --- !u!114 &11470056
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 153670} m_GameObject: {fileID: 153670}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0} m_Sprite: {fileID: 0}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11472350 --- !u!114 &11472350
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 147848} m_GameObject: {fileID: 147848}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1 m_Type: 1
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
m_FillMethod: 4 m_FillMethod: 4
m_FillAmount: 1 m_FillAmount: 1
m_FillClockwise: 1 m_FillClockwise: 1
m_FillOrigin: 0 m_FillOrigin: 0
--- !u!114 &11473370 --- !u!114 &11473370
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 115950} m_GameObject: {fileID: 115950}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_ElementType: 1 m_ElementType: 1
--- !u!114 &11478236 --- !u!114 &11478236
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 147848} m_GameObject: {fileID: 147848}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_ElementType: 3 m_ElementType: 3
--- !u!114 &11481312 --- !u!114 &11481312
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 182900} m_GameObject: {fileID: 182900}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Padding: m_Padding:
m_Left: 5 m_Left: 5
m_Right: 5 m_Right: 5
m_Top: 5 m_Top: 5
m_Bottom: 5 m_Bottom: 5
m_ChildAlignment: 0 m_ChildAlignment: 0
m_Spacing: 2 m_Spacing: 2
m_ChildForceExpandWidth: 1 m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0 m_ChildForceExpandHeight: 0
--- !u!114 &11482324 --- !u!114 &11482324
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 147848} m_GameObject: {fileID: 147848}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Navigation: m_Navigation:
m_Mode: 3 m_Mode: 3
m_SelectOnUp: {fileID: 0} m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0} m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0} m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0} m_SelectOnRight: {fileID: 0}
m_Transition: 0 m_Transition: 0
m_Colors: m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1}
m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1}
m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814}
m_ColorMultiplier: 1 m_ColorMultiplier: 1
m_FadeDuration: .100000001 m_FadeDuration: .100000001
m_SpriteState: m_SpriteState:
m_HighlightedSprite: {fileID: 0} m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0} m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0} m_DisabledSprite: {fileID: 0}
m_AnimationTriggers: m_AnimationTriggers:
m_NormalTrigger: Normal m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 11472350} m_TargetGraphic: {fileID: 11472350}
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 11400662} - m_Target: {fileID: 11400662}
m_MethodName: Close m_MethodName: Close
m_Mode: 1 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0 m_IntArgument: 0
m_FloatArgument: 0 m_FloatArgument: 0
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null Culture=neutral, PublicKeyToken=null
--- !u!114 &11486264 --- !u!114 &11486264
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 182900} m_GameObject: {fileID: 182900}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} m_Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_ElementType: 2 m_ElementType: 2
--- !u!222 &22224666 --- !u!222 &22224666
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 115950} m_GameObject: {fileID: 115950}
--- !u!222 &22240064 --- !u!222 &22240064
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 153670} m_GameObject: {fileID: 153670}
--- !u!222 &22241544 --- !u!222 &22241544
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 147848} m_GameObject: {fileID: 147848}
--- !u!222 &22252016 --- !u!222 &22252016
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 182900} m_GameObject: {fileID: 182900}
--- !u!222 &22254660 --- !u!222 &22254660
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158314} m_GameObject: {fileID: 158314}
--- !u!222 &22295052 --- !u!222 &22295052
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194536} m_GameObject: {fileID: 194536}
--- !u!224 &22418124 --- !u!224 &22418124
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158314} m_GameObject: {fileID: 158314}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22498172} m_Father: {fileID: 22498172}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22447524 --- !u!224 &22447524
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 173368} m_GameObject: {fileID: 173368}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22456320} - {fileID: 22456320}
m_Father: {fileID: 22461526} m_Father: {fileID: 22461526}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22456320 --- !u!224 &22456320
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 182900} m_GameObject: {fileID: 182900}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22447524} m_Father: {fileID: 22447524}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22461526 --- !u!224 &22461526
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 153670} m_GameObject: {fileID: 153670}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22465080} - {fileID: 22465080}
- {fileID: 22447524} - {fileID: 22447524}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: .5, y: .5} m_AnchorMin: {x: .5, y: .5}
m_AnchorMax: {x: .5, y: .5} m_AnchorMax: {x: .5, y: .5}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 0} m_SizeDelta: {x: 100, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22465080 --- !u!224 &22465080
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 115950} m_GameObject: {fileID: 115950}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22474276} - {fileID: 22474276}
- {fileID: 22498172} - {fileID: 22498172}
m_Father: {fileID: 22461526} m_Father: {fileID: 22461526}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: .5, y: 1} m_Pivot: {x: .5, y: 1}
--- !u!224 &22474276 --- !u!224 &22474276
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 194536} m_GameObject: {fileID: 194536}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 22465080} m_Father: {fileID: 22465080}
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 2.5, y: 0} m_AnchoredPosition: {x: 2.5, y: 0}
m_SizeDelta: {x: -5, y: 0} m_SizeDelta: {x: -5, y: 0}
m_Pivot: {x: .5, y: .5} m_Pivot: {x: .5, y: .5}
--- !u!224 &22498172 --- !u!224 &22498172
RectTransform: RectTransform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 147848} m_GameObject: {fileID: 147848}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 22418124} - {fileID: 22418124}
m_Father: {fileID: 22465080} m_Father: {fileID: 22465080}
m_RootOrder: 1 m_RootOrder: 1
m_AnchorMin: {x: 1, y: 0} m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: -2, y: 0}
m_SizeDelta: {x: 20, y: 0} m_SizeDelta: {x: 16, y: -4}
m_Pivot: {x: 1, y: .5} m_Pivot: {x: 1, y: .5}
--- !u!225 &22579498 --- !u!225 &22579498
CanvasGroup: CanvasGroup:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 153670} m_GameObject: {fileID: 153670}
m_Enabled: 1 m_Enabled: 1
m_Alpha: 1 m_Alpha: 1
m_Interactable: 1 m_Interactable: 1
m_BlocksRaycasts: 1 m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0 m_IgnoreParentGroups: 0
--- !u!1001 &100100000 --- !u!1001 &100100000
Prefab: Prefab:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
serializedVersion: 2 serializedVersion: 2
m_Modification: m_Modification:
m_TransformParent: {fileID: 0} m_TransformParent: {fileID: 0}
m_Modifications: m_Modifications:
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Padding.m_Left propertyPath: m_Padding.m_Left
value: 5 value: 5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Padding.m_Right propertyPath: m_Padding.m_Right
value: 5 value: 5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 0} - target: {fileID: 0}
propertyPath: m_Spacing propertyPath: m_Spacing
value: 2 value: 2
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_ParentPrefab: {fileID: 0} m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 153670} m_RootGameObject: {fileID: 153670}
m_IsPrefabParent: 1 m_IsPrefabParent: 1
   
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2014 CYBUTEK // Copyright (C) 2016 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
//  
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
namespace KerbalEngineer.Editor namespace KerbalEngineer.Editor
{ {
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Extensions; using Extensions;
using Helpers; using Helpers;
using UnityEngine; using UnityEngine;
   
public class BuildOverlayPartInfo : MonoBehaviour public class BuildOverlayPartInfo : MonoBehaviour
{ {
private static bool clickToOpen = true; private static bool clickToOpen = true;
private static ModuleResource generatorResource; private static ModuleResource generatorResource;
private static ModuleAlternator moduleAlternator; private static ModuleAlternator moduleAlternator;
private static ModuleDataTransmitter moduleDataTransmitter; private static ModuleDataTransmitter moduleDataTransmitter;
private static ModuleDeployableSolarPanel moduleDeployableSolarPanel; private static ModuleDeployableSolarPanel moduleDeployableSolarPanel;
private static ModuleGenerator moduleGenerator; private static ModuleGenerator moduleGenerator;
private static ModuleGimbal moduleGimbal; private static ModuleGimbal moduleGimbal;
private static ModuleParachute moduleParachute; private static ModuleParachute moduleParachute;
private static ModuleRCS moduleRcs; private static ModuleRCS moduleRcs;
private static ModuleReactionWheel moduleReactionWheel; private static ModuleReactionWheel moduleReactionWheel;
private static ModuleResource moduleResource; private static ModuleResource moduleResource;
private static ModuleScienceExperiment moduleScienceExperiment; private static ModuleScienceExperiment moduleScienceExperiment;
private static bool namesOnly; private static bool namesOnly;
private static Part part; private static Part part;
private static PartInfoItem partInfoItem; private static PartInfoItem partInfoItem;
private static PartResource partResource; private static PartResource partResource;
private static Propellant propellant; private static Propellant propellant;
private static PartExtensions.ProtoModuleDecoupler protoModuleDecoupler; private static PartExtensions.ProtoModuleDecoupler protoModuleDecoupler;
private static PartExtensions.ProtoModuleEngine protoModuleEngine; private static PartExtensions.ProtoModuleEngine protoModuleEngine;
private static bool visible = true; private static bool visible = true;
   
private readonly List<PartInfoItem> infoItems = new List<PartInfoItem>(); private readonly List<PartInfoItem> infoItems = new List<PartInfoItem>();
   
private Rect position; private Rect position;
private Part selectedPart; private Part selectedPart;
private bool showInfo; private bool showInfo;
private bool skipFrame; private bool skipFrame;
   
public static bool ClickToOpen public static bool ClickToOpen
{ {
get get
{ {
return clickToOpen; return clickToOpen;
} }
set set
{ {
clickToOpen = value; clickToOpen = value;
} }
} }
   
public static bool Hidden { get; set; } public static bool Hidden { get; set; }
   
public static bool NamesOnly public static bool NamesOnly
{ {
get get
{ {
return namesOnly; return namesOnly;
} }
set set
{ {
namesOnly = value; namesOnly = value;
} }
} }
   
public static bool Visible public static bool Visible
{ {
get get
{ {
return visible; return visible;
} }
set set
{ {
visible = value; visible = value;
} }
} }
   
protected void OnGUI() protected void OnGUI()
{ {
try try
{ {
if (!Visible || Hidden || selectedPart == null) if (!Visible || Hidden || selectedPart == null)
{ {
return; return;
} }
   
position = GUILayout.Window(GetInstanceID(), position, Window, String.Empty, BuildOverlay.WindowStyle); position = GUILayout.Window(GetInstanceID(), position, Window, string.Empty, BuildOverlay.WindowStyle);
} }
catch (Exception ex) catch (Exception ex)
   
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
protected void Update() protected void Update()
{ {
try try
{ {
if (!Visible || Hidden || EditorLogic.RootPart == null || EditorLogic.fetch.editorScreen != EditorScreen.Parts) if (!Visible || Hidden || EditorLogic.RootPart == null || EditorLogic.fetch.editorScreen != EditorScreen.Parts)
{ {
return; return;
} }
   
position.x = Mathf.Clamp(Input.mousePosition.x + 16.0f, 0.0f, Screen.width - position.width); position.x = Mathf.Clamp(Input.mousePosition.x + 16.0f, 0.0f, Screen.width - position.width);
position.y = Mathf.Clamp(Screen.height - Input.mousePosition.y, 0.0f, Screen.height - position.height); position.y = Mathf.Clamp(Screen.height - Input.mousePosition.y, 0.0f, Screen.height - position.height);
if (position.x < Input.mousePosition.x + 20.0f) if (position.x < Input.mousePosition.x + 20.0f)
{ {
position.y = Mathf.Clamp(position.y + 20.0f, 0.0f, Screen.height - position.height); position.y = Mathf.Clamp(position.y + 20.0f, 0.0f, Screen.height - position.height);
} }
if (position.x < Input.mousePosition.x + 16.0f && position.y < Screen.height - Input.mousePosition.y) if (position.x < Input.mousePosition.x + 16.0f && position.y < Screen.height - Input.mousePosition.y)
{ {
position.x = Input.mousePosition.x - 3 - position.width; position.x = Input.mousePosition.x - 3 - position.width;
} }
   
part = EditorLogic.fetch.ship.parts.Find(p => p.stackIcon.Highlighted) ?? EditorLogic.SelectedPart; RaycastHit rayHit;
  if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit))
  {
  part = rayHit.transform.GetComponent<Part>();
  }
  else
  {
  part = EditorLogic.fetch.ship.parts.Find(p => p.highlighter.highlighted) ?? EditorLogic.SelectedPart;
  }
   
if (part != null) if (part != null)
{ {
if (!part.Equals(selectedPart)) if (!part.Equals(selectedPart))
{ {
selectedPart = part; selectedPart = part;
ResetInfo(); ResetInfo();
} }
if (NamesOnly || skipFrame) if (NamesOnly || skipFrame)
{ {
skipFrame = false; skipFrame = false;
return; return;
} }
   
if (!showInfo && Input.GetMouseButtonDown(2)) if (!showInfo && Input.GetMouseButtonDown(2))
{ {
showInfo = true; showInfo = true;
} }
else if (ClickToOpen && showInfo && Input.GetMouseButtonDown(2)) else if (ClickToOpen && showInfo && Input.GetMouseButtonDown(2))
{ {
ResetInfo(); ResetInfo();
} }
   
if (showInfo) if (showInfo)
{ {
PartInfoItem.Release(infoItems); PartInfoItem.Release(infoItems);
infoItems.Clear(); infoItems.Clear();
SetCostInfo(); SetCostInfo();
SetMassItems(); SetMassItems();
SetResourceItems(); SetResourceItems();
SetEngineInfo(); SetEngineInfo();
SetAlternatorInfo(); SetAlternatorInfo();
SetGimbalInfo(); SetGimbalInfo();
SetRcsInfo(); SetRcsInfo();
SetParachuteInfo(); SetParachuteInfo();
SetSasInfo(); SetSasInfo();
SetReactionWheelInfo(); SetReactionWheelInfo();
SetSolarPanelInfo(); SetSolarPanelInfo();
SetGeneratorInfo(); SetGeneratorInfo();
SetDecouplerInfo(); SetDecouplerInfo();
SetTransmitterInfo(); SetTransmitterInfo();
SetScienceExperimentInfo(); SetScienceExperimentInfo();
SetScienceContainerInfo(); SetScienceContainerInfo();
SetSingleActivationInfo(); SetSingleActivationInfo();
} }
} }
else else
{ {
selectedPart = null; selectedPart = null;
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
   
private void ResetInfo() private void ResetInfo()
{ {
showInfo = !clickToOpen; showInfo = !clickToOpen;
skipFrame = true; skipFrame = true;
position.width = namesOnly || clickToOpen ? 0.0f : 200.0f; position.width = namesOnly || clickToOpen ? 0.0f : 200.0f;
position.height = 0.0f; position.height = 0.0f;
} }
   
private void SetAlternatorInfo() private void SetAlternatorInfo()
{ {
moduleAlternator = selectedPart.GetModule<ModuleAlternator>(); moduleAlternator = selectedPart.GetModule<ModuleAlternator>();
if (moduleAlternator != null) if (moduleAlternator != null)
{ {
infoItems.Add(PartInfoItem.Create("Alternator")); infoItems.Add(PartInfoItem.Create("Alternator"));
for (int i = 0; i < moduleAlternator.outputResources.Count; ++i) for (int i = 0; i < moduleAlternator.outputResources.Count; ++i)
{ {
moduleResource = moduleAlternator.outputResources[i]; moduleResource = moduleAlternator.outputResources[i];
infoItems.Add(PartInfoItem.Create("\t" + moduleResource.name, moduleResource.rate.ToRate())); infoItems.Add(PartInfoItem.Create("\t" + moduleResource.name, moduleResource.rate.ToRate()));
} }
} }
} }
   
private void SetCostInfo() private void SetCostInfo()
{ {
infoItems.Add(PartInfoItem.Create("Cost", Units.ConcatF(selectedPart.GetCostDry(), selectedPart.GetCostWet()))); infoItems.Add(PartInfoItem.Create("Cost", Units.ConcatF(selectedPart.GetCostDry(), selectedPart.GetCostWet())));
} }
   
private void SetDecouplerInfo() private void SetDecouplerInfo()
{ {
protoModuleDecoupler = selectedPart.GetProtoModuleDecoupler(); protoModuleDecoupler = selectedPart.GetProtoModuleDecoupler();
if (protoModuleDecoupler != null) if (protoModuleDecoupler != null)
{ {
infoItems.Add(PartInfoItem.Create("Ejection Force", protoModuleDecoupler.EjectionForce.ToForce())); infoItems.Add(PartInfoItem.Create("Ejection Force", protoModuleDecoupler.EjectionForce.ToForce()));
if (protoModuleDecoupler.IsOmniDecoupler) if (protoModuleDecoupler.IsOmniDecoupler)
{ {
infoItems.Add(PartInfoItem.Create("Omni-directional")); infoItems.Add(PartInfoItem.Create("Omni-directional"));
} }
} }
} }
   
private void SetEngineInfo() private void SetEngineInfo()
{ {
protoModuleEngine = selectedPart.GetProtoModuleEngine(); protoModuleEngine = selectedPart.GetProtoModuleEngine();
if (protoModuleEngine != null) if (protoModuleEngine != null)
{ {
infoItems.Add(PartInfoItem.Create("Thrust", Units.ToForce(protoModuleEngine.MinimumThrust, protoModuleEngine.MaximumThrust))); infoItems.Add(PartInfoItem.Create("Thrust", Units.ToForce(protoModuleEngine.MinimumThrust, protoModuleEngine.MaximumThrust)));
infoItems.Add(PartInfoItem.Create("Isp", Units.ConcatF(protoModuleEngine.GetSpecificImpulse(1.0f), protoModuleEngine.GetSpecificImpulse(0.0f)) + "s")); infoItems.Add(PartInfoItem.Create("Isp", Units.ConcatF(protoModuleEngine.GetSpecificImpulse(1.0f), protoModuleEngine.GetSpecificImpulse(0.0f)) + "s"));
if (protoModuleEngine.Propellants.Count > 0) if (protoModuleEngine.Propellants.Count > 0)
{ {
infoItems.Add(PartInfoItem.Create("Propellants")); infoItems.Add(PartInfoItem.Create("Propellants"));
   
float totalRatio = 0.0f; float totalRatio = 0.0f;
for (int i = 0; i < protoModuleEngine.Propellants.Count; ++i) for (int i = 0; i < protoModuleEngine.Propellants.Count; ++i)
{ {
totalRatio = totalRatio + protoModuleEngine.Propellants[i].ratio; totalRatio = totalRatio + protoModuleEngine.Propellants[i].ratio;
} }
   
for (int i = 0; i < protoModuleEngine.Propellants.Count; ++i) for (int i = 0; i < protoModuleEngine.Propellants.Count; ++i)
{ {
propellant = protoModuleEngine.Propellants[i]; propellant = protoModuleEngine.Propellants[i];
infoItems.Add(PartInfoItem.Create("\t" + propellant.name, (propellant.ratio / totalRatio).ToPercent())); infoItems.Add(PartInfoItem.Create("\t" + propellant.name, (propellant.ratio / totalRatio).ToPercent()));
} }
} }
} }
} }
   
private void SetGeneratorInfo() private void SetGeneratorInfo()
{ {
moduleGenerator = selectedPart.GetModule<ModuleGenerator>(); moduleGenerator = selectedPart.GetModule<ModuleGenerator>();
if (moduleGenerator != null) if (moduleGenerator != null)
{ {
if (moduleGenerator.inputList.Count > 0) if (moduleGenerator.inputList.Count > 0)
{ {
infoItems.Add(PartInfoItem.Create("Generator Input")); infoItems.Add(PartInfoItem.Create("Generator Input"));
for (int i = 0; i < moduleGenerator.inputList.Count; ++i) for (int i = 0; i < moduleGenerator.inputList.Count; ++i)
{ {
generatorResource = moduleGenerator.inputList[i]; generatorResource = moduleGenerator.inputList[i];
infoItems.Add(PartInfoItem.Create("\t" + generatorResource.name, generatorResource.rate.ToRate())); infoItems.Add(PartInfoItem.Create("\t" + generatorResource.name, generatorResource.rate.ToRate()));
} }
} }
if (moduleGenerator.outputList.Count > 0) if (moduleGenerator.outputList.Count > 0)
{ {
infoItems.Add(PartInfoItem.Create("Generator Output")); infoItems.Add(PartInfoItem.Create("Generator Output"));
for (int i = 0; i < moduleGenerator.outputList.Count; ++i) for (int i = 0; i < moduleGenerator.outputList.Count; ++i)
{ {
generatorResource = moduleGenerator.outputList[i]; generatorResource = moduleGenerator.outputList[i];
infoItems.Add(PartInfoItem.Create("\t" + generatorResource.name, generatorResource.rate.ToRate())); infoItems.Add(PartInfoItem.Create("\t" + generatorResource.name, generatorResource.rate.ToRate()));
} }
} }
if (moduleGenerator.isAlwaysActive) if (moduleGenerator.isAlwaysActive)
{ {
infoItems.Add(PartInfoItem.Create("Generator is Always Active")); infoItems.Add(PartInfoItem.Create("Generator is Always Active"));
} }
} }
} }
   
private void SetGimbalInfo() private void SetGimbalInfo()
{ {
moduleGimbal = selectedPart.GetModule<ModuleGimbal>(); moduleGimbal = selectedPart.GetModule<ModuleGimbal>();
if (moduleGimbal != null) if (moduleGimbal != null)
{ {
infoItems.Add(PartInfoItem.Create("Thrust Vectoring", moduleGimbal.gimbalRange.ToString("F2"))); infoItems.Add(PartInfoItem.Create("Thrust Vectoring", moduleGimbal.gimbalRange.ToString("F2")));
} }
} }
   
private void SetMassItems() private void SetMassItems()
{ {
if (selectedPart.physicalSignificance == Part.PhysicalSignificance.FULL) if (selectedPart.physicalSignificance == Part.PhysicalSignificance.FULL)
{ {
infoItems.Add(PartInfoItem.Create("Mass", Units.ToMass(selectedPart.GetDryMass(), selectedPart.GetWetMass()))); infoItems.Add(PartInfoItem.Create("Mass", Units.ToMass(selectedPart.GetDryMass(), selectedPart.GetWetMass())));
} }
} }
   
private void SetParachuteInfo() private void SetParachuteInfo()
{ {
moduleParachute = selectedPart.GetModule<ModuleParachute>(); moduleParachute = selectedPart.GetModule<ModuleParachute>();
if (moduleParachute != null) if (moduleParachute != null)
{ {
infoItems.Add(PartInfoItem.Create("Deployed Drag", Units.ConcatF(moduleParachute.semiDeployedDrag, moduleParachute.fullyDeployedDrag))); infoItems.Add(PartInfoItem.Create("Deployed Drag", Units.ConcatF(moduleParachute.semiDeployedDrag, moduleParachute.fullyDeployedDrag)));
infoItems.Add(PartInfoItem.Create("Deployment Altitude", moduleParachute.deployAltitude.ToDistance())); infoItems.Add(PartInfoItem.Create("Deployment Altitude", moduleParachute.deployAltitude.ToDistance()));
infoItems.Add(PartInfoItem.Create("Deployment Pressure", moduleParachute.minAirPressureToOpen.ToString("F2"))); infoItems.Add(PartInfoItem.Create("Deployment Pressure", moduleParachute.minAirPressureToOpen.ToString("F2")));
} }
} }
   
private void SetRcsInfo() private void SetRcsInfo()
{ {
moduleRcs = selectedPart.GetModule<ModuleRCS>(); moduleRcs = selectedPart.GetModule<ModuleRCS>();
if (moduleRcs != null) if (moduleRcs != null)
{ {
infoItems.Add(PartInfoItem.Create("Thruster Power", moduleRcs.thrusterPower.ToForce())); infoItems.Add(PartInfoItem.Create("Thruster Power", moduleRcs.thrusterPower.ToForce()));
infoItems.Add(PartInfoItem.Create("Specific Impulse", Units.ConcatF(moduleRcs.atmosphereCurve.Evaluate(1.0f), moduleRcs.atmosphereCurve.Evaluate(0.0f)) + "s")); infoItems.Add(PartInfoItem.Create("Specific Impulse", Units.ConcatF(moduleRcs.atmosphereCurve.Evaluate(1.0f), moduleRcs.atmosphereCurve.Evaluate(0.0f)) + "s"));
} }
} }
   
private void SetReactionWheelInfo() private void SetReactionWheelInfo()
{ {
moduleReactionWheel = selectedPart.GetModule<ModuleReactionWheel>(); moduleReactionWheel = selectedPart.GetModule<ModuleReactionWheel>();
if (moduleReactionWheel != null) if (moduleReactionWheel != null)
{ {
infoItems.Add(PartInfoItem.Create("Reaction Wheel Torque")); infoItems.Add(PartInfoItem.Create("Reaction Wheel Torque"));
infoItems.Add(PartInfoItem.Create("\tPitch", moduleReactionWheel.PitchTorque.ToTorque())); infoItems.Add(PartInfoItem.Create("\tPitch", moduleReactionWheel.PitchTorque.ToTorque()));
infoItems.Add(PartInfoItem.Create("\tRoll", moduleReactionWheel.RollTorque.ToTorque())); infoItems.Add(PartInfoItem.Create("\tRoll", moduleReactionWheel.RollTorque.ToTorque()));
infoItems.Add(PartInfoItem.Create("\tYaw", moduleReactionWheel.YawTorque.ToTorque())); infoItems.Add(PartInfoItem.Create("\tYaw", moduleReactionWheel.YawTorque.ToTorque()));
for (int i = 0; i < moduleReactionWheel.inputResources.Count; ++i) for (int i = 0; i < moduleReactionWheel.inputResources.Count; ++i)
{ {
moduleResource = moduleReactionWheel.inputResources[i]; moduleResource = moduleReactionWheel.inputResources[i];
infoItems.Add(PartInfoItem.Create("\t" + moduleResource.name, moduleResource.rate.ToRate())); infoItems.Add(PartInfoItem.Create("\t" + moduleResource.name, moduleResource.rate.ToRate()));
} }
} }
} }
   
private void SetResourceItems() private void SetResourceItems()
{ {
bool visibleResources = false; bool visibleResources = false;
for (int i = 0; i < selectedPart.Resources.list.Count; ++i) for (int i = 0; i < selectedPart.Resources.list.Count; ++i)
{ {
if (selectedPart.Resources.list[i].hideFlow == false) if (selectedPart.Resources.list[i].hideFlow == false)
{ {
visibleResources = true; visibleResources = true;
break; break;
} }
} }
if (visibleResources) if (visibleResources)
{ {
infoItems.Add(PartInfoItem.Create("Resources")); infoItems.Add(PartInfoItem.Create("Resources"));
for (int i = 0; i < selectedPart.Resources.list.Count; ++i) for (int i = 0; i < selectedPart.Resources.list.Count; ++i)
{ {
partResource = selectedPart.Resources.list[i]; partResource = selectedPart.Resources.list[i];
   
if (partResource.hideFlow == false) if (partResource.hideFlow == false)
{ {
infoItems.Add(partResource.GetDensity() > 0 infoItems.Add(partResource.GetDensity() > 0
? PartInfoItem.Create("\t" + partResource.info.name, "(" + partResource.GetMass().ToMass() + ") " + partResource.amount.ToString("F1")) ? PartInfoItem.Create("\t" + partResource.info.name, "(" + partResource.GetMass().ToMass() + ") " + partResource.amount.ToString("F1"))
: PartInfoItem.Create("\t" + partResource.info.name, partResource.amount.ToString("F1"))); : PartInfoItem.Create("\t" + partResource.info.name, partResource.amount.ToString("F1")));
} }
} }
} }
} }
   
private void SetSasInfo() private void SetSasInfo()
{ {
if (selectedPart.HasModule<ModuleSAS>()) if (selectedPart.HasModule<ModuleSAS>())
{ {
infoItems.Add(PartInfoItem.Create("SAS Equiped")); infoItems.Add(PartInfoItem.Create("SAS Equiped"));
} }
} }
   
private void SetScienceContainerInfo() private void SetScienceContainerInfo()
{ {
if (selectedPart.HasModule<ModuleScienceContainer>()) if (selectedPart.HasModule<ModuleScienceContainer>())
{ {
infoItems.Add(PartInfoItem.Create("Science Container")); infoItems.Add(PartInfoItem.Create("Science Container"));
} }
} }
   
private void SetScienceExperimentInfo() private void SetScienceExperimentInfo()
{ {
moduleScienceExperiment = selectedPart.GetModule<ModuleScienceExperiment>(); moduleScienceExperiment = selectedPart.GetModule<ModuleScienceExperiment>();
if (moduleScienceExperiment != null) if (moduleScienceExperiment != null)
{ {
infoItems.Add(PartInfoItem.Create("Science Experiment", moduleScienceExperiment.experimentActionName)); infoItems.Add(PartInfoItem.Create("Science Experiment", moduleScienceExperiment.experimentActionName));
infoItems.Add(PartInfoItem.Create("\tTransmit Efficiency", moduleScienceExperiment.xmitDataScalar.ToPercent())); infoItems.Add(PartInfoItem.Create("\tTransmit Efficiency", moduleScienceExperiment.xmitDataScalar.ToPercent()));
if (moduleScienceExperiment.rerunnable == false) if (moduleScienceExperiment.rerunnable == false)
{ {
infoItems.Add(PartInfoItem.Create("\tSingle Usage")); infoItems.Add(PartInfoItem.Create("\tSingle Usage"));
} }
} }
} }
   
private void SetSingleActivationInfo() private void SetSingleActivationInfo()
{ {
if (selectedPart.HasModule<ModuleAnimateGeneric>(m => m.isOneShot)) if (selectedPart.HasModule<ModuleAnimateGeneric>(m => m.isOneShot))
{ {
infoItems.Add(PartInfoItem.Create("Single Activation")); infoItems.Add(PartInfoItem.Create("Single Activation"));
} }
} }
   
private void SetSolarPanelInfo() private void SetSolarPanelInfo()
{ {
moduleDeployableSolarPanel = selectedPart.GetModule<ModuleDeployableSolarPanel>(); moduleDeployableSolarPanel = selectedPart.GetModule<ModuleDeployableSolarPanel>();
if (moduleDeployableSolarPanel != null) if (moduleDeployableSolarPanel != null)
{ {
infoItems.Add(PartInfoItem.Create("Charge Rate", moduleDeployableSolarPanel.chargeRate.ToRate())); infoItems.Add(PartInfoItem.Create("Charge Rate", moduleDeployableSolarPanel.chargeRate.ToRate()));
if (moduleDeployableSolarPanel.isBreakable) if (moduleDeployableSolarPanel.isBreakable)
{ {
infoItems.Add(PartInfoItem.Create("Breakable")); infoItems.Add(PartInfoItem.Create("Breakable"));
} }
if (moduleDeployableSolarPanel.sunTracking) if (moduleDeployableSolarPanel.sunTracking)
{ {
infoItems.Add(PartInfoItem.Create("Sun Tracking")); infoItems.Add(PartInfoItem.Create("Sun Tracking"));
} }
} }
} }
   
private void SetTransmitterInfo() private void SetTransmitterInfo()
{ {
moduleDataTransmitter = selectedPart.GetModule<ModuleDataTransmitter>(); moduleDataTransmitter = selectedPart.GetModule<ModuleDataTransmitter>();
if (moduleDataTransmitter != null) if (moduleDataTransmitter != null)
{ {
infoItems.Add(PartInfoItem.Create("Packet Size", moduleDataTransmitter.packetSize.ToString("F2") + " Mits")); infoItems.Add(PartInfoItem.Create("Packet Size", moduleDataTransmitter.packetSize.ToString("F2") + " Mits"));
infoItems.Add(PartInfoItem.Create("Bandwidth", (moduleDataTransmitter.packetInterval * moduleDataTransmitter.packetSize).ToString("F2") + "Mits/sec")); infoItems.Add(PartInfoItem.Create("Bandwidth", (moduleDataTransmitter.packetInterval * moduleDataTransmitter.packetSize).ToString("F2") + "Mits/sec"));
infoItems.Add(PartInfoItem.Create(moduleDataTransmitter.requiredResource, moduleDataTransmitter.packetResourceCost.ToString("F2") + "/Packet")); infoItems.Add(PartInfoItem.Create(moduleDataTransmitter.requiredResource, moduleDataTransmitter.packetResourceCost.ToString("F2") + "/Packet"));
} }
} }
   
private void Window(int windowId) private void Window(int windowId)
{ {
try try
{ {
GUILayout.Label(selectedPart.partInfo.title, BuildOverlay.TitleStyle); GUILayout.Label(selectedPart.partInfo.title, BuildOverlay.TitleStyle);
if (showInfo) if (showInfo)
{ {
for (int i = 0; i < infoItems.Count; ++i) for (int i = 0; i < infoItems.Count; ++i)
{ {
partInfoItem = infoItems[i]; partInfoItem = infoItems[i];
GUILayout.Space(2.0f); GUILayout.Space(2.0f);
GUILayout.BeginHorizontal(); GUILayout.BeginHorizontal();
if (partInfoItem.Value != null) if (partInfoItem.Value != null)
{ {
GUILayout.Label(partInfoItem.Name + ":", BuildOverlay.NameStyle); GUILayout.Label(partInfoItem.Name + ":", BuildOverlay.NameStyle);
GUILayout.Space(25.0f); GUILayout.Space(25.0f);
GUILayout.Label(partInfoItem.Value, BuildOverlay.ValueStyle); GUILayout.Label(partInfoItem.Value, BuildOverlay.ValueStyle);
} }
else else
{ {
GUILayout.Label(partInfoItem.Name, BuildOverlay.NameStyle); GUILayout.Label(partInfoItem.Name, BuildOverlay.NameStyle);
} }
GUILayout.EndHorizontal(); GUILayout.EndHorizontal();
} }
} }
else if (clickToOpen && namesOnly == false) else if (clickToOpen && namesOnly == false)
{ {
GUILayout.Space(2.0f); GUILayout.Space(2.0f);
GUILayout.Label("Click middle mouse to show more info...", BuildOverlay.NameStyle); GUILayout.Label("Click middle mouse to show more info...", BuildOverlay.NameStyle);
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Exception(ex); Logger.Exception(ex);
} }
} }
} }
} }
// //
// Kerbal Engineer Redux // Kerbal Engineer Redux
// //
// Copyright (C) 2014 CYBUTEK // Copyright (C) 2014 CYBUTEK
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version. // (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
// //
   
#region Using Directives #region Using Directives
   
using System;  
using System.Collections;  
using System.Collections.Generic;  
using System.IO;  
using System.Reflection;  
   
using UnityEngine;  
   
#endregion #endregion
   
namespace KerbalEngineer namespace KerbalEngineer
{ {
  using System;
  using System.Collections;
  using System.Collections.Generic;
  using System.IO;
  using System.Reflection;
  using UnityEngine;
   
[KSPAddon(KSPAddon.Startup.Instantly, false)] [KSPAddon(KSPAddon.Startup.Instantly, false)]
public class Logger : MonoBehaviour public class Logger : MonoBehaviour
{ {
  #region Fields
   
  private static readonly List<string[]> messages = new List<string[]>();
   
  #endregion
   
#region Constants #region Constants
   
private static readonly string fileName; private static readonly string fileName;
private static readonly AssemblyName assemblyName; private static readonly AssemblyName assemblyName;
   
#endregion  
   
#region Fields  
   
private static readonly List<string[]> messages = new List<string[]>();  
   
#endregion #endregion
   
#region Initialisation #region Initialisation
   
static Logger() static Logger()
{ {
assemblyName = Assembly.GetExecutingAssembly().GetName(); assemblyName = Assembly.GetExecutingAssembly().GetName();
fileName = Path.ChangeExtension(Assembly.GetExecutingAssembly().Location, "log"); fileName = Path.ChangeExtension(Assembly.GetExecutingAssembly().Location, "log");
File.Delete(fileName); File.Delete(fileName);
   
lock (messages) lock (messages)
{ {
messages.Add(new[] {"Executing: " + assemblyName.Name + " - " + assemblyName.Version}); messages.Add(new[] {"Executing: " + assemblyName.Name + " - " + assemblyName.Version});
messages.Add(new[] {"Assembly: " + Assembly.GetExecutingAssembly().Location}); messages.Add(new[] {"Assembly: " + Assembly.GetExecutingAssembly().Location});
} }
Blank(); Blank();
} }
   
private void Awake() private void Awake()
{ {
DontDestroyOnLoad(this); DontDestroyOnLoad(this);
} }
   
#endregion #endregion
   
#region Printing #region Printing
   
public static void Blank() public static void Blank()
{ {
lock (messages) lock (messages)
{ {
messages.Add(new string[] {}); messages.Add(new string[] {});
} }
} }
   
public static void Log(object obj) public static void Log(object obj)
{ {
lock (messages) lock (messages)
{ {
try try
{ {
if (obj is IEnumerable) messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, GetObjString(obj)});
  }
  catch (Exception ex)
  {
  Exception(ex);
  }
  }
  }
   
  public static void Log(string name, object obj)
  {
  lock (messages)
  {
  try
  {
  messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, name + "\n" + GetObjString(obj)});
  }
  catch (Exception ex)
  {
  Exception(ex);
  }
  }
  }
   
  private static string GetObjString(object obj, int tabs = 0)
  {
  string objString;
  string tabString = string.Empty;
  for (int i = 0; i < tabs; i++)
  {
  tabString += " ";
  }
   
  if (obj != null)
  {
  objString = tabString + obj;
   
  IEnumerable items = obj as IEnumerable;
  if (items != null)
  {
  foreach (object item in items)
{ {
messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, obj.ToString()}); objString += "\n" + GetObjString(item, tabs + 1);
foreach (var o in obj as IEnumerable)  
{  
messages.Add(new[] {"\t", o.ToString()});  
}  
} }
else }
{ }
messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, obj.ToString()}); else
} {
} objString = "Null";
catch (Exception ex) }
{  
Exception(ex); return objString;
}  
}  
}  
   
public static void Log(string name, object obj)  
{  
lock (messages)  
{  
try  
{  
if (obj is IEnumerable)  
{  
messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, name});  
foreach (var o in obj as IEnumerable)  
{  
messages.Add(new[] {"\t", o.ToString()});  
}  
}  
else  
{  
messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, obj.ToString()});  
}  
}  
catch (Exception ex)  
{  
Exception(ex);  
}  
}  
} }
   
public static void Log(string message) public static void Log(string message)
{ {
lock (messages) lock (messages)
{ {
messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, message}); messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, message});
} }
} }
   
public static void Warning(string message) public static void Warning(string message)
{ {
lock (messages) lock (messages)
{ {
messages.Add(new[] {"Warning " + DateTime.Now.TimeOfDay, message}); messages.Add(new[] {"Warning " + DateTime.Now.TimeOfDay, message});
} }
} }
   
public static void Error(string message) public static void Error(string message)
{ {
lock (messages) lock (messages)
{ {
messages.Add(new[] {"Error " + DateTime.Now.TimeOfDay, message}); messages.Add(new[] {"Error " + DateTime.Now.TimeOfDay, message});
} }
} }
   
public static void Exception(Exception ex) public static void Exception(Exception ex)
{ {
lock (messages) lock (messages)
{ {
messages.Add(new[] {"Exception " + DateTime.Now.TimeOfDay, ex.Message}); messages.Add(new[] {"Exception " + DateTime.Now.TimeOfDay, ex.Message});
messages.Add(new[] {string.Empty, ex.StackTrace}); messages.Add(new[] {string.Empty, ex.StackTrace});
Blank(); Blank();
} }
} }
   
public static void Exception(Exception ex, string location) public static void Exception(Exception ex, string location)
{ {
lock (messages) lock (messages)
{ {
messages.Add(new[] {"Exception " + DateTime.Now.TimeOfDay, location + " // " + ex.Message}); messages.Add(new[] {"Exception " + DateTime.Now.TimeOfDay, location + " // " + ex.Message});
messages.Add(new[] {string.Empty, ex.StackTrace}); messages.Add(new[] {string.Empty, ex.StackTrace});
Blank(); Blank();
} }
} }
   
#endregion #endregion
   
#region Flushing #region Flushing
   
public static void Flush() public static void Flush()
{ {
lock (messages) lock (messages)
{ {
if (messages.Count > 0) if (messages.Count > 0)
{ {
using (var file = File.AppendText(fileName)) using (StreamWriter file = File.AppendText(fileName))
{ {
foreach (var message in messages) foreach (string[] message in messages)
{ {
file.WriteLine(message.Length > 0 ? message.Length > 1 ? "[" + message[0] + "]: " + message[1] : message[0] : string.Empty); file.WriteLine(message.Length > 0 ? message.Length > 1 ? "[" + message[0] + "]: " + message[1] : message[0] : string.Empty);
if (message.Length > 0) if (message.Length > 0)
{ {
print(message.Length > 1 ? assemblyName.Name + " -> " + message[1] : assemblyName.Name + " -> " + message[0]); print(message.Length > 1 ? assemblyName.Name + " -> " + message[1] : assemblyName.Name + " -> " + message[0]);
} }
} }
} }
messages.Clear(); messages.Clear();
} }
} }
} }
   
private void LateUpdate() private void LateUpdate()
{ {
Flush(); Flush();
} }
   
#endregion #endregion
   
#region Destruction #region Destruction
   
private void OnDestroy() private void OnDestroy()
{ {
Flush(); Flush();
} }
   
~Logger() ~Logger()
{ {
Flush(); Flush();
} }
   
#endregion #endregion
} }
} }
 Binary files a/Output/KerbalEngineer/KerbalEngineer and b/Output/KerbalEngineer/KerbalEngineer differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.Unity.dll and b/Output/KerbalEngineer/KerbalEngineer.Unity.dll differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ
 Binary files a/Output/KerbalEngineer/prefabs and b/Output/KerbalEngineer/prefabs differ
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 3210499501 CRC: 247544766
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 82a83dd0d6754676160fa0160fdd2f82 Hash: 6c0345330dfdd65954f99b5bf002cb14
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: f08f4b318e7775189aba716ae3ef79f9 Hash: f08f4b318e7775189aba716ae3ef79f9
HashAppended: 0 HashAppended: 0
ClassTypes: ClassTypes:
- Class: 1 - Class: 1
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 21 - Class: 21
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 28 - Class: 28
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 48 - Class: 48
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 114 - Class: 114
Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 1741964061, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 571159103, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} Script: {fileID: 571159103, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
- Class: 114 - Class: 114
Script: {fileID: -1842827791, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} Script: {fileID: -1842827791, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 644905346, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} Script: {fileID: 644905346, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} Script: {fileID: 323546239, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
- Class: 114 - Class: 114
Script: {fileID: 604723565, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3} Script: {fileID: 604723565, guid: 4ffb1bf511e31af45bdeaa3d272d49d4, type: 3}
- Class: 115 - Class: 115
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 128 - Class: 128
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 213 - Class: 213
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 222 - Class: 222
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 224 - Class: 224
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 225 - Class: 225
Script: {instanceID: 0} Script: {instanceID: 0}
Assets: Assets:
- Assets/Prefabs/Setting.prefab - Assets/Prefabs/Setting.prefab
- Assets/Prefabs/SettingToggle.prefab - Assets/Prefabs/SettingToggle.prefab
- Assets/Prefabs/SettingButton.prefab - Assets/Prefabs/SettingButton.prefab
- Assets/Prefabs/FlightMenuSection.prefab - Assets/Prefabs/FlightMenuSection.prefab
- Assets/Prefabs/FlightMenu.prefab - Assets/Prefabs/FlightMenu.prefab
- Assets/Prefabs/Window.prefab - Assets/Prefabs/Window.prefab
Dependencies: [] Dependencies: []