private TaskState Pickup(Dwarf d, float dt) { WorldObject obj = d.GetActionPasture().WithdrawWorldObject(d.GetActionWorldObject()); d.CarryWorldObject(obj); return TaskState.Success; }
private TaskState Work(Dwarf d, float dt) { if (State == TaskState.NotActive) d.TimeWorked = 0; d.GetActionPasture().WorkOnPasture(dt); d.TimeWorked += dt; if (d.TimeWorked >= 2000f) { d.TimeWorked = 0; TaskManager.AddTask(new WorkAtPastureTask(d.GetActionPasture())); return TaskState.Success; } else return TaskState.Running; }
private TaskState FindPath(Dwarf d, float dt) { PastureSim fs = d.GetActionPasture(); if (State == TaskState.NotActive) { AsyncPathfinding.RequestPathfinding(d, new Point((int)d.Position.X, (int)d.Position.Y), new Point(fs.CornerFence.X, fs.CornerFence.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; } }