Esempio n. 1
0
        private void TickMemoryThread()
        {
            try
            {
                IActorRefreshService refreshService = Services.Get <IActorRefreshService>();

                while (this.isActive)
                {
                    Thread.Sleep(16);

                    if (!this.ProcessIsAlive)
                    {
                        return;
                    }

                    while (refreshService.IsRefreshing)
                    {
                        Thread.Sleep(64);
                    }

                    MemoryBase.TickAllActiveMemory();
                }
            }
            catch (Exception ex)
            {
                Log.Write(new Exception("Memory thread exception", ex));
            }
        }
Esempio n. 2
0
        public ExtendedAppearanceEditor()
        {
            this.InitializeComponent();

            this.refreshService = Services.Get <IActorRefreshService>();

            this.ContentArea.DataContext = this;
        }
Esempio n. 3
0
        public AppearancePage()
        {
            this.InitializeComponent();

            IActorRefreshService refreshService = Services.Get <IActorRefreshService>();

            refreshService.OnRefreshStarting += this.RefreshService_OnRefreshStarting;
            refreshService.OnRefreshComplete += this.RefreshService_OnRefreshComplete;
        }
Esempio n. 4
0
        public AppearancePage()
        {
            this.selectionService = Services.Get <ISelectionService>();
            this.refreshService   = Services.Get <IActorRefreshService>();

            this.refreshService.RefreshBegin    += this.RefreshService_RefreshBegin;
            this.refreshService.RefreshComplete += this.RefreshService_RefreshComplete;

            this.InitializeComponent();
        }
Esempio n. 5
0
        private async Task Watch()
        {
            await Task.Delay(500);

            IActorRefreshService refreshService = Services.Get <IActorRefreshService>();

            Modes currentMode = this.GetMode();

            while (this.IsAlive)
            {
                await Task.Delay(250);

                while (refreshService.IsRefreshing)
                {
                    await Task.Delay(250);
                }

                Modes newMode = this.GetMode();

                if (newMode != currentMode)
                {
                    await Task.Delay(1000);

                    currentMode = newMode;
                    this.RetargetActors();

                    try
                    {
                        this.ModeChanged?.Invoke(newMode);
                    }
                    catch (Exception ex)
                    {
                        Log.Write(ex, "Selection", Log.Severity.Error);
                    }
                }
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Marks the selected actor to be refreshed after a short delay.
        /// it is safe to call this repeatedly.
        /// </summary>
        public void ActorRefresh()
        {
            IActorRefreshService refreshService = Services.Get <IActorRefreshService>();

            refreshService.Refresh(this.BaseAddress);
        }
Esempio n. 7
0
        private async Task Watch()
        {
            try
            {
                await Task.Delay(500);

                IActorRefreshService refreshService = Services.Get <IActorRefreshService>();

                Modes currentMode = this.GetMode();

                while (this.IsAlive)
                {
                    await Task.Delay(250);

                    while (refreshService.IsRefreshing)
                    {
                        await Task.Delay(250);
                    }

                    Modes newMode = this.GetMode();

                    if (newMode != currentMode)
                    {
                        await Task.Delay(1000);

                        currentMode = newMode;

                        try
                        {
                            this.ModeChanged?.Invoke(newMode);
                        }
                        catch (Exception ex)
                        {
                            Log.Write(ex, "Selection", Log.Severity.Error);
                        }
                    }

                    Actor selected;

                    try
                    {
                        if (newMode == Modes.Overworld)
                        {
                            selected = new Actor(Offsets.Main.Target);
                        }
                        else
                        {
                            selected = new Actor(Offsets.Main.Gpose);
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.Write(new Exception("Failed to select current target", ex), "Selection", Log.Severity.Warning);
                        selected = null;
                    }

                    if (selected == null || selected.Type == ActorTypes.None)
                    {
                        continue;
                    }

                    if (selected != this.selectedActor)
                    {
                        await this.SelectActor(selected);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Write(ex);
            }
        }
Esempio n. 8
0
 public async Task ActorRefreshAsync()
 {
     IActorRefreshService refreshService = Services.Get <IActorRefreshService>();
     await refreshService.RefreshAsync(this);
 }