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

r413:1338aca1d507 -

@@ -0,0 +1,61
1 using System; //FYI, this is where IntPtr comes from
2
3 using ImGuiNET;
4 using Num = System.Numerics;
5
6 namespace isometricparkfna.UI
7 {
8
9 public static class Widgets
10 {
11 //Relatively thin wrappers over common ImGui idioms
12 #region basic_elements
13 public static void Tooltip(string text, Num.Vector2 relative_position)
14 {
15 if (ImGui.IsItemHovered())
16 {
17 var rect = ImGui.GetItemRectMax();
18 ImGui.SetNextWindowPos(rect + relative_position );
19 ImGui.BeginTooltip();
20 ImGui.Text(text);
21 ImGui.EndTooltip();
22 }
23 }
24
25 public static void Tooltip(string text)
26 {
27 Widgets.Tooltip(text, new Num.Vector2(15, 0));
28 }
29
30 public static void Indicator(string text, Num.Vector4 color)
31 {
32 var dimensions = ImGui.CalcTextSize(text);
33
34 ImGui.PushStyleColor(ImGuiCol.Text, color);
35 //Found through trial and error:
36 ImGui.SetCursorPosX(ImGui.GetCursorPosX() -(dimensions.X + 10));
37 ImGui.Text(text);
38 ImGui.PopStyleColor();
39 }
40
41 public static void MapImage(ImGuiImageMap map, Num.Vector2 size, int image_index)
42 {
43 ImGui.Image(map.ImGuiTexture, size, map.GetSourceUVStart(image_index), map.GetSourceUVEnd(image_index), Num.Vector4.One, Num.Vector4.Zero); // Here, the previously loaded texture is used
44
45 }
46 #endregion
47
48 //Widgets that are made up of the components defined above
49 #region composite_widgets
50
51 public static void MapImageTooltip(ImGuiImageMap map, Num.Vector2 size, int image_index, string tooltip)
52 {
53 ImGui.Image(map.ImGuiTexture, size, map.GetSourceUVStart(image_index), map.GetSourceUVEnd(image_index), Num.Vector4.One, Num.Vector4.Zero); // Here, the previously loaded texture is used
54
55 Widgets.Tooltip(tooltip, Num.Vector2.Zero);
56
57 }
58
59 #endregion
60 }
61 }
@@ -0,0 +1,20
1
2 using System;
3 namespace isometricparkfna.Utils
4 {
5 public struct Fact<T>
6 {
7 public T Value;
8
9 public bool Known {get;}
10 public bool Aware {get;}
11
12 public Fact(T value)
13 {
14 this.Value = value;
15 this.Known = true;
16 this.Aware = true;
17 }
18
19 }
20 }
@@ -1,4 +1,4
1 // <autogenerated />
1 // <autogenerated />
2 using System;
2 using System;
3 using System.Reflection;
3 using System.Reflection;
4 [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
4 [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
@@ -1,1 +1,1
1 7bbcd971441293d3543e03c61356b4763d0b75e2
1 e3914796b5fae6ebfb8f4168aa490143cbdf1c22
@@ -1,48 +1,4
1 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll.config
2 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.dll
3 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.pdb
4 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll
5 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.pdb
6 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache
7 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfoInputs.cache
8 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfo.cs
9 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache
10 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CopyComplete
11 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.dll
12 /Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.pdb
13 /Users/alys/repos/fna-pong/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll.config
14 /Users/alys/repos/fna-pong/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.dll
15 /Users/alys/repos/fna-pong/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.pdb
16 /Users/alys/repos/fna-pong/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll
17 /Users/alys/repos/fna-pong/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.pdb
18 /Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache
19 /Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfoInputs.cache
20 /Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfo.cs
21 /Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache
22 /Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CopyComplete
23 /Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.dll
24 /Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.pdb
25 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll.config
26 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.dll
27 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.pdb
28 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll
29 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.pdb
30 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache
1 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache
31 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache
32 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfoInputs.cache
2 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfoInputs.cache
33 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfo.cs
3 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfo.cs
34 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CopyComplete
4 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache
35 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.dll
36 /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.pdb
37 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll.config
38 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.dll
39 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.pdb
40 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll
41 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.pdb
42 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache
43 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfoInputs.cache
44 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfo.cs
45 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache
46 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CopyComplete
47 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.dll
48 /Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.pdb
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
@@ -1,33 +1,35
1 using Encompass;
1 using Encompass;
2
2
3 using isometricparkfna.Utils;
4
3 namespace isometricparkfna.Components
5 namespace isometricparkfna.Components
4 {
6 {
5
7
6 public struct TreeDeltaComponent : IComponent
8 public struct TreeDeltaComponent : IComponent
7 {
9 {
8 public int deltaTrees;
10 public Fact<int> deltaTrees;
9
11
10 public string deltaTreesName
12 public string deltaTreesName
11 {
13 {
12 get
14 get
13 {
15 {
14 if (deltaTrees <= -18)
16 if (deltaTrees.Value <= -18)
15 {
17 {
16 return "Unsustainable";
18 return "Unsustainable";
17 }
19 }
18 else if (MathUtils.BetweenExclusive(deltaTrees, -18, -6))
20 else if (MathUtils.BetweenExclusive(deltaTrees.Value, -18, -6))
19 {
21 {
20 return "Moderately unsustainable";
22 return "Moderately unsustainable";
21 }
23 }
22 else if (MathUtils.Between(deltaTrees, -6, 0))
24 else if (MathUtils.Between(deltaTrees.Value, -6, 0))
23 {
25 {
24 return "Somewhat unsustainable";
26 return "Somewhat unsustainable";
25 }
27 }
26 else if (deltaTrees == 0)
28 else if (deltaTrees.Value == 0)
27 {
29 {
28 return "Break even";
30 return "Break even";
29 }
31 }
30 else if (deltaTrees > 0)
32 else if (deltaTrees.Value > 0)
31 {
33 {
32 return "Restoration";
34 return "Restoration";
33 }
35 }
@@ -114,7 +114,7
114 {
114 {
115 var removed = 0;
115 var removed = 0;
116 var tree_squares = area.squares.Where((square) => simulation.map.cells[(int)square.X][(int)square.Y].hasTree);
116 var tree_squares = area.squares.Where((square) => simulation.map.cells[(int)square.X][(int)square.Y].hasTree);
117 var to_remove = -delta.deltaTrees;
117 var to_remove = -delta.deltaTrees.Value;
118
118
119 //calculate the probability in order to get the expected number of removed trees
119 //calculate the probability in order to get the expected number of removed trees
120 var expected = to_remove;
120 var expected = to_remove;
@@ -12,6 +12,7
12
12
13 using isometricparkfna.Messages;
13 using isometricparkfna.Messages;
14 using isometricparkfna.Components;
14 using isometricparkfna.Components;
15 using isometricparkfna.Utils;
15
16
16 namespace isometricparkfna.Spawners {
17 namespace isometricparkfna.Spawners {
17
18
@@ -210,7 +211,7
210 AddComponent(contract, nameAndDescription);
211 AddComponent(contract, nameAndDescription);
211 AddComponent(contract, new SelectedComponent { selected = false });
212 AddComponent(contract, new SelectedComponent { selected = false });
212 AddComponent(contract, new ContractStatusComponent { status = ContractStatus.Proposed, date = this.simulation.DateTime });
213 AddComponent(contract, new ContractStatusComponent { status = ContractStatus.Proposed, date = this.simulation.DateTime });
213 AddComponent(contract, new TreeDeltaComponent { deltaTrees = deltaTrees });
214 AddComponent(contract, new TreeDeltaComponent { deltaTrees = new Fact<int>(deltaTrees) });
214 AddComponent(contract, new BudgetLineComponent
215 AddComponent(contract, new BudgetLineComponent
215 {
216 {
216 category = "Contracts",
217 category = "Contracts",
@@ -271,7 +271,7
271 {
271 {
272 ImGui.PlotLines("Frame Rate", ref debugInfo.pastFps[0], debugInfo.pastFps.Length);
272 ImGui.PlotLines("Frame Rate", ref debugInfo.pastFps[0], debugInfo.pastFps.Length);
273 }
273 }
274
274
275
275
276 foreach (string k in additionalInfo.Keys)
276 foreach (string k in additionalInfo.Keys)
277 {
277 {
@@ -58,6 +58,8
58 <Compile Include="Utils\MathUtils.cs" />
58 <Compile Include="Utils\MathUtils.cs" />
59 <Compile Include="Utils\Extensions.cs" />
59 <Compile Include="Utils\Extensions.cs" />
60 <Compile Include="Utils\Node.cs" />
60 <Compile Include="Utils\Node.cs" />
61 <Compile Include="Utils\Fact.cs" />
62 <Compile Include="Utils\FactRange.cs" />
61 <Compile Include="UI\*.cs" />
63 <Compile Include="UI\*.cs" />
62 </ItemGroup>
64 </ItemGroup>
63 <ItemGroup>
65 <ItemGroup>
You need to be logged in to leave comments. Login now