private ToolDispenser GetClosest() { var dispensers = COMPONENT_DATABASE.RetrieveComponents <ToolDispenser>(); if (dispensers.Count == 0) { return(null); } ToolDispenser closest = null; float closestDist = float.MaxValue; foreach (var d in dispensers) { var dispenser = (ToolDispenser)d; if (dispenser.GetResourceCount(ToolType.WoodenAxe) <= 0) { continue; } float dist = (dispenser.gameObject.transform.position - transform.position).magnitude; if (dist < closestDist) { closest = dispenser; closestDist = dist; } } return(closest); }
public override void SetTarget() { var closest = GetClosest(); if (closest != null) { m_ToolDispenser = closest; target = m_ToolDispenser.transform; } }
protected override void DoReset() { m_HasAxe = false; m_ToolDispenser = null; }
void Awake() { m_Animator = GetComponent <GoapLabourerAnimator> (); m_Inventory = GetComponent <Inventory> (); m_ToolDispenser = GetComponent <ToolDispenser> (); }