Ejemplo n.º 1
0
        private TaskState Work(Dwarf d, float dt)
        {
            d.GetActionField().WorkOn(dt, d);

            if (d.GetActionField().IsWorkFinish())
            {
                d.GetActionField().MarkFieldForHarvesting();
                return TaskState.Success;
            }
            else
                return TaskState.Running;
        }
Ejemplo n.º 2
0
        private TaskState FindPath(Dwarf d, float dt)
        {
            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;
            }
        }