From 42a8a004eccbf0d38ed4a805b26a06af3cb45257 Mon Sep 17 00:00:00 2001
From: "William G. Tresselt" <williagt@stud.ntnu.no>
Date: Wed, 26 Oct 2022 10:52:15 +0200
Subject: [PATCH] Fixed bug for colored ground

---
 ChromeEnigma/Assets/Prefabs/GroundBlue.prefab |  2 +-
 .../Assets/Prefabs/GroundGreen.prefab         |  2 +-
 ChromeEnigma/Assets/Prefabs/GroundRed.prefab  |  2 +-
 ChromeEnigma/Assets/Scripts/ColorChanger.cs   | 27 ++++++++++---------
 4 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/ChromeEnigma/Assets/Prefabs/GroundBlue.prefab b/ChromeEnigma/Assets/Prefabs/GroundBlue.prefab
index 886d9da..7bf36e0 100644
--- a/ChromeEnigma/Assets/Prefabs/GroundBlue.prefab
+++ b/ChromeEnigma/Assets/Prefabs/GroundBlue.prefab
@@ -15,7 +15,7 @@ GameObject:
   - component: {fileID: 7364672847754121426}
   m_Layer: 0
   m_Name: GroundBlue
-  m_TagString: GroundBlue
+  m_TagString: GroundColored
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
diff --git a/ChromeEnigma/Assets/Prefabs/GroundGreen.prefab b/ChromeEnigma/Assets/Prefabs/GroundGreen.prefab
index 2d6823a..8766805 100644
--- a/ChromeEnigma/Assets/Prefabs/GroundGreen.prefab
+++ b/ChromeEnigma/Assets/Prefabs/GroundGreen.prefab
@@ -15,7 +15,7 @@ GameObject:
   - component: {fileID: 7364672847754121426}
   m_Layer: 0
   m_Name: GroundGreen
-  m_TagString: GroundGreen
+  m_TagString: GroundColored
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
diff --git a/ChromeEnigma/Assets/Prefabs/GroundRed.prefab b/ChromeEnigma/Assets/Prefabs/GroundRed.prefab
index 8ede551..16eb39f 100644
--- a/ChromeEnigma/Assets/Prefabs/GroundRed.prefab
+++ b/ChromeEnigma/Assets/Prefabs/GroundRed.prefab
@@ -15,7 +15,7 @@ GameObject:
   - component: {fileID: 7364672847754121426}
   m_Layer: 0
   m_Name: GroundRed
-  m_TagString: GroundRed
+  m_TagString: GroundColored
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
diff --git a/ChromeEnigma/Assets/Scripts/ColorChanger.cs b/ChromeEnigma/Assets/Scripts/ColorChanger.cs
index 418489c..d6f6d4f 100644
--- a/ChromeEnigma/Assets/Scripts/ColorChanger.cs
+++ b/ChromeEnigma/Assets/Scripts/ColorChanger.cs
@@ -1,5 +1,7 @@
 using System.Collections;
 using System.Collections.Generic;
+using System.Linq;
+using Unity.VisualScripting;
 using UnityEngine;
 
 public class ColorChanger : MonoBehaviour
@@ -7,11 +9,7 @@ public class ColorChanger : MonoBehaviour
     private Renderer userrenderer;
     private Material material;
 
-    private List<ColorSubscriber> colorSubscribers = new List<ColorSubscriber>();
-    private GameObject[] ground;
-    private GameObject[] groundRed;
-    private GameObject[] groundGreen;
-    private GameObject[] groundBlue;
+    private GameObject[] groundColored;
 
     // Start is called before the first frame update
     void Start()
@@ -19,10 +17,7 @@ public class ColorChanger : MonoBehaviour
         userrenderer = GetComponent<Renderer>();
         material = userrenderer.material;
 
-        if (ground == null) ground = GameObject.FindGameObjectsWithTag("Ground");
-        if (groundRed == null) groundRed = GameObject.FindGameObjectsWithTag("GroundRed");
-        if (groundGreen == null) groundGreen = GameObject.FindGameObjectsWithTag("GroundGreen");
-        if (groundBlue == null) groundBlue = GameObject.FindGameObjectsWithTag("GroundBlue");
+        if (groundColored == null) groundColored = GameObject.FindGameObjectsWithTag("GroundColored");
     }
 
     // Update is called once per frame
@@ -31,7 +26,7 @@ public class ColorChanger : MonoBehaviour
         if (Input.GetButtonDown(KeyCode.Alpha1.ToString()))
         {
             material.color = Color.red;
-            foreach (GameObject g in groundRed)
+            foreach (GameObject g in groundColored)
             {
                 if (g != null) g.GetComponent<ColorSubscriber>().notifyColorChange(Color.red);
             }
@@ -39,7 +34,7 @@ public class ColorChanger : MonoBehaviour
         if (Input.GetButtonDown(KeyCode.Alpha2.ToString()))
         {
             material.color = Color.green;
-            foreach (GameObject g in groundGreen)
+            foreach (GameObject g in groundColored)
             {
                 if (g != null) g.GetComponent<ColorSubscriber>().notifyColorChange(Color.green);
             }
@@ -47,10 +42,18 @@ public class ColorChanger : MonoBehaviour
         if (Input.GetButtonDown(KeyCode.Alpha3.ToString()))
         {
             material.color = Color.blue;
-            foreach (GameObject g in groundBlue)
+            foreach (GameObject g in groundColored)
             {
                 if (g!=null) g.GetComponent<ColorSubscriber>().notifyColorChange(Color.blue);
             }
         }
+        if(Input.GetButtonDown(KeyCode.R.ToString()))
+        {
+            material.color = Color.white;
+            foreach (GameObject g in groundColored)
+            {
+                if (g != null) g.GetComponent<ColorSubscriber>().notifyColorChange(Color.white);
+            }
+        }
     }
 }
-- 
GitLab