Testing.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using CodeMonkey.Utils;
  4. using UnityEngine;
  5. public class Testing : MonoBehaviour {
  6. [SerializeField] HeatMapBoolVisual heatMapBoolVisual;
  7. [SerializeField] HeatMapGeneralVisual heatMapGeneralVisual;
  8. private Grid<HeatMapGridObject> grid;
  9. private Grid<StringGridObject> stringGrid;
  10. void Start() {
  11. // grid = new Grid<HeatMapGridObject>(10, 5, 10f, Vector3.zero, (Grid<HeatMapGridObject> g, int x, int y) => new HeatMapGridObject(g, x, y));
  12. stringGrid = new Grid<StringGridObject>(20, 10, 8f, Vector3.zero, (Grid<StringGridObject> g, int x, int y) => new StringGridObject(g, x, y));
  13. //heatMapVisual.SetGrid(grid);
  14. //heatMapBoolVisual.SetGrid(grid);
  15. // heatMapGeneralVisual.SetGrid(grid);
  16. }
  17. private void Update() {
  18. Vector3 position = UtilsClass.GetMouseWorldPosition();
  19. if (Input.GetMouseButtonDown(0)) {
  20. HeatMapGridObject heatMapGridObject = grid.GetGridObject(position);
  21. if (heatMapGridObject != null) {
  22. heatMapGridObject.AddValue(5);
  23. }
  24. }
  25. if (Input.GetKeyDown(KeyCode.A)) { stringGrid.GetGridObject(position).AddLetter("A"); }
  26. if (Input.GetKeyDown(KeyCode.B)) { stringGrid.GetGridObject(position).AddLetter("B"); }
  27. if (Input.GetKeyDown(KeyCode.C)) { stringGrid.GetGridObject(position).AddLetter("C"); }
  28. if (Input.GetKeyDown(KeyCode.Alpha1)) { stringGrid.GetGridObject(position).AddNumber("1"); }
  29. if (Input.GetKeyDown(KeyCode.Alpha2)) { stringGrid.GetGridObject(position).AddNumber("2"); }
  30. if (Input.GetKeyDown(KeyCode.Alpha3)) { stringGrid.GetGridObject(position).AddNumber("3"); }
  31. /* if (Input.GetMouseButtonDown(1)) {
  32. Debug.Log(grid.GetValue(UtilsClass.GetMouseWorldPosition()));
  33. } */
  34. }
  35. }
  36. public class HeatMapGridObject {
  37. public const int MIN = 0;
  38. public const int MAX = 100;
  39. public int value;
  40. private Grid<HeatMapGridObject> grid;
  41. private int x;
  42. private int y;
  43. public HeatMapGridObject(Grid<HeatMapGridObject> grid, int x, int y) {
  44. this.grid = grid;
  45. this.x = x;
  46. this.y = y;
  47. }
  48. public void AddValue(int valueToAdd) {
  49. value += valueToAdd;
  50. Mathf.Clamp(value, MIN, MAX);
  51. grid.TriggerGridObjectChanged(x, y);
  52. }
  53. public float GetValueNormalized() {
  54. return (float)value / MAX;
  55. }
  56. public override string ToString() {
  57. return value.ToString();
  58. }
  59. }
  60. public class StringGridObject {
  61. private string letters;
  62. private string numbers;
  63. Grid<StringGridObject> grid;
  64. int x;
  65. int y;
  66. public StringGridObject(Grid<StringGridObject> grid, int x, int y) {
  67. this.grid = grid;
  68. this.x = x;
  69. this.y = y;
  70. letters = "";
  71. numbers = "";
  72. }
  73. public void AddLetter(string letter) {
  74. letters += letter;
  75. grid.TriggerGridObjectChanged(x, y);
  76. }
  77. public void AddNumber(string number) {
  78. numbers += number;
  79. grid.TriggerGridObjectChanged(x, y);
  80. }
  81. public override string ToString() {
  82. return letters + "\n" + numbers;
  83. }
  84. }