public void CreateUI() { Extensions.Execute.UIThread(() => { if (Config.Get <FKConfig>().General.FKSettings.UseOverlayInGame) { if (Account.DiabloIII.VideoPreferences.x0C_DisplayMode.x04_WindowMode == Enigma.D3.Graphics.WindowMode.Fullscreen) { System.Windows.MessageBox.Show("FindersKeepersD3 is not supported in Fullscreen.\nPlease run Diablo III in Window mode or Window Fullscreen."); return; } Extensions.TryInvoke(() => { LoadDefaultFeatures(); GameManager.Instance.GManager.GRef.D3Overlay = D3Overlay.Create(Account.DiabloIII.Process); GameManager.Instance.GManager.GRef.D3Overlay.Show(); /*GameManager.Instance.GManager.GRef.Attacher = new Attach(GameManager.Instance.GManager.GRef.D3Overlay); * GameManager.Instance.GManager.GRef.Attacher = new Attach(GameManager.Instance.GManager.GRef.D3Overlay); * Action.Add(GameManager.Instance.GManager.GRef.Attacher.SetUpdate);*/ GameManager.Instance.GManager.GRef.D3OverlayControl = new Templates.Overlay.Attacher <D3OverlayControl>(GameManager.Instance.GManager.GRef.D3Overlay); GameManager.Instance.GManager.GRef.D3OverlayControl.Initialize(); Action.Add(GameManager.Instance.GManager.GRef.Actors.Enumerate); Action.Add(GameManager.Instance.GManager.GRef.D3OverlayControl.TryUpdate); PInvokers.SetForegroundWindow(Account.DiabloIII.Process.MainWindowHandle); Enigma.D3.Engine.Current = Account.DiabloIII; GameManagerAccountHelper.Current = Account; //Debug.GetDDump.AttributesList(); }); Action.Add(() => { if (GameManagerAccountHelper.Current.Player != null) { GameManagerAccountHelper.Current.Player.FreeSnapshot(); } }); } }); }
public Attacher(D3Overlay D3Window) { FKControls = new ObservableCollection <FKControl>(); Tooltips = new ObservableCollection <ToolTipHelper>(); HitTesting = new List <Helpers.HitTesting>(); D3RenderControl = Activator.CreateInstance <T>(); D3RenderControl.DataContext = this; Root = new Grid() { Height = 1200.5d }; Root.Children.Add(D3RenderControl); Window = (Canvas)D3Window.Window; Window.Children.Add(Root); Window.SizeChanged += (s, e) => UpdateSizeAndPosition(); UpdateSizeAndPosition(); }