private void StateEventHandler(Engine engine, State state, CancelEventArgs canc) { if (engine.States.Count <= 5) { if (!stateAddDelayer.IsRunning) { ToolBox.SoftRestart(); // hack to wait for correct engine to trigger } return; } currentState = state; if (stateAddDelayer.ElapsedMilliseconds <= 0 || stateAddDelayer.ElapsedMilliseconds > 3000 || !stateAddDelayer.IsRunning) { stateAddDelayer.Restart(); WFMSetup.AddState(engine, takeTaxiState, "FlightMaster: Take taxi"); WFMSetup.AddState(engine, discoverFlightMasterState, "FlightMaster: Take taxi"); WFMSetup.AddState(engine, waitOnTaxiState, "FlightMaster: Take taxi"); // Double check because some profiles modify WRobot settings WFMSetup.SetWRobotSettings(); /* * Logger.Log($"****************************"); * foreach (State s in engine.States) * { * Logger.Log($"{s.Priority} : {s.DisplayName}"); * } * Logger.Log($"****************************"); */ } }
public void Dispose() { MovementEvents.OnMovementPulse -= MovementEventsOnMovementPulse; EventsLuaWithArgs.OnEventsLuaStringWithArgs -= ToolBox.MessageHandler; detectionPulse.DoWork -= BackGroundPulse; WFMSetup.RestoreWRobotSettings(); detectionPulse.Dispose(); Logger.Log("Disposed"); stateAddDelayer.Stop(); isLaunched = false; }
public void Initialize() { if (!Products.ProductName.Equals("Quester") && !Products.ProductName.Equals("Grinder") && !Products.ProductName.Equals("Wholesome Professions WotLK")) { return; } isLaunched = true; isHorde = ToolBox.GetIsHorde(); WFMSettings.Load(); WFMDeepSettings.Load(); if (AutoUpdater.CheckUpdate(version)) { Logger.LogWarning("New version downloaded, restarting plugin, please wait"); ToolBox.Restart(); return; } Logger.Log($"Launching version {version} on client {ToolBox.GetWoWVersion()}"); MovementManager.StopMoveNewThread(); MovementManager.StopMoveToNewThread(); FlightMasterDB.Initialize(); WFMSetup.SetBlacklistedZonesAndOffMeshConnections(); WFMSetup.DiscoverDefaultNodes(); detectionPulse.DoWork += BackGroundPulse; detectionPulse.RunWorkerAsync(); FiniteStateMachineEvents.OnRunState += StateEventHandler; MovementEvents.OnMovementPulse += MovementEventsOnMovementPulse; MovementEvents.OnSeemStuck += SeemStuckHandler; EventsLuaWithArgs.OnEventsLuaStringWithArgs += ToolBox.MessageHandler; EventsLua.AttachEventLua("TAXIMAP_OPENED", (e) => isFMMapOpen = true); EventsLua.AttachEventLua("TAXIMAP_CLOSED", (e) => isFMMapOpen = false); EventsLua.AttachEventLua("GOSSIP_SHOW", (e) => isGossipOpen = true); EventsLua.AttachEventLua("GOSSIP_CLOSED", (e) => isGossipOpen = false); }