From d3019510408a498806a634927bfd175e1bd92fea Mon Sep 17 00:00:00 2001 From: Jeremie Rossignol Date: Wed, 23 Mar 2016 14:10:38 -0600 Subject: [PATCH] Tutorial dialog. --- GameData/KerbalSports/KerbalSports.dll | Bin 38400 -> 46592 bytes source/KerbalSports/Fishing/FishingDriver.cs | 12 + source/KerbalSports/Fishing/ModuleFishing.cs | 2 +- source/KerbalSports/GenericDialog.cs | 269 +++++++++++++++++++ source/KerbalSports/KerbalSports.csproj | 1 + 5 files changed, 283 insertions(+), 1 deletion(-) create mode 100644 source/KerbalSports/GenericDialog.cs diff --git a/GameData/KerbalSports/KerbalSports.dll b/GameData/KerbalSports/KerbalSports.dll index 36fae3ac1b4f60c56253b0df5c99ce591f589d19..4b453682fc6fc87c353f6a7d1366a735288c640a 100644 GIT binary patch literal 46592 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.PortraitRenderMaterial; + } + return _portraitRenderMaterial; + } + } + + public enum Animation + { + idle, + idle_lookAround, + idle_sigh, + idle_wonder, + true_thumbUp, + true_thumbsUp, + true_nodA, + true_nodB, + true_smileA, + true_smileB, + false_disappointed, + false_disagreeA, + false_disagreeB, + false_disagreeC, + false_sadA, + } + + private Rect windowPos = new Rect(0, 0, 0, 0); + private static GUIStyle windowStyle; + public bool visible = true; + + // Kerbal Instructor public stuff + public string instructorName; + public Animation? animation; + + // Kerbal Instructor private stuff + KerbalInstructor instructor; + RenderTexture instructorTexture; + static float offset = 0.0f; + GameObject lightGameObject = null; + string characterName; + CharacterAnimationState animState = null; + float nextAnimTime = float.MaxValue; + private GUIStyle instructorLabelStyle; + + // Text stuff + public string text; + GUIStyle labelStyle; + + void OnGUI() + { + float w = 512f; + + if (windowPos.width == 0 && windowPos.height == 0) + { + float x = Screen.width / 2.0f - w; + float h = 600f; + float y = Math.Max(144f, Screen.height/2.0f - h); + + windowPos = new Rect(x, y, w, h); + } + + if (visible) + { + UnityEngine.GUI.skin = HighLogic.Skin; + windowPos = GUILayout.Window(GetType().FullName.GetHashCode(), + windowPos, WindowFunction, "Kerbal Sports", windowStyle ?? HighLogic.Skin.window, GUILayout.Width(w)); + } + } + + void WindowFunction(int windowID) + { + if (windowStyle == null) + { + windowStyle = new GUIStyle(HighLogic.Skin.window); + windowStyle.alignment = TextAnchor.UpperLeft; + windowStyle.active.textColor = Color.white; + windowStyle.focused.textColor = Color.white; + windowStyle.hover.textColor = Color.white; + windowStyle.normal.textColor = Color.white; + windowStyle.onActive.textColor = Color.white; + windowStyle.onFocused.textColor = Color.white; + windowStyle.onHover.textColor = Color.white; + windowStyle.onNormal.textColor = Color.white; + } + + GUILayout.BeginVertical(); + + GUILayout.BeginHorizontal(); + GUILayout.Space(8); + + if (instructor == null && !string.IsNullOrEmpty(instructorName)) + { + instructor = ((GameObject)UnityEngine.Object.Instantiate(AssetBase.GetPrefab(instructorName))).GetComponent(); + + instructorTexture = new RenderTexture(128, 128, 8); + instructor.instructorCamera.targetTexture = instructorTexture; + instructor.instructorCamera.ResetAspect(); + + // TODO - this not needed in 1.1 as of current build + // Remove the lights for Gene/Wernher + /* + Light mainlight = instructor.GetComponentsInChildren(true).Where(l => l.name == "mainlight").FirstOrDefault(); + if (mainlight != null) + { + UnityEngine.Object.Destroy(mainlight); + } + Light backlight = instructor.GetComponentsInChildren(true).Where(l => l.name == "backlight").FirstOrDefault(); + if (backlight != null) + { + UnityEngine.Object.Destroy(backlight); + }*/ + + offset += 25f; + instructor.gameObject.transform.Translate(offset, 0.0f, 0.0f); + + // Add a light + lightGameObject = new GameObject("Dialog Box Light"); + Light lightComp = lightGameObject.AddComponent(); + lightComp.color = new Color(0.4f, 0.4f, 0.4f); + lightGameObject.transform.position = instructor.instructorCamera.transform.position; + + if (string.IsNullOrEmpty(characterName)) + { + characterName = instructor.CharacterName; + } + + instructor.SetupAnimations(); + + if (animation != null) + { + switch (animation.Value) + { + case Animation.idle: + animState = instructor.anim_idle; + break; + case Animation.idle_lookAround: + animState = instructor.anim_idle_lookAround; + break; + case Animation.idle_sigh: + animState = instructor.anim_idle_sigh; + break; + case Animation.idle_wonder: + animState = instructor.anim_idle_wonder; + break; + case Animation.true_thumbUp: + animState = instructor.anim_true_thumbUp; + break; + case Animation.true_thumbsUp: + animState = instructor.anim_true_thumbsUp; + break; + case Animation.true_nodA: + animState = instructor.anim_true_nodA; + break; + case Animation.true_nodB: + animState = instructor.anim_true_nodB; + break; + case Animation.true_smileA: + animState = instructor.anim_true_smileA; + break; + case Animation.true_smileB: + animState = instructor.anim_true_smileB; + break; + case Animation.false_disappointed: + animState = instructor.anim_false_disappointed; + break; + case Animation.false_disagreeA: + animState = instructor.anim_false_disagreeA; + break; + case Animation.false_disagreeB: + animState = instructor.anim_false_disagreeB; + break; + case Animation.false_disagreeC: + animState = instructor.anim_false_disagreeC; + break; + case Animation.false_sadA: + animState = instructor.anim_false_sadA; + break; + } + + // Give a short delay before playing the animation + nextAnimTime = Time.fixedTime + 0.3f; + } + } + + if (instructor != null) + { + // Play the animation + if (nextAnimTime <= Time.fixedTime) + { + instructor.PlayEmote(animState); + animState.audioClip = null; + nextAnimTime = Time.fixedTime + animState.clip.length; + } + + GUILayout.BeginVertical(GUILayout.Width(128)); + GUILayout.Box("", GUILayout.Width(128), GUILayout.Height(128)); + if (Event.current.type == EventType.Repaint) + { + Rect rect = GUILayoutUtility.GetLastRect(); + rect = new Rect(rect.x + 1f, rect.y + 1f, rect.width - 2f, rect.height - 2f); + Graphics.DrawTexture(rect, instructorTexture, new Rect(0.0f, 0.0f, 1f, 1f), 124, 124, 124, 124, Color.white, PortraitRenderMaterial); + } + + DisplayName(128); + + GUILayout.EndVertical(); + } + + // Display text + if (text != null) + { + if (labelStyle == null) + { + labelStyle = new GUIStyle(UnityEngine.GUI.skin.label); + labelStyle.alignment = TextAnchor.UpperLeft; + labelStyle.richText = true; + labelStyle.normal.textColor = new Color(0.9f, 0.9f, 0.9f); + labelStyle.fontSize = 16; + } + + GUILayout.Label(text, labelStyle, GUILayout.ExpandWidth(true)); + } + + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if (GUILayout.Button("OK", GUILayout.MinWidth(80))) + { + visible = false; + } + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + GUILayout.EndVertical(); + + UnityEngine.GUI.DragWindow(); + } + + protected void DisplayName(float width) + { + if (instructorLabelStyle == null) + { + instructorLabelStyle = new GUIStyle(UnityEngine.GUI.skin.label); + instructorLabelStyle.alignment = TextAnchor.UpperCenter; + instructorLabelStyle.normal.textColor = new Color(0.729f, 0.855f, 0.333f); + instructorLabelStyle.fontStyle = FontStyle.Bold; + } + + GUILayout.Label(characterName, instructorLabelStyle, GUILayout.Width(width)); + } + } +} diff --git a/source/KerbalSports/KerbalSports.csproj b/source/KerbalSports/KerbalSports.csproj index d8acd3b..e324eb1 100644 --- a/source/KerbalSports/KerbalSports.csproj +++ b/source/KerbalSports/KerbalSports.csproj @@ -64,6 +64,7 @@ +