# HG changeset patch # User Alys Brooks # Date 2021-08-21 08:52:41 # Node ID 1338aca1d5075356b6bcaa1c075cb79f015e8c8c # Parent 045ecaa11b8f87770e69a7402fc9739f070e8302 Add Fact. diff --git a/SpriteFontPlus/src/obj/Debug/net45/.NETFramework,Version=v4.5.AssemblyAttributes.cs b/SpriteFontPlus/src/obj/Debug/net45/.NETFramework,Version=v4.5.AssemblyAttributes.cs --- a/SpriteFontPlus/src/obj/Debug/net45/.NETFramework,Version=v4.5.AssemblyAttributes.cs +++ b/SpriteFontPlus/src/obj/Debug/net45/.NETFramework,Version=v4.5.AssemblyAttributes.cs @@ -1,4 +1,4 @@ -// -using System; -using System.Reflection; +// +using System; +using System.Reflection; [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")] diff --git a/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache b/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache --- a/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache +++ b/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache @@ -1,1 +1,1 @@ -7bbcd971441293d3543e03c61356b4763d0b75e2 +e3914796b5fae6ebfb8f4168aa490143cbdf1c22 diff --git a/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.FileListAbsolute.txt b/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.FileListAbsolute.txt --- a/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.FileListAbsolute.txt +++ b/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.FileListAbsolute.txt @@ -1,48 +1,4 @@ -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll.config -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.dll -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.pdb -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.pdb -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfoInputs.cache -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfo.cs -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CopyComplete -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.dll -/Users/alys/repos/fna-tutorial/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.pdb -/Users/alys/repos/fna-pong/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll.config -/Users/alys/repos/fna-pong/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.dll -/Users/alys/repos/fna-pong/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.pdb -/Users/alys/repos/fna-pong/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll -/Users/alys/repos/fna-pong/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.pdb -/Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache -/Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfoInputs.cache -/Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfo.cs -/Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache -/Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CopyComplete -/Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.dll -/Users/alys/repos/fna-pong/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.pdb -/home/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll.config -/home/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.dll -/home/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.pdb -/home/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll -/home/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.pdb /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache -/home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfoInputs.cache /home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfo.cs -/home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CopyComplete -/home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.dll -/home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.pdb -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll.config -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.dll -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/SpriteFontPlus.pdb -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.dll -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/bin/FNA/Debug/net45/FNA.pdb -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfoInputs.cache -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.AssemblyInfo.cs -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CopyComplete -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.dll -/Users/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.pdb +/home/alys/repos/isometric-park-fna/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csproj.CoreCompileInputs.cache diff --git a/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache b/SpriteFontPlus/src/obj/Debug/net45/SpriteFontPlus.FNA.csprojAssemblyReference.cache index 73f94effcb2041082426754fa6e667b7fb095833..2ab36166f736c5c0d5448b33808d7cd4bcbef451 GIT binary patch literal 6939 zc%1E7YitzP6`q-W&Kg*UBs>BnYeEPFd)5Z8d0ND*<6s^JY+flCb9eXd?!@!h%)_ot z0TYl&`lCc4iIk|7B1Pm!9<*vBMQZ<<%mgY~)grb(4L~=o$|a&vEsDki;y4Y$O+9>&NG8=8CcuP34bcTQ z_#Q1MDnzRExv_7<*11R{2;x3G38BEp1@V?oKlHL;NGvE2+%(ZC!?KOou>pSJ2#8fl zQ`eG`m`Td2q9)sgR0}DINgJ(OBcq~H5OR_fj)L`yX{`^-l4Z$*WyiFZ{ib4wG8G1> zCK5>;Cm2PmZw&fAHf>+b6U!8R*fgza?;ZgIp-~;jKPbU8MA;_R`+?(eR=Jt z$$D1R;I3sCpOF=Yd6%d>XPGz77_V+(5X%&^CNZrkST%<2?BM64xF5v>C>}(y0L4NS zi%={^@eqn7D3*cp>0upbrXJFa5vp-{1(KZO zIEIflPemRmLYn72PGw8i#pyj@bnf??n$BQMPtpD+l0F6f3MKu>50Ko>qdGEA&0J zzefYSQB@lbKaPtCySP>WS2^K*sFrrMqg_%<`-G!iT1&ge85+!-S;Y#WLPer?^#v8U z&y|J)rC}ogV-m_sq@YK#C6j2`BHE;TxvUt0lVX=t;K9Ty;YKv8=4b{gcVw83m58W? zh(2Iw5m6t&N5!yb$?O6UUX*3iT7#k*l}V{Ya||1a;EKfr0vw0Fa4g478Hi|8YA%6y+^<+RJ`Y*_N}@5wvewLG!_6S)RWCPu3x-`l zkwhDN^T3|Q#qRg8owz%`h!YvX)plrz!PSfjehy&&n;TV_td%L@wb1OVc4=~B(~i5E zyV=(uHjCwHnH9Hncs;oy@a-6`6pD_iF=IaiH!*J3oloK9b9+w)WH&;ydlKhvh^}8x zQrT2T+s1Y6v~|Nqi|8X2qMMk>EmO^PpWlqEx1i|sQ2*FX{Yo|UC!rad4!K^=Br48y zfoyPXMEGq;JB^~-!~J(|?!T?({xmdwE}(i*ZK_b+4l*&*Mu_i4>N`;E^zi?{&Hp#m z{QIEE&V*hsr<~F82~1!t!))L?u?saN)n<(RxoyGu<8b9z2ftOD2`!Y zT$`t?A@~9k9@Y55w0~5)vOePW>K{4uK`GT9}`D&Kq z(Dc@|{={)V@}@O+U>XG{80Hn^iSuFw4q#Us6GVnA6ZylfLsu_f`}!^6+&l5hx99%r z`t4_LTsZ$tU_?5*>-Co({`Ka6zH#l#KVSLF8((zX-^9Jtpl$i@#H**T{%y4J!Y7f@ zJ*%&;o%iy;LpT0@z3HP%|G9oMcXZdBi&x%#ebr#5`5oH4?A9MUjX|~LA2&}O`(^y< zYn>~X{&aqtE=tHBU2Na|qc1MT1$%mNzuG!<`o1q?n^@dI;gk(B)khpR42^a{unxx} zo^n7w96x$+ar<9iWIOyoHv58X@ql#tfo$^yNqa!L{XlwsL3VgRcKU(r^#$4I0qOSx zIb@%3@x#s;`;2XjZ< zcfSE@9B(^vWHteBPW*qrfesFyu(OyA|AcWZt1}e8=5gPuOFUIK<5zVHz92;p zi0B8R_=2b&kdhyW=?gOA0U7lJIq5MyMSfDoR{h6kqiqAU!6n4?-hHHcQAR$1zS Ll2`s9%{F`oat&E{ diff --git a/isometric-park-fna/Components/TreeDeltaComponent.cs b/isometric-park-fna/Components/TreeDeltaComponent.cs --- a/isometric-park-fna/Components/TreeDeltaComponent.cs +++ b/isometric-park-fna/Components/TreeDeltaComponent.cs @@ -1,33 +1,35 @@ using Encompass; +using isometricparkfna.Utils; + namespace isometricparkfna.Components { public struct TreeDeltaComponent : IComponent { - public int deltaTrees; + public Fact deltaTrees; public string deltaTreesName { get { - if (deltaTrees <= -18) + if (deltaTrees.Value <= -18) { return "Unsustainable"; } - else if (MathUtils.BetweenExclusive(deltaTrees, -18, -6)) + else if (MathUtils.BetweenExclusive(deltaTrees.Value, -18, -6)) { return "Moderately unsustainable"; } - else if (MathUtils.Between(deltaTrees, -6, 0)) + else if (MathUtils.Between(deltaTrees.Value, -6, 0)) { return "Somewhat unsustainable"; } - else if (deltaTrees == 0) + else if (deltaTrees.Value == 0) { return "Break even"; } - else if (deltaTrees > 0) + else if (deltaTrees.Value > 0) { return "Restoration"; } diff --git a/isometric-park-fna/Engines/SimulationBridgeEngine.cs b/isometric-park-fna/Engines/SimulationBridgeEngine.cs --- a/isometric-park-fna/Engines/SimulationBridgeEngine.cs +++ b/isometric-park-fna/Engines/SimulationBridgeEngine.cs @@ -114,7 +114,7 @@ { var removed = 0; var tree_squares = area.squares.Where((square) => simulation.map.cells[(int)square.X][(int)square.Y].hasTree); - var to_remove = -delta.deltaTrees; + var to_remove = -delta.deltaTrees.Value; //calculate the probability in order to get the expected number of removed trees var expected = to_remove; diff --git a/isometric-park-fna/Engines/Spawners/ContractSpawner.cs b/isometric-park-fna/Engines/Spawners/ContractSpawner.cs --- a/isometric-park-fna/Engines/Spawners/ContractSpawner.cs +++ b/isometric-park-fna/Engines/Spawners/ContractSpawner.cs @@ -12,6 +12,7 @@ using isometricparkfna.Messages; using isometricparkfna.Components; +using isometricparkfna.Utils; namespace isometricparkfna.Spawners { @@ -210,7 +211,7 @@ AddComponent(contract, nameAndDescription); AddComponent(contract, new SelectedComponent { selected = false }); AddComponent(contract, new ContractStatusComponent { status = ContractStatus.Proposed, date = this.simulation.DateTime }); - AddComponent(contract, new TreeDeltaComponent { deltaTrees = deltaTrees }); + AddComponent(contract, new TreeDeltaComponent { deltaTrees = new Fact(deltaTrees) }); AddComponent(contract, new BudgetLineComponent { category = "Contracts", diff --git a/isometric-park-fna/UI/DebugWindow.cs b/isometric-park-fna/UI/DebugWindow.cs --- a/isometric-park-fna/UI/DebugWindow.cs +++ b/isometric-park-fna/UI/DebugWindow.cs @@ -271,7 +271,7 @@ { ImGui.PlotLines("Frame Rate", ref debugInfo.pastFps[0], debugInfo.pastFps.Length); } - + foreach (string k in additionalInfo.Keys) { diff --git a/isometric-park-fna/UI/Widgets.cs b/isometric-park-fna/UI/Widgets.cs new file mode 100644 --- /dev/null +++ b/isometric-park-fna/UI/Widgets.cs @@ -0,0 +1,61 @@ +using System; //FYI, this is where IntPtr comes from + +using ImGuiNET; +using Num = System.Numerics; + +namespace isometricparkfna.UI +{ + + public static class Widgets + { +//Relatively thin wrappers over common ImGui idioms +#region basic_elements + public static void Tooltip(string text, Num.Vector2 relative_position) + { + if (ImGui.IsItemHovered()) + { + var rect = ImGui.GetItemRectMax(); + ImGui.SetNextWindowPos(rect + relative_position ); + ImGui.BeginTooltip(); + ImGui.Text(text); + ImGui.EndTooltip(); + } + } + + public static void Tooltip(string text) + { + Widgets.Tooltip(text, new Num.Vector2(15, 0)); + } + + public static void Indicator(string text, Num.Vector4 color) + { + var dimensions = ImGui.CalcTextSize(text); + + ImGui.PushStyleColor(ImGuiCol.Text, color); + //Found through trial and error: + ImGui.SetCursorPosX(ImGui.GetCursorPosX() -(dimensions.X + 10)); + ImGui.Text(text); + ImGui.PopStyleColor(); + } + + public static void MapImage(ImGuiImageMap map, Num.Vector2 size, int image_index) + { + 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 + + } +#endregion + +//Widgets that are made up of the components defined above +#region composite_widgets + + public static void MapImageTooltip(ImGuiImageMap map, Num.Vector2 size, int image_index, string tooltip) + { + 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 + + Widgets.Tooltip(tooltip, Num.Vector2.Zero); + + } + +#endregion + } +} diff --git a/isometric-park-fna/Utils/Fact.cs b/isometric-park-fna/Utils/Fact.cs new file mode 100644 --- /dev/null +++ b/isometric-park-fna/Utils/Fact.cs @@ -0,0 +1,20 @@ + +using System; +namespace isometricparkfna.Utils +{ + public struct Fact + { + public T Value; + + public bool Known {get;} + public bool Aware {get;} + + public Fact(T value) + { + this.Value = value; + this.Known = true; + this.Aware = true; + } + + } +} diff --git a/isometric-park-fna/isometric-park-fna.csproj b/isometric-park-fna/isometric-park-fna.csproj --- a/isometric-park-fna/isometric-park-fna.csproj +++ b/isometric-park-fna/isometric-park-fna.csproj @@ -58,6 +58,8 @@ + +