diff --git a/isometric-park-fna/Simulation.cs b/isometric-park-fna/Simulation.cs --- a/isometric-park-fna/Simulation.cs +++ b/isometric-park-fna/Simulation.cs @@ -37,6 +37,8 @@ //misc public int trees; + public int dead_trees; + public int crowded_trees; } @@ -234,6 +236,9 @@ } } + //Historical counts + // public List tree_count + public Simulation(int width, int height, float[] millisecondsPerAdvance) { this.random = new Random(); @@ -316,6 +321,8 @@ DateTime = this.DateTime, money = this.money, trees = this.map.tree_count, + dead_trees = this.dead_trees, + crowded_trees = this.crowded_trees, subsidy = this.Subsidy, contracts = this.contracts, enforcement = this.enforcement, diff --git a/isometric-park-fna/UI/Graph.cs b/isometric-park-fna/UI/Graph.cs --- a/isometric-park-fna/UI/Graph.cs +++ b/isometric-park-fna/UI/Graph.cs @@ -26,16 +26,18 @@ public static bool show_subsidies = false; public static bool show_upkeep = false; + private static string[] money_series = { "Total Funds", + "Subsidies", "Upkeep", "Contracts", "Cashflow", "Misc"}; + private static string[] tree_series = { "Total trees", "Dead trees", "Crowded trees"}; public static Dictionary> data_sets = new Dictionary>(); - public static Dictionary data_sets_show = new Dictionary { - {"Total Funds", false}, - {"Subsidies", false}, - {"Upkeep", false}, - {"Contracts", false}, - {"Cashflow", false}, - {"Misc", false}}; + public static Dictionary data_sets_show = new List() + .Concat(money_series) + .Concat(tree_series) + .Select(e => (e, false)) + .ToDictionary(t => t.Item1, t=> t.Item2); + public static void Render(ImFontPtr font, Simulation sim, ImGuiWindowBridgeEngine engine) { @@ -67,6 +69,10 @@ data_sets["Misc"] = sim.allBudgets().Select(b => (double)b.misc); data_sets["Cashflow"] = sim.allBudgets().Select(b => (double)b.cashflow); + data_sets["Total trees"] = sim.allBudgets().Select(b => (double)b.trees); + data_sets["Dead trees"] = sim.allBudgets().Select(b => (double)b.dead_trees); + data_sets["Crowded trees"] = sim.allBudgets().Select(b => (double)b.crowded_trees); + var periods = 12.0d * GraphWindow.year; var keys = data_sets_show.Keys.ToList(); @@ -123,12 +129,25 @@ ImGui.SameLine(); ImGui.RadioButton("100 years", ref GraphWindow.year, 100); - foreach (var key in keys) + for (int i = 0; i < money_series.Length; i++) + { + var key = money_series[i]; + if (Menu.activeButton(key, data_sets_show[key], StyleSets.selected, StyleSets.white)) + { + data_sets_show[key] = !data_sets_show[key]; + } + if ((i % 4 != 3) && (i != money_series.Length-1)) { + ImGui.SameLine(); + } + + } + foreach (var key in tree_series) { if (Menu.activeButton(key, data_sets_show[key], StyleSets.selected, StyleSets.white)) { data_sets_show[key] = !data_sets_show[key]; } + ImGui.SameLine(); }