Description:
Add culling toggle and more logging.
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
@@ -22,6 +22,10 | |||||
|
22 |
|
22 | ||
|
23 | You can build and run the project using VSCode actions. |
|
23 | You can build and run the project using VSCode actions. |
|
24 |
|
24 | ||
|
|
25 | Two debug commands: | ||
|
|
26 | * `\` enables the debug window | ||
|
|
27 | * `]` turns on culling (now debug-only) | ||
|
|
28 | |||
|
25 | ## Acknowledgements ## |
|
29 | ## Acknowledgements ## |
|
26 |
|
|
30 | |
|
27 | Art: [Isometric 64x64 Outside Tileset by Yar](https://opengameart.org/content/isometric-64x64-outside-tileset), various images from the Library of Congress and USDA Forest Service |
|
31 | Art: [Isometric 64x64 Outside Tileset by Yar](https://opengameart.org/content/isometric-64x64-outside-tileset), various images from the Library of Congress and USDA Forest Service |
@@ -50,6 +50,9 | |||||
|
50 | case Element.Trees: |
|
50 | case Element.Trees: |
|
51 | game.showTrees = !game.showTrees; |
|
51 | game.showTrees = !game.showTrees; |
|
52 | break; |
|
52 | break; |
|
|
53 | case Element.Culling: | ||
|
|
54 | FNAGame.enableCulling = !FNAGame.enableCulling; | ||
|
|
55 | break; | ||
|
53 | } |
|
56 | } |
|
54 | } |
|
57 | } |
|
55 |
|
58 |
@@ -159,6 +159,11 | |||||
|
159 | SendMessage(new ToggleVisibilityMessage{Element = Element.Trees}); |
|
159 | SendMessage(new ToggleVisibilityMessage{Element = Element.Trees}); |
|
160 |
|
160 | ||
|
161 | } |
|
161 | } |
|
|
162 | if (keyboardCur.IsKeyDown(Keys.OemCloseBrackets) && keyboardPrev.IsKeyUp(Keys.OemCloseBrackets)) | ||
|
|
163 | { | ||
|
|
164 | SendMessage(new ToggleVisibilityMessage{Element = Element.Culling}); | ||
|
|
165 | |||
|
|
166 | } | ||
|
162 | #endif |
|
167 | #endif |
|
163 |
|
168 | ||
|
164 | if (keyboardCur.IsKeyDown(Keys.Q) && keyboardPrev.IsKeyUp(Keys.Q)) |
|
169 | if (keyboardCur.IsKeyDown(Keys.Q) && keyboardPrev.IsKeyUp(Keys.Q)) |
@@ -48,6 +48,7 | |||||
|
48 |
|
48 | ||
|
49 | Queue<float> past_fps = new Queue<float>(100); |
|
49 | Queue<float> past_fps = new Queue<float>(100); |
|
50 | int tilesDrawn = 0; |
|
50 | int tilesDrawn = 0; |
|
|
51 | private int treesDrawn = 0; | ||
|
51 |
|
52 | ||
|
52 | private const int width = 1280; |
|
53 | private const int width = 1280; |
|
53 | private const int height = 640; |
|
54 | private const int height = 640; |
@@ -74,7 +75,7 | |||||
|
74 | int messageIndex; |
|
75 | int messageIndex; |
|
75 |
|
76 | ||
|
76 | //buggy |
|
77 | //buggy |
|
77 |
p |
|
78 | public static bool enableCulling = false; |
|
78 |
|
79 | ||
|
79 | private Node<DialogOption> currentNode; |
|
80 | private Node<DialogOption> currentNode; |
|
80 | private Queue<Node<DialogOption>> remainingDialog; |
|
81 | private Queue<Node<DialogOption>> remainingDialog; |
@@ -707,11 +708,11 | |||||
|
707 | Quad.FillSquare2(batch, 8, 5, Color.Teal, .5f, 0.79f); |
|
708 | Quad.FillSquare2(batch, 8, 5, Color.Teal, .5f, 0.79f); |
|
708 | Quad.FillSquare2(batch, 8, 6, Color.Teal, .25f, 0.79f); |
|
709 | Quad.FillSquare2(batch, 8, 6, Color.Teal, .25f, 0.79f); |
|
709 | Quad.FillSquare2(batch, 8, 7, Color.Teal, .125f, 0.79f); |
|
710 | Quad.FillSquare2(batch, 8, 7, Color.Teal, .125f, 0.79f); |
|
710 |
#endif |
|
711 | #endif |
|
711 |
|
712 | ||
|
712 |
|
713 | ||
|
713 |
|
714 | ||
|
714 | #endregion draw_cursor |
|
715 | #endregion draw_cursor |
|
715 | /* |
|
716 | /* |
|
716 |
|
717 | ||
|
717 | for (int i = 0; i< 80; i++) |
|
718 | for (int i = 0; i< 80; i++) |
@@ -733,7 +734,9 | |||||
|
733 | } |
|
734 | } |
|
734 | }//*/ |
|
735 | }//*/ |
|
735 |
|
736 | ||
|
736 | #region draw_trees |
|
737 | #region draw_trees |
|
|
738 | |||
|
|
739 | this.treesDrawn = 0; | ||
|
737 | if (this.showTrees) { |
|
740 | if (this.showTrees) { |
|
738 | for (int i = 0; i < this.simulation.map.MapHeight; i++) |
|
741 | for (int i = 0; i < this.simulation.map.MapHeight; i++) |
|
739 | { |
|
742 | { |
@@ -751,11 +754,12 | |||||
|
751 | // { |
|
754 | // { |
|
752 | // drawTileAt(i, j, 142, 2); |
|
755 | // drawTileAt(i, j, 142, 2); |
|
753 | // } |
|
756 | // } |
|
|
757 | this.treesDrawn++; | ||
|
754 | } |
|
758 | } |
|
755 | else if (this.simulation.map.cells[i][j].status == CellStatus.DeadTree) { |
|
759 | else if (this.simulation.map.cells[i][j].status == CellStatus.DeadTree) { |
|
756 | drawTileAt(i, j, 141, 2); |
|
760 | drawTileAt(i, j, 141, 2); |
|
757 | // System.Console.WriteLine(String.Format("Drew Dead Tree at {0},{1}", i, j)); |
|
761 | // System.Console.WriteLine(String.Format("Drew Dead Tree at {0},{1}", i, j)); |
|
758 |
|
762 | this.treesDrawn++; | |
|
759 | } |
|
763 | } |
|
760 | } |
|
764 | } |
|
761 | } |
|
765 | } |
@@ -853,7 +857,8 | |||||
|
853 | treeCount = this.simulation.map.tree_count, |
|
857 | treeCount = this.simulation.map.tree_count, |
|
854 | mouseGrid = this.mouseGrid, |
|
858 | mouseGrid = this.mouseGrid, |
|
855 | hasTree = has_tree, |
|
859 | hasTree = has_tree, |
|
856 | tilesDrawn = this.tilesDrawn |
|
860 | tilesDrawn = this.tilesDrawn, |
|
|
861 | treesDrawn = this.treesDrawn | ||
|
857 | }; |
|
862 | }; |
|
858 |
|
863 | ||
|
859 | //Finally, draw the debug window |
|
864 | //Finally, draw the debug window |
@@ -865,6 +870,8 | |||||
|
865 | var state = Mouse.GetState(); |
|
870 | var state = Mouse.GetState(); |
|
866 | Vector2 delta = this.camera.position - this.original_point; |
|
871 | Vector2 delta = this.camera.position - this.original_point; |
|
867 |
|
872 | ||
|
|
873 | additionalInfo.Add("culling", FNAGame.enableCulling.ToString()); | ||
|
|
874 | |||
|
868 | additionalInfo.Add("cameraMiddle", cameraMiddle.ToString()); |
|
875 | additionalInfo.Add("cameraMiddle", cameraMiddle.ToString()); |
|
869 | additionalInfo.Add("mouse ", String.Format("{0}, {1}", state.X, state.Y)); |
|
876 | additionalInfo.Add("mouse ", String.Format("{0}, {1}", state.X, state.Y)); |
|
870 | additionalInfo.Add("mouse delta", delta.ToString()); |
|
877 | additionalInfo.Add("mouse delta", delta.ToString()); |
@@ -5,8 +5,10 | |||||
|
5 |
|
5 | ||
|
6 | public enum Element { |
|
6 | public enum Element { |
|
7 | Grid, |
|
7 | Grid, |
|
8 | Trees |
|
8 | Trees, |
|
9 | } |
|
9 | |
|
|
10 | Culling //Debug only | ||
|
|
11 | } | ||
|
10 |
|
12 | ||
|
11 | public struct ToggleVisibilityMessage : IMessage//, IHasEntity |
|
13 | public struct ToggleVisibilityMessage : IMessage//, IHasEntity |
|
12 | { |
|
14 | { |
@@ -58,7 +58,7 | |||||
|
58 |
|
58 | ||
|
59 | public const int MAX_TREES_TO_PLANT = 25; |
|
59 | public const int MAX_TREES_TO_PLANT = 25; |
|
60 | public const int MAX_TREES_TO_CLEAR = 25; |
|
60 | public const int MAX_TREES_TO_CLEAR = 25; |
|
61 |
private const int SUBSIDY_AMOUNT = |
|
61 | private const int SUBSIDY_AMOUNT = 3000; |
|
62 |
|
62 | ||
|
63 | public int Tick |
|
63 | public int Tick |
|
64 | { |
|
64 | { |
@@ -22,6 +22,7 | |||||
|
22 | public Boolean hasTree; |
|
22 | public Boolean hasTree; |
|
23 | public int tilesDrawn; |
|
23 | public int tilesDrawn; |
|
24 | public TimeSpan updateTime; |
|
24 | public TimeSpan updateTime; |
|
|
25 | public int treesDrawn; | ||
|
25 | } |
|
26 | } |
|
26 |
|
27 | ||
|
27 | public class DebugWindow |
|
28 | public class DebugWindow |
@@ -134,6 +135,7 | |||||
|
134 | ImGui.Text(string.Format("Draw Time: {0:F3}", debugInfo.drawTime.TotalMilliseconds.ToString())); |
|
135 | ImGui.Text(string.Format("Draw Time: {0:F3}", debugInfo.drawTime.TotalMilliseconds.ToString())); |
|
135 | ImGui.Text(string.Format("Update Time: {0:F3}", debugInfo.updateTime.TotalMilliseconds.ToString())); |
|
136 | ImGui.Text(string.Format("Update Time: {0:F3}", debugInfo.updateTime.TotalMilliseconds.ToString())); |
|
136 | ImGui.Text(string.Format("Tiles Drawn: {0:F}", debugInfo.tilesDrawn)); |
|
137 | ImGui.Text(string.Format("Tiles Drawn: {0:F}", debugInfo.tilesDrawn)); |
|
|
138 | ImGui.Text(string.Format("Trees Drawn: {0:F}", debugInfo.treesDrawn)); | ||
|
137 |
|
139 | ||
|
138 |
|
140 | ||
|
139 | ImGui.Text(string.Format("\nCamera Position: {0}", debugInfo.cameraPosition.ToString())); |
|
141 | ImGui.Text(string.Format("\nCamera Position: {0}", debugInfo.cameraPosition.ToString())); |
You need to be logged in to leave comments.
Login now