public void LoadProfile(IDungeonProfile profile) { Reset(); DungeonProfile = profile; // filter out already checked nodes DungeonNode closestDungeonNode = DungeonProfile.Path.OrderBy(e => e.Position.GetDistance(WowInterface.ObjectManager.Player.Position)).FirstOrDefault(); bool shouldAddNodes = closestDungeonNode == null; foreach (DungeonNode d in DungeonProfile.Path) { // skip all already completed nodes if (!shouldAddNodes && d == closestDungeonNode) { shouldAddNodes = true; } if (shouldAddNodes) { CurrentNodes.Enqueue(d); } } TotalNodes = CurrentNodes.Count; }
public void LoadProfile(IDungeonProfile profile) { if (!WowInterface.ObjectManager.IsWorldLoaded || DateTime.Now - EntryTime < TimeSpan.FromSeconds(3)) { return; } Reset(); DungeonProfile = profile; LoadNodes(); WowInterface.CombatClass.PriorityTargets = profile.PriorityUnits; TotalNodes = CurrentNodes.Count; }
public void LoadProfile(IDungeonProfile profile) { Profile = profile; // DungeonNode closestNode = profile.Nodes.OrderBy(e => e.Position.GetDistance(WowInterface.ObjectManager.Player.Position)).FirstOrDefault(); // int closestNodeIndex = profile.Nodes.IndexOf(closestNode); for (int i = 0; i < profile.Nodes.Count; ++i) { CurrentNodes.Enqueue(profile.Nodes[i]); } WowInterface.CombatClass.PriorityTargetDisplayIds = profile.PriorityUnits; TotalNodes = CurrentNodes.Count; }