public override bool CanBeWorkedBy(Worker worker) { Inventory inventory = worker.GetComponent <Inventory>(); if (stockpile == null) { stockpile = FindNearestStockpile(merchandise); if (stockpile) { stockpile.reserved = true; } } return(worker.GetComponent <MoveTo>() != null && inventory != null && stockpile != null && inventory.CanHold(merchandise)); }
public override void Process(Worker worker) { MoveTo moveTo = worker.GetComponent <MoveTo>(); if (moveTo.reachedGoal) { if (!pickedUpMerchandise) { worker.GetComponent <Inventory>().Add(merchandise); pickedUpMerchandise = true; moveTo.SetGoal(stockpile.transform.position, 1); } else { Merchandise merchandise = worker.GetComponent <Inventory>().Remove(); stockpile.Add(merchandise); pickedUpMerchandise = false; Complete(); } } }
public override void Process(Worker worker) { if (workable.complete) { Complete(); } else if (worker.GetComponent <MoveTo>().reachedGoal) { // TODO: // - have worker provide the work rate workable.Work(workRate * Time.deltaTime); } }
public override void OnRemoveWorker(Worker worker) { if (pickedUpMerchandise) { pickedUpMerchandise = false; Merchandise merchandise = worker.GetComponent <Inventory>().Remove(); merchandise.transform.position = worker.transform.position; } if (stockpile) { stockpile.reserved = false; stockpile = null; } }
public override bool CanBeWorkedBy(Worker worker) { return(worker.GetComponent <MoveTo>() != null); }
public override void OnAddWorker(Worker worker) { moveTo = worker.GetComponent <MoveTo>(); moveTo.SetGoal(goal); }
public override void OnAddWorker(Worker worker) { MoveTo moveTo = worker.GetComponent <MoveTo>(); moveTo.SetGoal(workable.transform.position, 2); }
public override void OnAddWorker(Worker worker) { MoveTo moveTo = worker.GetComponent <MoveTo>(); moveTo.SetGoal(merchandise.transform.position, 1); }
public override bool CanBeWorkedBy(Worker worker) { return(worker.GetComponent <Wanderable>() != null); }
public override void OnRemoveWorker(Worker worker) { worker.GetComponent <Wanderable>().Stop(); }
public override void OnAddWorker(Worker worker) { worker.GetComponent <Wanderable>().Wander(); }