Description:
Add status to Contracts window.
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
@@ -16,6 +16,7 | |||
|
16 | 16 | // AddComponent |
|
17 | 17 | AddComponent(contract, new AreaComponent{squares = message.squares}); |
|
18 | 18 | AddComponent(contract, new NameComponent{DisplayName = message.name}); |
|
19 | AddComponent(contract, new ContractStatusComponent {status = ContractStatus.Proposed}); | |
|
19 | 20 | |
|
20 | 21 | } |
|
21 | 22 | } |
@@ -220,8 +220,10 | |||
|
220 | 220 | var area = WorldBuilder.CreateEntity(); |
|
221 | 221 | // WorldBuilder.SetComponent(area, new AreaComponent{squares = new[] {new Vector2(4,4), new Vector2(5,4)}}); |
|
222 | 222 | WorldBuilder.SendMessage(new SpawnContractMessage{squares = new[] {new Vector2(4,4), new Vector2(5,4)}, |
|
223 |
name = " |
|
|
223 | name = "Northshore Logging"}); | |
|
224 | 224 | |
|
225 | WorldBuilder.SendMessage(new SpawnContractMessage{squares = new[] {new Vector2(4,4), new Vector2(5,4)}, | |
|
226 | name = "Aeres Maximalis Ltd."}); | |
|
225 | 227 | World = WorldBuilder.Build(); |
|
226 | 228 | |
|
227 | 229 | var bakedMono = TtfFontBaker.Bake(File.OpenRead(@"Content/iosevka-term-extendedmedium.ttf"), |
@@ -39,16 +39,18 | |||
|
39 | 39 | case Window.Contracts: |
|
40 | 40 | var contracts = ReadEntities<AreaComponent>(); |
|
41 | 41 | |
|
42 |
var |
|
|
42 | var contract_data = new List<(string, ContractStatus)>(); | |
|
43 | 43 | |
|
44 | 44 | // var names = contracts.Select(entity => GetComponent<NameComponent>(entity).DisplayName) |
|
45 | 45 | foreach(var e in contracts) |
|
46 | 46 | { |
|
47 |
|
|
|
47 | var name = GetComponent<NameComponent>(e).DisplayName; | |
|
48 | var status = GetComponent<ContractStatusComponent>(e).status; | |
|
49 | contract_data.Add((name, status)); | |
|
48 | 50 | |
|
49 | 51 | } |
|
50 | 52 | |
|
51 |
ContractsWindow.Render(this.font, this.BridgeEngine, |
|
|
53 | ContractsWindow.Render(this.font, this.BridgeEngine, contract_data); | |
|
52 | 54 | break; |
|
53 | 55 | default: |
|
54 | 56 | break; |
@@ -2,6 +2,7 | |||
|
2 | 2 | |
|
3 | 3 | using ImGuiNET; |
|
4 | 4 | |
|
5 | using isometricparkfna.Components; | |
|
5 | 6 | using isometricparkfna.Engines; |
|
6 | 7 | using isometricparkfna.Messages; |
|
7 | 8 | |
@@ -11,62 +12,88 | |||
|
11 | 12 | { |
|
12 | 13 | public static class ContractsWindow |
|
13 | 14 | { |
|
15 | public static string selected; | |
|
14 | 16 | |
|
15 |
public static void Render(ImFontPtr font, ImGuiWindowBridgeEngine engine, List<string> contracts |
|
|
17 | public static void Render(ImFontPtr font, ImGuiWindowBridgeEngine engine, List<(string name, ContractStatus status)> contracts) | |
|
16 | 18 | { |
|
17 |
|
|
|
18 |
|
|
|
19 |
|
|
|
20 |
|
|
|
19 | bool newShow = true; | |
|
20 | if (newShow) | |
|
21 | { | |
|
22 | ImGui.PushFont(font); | |
|
21 | 23 | |
|
22 |
|
|
|
23 |
|
|
|
24 |
|
|
|
25 |
|
|
|
26 |
|
|
|
27 |
|
|
|
28 |
|
|
|
29 |
|
|
|
30 |
|
|
|
31 |
|
|
|
24 | ImGui.GetStyle().WindowMenuButtonPosition = ImGuiDir.None; | |
|
25 | ImGui.PushStyleVar(ImGuiStyleVar.FrameRounding, 0.0f); | |
|
26 | ImGui.PushStyleVar(ImGuiStyleVar.WindowRounding, 0.0f); | |
|
27 | ImGui.PushStyleVar(ImGuiStyleVar.FrameBorderSize, 1.0f); | |
|
28 | ImGui.PushStyleVar(ImGuiStyleVar.TabRounding, 0.0f); | |
|
29 | ImGui.PushStyleColor(ImGuiCol.WindowBg, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); | |
|
30 | ImGui.PushStyleColor(ImGuiCol.Header, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); | |
|
31 | ImGui.PushStyleColor(ImGuiCol.HeaderHovered, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); | |
|
32 | ImGui.PushStyleColor(ImGuiCol.HeaderActive, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); | |
|
33 | ImGui.PushStyleColor(ImGuiCol.ButtonHovered, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); | |
|
32 | 34 | |
|
33 |
|
|
|
34 |
|
|
|
35 |
|
|
|
36 |
|
|
|
35 | var title_bar = new Num.Vector4(0.65f, 0.65f, 0.65f, 1f); | |
|
36 | ImGui.PushStyleColor(ImGuiCol.TitleBg, title_bar); | |
|
37 | ImGui.PushStyleColor(ImGuiCol.TitleBgActive, title_bar); | |
|
38 | ImGui.PushStyleColor(ImGuiCol.TitleBgCollapsed, title_bar); | |
|
37 | 39 | |
|
38 |
|
|
|
39 |
|
|
|
40 | ImGui.PushStyleColor(ImGuiCol.Border, new Num.Vector4(0f, 0f, 0f, 1f)); | |
|
41 | ImGui.PushStyleColor(ImGuiCol.BorderShadow, new Num.Vector4(0f, 0f, 0f, 0.5f)); | |
|
40 | 42 | |
|
41 | 43 | |
|
42 | 44 | |
|
43 |
|
|
|
44 |
|
|
|
45 |
|
|
|
46 |
|
|
|
47 |
|
|
|
48 |
|
|
|
49 |
|
|
|
50 |
|
|
|
51 |
|
|
|
52 | } | |
|
53 | ImGui.ListBoxFooter(); | |
|
54 | if (ImGui.Button("Okay")) | |
|
55 |
|
|
|
56 | newShow = false; | |
|
57 | } | |
|
45 | ImGui.PushStyleColor(ImGuiCol.Button, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); | |
|
46 | ImGui.PushStyleColor(ImGuiCol.Text, new Num.Vector4(0f, 0f, 0f, 1f)); | |
|
47 | ImGui.SetNextWindowSize(new Num.Vector2(400, 400)); | |
|
48 | ImGui.Begin("##Contracts", ref newShow, ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoSavedSettings); | |
|
49 | ImGui.ListBoxHeader("Contracts:"); | |
|
50 | foreach (var contract in contracts) | |
|
51 | { | |
|
52 | // ImGui.Text(contract); | |
|
53 | // ImGui.Selectable(string.Format("{0}\t{1}", contract.name, contract.status.ToString()), false); | |
|
54 | if (ImGui.Selectable(contract.name, ContractsWindow.selected == contract.name)) | |
|
55 | { | |
|
56 | ContractsWindow.selected = contract.name; | |
|
57 | } | |
|
58 | 58 | |
|
59 |
|
|
|
60 | ImGui.GetStyle().WindowMenuButtonPosition = ImGuiDir.Left; | |
|
61 |
|
|
|
62 | ImGui.PopStyleColor(12); | |
|
63 | ImGui.PopFont(); | |
|
59 | ImGui.SameLine(); | |
|
60 | switch (contract.status) | |
|
61 | { | |
|
62 | case ContractStatus.Proposed: | |
|
63 | ImGui.TextColored(new Num.Vector4(0.25f, 0.25f, 0.95f, 1f), contract.status.ToString()); | |
|
64 | break; | |
|
65 | case ContractStatus.Active: | |
|
66 | case ContractStatus.Accepted: | |
|
67 | ImGui.TextColored(new Num.Vector4(0.25f, 0.95f, 0.25f, 1f), contract.status.ToString()); | |
|
68 | break; | |
|
69 | ||
|
70 | default: | |
|
71 | break; | |
|
72 | } | |
|
73 | } | |
|
74 | ImGui.ListBoxFooter(); | |
|
75 | if (ImGui.Button("Select")) | |
|
76 | { | |
|
77 | System.Console.Write(string.Format("{0} selected", ContractsWindow.selected)); | |
|
78 | ||
|
79 | ||
|
80 | } | |
|
81 | if (ImGui.Button("Okay")) | |
|
82 | { | |
|
83 | newShow = false; | |
|
64 | 84 | } |
|
65 | 85 | |
|
66 | if (!newShow) | |
|
67 | { | |
|
68 | engine.messages.Add(new ToggleWindowMessage {Window = Window.Contracts }); | |
|
69 | } | |
|
86 | ImGui.End(); | |
|
87 | ImGui.GetStyle().WindowMenuButtonPosition = ImGuiDir.Left; | |
|
88 | ImGui.PopStyleVar(4); | |
|
89 | ImGui.PopStyleColor(12); | |
|
90 | ImGui.PopFont(); | |
|
91 | } | |
|
92 | ||
|
93 | if (!newShow) | |
|
94 | { | |
|
95 | engine.messages.Add(new ToggleWindowMessage { Window = Window.Contracts }); | |
|
96 | } | |
|
70 | 97 | |
|
71 | 98 | } |
|
72 | 99 | } |
You need to be logged in to leave comments.
Login now