RunSync() public static method

public static RunSync ( Func func ) : void
func Func
return void
Esempio n. 1
0
 public void HandleEliteEvents(object sender, JournalEventArgs e)
 {
     AsyncHelper.RunSync(HandleDisplay);
 }
Esempio n. 2
0
        public override void KeyPressed(KeyPayload payload)
        {
            if (InputRunning || Program.Binding == null)
            {
                ForceStop = true;
                return;
            }

            ForceStop = false;

            var isDisabled = (EliteData.StatusData.OnFoot ||
                              EliteData.StatusData.InSRV ||
                              EliteData.StatusData.Docked ||
                              EliteData.StatusData.Landed ||
                              EliteData.StatusData.LandingGearDown ||
                              EliteData.StatusData.CargoScoopDeployed ||

                              //EliteData.StatusData.SilentRunning ||
                              //EliteData.StatusData.ScoopingFuel ||
                              //EliteData.StatusData.IsInDanger ||
                              //EliteData.StatusData.BeingInterdicted ||
                              //EliteData.StatusData.HudInAnalysisMode ||

                              EliteData.StatusData.FsdMassLocked ||
                              //EliteData.StatusData.FsdCharging ||
                              EliteData.StatusData.FsdCooldown ||

                              //EliteData.StatusData.Supercruise ||
                              //EliteData.StatusData.FsdJump ||
                              EliteData.StatusData.HardpointsDeployed);

            if (!isDisabled)
            {
                switch (settings.Function)
                {
                case "HYPERSUPERCOMBINATION"
                    :     // context dependent, i.e. jump if another system is targeted, supercruise if not.
                    SendKeypress(Program.Binding[BindingType.Ship].HyperSuperCombination);
                    break;

                case "SUPERCRUISE":     // supercruise even if another system targeted
                    SendKeypress(Program.Binding[BindingType.Ship].Supercruise);
                    break;

                case "HYPERSPACE":     // jump
                    SendKeypress(Program.Binding[BindingType.Ship].Hyperspace);
                    break;
                }

                if (_clickSound != null)
                {
                    try
                    {
                        AudioPlaybackEngine.Instance.PlaySound(_clickSound);
                    }
                    catch (Exception ex)
                    {
                        Logger.Instance.LogMessage(TracingLevel.FATAL, $"PlaySound: {ex}");
                    }
                }
            }
            else
            {
                if (_errorSound != null)
                {
                    try
                    {
                        AudioPlaybackEngine.Instance.PlaySound(_errorSound);
                    }
                    catch (Exception ex)
                    {
                        Logger.Instance.LogMessage(TracingLevel.FATAL, $"PlaySound: {ex}");
                    }
                }
            }

            AsyncHelper.RunSync(HandleDisplay);
        }