private TaskState Work(Dwarf d, float dt, double dtd) { d.DidSomeFarming(dt); if (d.GetActionField().WorkOn(dt,dtd, d)) return TaskState.Success; else return TaskState.Running; }
private TaskState FindPath(Dwarf d, float dt, double dtd) { FieldSim fs = d.GetActionField(); if (State == TaskState.NotActive) { AsyncPathfinding.RequestPathfinding(d, new Point((int)d.Position.X, (int)d.Position.Y), new Point(fs.GetCornerCrop().Position.X, fs.GetCornerCrop().Position.Y), null); } List<Path> paths = AsyncPathfinding.GetFinishedPaths(d); if (paths.Count == 0) return TaskState.Running; else { if (paths[0] == null) return TaskState.Fail; d.SetMovePath(paths[0]); return TaskState.Success; } }