diff --git a/Assets/Scripts/City.cs b/Assets/Scripts/City.cs new file mode 100644 index 0000000000000000000000000000000000000000..8cb47e3da408a2bce610a8336315573397eba7e1 --- /dev/null +++ b/Assets/Scripts/City.cs @@ -0,0 +1,62 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class City : MonoBehaviour +{ + + + // Start is called before the first frame update + void Start() + { + + } + + + /** + * Kayttaa resurssia r, maaran 'amount' verran (amount >= 0). + * Voidaan kayttaa maximissaan sen verran resursseja mita niita on kaytossa. + */ + public void useResource(Resource r, int amount) + { + if (amount<0) + { + return; + } + ResourcePool[] lista = gameObject.GetComponents<ResourcePool>(); + for (int i = 0; i < lista.Length; i++) + { + if (lista[i].getResource().GetType().Equals(r.GetType())) + { + lista[i].useResource(amount); + } + } + } + + /** +* Lisaa resurssia r, maaran 'amount' verran (amount >= 0). +* Voidaan lisata maximissaan resurssin maximikapasiteettiin asti, +* ts. jos nykyinen resurssimaara + lisatty maara >= maximikapasiteetti +* niin uusi resurssimaara = maximikapasiteetti +*/ + public void addResource(Resource r, int amount) + { + if (amount<0) + { + return; + } + ResourcePool[] lista = gameObject.GetComponents<ResourcePool>(); + + for (int i = 0; i < lista.Length; i++) + { + if (lista[i].getResource().GetType().Equals(r.GetType())) + { + lista[i].addResource(amount); + return; + } + } + ResourcePool respool = gameObject.AddComponent<ResourcePool>(); + respool.setResource(r); + respool.addResource(amount); + } +} diff --git a/Assets/Scripts/City.cs.meta b/Assets/Scripts/City.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ec6eefff5080908c3c44bbc667566a429ad9ccf0 --- /dev/null +++ b/Assets/Scripts/City.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dfe928a858872424991e927606dd4bc3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ResourcePool.cs b/Assets/Scripts/ResourcePool.cs new file mode 100644 index 0000000000000000000000000000000000000000..da4ec052a8c32be22dfb77681c135f6b8517bb96 --- /dev/null +++ b/Assets/Scripts/ResourcePool.cs @@ -0,0 +1,58 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ResourcePool : MonoBehaviour +{ + + [SerializeField] + private Resource r; + + [SerializeField] + private int amount = 0; + + [SerializeField] + private int maxCapacity = 100; + + // Start is called before the first frame update + void Start() + { + } + public void setResource(Resource r) + { + this.r = r; + } + + public Resource getResource() + { + return r; + } + /** + * Kayttaa resurssia maaran X verran + */ + public void useResource(int x) + { + if (this.amount - x <= 0) + { + this.amount = 0; + } + else + { + this.amount -= x; + } + } + /** + * Lisaa resurssia maaran X verran + */ + public void addResource(int x) + { + if (this.amount + x >= this.maxCapacity) + { + this.amount = this.maxCapacity; + } + else + { + this.amount += x; + } + } +} diff --git a/Assets/Scripts/ResourcePool.cs.meta b/Assets/Scripts/ResourcePool.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4cac451edec3609387abc22103f7d8985058639d --- /dev/null +++ b/Assets/Scripts/ResourcePool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5f9cff662cdcb44d9481366eacfa431 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: