// Use this for initialization protected override void Start() { base.Start(); _agent = GetComponent <AgentController> (); _agent.CurrentTask = this; _memory = GetComponent <Memory> (); _moving = GetComponent <Moving> (); _inventory = GetComponent <Inventory>(); _cornfield = null; }
public void SearchCornfield() { if (_cornfield != null) { return; } List <Cornfield> list = new List <Cornfield>(); foreach (object[] tuple in _memory.DB.Tables["Patch"].Entries) { if ((string)tuple[1] == "Cornfield") { Patch p = Patch.GetPatch((int)tuple[2], (int)tuple[3]).GetComponent <Patch>(); if (p.InnerObjects.Length > 0 && p.InnerObjects[0].name == "Cornfield(Clone)") { Cornfield cornfield = p.InnerObjects[0].GetComponent <Cornfield>(); if (cornfield.Villagers.Length == 0 && (cornfield.FieldState != Cornfield.State.SEEDING || cornfield.Seeding < cornfield.SeedDuration - 1f)) { _cornfield = cornfield; return; } list.Add(cornfield); } } } if (list.Count == 0) { if (_moving.Direction == Vector3.zero || _moving.Collision) { _moving.Direction = new Vector3(UnityEngine.Random.Range(-1f, 1f), 0f, UnityEngine.Random.Range(-1f, 1f)); } return; } _cornfield = list[0]; for (int i = 1; i < list.Count; i++) { if (_cornfield.Villagers.Length > list[i].Villagers.Length) { _cornfield = list[i]; } } }
// Update is called once per frame private void Update() { if (_camera.Target == null) { gameObject.SetActive(false); return; } Entity entity = _camera.Target.GetComponent <Entity>(); if (entity.Type != Entity.EntityType.BUILDING || entity.Name != "Cornfield") { gameObject.SetActive(false); return; } Cornfield cornfield = entity.GetComponent <Cornfield>(); _sliderSeeding.value = Mathf.Min(1.0f, cornfield.Seeding); _sliderGrowing.value = Mathf.Min(1.0f, cornfield.Growing); _sliderHarvest.value = Mathf.Min(1.0f, cornfield.Harvest); _textQuantity.text = ((int)(Mathf.Min(1.0f, cornfield.Harvest) * cornfield.FoodCount)).ToString() + "/" + cornfield.FoodCount.ToString(); }