// Update is called once per frame void Update() { if (placingObject) { Vector2 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition); pos.x = Mathf.Round(pos.x); pos.y = Mathf.Round(pos.y); objectBeingPlaced.transform.position = pos; CheckResources(); if (Input.GetMouseButtonDown(1)) { placingObject = false; Destroy(objectBeingPlaced); } if (Input.GetMouseButtonDown(0)) { if (enoughResources) { foreach (KeyValuePair <Resources, int> resource in objectBeingPlaced.GetComponent <Buildable>().resourcesNeeded) { switch (resource.Key) { case Resources.Energy: resourcesHandler.RemoveResource(Resources.Energy, resource.Value); break; case Resources.Ore: resourcesHandler.RemoveResource(Resources.Ore, resource.Value); break; default: break; } } objectBeingPlaced.GetComponent <ResourceGenerator>().enabled = true; objectBeingPlaced.GetComponent <SpriteRenderer>().color = new Color(1, 1, 1, 1); sceneHandler.currentColony.GetComponent <Colony>().renderers.Add(objectBeingPlaced.GetComponent <Renderer>()); placingObject = false; objectBeingPlaced = null; } } } }
public void Tick() { timeLapsed += Time.deltaTime; if (timeLapsed > frequency) { if (resourceHandler.RemoveResource(Resources.Energy, powerUsed)) { if (resourceType == Resources.Research) { researchHandler.GenerateResearch(amountProduced); } else { resourceHandler.AddResource(resourceType, amountProduced); } } timeLapsed = 0; } }
public void Unload(Resources resourceType, int amount) { resourcesHandler.RemoveResource(resourceType, amount); }