Avancement sur coroutine de génération de ressources.
Changé la coroutine de ResourceMaker vers ResourceManager. Changé ResourceMaker pour permettre d'augmenter ou de réduire la quantité de resources produites.
This commit is contained in:
parent
3e00af6067
commit
e03abf24ec
@ -17,35 +17,40 @@ public class ResourceMaker : MonoBehaviour
|
||||
Food
|
||||
};
|
||||
|
||||
public void GenerateResource()
|
||||
private void Start()
|
||||
{
|
||||
_resourceManager = ResourceManager.Instance;
|
||||
StartCoroutine(Make());
|
||||
}
|
||||
|
||||
private IEnumerator Make()
|
||||
public void GenerateResource()
|
||||
{
|
||||
switch (_resourceChoice)
|
||||
{
|
||||
case ResourceChoice.Rock:
|
||||
_resourceManager.RockAmount = _resourceMakingAmount;
|
||||
_resourceManager.RockGenerationAmount(_resourceMakingAmount,ResourceManager.AddOrRemove.Add);
|
||||
break;
|
||||
case ResourceChoice.Wood:
|
||||
_resourceManager.WoodAmount = _resourceMakingAmount;
|
||||
_resourceManager.WoodGenerationAmount(_resourceMakingAmount, ResourceManager.AddOrRemove.Add);
|
||||
break;
|
||||
case ResourceChoice.Food:
|
||||
_resourceManager.FoodAmount = _resourceMakingAmount;
|
||||
break;
|
||||
default:
|
||||
_resourceManager.FoodGenerationAmount(_resourceMakingAmount, ResourceManager.AddOrRemove.Add);
|
||||
break;
|
||||
}
|
||||
Debug.Log("Generating...");
|
||||
|
||||
yield return new WaitForSeconds(3f);
|
||||
}
|
||||
|
||||
public void StopGenerate()
|
||||
private void OnDestroy()
|
||||
{
|
||||
StopCoroutine(Make());
|
||||
switch (_resourceChoice)
|
||||
{
|
||||
case ResourceChoice.Rock:
|
||||
_resourceManager.RockGenerationAmount(_resourceMakingAmount, ResourceManager.AddOrRemove.Remove);
|
||||
break;
|
||||
case ResourceChoice.Wood:
|
||||
_resourceManager.WoodGenerationAmount(_resourceMakingAmount, ResourceManager.AddOrRemove.Remove);
|
||||
break;
|
||||
case ResourceChoice.Food:
|
||||
_resourceManager.FoodGenerationAmount(_resourceMakingAmount, ResourceManager.AddOrRemove.Remove);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
/// <summary>
|
||||
/// Sert d'inventaire et gère l'accès aux ressources
|
||||
@ -9,6 +10,16 @@ public class ResourceManager : MonoBehaviour
|
||||
private int _rockAmount = 0;
|
||||
private int _woodAmount = 0;
|
||||
private int _foodAmount = 0;
|
||||
private int _rockGenerationAmount = 0;
|
||||
private int _woodGenerationAmount = 0;
|
||||
private int _foodGenerationAmount = 0;
|
||||
private bool _generatingResources = true;
|
||||
|
||||
public enum AddOrRemove
|
||||
{
|
||||
Add,
|
||||
Remove
|
||||
};
|
||||
|
||||
private const int MAX = 100;
|
||||
private const int MIN = 0;
|
||||
@ -31,6 +42,7 @@ public class ResourceManager : MonoBehaviour
|
||||
else
|
||||
{
|
||||
_instance = this;
|
||||
StartCoroutine(Generate());
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,6 +79,39 @@ public class ResourceManager : MonoBehaviour
|
||||
}
|
||||
get { return _foodAmount; }
|
||||
}
|
||||
public void RockGenerationAmount(int amount, AddOrRemove choice)
|
||||
{
|
||||
if (choice == AddOrRemove.Add)
|
||||
{
|
||||
_rockAmount += amount;
|
||||
}
|
||||
else
|
||||
{
|
||||
_rockAmount -= amount;
|
||||
}
|
||||
}
|
||||
public void WoodGenerationAmount(int amount, AddOrRemove choice)
|
||||
{
|
||||
if (choice == AddOrRemove.Add)
|
||||
{
|
||||
_woodAmount += amount;
|
||||
}
|
||||
else
|
||||
{
|
||||
_woodAmount -= amount;
|
||||
}
|
||||
}
|
||||
public void FoodGenerationAmount(int amount, AddOrRemove choice)
|
||||
{
|
||||
if( choice == AddOrRemove.Add)
|
||||
{
|
||||
_foodAmount += amount;
|
||||
}
|
||||
else
|
||||
{
|
||||
_foodAmount -= amount;
|
||||
}
|
||||
}
|
||||
|
||||
public void Remove(int rock, int wood, int food)
|
||||
{
|
||||
@ -84,4 +129,23 @@ public class ResourceManager : MonoBehaviour
|
||||
return true;
|
||||
}
|
||||
|
||||
private IEnumerator Generate()
|
||||
{
|
||||
while (_generatingResources)
|
||||
{
|
||||
_rockAmount = _rockGenerationAmount;
|
||||
_woodAmount = _woodGenerationAmount;
|
||||
_foodAmount = _foodGenerationAmount;
|
||||
Debug.Log("Generating...");
|
||||
|
||||
yield return new WaitForSeconds(3f);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
_generatingResources = false;
|
||||
StopCoroutine(Generate());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user