diff --git a/Assets/Prefab/ResourceRow.prefab b/Assets/Prefab/ResourceRow.prefab index bab5d5b1ecc4eaaa730ce2adfb540b97be1fb8b0..6385fd20fdf9bdda2ccab3279310ea02f28f59ef 100644 --- a/Assets/Prefab/ResourceRow.prefab +++ b/Assets/Prefab/ResourceRow.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 5007991825820669350} - component: {fileID: 6445693634580716852} m_Layer: 0 - m_Name: Sand + m_Name: bar m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -25,7 +25,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2308576596148104492} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.2059997, y: -0.10999938, z: 0} + m_LocalPosition: {x: 0.93, y: 0.291, z: 0} m_LocalScale: {x: 0.70104766, y: 0.75656927, z: 1} m_Children: [] m_Father: {fileID: 5761957582027681033} @@ -68,7 +68,7 @@ SpriteRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_Sprite: {fileID: 21300000, guid: fe463401d3186b54086acff6bb82891f, type: 3} + m_Sprite: {fileID: 21300000, guid: 82eec913fc22f9043b7dd6a14b77fe77, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 @@ -172,4 +172,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: bd508a1c9a5505c498ef74ef59a55518, type: 3} m_Name: m_EditorClassIdentifier: - icon: {fileID: 0} + sprites: + - {fileID: 21300000, guid: 82eec913fc22f9043b7dd6a14b77fe77, type: 3} + - {fileID: 21300002, guid: 82eec913fc22f9043b7dd6a14b77fe77, type: 3} + - {fileID: 21300004, guid: 82eec913fc22f9043b7dd6a14b77fe77, type: 3} + - {fileID: 21300006, guid: 82eec913fc22f9043b7dd6a14b77fe77, type: 3} + - {fileID: 21300008, guid: 82eec913fc22f9043b7dd6a14b77fe77, type: 3} + spriteR: {fileID: 0} diff --git a/Assets/Scripts/City/City.cs b/Assets/Scripts/City/City.cs index cbc5ddb6012feaecb8b8c477a2e97cfe4ab3e782..5f7296b738b0247b923fd1fc412f22815f6f8e49 100644 --- a/Assets/Scripts/City/City.cs +++ b/Assets/Scripts/City/City.cs @@ -116,7 +116,7 @@ public class City : MonoBehaviour */ public void AddResource(Resource r, int amount) { - if (amount < 0) + if (r == null || amount < 0) { return; } diff --git a/Assets/Scripts/City/ResourcePool.cs b/Assets/Scripts/City/ResourcePool.cs index 4877cd38fb320a76470ca1aedb3b5c45db454985..bfb1ad059f74605ab3cfa4625d3d2f0b3eef6ba7 100644 --- a/Assets/Scripts/City/ResourcePool.cs +++ b/Assets/Scripts/City/ResourcePool.cs @@ -31,6 +31,10 @@ public class ResourcePool : MonoBehaviour } public void SetResource(Resource r) { + if (r == null) + { + return; + } this.r = r; icon = r.getResourceImg(); } @@ -79,5 +83,9 @@ public class ResourcePool : MonoBehaviour { return this.maxCapacity; } + public int GetAmount() + { + return amount; + } } diff --git a/Assets/Scripts/City/ResourceRow.cs b/Assets/Scripts/City/ResourceRow.cs index 6f0f9c727f756fba71a5787b19b9e69ace1834e8..94f2afd40af327271d4268518a41a93ca2edbf95 100644 --- a/Assets/Scripts/City/ResourceRow.cs +++ b/Assets/Scripts/City/ResourceRow.cs @@ -8,6 +8,10 @@ public class ResourceRow : MonoBehaviour private Sprite sprite; + [SerializeField] + private Sprite[] sprites; + + // Start is called before the first frame update void Start() { @@ -17,7 +21,7 @@ public class ResourceRow : MonoBehaviour // Update is called once per frame void Update() { - + UpdateBars(); } public void SetRow(Resource r, float x, float y, float z) @@ -27,5 +31,38 @@ public class ResourceRow : MonoBehaviour this.GetComponent<SpriteRenderer>().transform.position = new Vector3(x, y, z); this.GetComponent<SpriteRenderer>().transform.localScale = new Vector3(0.35f, 0.35f, 1f); } + public void UpdateBars() + { + GameObject city = GameObject.FindGameObjectWithTag("Home"); + ResourcePool[] lista = city.GetComponents<ResourcePool>(); + + for (int i = 0; i < lista.Length; i++) + { + if (lista[i].GetResource().GetType().Equals(r.GetType())) + { + + + int amount = lista[i].GetAmount(); + int max = lista[i].GetMaxCapacity(); + float pros = amount*1f / max*1f; + if (pros<=0.2) + { + transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = sprites[0]; + } else if(pros<=0.4) + { + transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = sprites[1]; + } else if(pros<=0.6) + { + transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = sprites[2]; + } else if(pros<=0.8) + { + transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = sprites[3]; + } else + { + transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = sprites[4]; + } + } + } + } }