private TaskState Construct(Dwarf d, float dt) { d.GetActionWorldObject().CraftOnObject(d.GetActionWorldObject().CraftPointsNeeded); DwarfConsole.WriteLine("Placed Worldobject: " + d.GetActionWorldObject().ElementType +" " + d.GetActionWorldObject().Level, ConsoleColor.Blue); d.RemoveHoldingWorldObject(); return TaskState.Success; }
private TaskState Pickup(Dwarf d, float dt) { WorldObject me = d.GetActionWorldObject(); //if ((int)d.Position.X != me.Position.X || (int)d.Position.Y != me.Position.Y) // throw new Exception("Dwarf not in place"); Console.WriteLine("Pickup: " + d.Id + " - " + d.GetActionWorldObject().Position.X + ", " + d.GetActionWorldObject().Position.Y); d.GetActionMapElement().RemoveFromMap(); d.CarryWorldObject(d.GetActionWorldObject()); return TaskState.Success; }
private TaskState Pickup(Dwarf d, float dt) { WorldObject obj = d.GetActionPasture().WithdrawWorldObject(d.GetActionWorldObject()); d.CarryWorldObject(obj); return TaskState.Success; }
private TaskState FindPath(Dwarf d, float dt) { WorldObject m = d.GetActionWorldObject(); if (State == TaskState.NotActive) { AsyncPathfinding.RequestPathfinding(d, new Point((int)d.Position.X, (int)d.Position.Y), new Point(m.Position.X, m.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]); Point p = paths[0].PathPoints[paths[0].PathPoints.Count - 1]; if (p.X == m.Position.X && p.Y == m.Position.Y) { } else { } return TaskState.Success; } }
private TaskState Check(Dwarf d, float dt) { if (d.GetActionbuilding().GetCraftSlot() == null) return TaskState.Absolete; if (d.GetActionbuilding().GetCraftSlot().Id.ToString() != d.GetActionWorldObject().Id.ToString()) return TaskState.Absolete; return TaskState.Success; }
private TaskState Harvest(Dwarf d, float dt) { CropBase crop = (CropBase)d.GetActionWorldObject(); d.CarryWorldObject(crop.TakeHarvest()); return TaskState.Success; }