public override CharacterTask.Task getCurrentTask(CharacterTaskTracker taskTracker) { if (!path.isUseable()) { return(new CharacterTask.SwitchJob(new UnemployedJob())); } else if (path.length() == 0) { if (toReturnTo != null) { return(new CharacterTask.SwitchJob(toReturnTo)); } else { return(new CharacterTask.SwitchJob(new UnemployedJob())); } } else if (!currentStep.isComplete()) { return(currentStep); } else { path.removeAt(0); if (path != null && path.length() > 0) { currentStep = new CharacterTask.StepToBlock(path.getFirst()); } return(currentStep); } }
public TravelAlongPath(Path nPath) { Debug.Assert(nPath != null); toReturnTo = null; path = nPath; if (willResultInTravel()) { currentStep = new CharacterTask.StepToBlock(path.getAt(0)); } }
public TravelAlongPath(Path nPath, Job nToReturnTo) { Debug.Assert(nPath != null); toReturnTo = nToReturnTo; path = nPath; if (willResultInTravel()) { currentStep = new CharacterTask.StepToBlock(path.getAt(0)); } setJobType(JobType.none); }