Description:
Refactor Contracts window.
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r228:c482c9a192d6 -

@@ -15,12 +15,10
15 {
15 {
16 public static class ContractsWindow
16 public static class ContractsWindow
17 {
17 {
18 public static Entity selected;
18 public static bool show_all;
19 public static ContractStatus selected_status;
20 public static decimal selected_amount;
21
19
22 public static bool show_all;
20 private static (Entity entity, string name, ContractStatus status, decimal amount, string delta_trees) selected;
23 private static string selected_tree_delta;
21
24
22
25 public static void Render(ImFontPtr font, ImGuiWindowBridgeEngine engine,
23 public static void Render(ImFontPtr font, ImGuiWindowBridgeEngine engine,
26 List<(Entity entity, string name, ContractStatus status, decimal amount, string delta_trees)> contracts)
24 List<(Entity entity, string name, ContractStatus status, decimal amount, string delta_trees)> contracts)
@@ -62,17 +60,15
62 foreach (var contract in contracts.Where((contract) => ((!(new[] {ContractStatus.Expired, ContractStatus.Broken, ContractStatus.Rejected}.Contains(contract.status))
60 foreach (var contract in contracts.Where((contract) => ((!(new[] {ContractStatus.Expired, ContractStatus.Broken, ContractStatus.Rejected}.Contains(contract.status))
63 || ContractsWindow.show_all ))))
61 || ContractsWindow.show_all ))))
64 {
62 {
65 if (ImGui.Selectable(contract.name, ContractsWindow.selected == contract.entity))
63 if (ImGui.Selectable(contract.name, ContractsWindow.selected.entity== contract.entity))
66 {
64 {
67 ContractsWindow.selected = contract.entity;
65 ContractsWindow.selected.entity= contract.entity;
68 // newSelected = contract.entity;
66 // newSelected = contract.entity;
69
67
70 }
68 }
71 if (ContractsWindow.selected == contract.entity)
69 if (ContractsWindow.selected.entity== contract.entity)
72 {
70 {
73 ContractsWindow.selected_status = contract.status;
71 ContractsWindow.selected = contract;
74 ContractsWindow.selected_amount = contract.amount;
75 ContractsWindow.selected_tree_delta = contract.delta_trees;
76 }
72 }
77
73
78
74
@@ -108,16 +104,16
108 ImGui.Checkbox("Show All", ref show_all);
104 ImGui.Checkbox("Show All", ref show_all);
109
105
110 ImGui.Separator();
106 ImGui.Separator();
111 ImGui.Text(string.Format("Amount: ${0}/mo.", ContractsWindow.selected_amount));
107 ImGui.Text(string.Format("Amount: ${0}/mo.", ContractsWindow.selected.amount));
112
108
113 if (ContractsWindow.selected_tree_delta != null)
109 if (ContractsWindow.selected.delta_trees != null)
114 {
110 {
115 ImGui.Text("Sustainability: ");
111 ImGui.Text("Sustainability: ");
116
112
117
113
118 ImGui.SameLine();
114 ImGui.SameLine();
119 var color = new Num.Vector4(1f, 1f, 1f, 1f);
115 var color = new Num.Vector4(1f, 1f, 1f, 1f);
120 switch (ContractsWindow.selected_tree_delta)
116 switch (ContractsWindow.selected.delta_trees)
121 {
117 {
122 case "Unsustainable":
118 case "Unsustainable":
123 color = new Num.Vector4(0.95f, 0.25f, 0.25f, 1f);
119 color = new Num.Vector4(0.95f, 0.25f, 0.25f, 1f);
@@ -130,37 +126,37
130 color = new Num.Vector4(0.95f, 0.65f, 0.25f, 1f);
126 color = new Num.Vector4(0.95f, 0.65f, 0.25f, 1f);
131 break;
127 break;
132 }
128 }
133 ImGui.TextColored(color, ContractsWindow.selected_tree_delta);
129 ImGui.TextColored(color, ContractsWindow.selected.delta_trees);
134 }
130 }
135
131
136
132
137
133
138 if (selected_status == ContractStatus.Proposed)
134 if (selected.status == ContractStatus.Proposed)
139 {
135 {
140 if (ImGui.Button("Accept"))
136 if (ImGui.Button("Accept"))
141 {
137 {
142 System.Console.Write(string.Format("{0} selected", ContractsWindow.selected));
138 System.Console.Write(string.Format("{0} selected", ContractsWindow.selected.entity));
143
139
144 engine.contractStatusMessages.Add(new ChangeContractStatusMessage { Entity = ContractsWindow.selected, newStatus = ContractStatus.Accepted });
140 engine.contractStatusMessages.Add(new ChangeContractStatusMessage { Entity = ContractsWindow.selected.entity, newStatus = ContractStatus.Accepted });
145
141
146 }
142 }
147 ImGui.SameLine();
143 ImGui.SameLine();
148 if (ImGui.Button("Reject"))
144 if (ImGui.Button("Reject"))
149 {
145 {
150 System.Console.Write(string.Format("{0} rejected", ContractsWindow.selected));
146 System.Console.Write(string.Format("{0} rejected", ContractsWindow.selected.entity));
151
147
152 engine.contractStatusMessages.Add(new ChangeContractStatusMessage { Entity = ContractsWindow.selected, newStatus = ContractStatus.Rejected });
148 engine.contractStatusMessages.Add(new ChangeContractStatusMessage { Entity = ContractsWindow.selected.entity, newStatus = ContractStatus.Rejected });
153
149
154 }
150 }
155
151
156 }
152 }
157 else if (selected_status == ContractStatus.Accepted)
153 else if (selected.status == ContractStatus.Accepted)
158 {
154 {
159 if (ImGui.Button("Cancel"))
155 if (ImGui.Button("Cancel"))
160 {
156 {
161 System.Console.Write(string.Format("{0} canceled", ContractsWindow.selected));
157 System.Console.Write(string.Format("{0} canceled", ContractsWindow.selected.entity));
162
158
163 engine.contractStatusMessages.Add(new ChangeContractStatusMessage { Entity = ContractsWindow.selected, newStatus = ContractStatus.Broken });
159 engine.contractStatusMessages.Add(new ChangeContractStatusMessage { Entity = ContractsWindow.selected.entity, newStatus = ContractStatus.Broken });
164 }
160 }
165
161
166 }
162 }
@@ -183,7 +179,7
183 engine.messages.Add(new ToggleWindowMessage { Window = Window.Contracts });
179 engine.messages.Add(new ToggleWindowMessage { Window = Window.Contracts });
184 }
180 }
185
181
186 engine.selectedMessages.Add(new SelectMessage { Entity = selected });
182 engine.selectedMessages.Add(new SelectMessage { Entity = selected.entity });
187
183
188 }
184 }
189 }
185 }
You need to be logged in to leave comments. Login now