示例#1
0
 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;
 }
示例#2
0
        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;
            }
        }