Description:
Factor out dialog code.
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
@@ -18,3 +18,4 | |||||
|
18 | /Users/alys/repos/isometric-park-fna/FNA/obj/Debug/FNA.csproj.CoreCompileInputs.cache |
|
18 | /Users/alys/repos/isometric-park-fna/FNA/obj/Debug/FNA.csproj.CoreCompileInputs.cache |
|
19 | /Users/alys/repos/isometric-park-fna/FNA/obj/Debug/FNA.dll |
|
19 | /Users/alys/repos/isometric-park-fna/FNA/obj/Debug/FNA.dll |
|
20 | /Users/alys/repos/isometric-park-fna/FNA/obj/Debug/FNA.pdb |
|
20 | /Users/alys/repos/isometric-park-fna/FNA/obj/Debug/FNA.pdb |
|
|
21 | /Users/alys/repos/isometric-park-fna/FNA/obj/Debug/FNA.csprojAssemblyReference.cache |
|
1 | NO CONTENT: modified file, binary diff hidden |
|
NO CONTENT: modified file, binary diff hidden |
|
1 | NO CONTENT: modified file, binary diff hidden |
|
NO CONTENT: modified file, binary diff hidden |
|
1 | NO CONTENT: modified file, binary diff hidden |
|
NO CONTENT: modified file, binary diff hidden |
@@ -1,6 +1,10 | |||||
|
1 | using System; |
|
1 | using System; |
|
|
2 | using ImGuiNET; | ||
|
2 | using isometricparkfna.Utils; |
|
3 | using isometricparkfna.Utils; |
|
3 |
|
4 | ||
|
|
5 | using Num = System.Numerics; | ||
|
|
6 | |||
|
|
7 | |||
|
4 | namespace isometricparkfna |
|
8 | namespace isometricparkfna |
|
5 | { |
|
9 | { |
|
6 |
|
10 | ||
@@ -28,6 +32,87 | |||||
|
28 |
|
32 | ||
|
29 | }) |
|
33 | }) |
|
30 | ); |
|
34 | ); |
|
31 | } |
|
35 | |
|
|
36 | public static Node<DialogOption> testTree = new Node<DialogOption>( | ||
|
|
37 | new DialogOption | ||
|
|
38 | { | ||
|
|
39 | response = "Hi.", | ||
|
|
40 | }, | ||
|
|
41 | |||
|
|
42 | new Node<DialogOption>[]{ | ||
|
|
43 | new Node<DialogOption>(new DialogOption {choice="Hi.", response="*walks away*" }), | ||
|
|
44 | new Node<DialogOption>(new DialogOption {choice="What's up?", response="Not much!" }) | ||
|
|
45 | |||
|
|
46 | } | ||
|
|
47 | ); | ||
|
|
48 | |||
|
|
49 | } | ||
|
|
50 | |||
|
|
51 | public static class DialogInterface | ||
|
|
52 | { | ||
|
|
53 | public static Node<DialogOption> RenderDialog(string title, ref bool show, ref bool paused, ImFontPtr font, Node<DialogOption> currentNode) | ||
|
|
54 | { | ||
|
|
55 | if (show) | ||
|
|
56 | { | ||
|
|
57 | ImGui.PushFont(font); | ||
|
|
58 | |||
|
|
59 | ImGui.PushStyleVar(ImGuiStyleVar.FrameRounding, 0.0f); | ||
|
|
60 | ImGui.PushStyleVar(ImGuiStyleVar.WindowRounding, 0.0f); | ||
|
|
61 | ImGui.PushStyleVar(ImGuiStyleVar.FrameBorderSize, 1.0f); | ||
|
|
62 | ImGui.PushStyleColor(ImGuiCol.WindowBg, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); | ||
|
|
63 | |||
|
|
64 | var title_bar = new Num.Vector4(0.65f, 0.65f, 0.65f, 1f); | ||
|
|
65 | ImGui.PushStyleColor(ImGuiCol.TitleBg, title_bar); | ||
|
|
66 | ImGui.PushStyleColor(ImGuiCol.TitleBgActive, title_bar); | ||
|
|
67 | ImGui.PushStyleColor(ImGuiCol.TitleBgCollapsed, title_bar); | ||
|
|
68 | |||
|
|
69 | ImGui.PushStyleColor(ImGuiCol.Border, new Num.Vector4(0f, 0f, 0f, 1f)); | ||
|
|
70 | ImGui.PushStyleColor(ImGuiCol.BorderShadow, new Num.Vector4(0f, 0f, 0f, 0.5f)); | ||
|
|
71 | |||
|
|
72 | |||
|
|
73 | |||
|
|
74 | ImGui.PushStyleColor(ImGuiCol.Button, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); | ||
|
|
75 | ImGui.PushStyleColor(ImGuiCol.Text, new Num.Vector4(0f, 0f, 0f, 1f)); | ||
|
|
76 | ImGui.Begin(title, ref show); | ||
|
|
77 | |||
|
|
78 | |||
|
|
79 | ImGui.TextWrapped(currentNode.data.response); | ||
|
|
80 | if ((currentNode.children != null) && currentNode.children.Length > 0) | ||
|
|
81 | { | ||
|
|
82 | foreach (Node<DialogOption> child in currentNode.children) | ||
|
|
83 | { | ||
|
|
84 | if (ImGui.Button(child.data.choice)) | ||
|
|
85 | { | ||
|
|
86 | return child; | ||
|
|
87 | } | ||
|
|
88 | } | ||
|
|
89 | } | ||
|
|
90 | else | ||
|
|
91 | { | ||
|
|
92 | if (ImGui.Button("Okay")) | ||
|
|
93 | { | ||
|
|
94 | show = false; | ||
|
|
95 | paused = false; | ||
|
|
96 | //return null; | ||
|
|
97 | } | ||
|
|
98 | } | ||
|
|
99 | |||
|
|
100 | if (currentNode.data.response == null) | ||
|
|
101 | { | ||
|
|
102 | show = false; | ||
|
|
103 | paused = false; | ||
|
|
104 | //return null; | ||
|
|
105 | |||
|
|
106 | } | ||
|
|
107 | ImGui.End(); | ||
|
|
108 | ImGui.PopStyleVar(3); | ||
|
|
109 | ImGui.PopStyleColor(8); | ||
|
|
110 | ImGui.PopFont(); | ||
|
|
111 | } | ||
|
|
112 | return currentNode; | ||
|
|
113 | |||
|
|
114 | } | ||
|
|
115 | } | ||
|
|
116 | |||
|
32 |
|
117 | ||
|
33 | } |
|
118 | } |
@@ -15,7 +15,6 | |||||
|
15 | using static isometricparkfna.TileMap; |
|
15 | using static isometricparkfna.TileMap; |
|
16 | using isometricparkfna.Utils; |
|
16 | using isometricparkfna.Utils; |
|
17 |
|
17 | ||
|
18 | using Num = System.Numerics; |
|
||
|
19 |
|
18 | ||
|
20 |
|
19 | ||
|
21 |
|
20 | ||
@@ -73,6 +72,7 | |||||
|
73 |
|
72 | ||
|
74 | private bool showGrid = true; |
|
73 | private bool showGrid = true; |
|
75 | private string output; |
|
74 | private string output; |
|
|
75 | private bool showSecond = true; | ||
|
76 |
|
76 | ||
|
77 | private static void Main(string[] args) |
|
77 | private static void Main(string[] args) |
|
78 | { |
|
78 | { |
@@ -776,60 +776,11 | |||||
|
776 | // new DialogOption{ response="Make sure that you keep visitors happy and the budget in the black! You're currently getting an annual grant out of my budget—it'd sure be nice if you park were self-sufficient so we could drop that expense!", choice="And I need to keep the forest healthy, too, right?" }, |
|
776 | // new DialogOption{ response="Make sure that you keep visitors happy and the budget in the black! You're currently getting an annual grant out of my budget—it'd sure be nice if you park were self-sufficient so we could drop that expense!", choice="And I need to keep the forest healthy, too, right?" }, |
|
777 | // new DialogOption{ response="Oh yeah, of course.", choice="..." }}; |
|
777 | // new DialogOption{ response="Oh yeah, of course.", choice="..." }}; |
|
778 |
|
778 | ||
|
779 | if (showInitial) |
|
||
|
780 | { |
|
||
|
781 | ImGui.PushFont(debugWindow.monoFont); |
|
||
|
782 |
|
|||
|
783 | ImGui.PushStyleVar(ImGuiStyleVar.FrameRounding, 0.0f); |
|
||
|
784 | ImGui.PushStyleVar(ImGuiStyleVar.WindowRounding, 0.0f); |
|
||
|
785 | ImGui.PushStyleVar(ImGuiStyleVar.FrameBorderSize, 1.0f); |
|
||
|
786 | ImGui.PushStyleColor(ImGuiCol.WindowBg, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); |
|
||
|
787 |
|
|||
|
788 | var title_bar = new Num.Vector4(0.65f, 0.65f, 0.65f, 1f); |
|
||
|
789 | ImGui.PushStyleColor(ImGuiCol.TitleBg, title_bar); |
|
||
|
790 | ImGui.PushStyleColor(ImGuiCol.TitleBgActive, title_bar); |
|
||
|
791 | ImGui.PushStyleColor(ImGuiCol.TitleBgCollapsed, title_bar); |
|
||
|
792 |
|
|||
|
793 | ImGui.PushStyleColor(ImGuiCol.Border, new Num.Vector4(0f, 0f, 0f, 1f)); |
|
||
|
794 | ImGui.PushStyleColor(ImGuiCol.BorderShadow, new Num.Vector4(0f, 0f, 0f, 0.5f)); |
|
||
|
795 |
|
|||
|
796 |
|
|||
|
797 |
|
|||
|
798 | ImGui.PushStyleColor(ImGuiCol.Button, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); |
|
||
|
799 | ImGui.PushStyleColor(ImGuiCol.Text, new Num.Vector4(0f, 0f, 0f, 1f)); |
|
||
|
800 | ImGui.Begin("The Governor", ref showInitial); |
|
||
|
801 |
|
|||
|
802 |
|
779 | ||
|
803 | ImGui.TextWrapped(currentNode.data.response); |
|
780 | this.currentNode = DialogInterface.RenderDialog("The Governor", ref this.showInitial, |
|
804 | if ((currentNode.children != null) && currentNode.children.Length > 0) |
|
781 | ref this.simulation.paused, debugWindow.monoFont, this.currentNode); |
|
805 | { |
|
||
|
806 | foreach (Node<DialogOption> child in currentNode.children) |
|
||
|
807 | { |
|
||
|
808 | if (ImGui.Button(child.data.choice)) |
|
||
|
809 | { |
|
||
|
810 | currentNode = child; |
|
||
|
811 | } |
|
||
|
812 | } |
|
||
|
813 | } |
|
||
|
814 | else |
|
||
|
815 | { |
|
||
|
816 | if (ImGui.Button("Okay")) { |
|
||
|
817 | this.showInitial = false; |
|
||
|
818 | this.simulation.paused = false; |
|
||
|
819 | } |
|
||
|
820 | } |
|
||
|
821 |
|
782 | ||
|
822 | if (currentNode.data.response == null) |
|
783 | |
|
823 | { |
|
||
|
824 | this.showInitial = false; |
|
||
|
825 | this.simulation.paused = false; |
|
||
|
826 |
|
|||
|
827 | } |
|
||
|
828 | ImGui.End(); |
|
||
|
829 | ImGui.PopStyleVar(3); |
|
||
|
830 | ImGui.PopStyleColor(8); |
|
||
|
831 | ImGui.PopFont(); |
|
||
|
832 | } |
|
||
|
833 |
|
784 | ||
|
834 | _imGuiRenderer.AfterLayout(); |
|
785 | _imGuiRenderer.AfterLayout(); |
|
835 |
|
786 |
@@ -29,6 +29,7 | |||||
|
29 | <LangVersion>8.0</LangVersion> |
|
29 | <LangVersion>8.0</LangVersion> |
|
30 | <AllowUnsafeBlocks>true</AllowUnsafeBlocks> |
|
30 | <AllowUnsafeBlocks>true</AllowUnsafeBlocks> |
|
31 | <ExternalConsole>false</ExternalConsole> |
|
31 | <ExternalConsole>false</ExternalConsole> |
|
|
32 | <NoWarn></NoWarn> | ||
|
32 | </PropertyGroup> |
|
33 | </PropertyGroup> |
|
33 | <ItemGroup> |
|
34 | <ItemGroup> |
|
34 | <Compile Include="FNAGame.cs" /> |
|
35 | <Compile Include="FNAGame.cs" /> |
You need to be logged in to leave comments.
Login now