mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-12 21:38:38 +00:00
Merged with development
This commit is contained in:
commit
1643efcc3f
@ -1,92 +1,93 @@
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Forms;
|
||||
using Artemis.ViewModels;
|
||||
using Autofac;
|
||||
using Caliburn.Micro;
|
||||
using Caliburn.Micro.Autofac;
|
||||
using Application = System.Windows.Application;
|
||||
using MessageBox = System.Windows.Forms.MessageBox;
|
||||
|
||||
namespace Artemis
|
||||
{
|
||||
public class ArtemisBootstrapper : AutofacBootstrapper<SystemTrayViewModel>
|
||||
{
|
||||
public ArtemisBootstrapper()
|
||||
{
|
||||
CheckDuplicateInstances();
|
||||
|
||||
Initialize();
|
||||
|
||||
MessageBinder.SpecialValues.Add("$scaledmousex", (ctx) =>
|
||||
{
|
||||
var img = ctx.Source as Image;
|
||||
var input = ctx.Source as IInputElement;
|
||||
var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs;
|
||||
|
||||
// If there is an image control, get the scaled position
|
||||
if (img != null && e != null)
|
||||
{
|
||||
Point position = e.GetPosition(img);
|
||||
return (int)(img.Source.Width * (position.X / img.ActualWidth));
|
||||
}
|
||||
|
||||
// If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen
|
||||
if (e != null && input != null)
|
||||
return e.GetPosition(input).X;
|
||||
|
||||
// Return 0 if no processing could be done
|
||||
return 0;
|
||||
});
|
||||
MessageBinder.SpecialValues.Add("$scaledmousey", (ctx) =>
|
||||
{
|
||||
var img = ctx.Source as Image;
|
||||
var input = ctx.Source as IInputElement;
|
||||
var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs;
|
||||
|
||||
// If there is an image control, get the scaled position
|
||||
if (img != null && e != null)
|
||||
{
|
||||
Point position = e.GetPosition(img);
|
||||
return (int)(img.Source.Width * (position.Y / img.ActualWidth));
|
||||
}
|
||||
|
||||
// If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen
|
||||
if (e != null && input != null)
|
||||
return e.GetPosition(input).Y;
|
||||
|
||||
// Return 0 if no processing could be done
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
|
||||
protected override void ConfigureContainer(ContainerBuilder builder)
|
||||
{
|
||||
base.ConfigureContainer(builder);
|
||||
|
||||
// create a window manager instance to be used by everyone asking for one (including Caliburn.Micro)
|
||||
builder.RegisterInstance<IWindowManager>(new WindowManager());
|
||||
builder.RegisterType<SystemTrayViewModel>();
|
||||
builder.RegisterType<ShellViewModel>();
|
||||
}
|
||||
|
||||
protected override void OnStartup(object sender, StartupEventArgs e)
|
||||
{
|
||||
DisplayRootViewFor<SystemTrayViewModel>();
|
||||
}
|
||||
|
||||
private void CheckDuplicateInstances()
|
||||
{
|
||||
var processes = Process.GetProcesses();
|
||||
if (processes.Count(p => p.ProcessName == "Artemis") < 2)
|
||||
return;
|
||||
|
||||
MessageBox.Show("An instance of Artemis is already running (check your system tray).",
|
||||
"Artemis (╯°□°)╯︵ ┻━┻", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
Application.Current.Shutdown();
|
||||
}
|
||||
|
||||
}
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Forms;
|
||||
using Artemis.ViewModels;
|
||||
using Autofac;
|
||||
using Caliburn.Micro;
|
||||
using Caliburn.Micro.Autofac;
|
||||
using Application = System.Windows.Application;
|
||||
using MessageBox = System.Windows.Forms.MessageBox;
|
||||
|
||||
namespace Artemis
|
||||
{
|
||||
public class ArtemisBootstrapper : AutofacBootstrapper<SystemTrayViewModel>
|
||||
{
|
||||
public ArtemisBootstrapper()
|
||||
{
|
||||
CheckDuplicateInstances();
|
||||
|
||||
Initialize();
|
||||
|
||||
MessageBinder.SpecialValues.Add("$scaledmousex", (ctx) =>
|
||||
{
|
||||
var img = ctx.Source as Image;
|
||||
var input = ctx.Source as IInputElement;
|
||||
var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs;
|
||||
|
||||
// If there is an image control, get the scaled position
|
||||
if (img != null && e != null)
|
||||
{
|
||||
Point position = e.GetPosition(img);
|
||||
return (int)(img.Source.Width * (position.X / img.ActualWidth));
|
||||
}
|
||||
|
||||
// If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen
|
||||
if (e != null && input != null)
|
||||
return e.GetPosition(input).X;
|
||||
|
||||
// Return 0 if no processing could be done
|
||||
return 0;
|
||||
});
|
||||
MessageBinder.SpecialValues.Add("$scaledmousey", (ctx) =>
|
||||
{
|
||||
var img = ctx.Source as Image;
|
||||
var input = ctx.Source as IInputElement;
|
||||
var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs;
|
||||
|
||||
// If there is an image control, get the scaled position
|
||||
if (img != null && e != null)
|
||||
{
|
||||
Point position = e.GetPosition(img);
|
||||
return (int)(img.Source.Width * (position.Y / img.ActualWidth));
|
||||
}
|
||||
|
||||
// If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen
|
||||
if (e != null && input != null)
|
||||
return e.GetPosition(input).Y;
|
||||
|
||||
// Return 0 if no processing could be done
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
|
||||
protected override void ConfigureContainer(ContainerBuilder builder)
|
||||
{
|
||||
base.ConfigureContainer(builder);
|
||||
|
||||
// create a window manager instance to be used by everyone asking for one (including Caliburn.Micro)
|
||||
builder.RegisterInstance<IWindowManager>(new WindowManager());
|
||||
builder.RegisterType<SystemTrayViewModel>();
|
||||
builder.RegisterType<ShellViewModel>();
|
||||
}
|
||||
|
||||
protected override void OnStartup(object sender, StartupEventArgs e)
|
||||
{
|
||||
DisplayRootViewFor<SystemTrayViewModel>();
|
||||
}
|
||||
|
||||
private void CheckDuplicateInstances()
|
||||
{
|
||||
if (Process.GetProcesses().Count(p => p.ProcessName.Contains(Assembly.GetExecutingAssembly()
|
||||
.FullName.Split(',')[0]) && !p.Modules[0].FileName.Contains("vshost")) < 2)
|
||||
return;
|
||||
|
||||
MessageBox.Show("An instance of Artemis is already running (check your system tray).",
|
||||
"Artemis (╯°□°)╯︵ ┻━┻", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
Application.Current.Shutdown();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -2,17 +2,17 @@
|
||||
[
|
||||
{
|
||||
"Game":"RocketLeague",
|
||||
"GameVersion":"1.15",
|
||||
"GameVersion":"1.16",
|
||||
"GameAddresses":[
|
||||
{
|
||||
"Description":"Boost",
|
||||
"BasePointer":{
|
||||
"value":22555396
|
||||
"value":22411984
|
||||
},
|
||||
"Offsets":[
|
||||
180,
|
||||
260,
|
||||
800,
|
||||
1632,
|
||||
64,
|
||||
1636,
|
||||
1800,
|
||||
540
|
||||
]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user